■アニメーションの導入 英語版参照元はこちら
unity3dのアニメーション管理方法にはいくつかあります。
① 一つのモデルファイルに全部のアニメーションを含めてしまう方法 (歩く、走るなどのポーズをひとつのモデルファイルの中に含める)
② 複数のモデルファイルを使用することでアニメーションを管理する方法。(歩く、走るなどポーズごとにモデルファイルを作ってしまう。)
① 一つのモデルファイルに全部のアニメーションを含めてしまう方法
もっとも便利な方法はひとつのモデルの中にすべてのアニメーションを含めることです。
フレームで区切り、どのフレームがアニメーションの各部分なのかを指定できる。
unity3dは自動的にアニメーションクリップ(Animation Clips)と呼ばれる個々のパーツに分けるだろう。
例えば:
歩くアニメは 1 - 33 フレーム
走るアニメは 41 - 57 フレーム
キックアニメは 81 - 97 フレーム
今作っているプロジェクトファイルの中の Assets フォルダーに入れれば、自動的にインポートされます。
アニメーションフレームの詳細は以下の所で調整できます。
name | unityのアニメーションクリップで使う名前 |
start frame | 開始フレーム |
stop frame | 終了フレーム |
WrapMode | 終了フレームの後の挙動(一回再生で停止か、繰り返しか、ピンポンか、ずっと固定か) |
loop frame | もしチェックを入れると、余分なループ・フレームはアニメーションの終わりに挿入されます。 このフレームはクリップにおける最初のフレームに合っています。 ループアニメーションを作りたがっていて、1番目と最後のフレームがまさに合わないなら、これを使用してください。 |
② 複数のモデルファイルを使用することでアニメーションを管理する方法。
ルールに従って各モデルファイルに名前をつけます
'model name'@'animation name'.fbx
アニメーションを追加するときはアニメーションクリップをドラッグすれば追加できるみたいです。
■キャラクターアニメーション
では、実際にUnityのスクリプト用のインタフェースを通してキャラクタをアニメーションさせましょう。
と、その前にアニメーションの種類についてお話しします。
①アニメーションブレンディング(アニメーションの混合)
個々のアニメーションのつなぎ目を補完する(歩くから攻撃などをスムーズにする)
最初のステップとして待機モーションから歩くモーションをスムーズに行うようにしましょう。
Wrap Modeをloopに設定しましょう。
スクリプトから操作する上で、LoopへのアニメーションのWrap Modeを第一セットに望んでいますそしてPlay Automaticallyをオフを推奨します。
function Update () { if (Input.GetAxis("Vertical") > 0.2) animation.CrossFade ("walk"); else animation.CrossFade ("idle"); }