Unityのタイムラインを使って、複数のアニメーションクリップを組み合わせた一連のアニメーションを作ります。
Asset Storeで無料のキャラクターアセットをインポートしました。
シーンに配置すると、バージョンのせいか色が変なので、新規のマテリアルを作ってドラッグアンドドロップしました。
タイムラインを使うには、タイムラインアセットとタイムラインインスタンスというものを作らないといけませんが、それらが自動で作られる機能があります。
まず、シーン上のアニメーションを付けるオブジェクトを選択します。
Window -> Sequencing -> Timeline からTimelineエディターウィンドウを開きます。
Createボタンを押します。ダイアログが出るので名前を付けて保存します。
すると、タイムラインが使えるようになります。
タイムラインウィンドウでは、アニメーションウィンドウと同様にキーフレームに値をレコードしていって、アニメーションを作ることもできますが、今回は既存のアニメーションクリップを組み合わせて、一連のアニメーションを作ってみます。
インポートしたアセットのフォルダの中にアニメーションが含まれています。
プレハブの中に三角のアイコンのアニメーションクリップが含まれています。
これをタイムラインにドラッグアンドドロップします。
これは歩くアニメーションクリップなので、Ctrl + Dを2回くらい押して同じ動きを少し繰り替えします。
その直後に別のアニメーションクリップを置きました。
タイムラインウィンドウの再生ボタンを押すと、キャラクターがタイムライン上の連続した動きを演じます。
このままでは歩きと次のモーションの間に断絶があるので、タイムラインで歩きの直後のアニメーションクリップを少し左にドラッグアンドドロップして、歩きのクリップに重なるようにします。
すると、2つのクリップの重なっている部分に斜め線が入ります。これはこの部分で2つのクリップがブレンドされていることを表します。
これで、動きのつながりが自然になりました。
体の一部だけ別のアニメーションを適用する
歩く動きの中に別の動きを入れてみます。トラックを右クリックしてAdd Override Trackをクリックします。
Override 0 というトラックができるので、このトラック上に別のアニメーションクリップをドラッグアンドドロップします。
再生すると、歩きの途中のこのアニメーションクリップの動きが上書きされています。
アバターマスクを使って、Override 0 のトラックではキャラクターの頭だけを動かすようにします。
Projectのなにもないところで右クリックして Create -> Avatar Mask をクリックして、新規アバターマスクを作ります。
適当に名前を付けて、これをクリックしてインスペクタを見ます。
Humanoidという項目を展開すると、緑色の人の形の絵が表示されます。
体の各部は、一度クリックすると赤くなってもう一度クリックするとまた緑色に戻ります。
アニメーションを適用したい部分だけ緑色にします。下半身の外側にあるIKと書かれたマークも赤に切り替えます。
タイムラインのOverride 0 トラックを選択して、インスペクタを見ます。
Apply Avatar Maskにチェックをいれて、Avatar Maskで今作ったアバターマスクを選択します。
これで、2つめのトラックのモーションが首から上だけに適用されるようになりました。
首のアニメーションの断絶をなおしてみます。Override 0 に追加したクリップの終わりのフレームにある最初のトラックのアニメーションクリップをコピペします。
このクリップの左端を右に動かしてクリップを短くします。
このクリップの終了部分が上のトラックの同じクリップと揃うように、Override 0 のクリップを重ねます。
すると、首のモーションも歩きのモーションとブレンドされました。
Override 0 へコピペした の歩きのクリップを削除して、首だけに適用するクリップを選択します。
インスペクタで、Post-ExtrapolateをHoldにしてみます。
すると、首の動きがその後も継続します。