まいにちUnity 3Dアニメーションシステム入門#2

3Dアニメーションシステム入門に挑戦
(ほぼ)まいにちUnityLearnのチュートリアルをこなしてスキルを伸ばそうの取り組み
アニメーション編-アニメーションブレンディングを頑張ります。

アニメーションブレンディングとは?
1つのアニメーションクリップには、アニメーションデータの2つの部分(バインディングと値)が格納されている。複数のアニメーションクリップを同時に再生すると、Unityはそれらをブレンドする。そして、ブレンドされた結果がバインディングに適用される。
アニメーションクリップの重み
アニメーションクリップをブレンドするとき、各アニメーションには相対的な**重み*が関連付けられている。
個々のアニメーションクリップが、最終的なアニメーションにどの程度影響を与えるかを計算するために使用される。
ブレンドの計算には様々なアルゴリズムを使用できる。最も一般的なものは加重平均であり、それぞれの値に重みをかけ、それらをすべて足し合わせる。

アニメーターコントローラーとは
アニメーターコントローラーは、アニメーションクリップの再生を開始するタイミングや、他のアニメーションクリップとのブレンド方法を制御するためのものである。
特定のゲームオブジェクト階層で再生されるすべてのアニメーションクリップを組み合わせたアセットで、アニメーションの再生を制御するためのロジックを割り当てることができる。
アニメーションクリップを再生するには、クリップをアニメーションコントローラーが参照している必要がある。
また、アニメーターコントローラーも、アニメーターコントローラーコンポーネントによって参照されなければならない。

アニメーターコントローラーに触れる
- Animatorウィンドウで、アニメーターコントローラーを選択し開く。
- アニメーターコントローラー内のBrend Treeノードをダブルクリックする。
- ブレンドツリーが開く。

ブレンドツリー
複数のアニメーションクリップを組み合わせた状態のこと。
上記サンプルでは、Circle (円形) と Square (四角形)のアニメーションクリップの両方を参照していることが確認できる。

アニメーターコントローラーの重要な情報
- 1つまたは複数のアニメーションクリップを含む論理的状態の集合体
- アニメーターコントローラーは、アニメーションクリップのステート間を遷移し、現在再生されているステートのアニメーションクリップを評価する。
- ステートは遷移によってつながっており、つながっているステートのアニメーションクリップをブレンドする。

アニメーターコントローラーの作成・設定
- 新しくアニメーターコントローラーを作成する。
右クリック > Create > Animator Controller の順に選択し作成する。 - ProjectウィンドウのSquareアニメーションクリップをAnimatorウィンドウのグリッド背景にドラッグアンドドロップする。
Circleノードはオレンジ色でSquareはグレーの色をしている。
オレンジのノードはデフォルトの状態を表し、Entryというノードに繋がれている。
これは、シーンの開始時に、最初に再生されることを意味する。

遷移の作成
現在のExampleControllerの設定では、アニメーターコントローラーでSquareアニメーションを再生する方法がない。これは、アニメーションクリップを含む2つのステート間の遷移がないためである。
- Circleステートを右クリックしてコンテキストメニューを表示する。
- Make Transitionを選択する。
- Squareステートを選択すると、そのアニメーションに遷移を割り当てることができる。

遷移の設定
遷移でつなげた後は、アニメーションの中でいつ遷移が起きるかを設定する必要がある。
終了時間
**終了時間(Exit Time)**を設定する
- 作成した遷移を選択する。(矢印を左クリック)設定がInspectorに表示される。
- Settingsの折りたたみを展開する
現在、Exit Timeが0.75に設定されていることがわかる。これは、Circleステートがアニメーションクリップの75%を再生したときに遷移が開始されることを意味する。
アニメーションを1周以上見たいときは、1以上の数を指定する。
例えば、Exit Timeを1.5にすると、アニメーションが1周半再生されてから遷移が開始される。
遷移のタイミング
遷移が開始されると、遷移先のステートでアニメーションクリップの再生が開始される。
この場合、遷移が開始された地点では途中まで再生されている。
遷移を開始するタイミングはTransition Offsetを変更することで設定できる。
Transition Offsetを0.5に設定した場合、アニメーションクリップがその中間点から再生される。
また、Transition Durationを2に設定すると、遷移が完了するまでに2秒かかる。