Animator Controller でCharacterのAnimationの遷移が作れる。
Unity の Animation は表示のみの Animation ではなく、実際のオブジェクトの移動も含む。
そのため、おそらく3Dモデルでのアニメーション作成時に実際の移動幅の設定も兼ねる。
では、プログラム側で移動幅をいじれないのか、というと
Animator Controller の Stateの中に speed の値があり、これをいじることで、
2倍や 0.5倍などにできる。ジャンプ力2倍などはこれで実装。
ただ、現状、Animatorのオブジェクトがコードがいじりづらく
下記のように Current のAnimationしか取得できない。
Animator anim = GetComponent<Animator>(); AnimatorStateInfo stateInfo = anim.GetCurrentAnimatorStateInfo(0); if( Animator.StringToHash("Base Layer.Idle") == stateInfo.nameHash) { anim.speed = 6; }
そのため、変更したいAnimationになった場合に設定してあげるような
Speed予約クラスを作ると良さげ。
0 件のコメント:
コメントを投稿