UnityのAnimator機能チュートリアル
Unity本を見ながらMecanimのAnimator機能を触ってみた。まずはRaw Mocap Data For MechanimをAssets storeからDL。
このアセットにはサンプルのモーションがいくつか入っているので、これを導入するだけでそれっぽいアニメーションを作れることができる。
Animatorを使うには、[Windows]-[Animator]を選択。
このままでは何も表示されないので、Project ViewのLocomotion SetUp からLocomotionを選択するとサンプルのアニメーションステートマシンが表示される。
Stateを繋げている矢印がTransitionで、遷移条件や遷移の速度を編集することができる。
例えば、Idle状態からWalkRun状態へのTransitionで、Conditionsに
- Spped > 0.5
- Direction > -30
- Direction < 30
と設定されていた場合、Idle状態のときにSpeedが0.5より出てかつ移動しようとしている方向が±30°の範囲内であればWalkRunに遷移するといった流れである。
ではここで、Spaceボタンを押したらJump状態に遷移するというアニメーションを作る。
まず画面上でパラメータを追加し、パラメータのタイプはBool、初期値はfalseとする。
次にAnimatorWindows上で右クリックして空のStateを作成する。そのStateにジャンプのMotionをひも付ける。
JunpのStateができたら、WalkRun上からJumpへTransitionを引いて、逆のTransitionもひく。WalkRunからJumpへのTransitionの条件として、Jump == trueを追加する。
これで、AnimatorのJumpパラメータがtrueになった場合にWarlRunからJumpへ遷移することが可能になった。
次に、実際にアニメーションをするキャラクターにScriptを追加し、Spaceボタンが押されたら JumpフラグをONにして、それ以外だったらfalseに戻すという処理を書く。
function Update () { var animator = GetComponent(Animator); if(Input.GetKey(KeyCode.Space)){ animator.SetBool("Jump", true); } var state : AnimatorStateInfo = animator.GetCurrentAnimatorStateInfo(0); if(state.IsName("Locomotion.Jump")) { animator.SetBool("Jump", false); } }
これでキャラクターにジャンプアニメーションが追加された。
もっと早いタイミングでジャンプさせたいといった調整は、Transitionの中のアニメーションブレンドにおいて実行できる。
以上でUnity4入門読了。次はUnityでゲーム作る本を進めていきます。
- 作者: 浅野祐一,荒川巧也,森信虎
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2013/07/27
- メディア: 大型本
- この商品を含むブログ (11件) を見る