//コンストラクタ
 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;
 }
Beispiel #2
0
    //モーションを再生する(全身)
    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);
    }
Beispiel #4
0
    //============================================================================================================

    //モーションを再生する
    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);
    }
Beispiel #5
0
    //モーションを再生する(引数単純化版)
    public bool play(AnimationClip clip, bool loop, int layer = 0)
    {
        MotionPlayerParam param = new MotionPlayerParam(layer, loop_: loop);

        return(play(clip, param));
    }