ぐーるらいふ

しがないリーマンの記録。遊びのunityのメモ帳にしたい。

【Unity】[Tips] character animationのスピード変えたかった

Tipsだよ。本当に一言で終わるよ。

やりたかったことを察してほしい

animatorの再生時に速度を落としたりなんだりしたいな、と
思っていたのでまずは直感でこのように実装した。

   public void OnBtnSpeed100()
    {
        animator.speed = 1.0f;
        animator.SetTrigger("Hikick");
    }

    public void OnBtnSpeed50()
    {
        animator.speed = 0.5f;
        animator.SetTrigger("Hikick");
    }

    public void OnBtnSpeed10()
    {
        animator.speed = 0.1f;
        animator.SetTrigger("Hikick");
    }

この結果がこれ。

え、合ってないんかい!?

docs.unity3d.com



正解はこれ

AnimatorStateにはSpeedパラメータも渡すことが出来る

AnimatorのparameterにfloatでSpeedを追加して

f:id:ghoul_life:20170713153130p:plain

その後AnimationStateのSpeedの所にチェックを入れて
Multiplierの所にSpeedを指定して

f:id:ghoul_life:20170713153139p:plain

    public void OnBtnSpeed100()
    {
        animator.SetFloat("Speed", 1.0f);
        animator.SetTrigger("Hikick");
    }

    public void OnBtnSpeed50()
    {
        animator.SetFloat("Speed", 0.5f);
        animator.SetTrigger("Hikick");
    }

    public void OnBtnSpeed10()
    {
        animator.SetFloat("Speed", 0.1f);
        animator.SetTrigger("Hikick");
    }

他に影響なく値を変えることも出来るし!いいですね。

これだけ。
なんてこと無いけど面白かったのでブログに残す…。

f:id:ghoul_life:20170713224145p:plain