-
アニメーターコントローラーは 1 個以上の
-
ステートマシンを含み 再生中のアニメーションを
-
制御します
-
各ステートはパラメーター制御されていて
-
値はスクリプトから取得されます
-
アニメーターコントローラーを作成するには
-
Project ビューの Create メニューから
-
Animator Controller を選択します
-
また Asset ビューの何もないところを右クリックして
-
Create > Animator Controller と選択する
-
方法でも作成できます
-
アニメーターコントローラーは
-
Animator ウィンドウで管理されます
-
Animator ウィンドウを開くには
-
Window > Animator の順にクリックするか
-
アニメーターコントローラーアセットをダブルクリックします
-
このウィンドウはサイズ変更・ドッキング可能なので
-
ワークフローに合わせて好みの場所に
-
配置することができます
-
パラメーターを作成するには
-
Animator ウィンドウ左下にある
-
Parameters の隣に表示されている + アイコンをクリックします
-
パラメーターには Float / Int
-
Bool / Trigger があります
-
パラメーターの用途は通常アニメーションの
-
品質制御と遷移決定条件の指定です
-
たとえばヒューマノイドの移動アニメーションを
-
作る場合には float パラメーターでスピードを
-
制御するのが一般的な方法です
-
そしてスピードのパラメーター値が大きくなったら
-
アニメーターコントローラーがより早い
-
アニメーションのステートに遷移させたりできます
-
この「ステート」は 3 種類の方法で作成できます
-
ひとつめは アニメーションクリップを
-
Project パネルからAnimator パネルの
-
空いている場所にドラッグする方法
-
この場合ステートはドラッグされた
-
アニメーションクリップの
-
モーションになります
-
2 つめの方法はAnimator パネルの空いている
-
場所を右クリックして
-
Create State を選択する方法です
-
この場合は次の 3 種類のオプションがあります
-
Empty(空)/ From Selected Clip(選択したクリップから)
-
From New Blend Tree(新しいブレンドツリーから)
-
ブレンドツリーの詳細については
-
下記リンク先にあるレッスンをご覧ください
-
Empty を選んだ場合には単純に 一切モーションを
-
含まないステートが作成されます
-
これは他のレイヤーで再生中のアニメーションを
-
マスクしない点が特に有用です
-
アニメーションレイヤーの詳細については
-
下記リンク先にあるレッスンをご覧ください
-
From Selected Clip(選択したクリップから)を指定した場合は
-
Project パネルでステートにする
-
アニメーションを選択状態にしておく
-
必要があります
-
3 個めの方法は Animation
-
ウィンドウでステートを作る
-
方法です
-
なお Animation ウィンドウは
-
Animator ウィンドウとはまったく別のものです
-
アニメーションを作成すると
-
対応するアニメーターコントローラーの
-
ベースレイヤーにステートが
-
作成されます
-
Animation ウィンドウについては独立した解説動画が
-
あります 詳細は下記リンクをご覧ください
-
レイヤー上に最初に作成されたステートは
-
自動的にデフォルトのステートになります
-
デフォルトのステートはオレンジ色で示されます
-
デフォルトにするステートは
-
任意のステートを右クリックして
-
Set As Default(デフォルトに設定)を選ぶことで変更できます
-
デフォルトのステートは最初に再生される
-
アニメーションになります
-
インスペクターパネルでステートを編集するには
-
ステートをクリックします
-
最上部ではステートに名前と
-
タグを付けることができます
-
特定のステート時にアクションを
-
実行するときなどにはこの名前とタグで
-
参照することができます
-
なので名前やタグは内容を示す
-
ものを指定しておきましょう
-
Speed プロパティは通常再生スピードに対して
-
どの程度の速度でアニメーションを
-
再生するかを指定するものです
-
1 が通常スピードを示します
-
Motion プロパティではステート固有の
-
アニメーションクリップを指定できます
-
Foot IK は
-
Foot Inverse Kinematics(フット逆運動学)の略です
-
このオプションをオンにすると
-
アニメーション中の足の「滑り」を
-
減少または無くしてくれます
-
Mirror プロパティはアニメーションの
-
左右を逆転させます
-
その下にはこのステートから他のステートへの
-
遷移(Transition)のリストが表示されます
-
現時点ではリストは空ですので
-
ここで作ってみましょう
-
遷移とはアニメーターコントローラーが
-
アニメーションクリップ間を滑らかに
-
つなげるしくみです
-
遷移のタイミングや方法は指定可能で
-
高度な制御が行えます
-
ステート間の遷移を作成するには
-
まず遷移元のステートを右クリックして
-
Make Transition(遷移を作成)を選択します
-
すると遷移先への矢印が表示され
-
カーソルに追従してきます
-
そうしたら遷移先のステートをクリックすれば遷移の完成です
-
遷移はクリックすることで
-
インスペクター上で編集可能です
-
各遷移には Solo と Mute という
-
オプションがあります
-
Mute は遷移を無効化するオプションです
-
Solo のほうは同一ステートから来る
-
すべての遷移を監視し
-
Solo とマークされていないものを
-
Mute します
-
Mute と Solo はステートマシンの
-
特定の領域だけに特化したデバッグ用ツールですので
-
リリースビルド内では
-
無効にしておく必要があります
-
その下にあるのは
-
遷移の名前に関するオプションです
-
そしてさらにその下には Atomic プロパティがあります
-
Atomic プロパティをオンにすると
-
その遷移は他の一切の
-
遷移から干渉できなくなります
-
続いてこのグラフ これはアニメーションが
-
遷移中にどう扱われるかを示します
-
目盛りは秒数とフレーム数を示します
-
このグラフには 3 つのマーカーがあり
-
遷移の開始時と終了時を示すものの他
-
遷移アニメーションをプレビューする
-
ための時間指定線があります
-
開始時マーカーと終了時マーカーの間の領域は
-
青色で表示されていますが これは
-
アニメーションの遷移している期間を示します
-
またグラフのカーブ(曲線)は
-
どの時点で両足が最も安定しているかを示します
-
Run(走る)アニメーションのステートでは
-
カーブが上昇と下降を見せたあと
-
戻っているのが確認できますね
-
線が中央にある場合には...
-
たとえば Idle アニメーションの時には
-
どちらか一方の足が他方より安定していることはないと読み取れます
-
滑らかに遷移させるためには
-
この曲線同士がうまく合うようにしましょう
-
片足が際立って安定していないのであれば
-
この点は特に注意を払わなくても大丈夫です
-
2 つのステートはグラフ上で前後に
-
移動させて遷移の
-
開始点と終了点を
-
調整することができます
-
そしてグラフの下には遷移を実行する
-
Conditions(条件)を指定する
-
オプションが用意されています
-
デフォルト設定では遷移には必ず
-
Exit time(終了時)が設定されます
-
これはステートのアニメーションが
-
終了する時間になったら次のステートに
-
遷移するという意味です
-
なお条件はパラメーターによって異なります
-
たとえば Bool パラメーターであれば true か false ですし
-
float パラメーターであれば定数よりも
-
greater than(次よりも大きい)または less than(次よりも小さい)といった具合です
-
なお遷移には必要に応じて複数の条件を
-
設定できます
-
複数個指定する場合には + ボタンをクリックしてください
-
インスペクターの下部には
-
プレビューウィンドウが表示され
-
遷移の内容を確認できます
-
なお ひとつのステートに複数の遷移を
-
結びつけることも可能です
-
通常これは同一の遷移に対して条件を
-
複数個設定する場合に使われます
-
たとえば Speed パラメーターがあり
-
Idle と Run というステートがある場合
-
Idle から Run への遷移に条件を
-
つけるとしたら
-
Speed が 0 でない場合と指定できますが
-
2 個の遷移を作成して
-
それぞれの条件を
-
Speed が greater than(次よりも大きい) 0.1
-
Speed が less than (次よりも小さい)-0.1 のようにも指定できるわけです