Closed11

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

ふぁゔふぁゔ

アニメーションブレンディングとは?

1つのアニメーションクリップには、アニメーションデータの2つの部分(バインディングと値)が格納されている。複数のアニメーションクリップを同時に再生すると、Unityはそれらをブレンドする。そして、ブレンドされた結果がバインディングに適用される

アニメーションクリップの重み

アニメーションクリップをブレンドするとき、各アニメーションには相対的な**重み*が関連付けられている。
個々のアニメーションクリップが、最終的なアニメーションにどの程度影響を与えるかを計算するために使用される。

ブレンドの計算には様々なアルゴリズムを使用できる。最も一般的なものは加重平均であり、それぞれの値に重みをかけ、それらをすべて足し合わせる。

ふぁゔふぁゔ

アニメーターコントローラーとは

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

アニメーションクリップを再生するには、クリップをアニメーションコントローラーが参照している必要がある。
また、アニメーターコントローラーも、アニメーターコントローラーコンポーネントによって参照されなければならない。

ふぁゔふぁゔ

アニメーターコントローラーに触れる

  1. Animatorウィンドウで、アニメーターコントローラーを選択し開く。
  2. アニメーターコントローラー内のBrend Treeノードをダブルクリックする。
  3. ブレンドツリーが開く。
ふぁゔふぁゔ

ブレンドツリー

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

ふぁゔふぁゔ

アニメーターコントローラーの重要な情報

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

アニメーターコントローラーの作成・設定

  1. 新しくアニメーターコントローラーを作成する。
    右クリック > Create > Animator Controller の順に選択し作成する。
  2. ProjectウィンドウのSquareアニメーションクリップをAnimatorウィンドウのグリッド背景にドラッグアンドドロップする。

    Circleノードはオレンジ色でSquareはグレーの色をしている。
    オレンジのノードはデフォルトの状態を表し、Entryというノードに繋がれている。
    これは、シーンの開始時に、最初に再生されることを意味する。
ふぁゔふぁゔ

遷移の作成

現在のExampleControllerの設定では、アニメーターコントローラーでSquareアニメーションを再生する方法がない。これは、アニメーションクリップを含む2つのステート間の遷移がないためである。

  1. Circleステートを右クリックしてコンテキストメニューを表示する。
  2. Make Transitionを選択する。
  3. Squareステートを選択すると、そのアニメーションに遷移を割り当てることができる。
ふぁゔふぁゔ

遷移の設定

遷移でつなげた後は、アニメーションの中でいつ遷移が起きるかを設定する必要がある。

終了時間

**終了時間(Exit Time)**を設定する

  1. 作成した遷移を選択する。(矢印を左クリック)設定がInspectorに表示される。
  2. Settingsの折りたたみを展開する
    現在、Exit Timeが0.75に設定されていることがわかる。これは、Circleステートがアニメーションクリップの75%を再生したときに遷移が開始されることを意味する。

アニメーションを1周以上見たいときは、1以上の数を指定する
例えば、Exit Timeを1.5にすると、アニメーションが1周半再生されてから遷移が開始される。

遷移のタイミング

遷移が開始されると、遷移先のステートでアニメーションクリップの再生が開始される。
この場合、遷移が開始された地点では途中まで再生されている。
遷移を開始するタイミングTransition Offsetを変更することで設定できる。
Transition Offset0.5に設定した場合、アニメーションクリップがその中間点から再生される。
また、Transition Duration2に設定すると、遷移が完了するまでに2秒かかる

このスクラップは2023/03/06にクローズされました