//コンストラクタ public MotionMixer(MotionPlayer player, PlayableGraph graph) { this.player = player; this.playParam = new MotionPlayerParam(); this.beforePlayable = AnimationClipPlayable.Create(graph, null); this.mixer = AnimationMixerPlayable.Create(graph, 2); this.graph = graph; }
//モーションを再生する(全身) public bool playAllLayer(AnimationClip clip, MotionPlayerParam param) { for (int i = 0; i < motionMixers.Count; i++) { play(clip, param); } return(true); }
public void play(AnimationClip clip, int layer) { MotionPlayerParam param = new MotionPlayerParam( layer_: layer, loop_: loopToggle.isOn, reverse_: reverseToggle.isOn, fadeDuration_: 0.5f, waitFade_: waitToggle.isOn, syncTrans_: syncToggle.isOn); motionPlayer.play(clip, param); motionPlayer.setLayerEnabled(inpSlider.value, overrideToggle.isOn); }
//============================================================================================================ //モーションを再生する public bool play(AnimationClip clip, MotionPlayerParam param) { if (clip == null || param == null) { return(false); } MotionMixer motionMixer = motionMixers[param.layer]; motionMixer.playParam = param; //切断 graph.Disconnect(layerMixer, param.layer); //再接続 motionMixer.reconnect(clip); layerMixer.ConnectInput(param.layer, motionMixer.mixer, sourceOutputIndex: 0, weight: 1f); //出力 output.SetSourcePlayable(layerMixer); return(true); }
//モーションを再生する(引数単純化版) public bool play(AnimationClip clip, bool loop, int layer = 0) { MotionPlayerParam param = new MotionPlayerParam(layer, loop_: loop); return(play(clip, param)); }