2.Animationを作る - Morijellyfish-org/UnityAnimationGuide GitHub Wiki
Animationウィンドウを出す
Animation_A.anim
をダブルクリックして、Animationウィンドウを出し、そのファイルの中身を見る事が出来ます。
[!Tip] 各ウィンドウの右上にある三点リーダーのボタン '︙' から
Add Tab > Animation
もしくは WindowタブからAnimation > Animation
等からもAnimationウィンドウを出す事は出来ます。
編集対象を選択する
Hierarchyウィンドウで、Animatorを保持しているGameObjectを選択します、今回の場合はCubeとなります。
これによってAnimationウィンドウが画像のようになっている事を確認して下さい。
Propertyを追加する
Animation_Aを、前に動くアニメーションにします。
Animationウィンドウの Add Property ボタンを押し Transform > Position
を選択しましょう。
次の画像のようになっていれば大丈夫です。
ウィンドウの要素説明
全てを説明しても長くなるので必要になりそうな要素だけ大まかに説明します。 詳細は公式のドキュメントを確認して下さい。
画面左
-
Previewボタン このボタンでPreviewを有効にするとAnimationの動きを実行せずに確認する事が出来ます。これによる移動は一時的なもので、Previewが終了すると元に戻ります。 Previewが有効な値は青くなるため把握する事が出来ます。
-
録画ボタン このボタンでkeyframe recordingを有効にすると、Inspector等で動かした値を自動でAnimationのProperty追加と編集を行います。編集しているAnimationが動かせる範囲のほぼ全てを取り込みます。これによる移動は一時的なもので、keyframe recordingが終了すると元に戻ります。 keyframe recordingによって追加、監視されている値は赤くなるため把握する事が出来ます。赤くない値も動かせば追加され赤くなります。
-
右上の数字入力欄 ここの値は編集するフレームです、ここに数字を入れる事で直接そのフレームに飛ぶ事が出来ます。
画面右
- 上の数字と目盛り ここで編集するフレームを移動します。UnityのAnimationは標準で60FPSとなっています。右の三点リーダーのボタン '︙' からSec表示かFrame表示か変更出来ます、今回はFrame表示で編集を行います。
- 並んでいるひし形 '◇' これがKeyです、ここに値が入っているので、これを追加したり動かしたりする事でアニメーションを実現します、Key間の値は補完されるのですべてのフレームにKeyを置く必要はありません。
Propertyを編集する
先述の通り、前に動くアニメーションを作りたいためそうなるようにKeyを編集します。
まずは60F目を選択して、その状態で Cube:Position > Position z
を1にします。
編集後、Previewがオンになっている事を確認してAnimationの再生をしてみましょう。CubeのZ座標が0から1まで、一秒かけて移動するアニメーションがループしていれば大丈夫です。 確認出来たら再生ボタンをもう一度押して停止しましょう。
- LoopTimeの設定 実際にSceneをPlayで動かしてみると、一度しか動きません、これを繰り返し動き続けるようにします。
Projectウィンドウ等からAnimation_A.anim
を選択し、Inspectorでその詳細を確認します。
LoopTimeにチェックを入れると繰り返し再生するようになります。
- RootMotionの設定 実際にSceneをPlayで動かしてみた時、繰り返し動くようにはなりましたが、z0とz1を繰り返し移動するのみで、前進し続ける事が出来ません。実際に前に進むようにします。
HierarchyウィンドウからCubeを選択し、Inspectorで詳細を確認します。
ApplyRootMotionにチェックを入れると、Animationを相対的な座標で再生するようになります。
これによって、どこに置いてもZ座標を毎秒+1し続けるアニメーションになりました。
キーフレーム間の補完
確かに前進し続けますが、等速ではなく、一歩ずつ止まるような挙動になります、これを修正して等速で動くようにします。
Animationウィンドウ左部の下に Dopesheet / Curves
のボタンがあります、Curvesを選択し、ウィンドウ右部の視点を整えてみましょう。
スクロールバーの大きさは変える事が出来ます、これによって縦だけ、横だけの拡大と縮小が出来ます。操作の本質ではないので見やすくなれば大丈夫です。
明らかに直線ではない事がわかります、これを修正していきましょう。
まずは他のカーブが邪魔なので左部でPositionZだけを選択します、これによってPositionZのカーブしか表示されなくなるはずです。
次にKeyを右クリックして補完の種類を選択します。
補完の種類等の詳細は公式のドキュメントを確認して下さい。
今回は全てのKeyのBothTargetをLinerにする事で直線にします。
実際にSceneをPlayで実行した時、Cubeが等速に移動する事が確認出来たら完了です。
[!Tip] Animatorを他のオブジェクトに追加しても、同じAnimationを使いまわす事が出来ます。
これでAnimationの作成の基本は終了です。