2014年11月26日水曜日

【Unity】Animator Controller の移動幅設定

【Unity の Animator メモ】

Animator Controller でCharacterのAnimationの遷移が作れる。
Unity の Animation は表示のみの Animation ではなく、実際のオブジェクトの移動も含む。
そのため、おそらく3Dモデルでのアニメーション作成時に実際の移動幅の設定も兼ねる。

では、プログラム側で移動幅をいじれないのか、というと
Animator Controller の Stateの中に speed の値があり、これをいじることで、
2倍や 0.5倍などにできる。ジャンプ力2倍などはこれで実装。

ただ、現状、Animatorのオブジェクトがコードがいじりづらく
下記のように Current のAnimationしか取得できない。



  1. Animator anim = GetComponent<Animator>();  
  2.   
  3. AnimatorStateInfo stateInfo = anim.GetCurrentAnimatorStateInfo(0);  
  4.   
  5. if( Animator.StringToHash("Base Layer.Idle") == stateInfo.nameHash) {  
  6.   
  7.   anim.speed = 6;  
  8.   
  9. }  



そのため、変更したいAnimationになった場合に設定してあげるような
Speed予約クラスを作ると良さげ。


0 件のコメント:

コメントを投稿