Animation ウィンドウと Animator ウィンドウの違いは?
Animation ウィンドウ では、Unity 内でアニメーションクリップを作成・編集することができます。ゲームオブジェクトの位置、マテリアルカラー、ライトの明るさ、サウンドの音量など、Inspector 上で編集可能なあらゆるプロパティをアニメーションさせる事ができ、スクリプトから任意の値に変更することも可能です。
Animator ウィンドウ では、既存のアニメーションクリップアセットをステートマシンと呼ばれるフローチャートのようなシステムで編成できます。
この 2 つのウィンドウは Mecanim アニメーションシステムの一環であり、古いアニメーションシステムのものではありません。
古いアニメーションシステムを使用してキャラクターのアニメーションを行っています。代わりに Mecanim アニメーションシステムを使用するべきでしょうか?
大半のキャラクターアニメーションは複雑になっているため、一般的にはそうするべきです。
なぜインポートしたメッシュにアニメーターコンポーネントがついているのでしょうか?
Unity はインポートしたファイルにアニメーションが存在することを検出すると、インポート時にアニメーションコンポーネントを付加します。この設定は、アセットのインポート設定の Rig タブの下にある Animation Type を None にすることで変更できます。一度に複数ファイルの設定を変更することも可能です。
レイヤーの順番は何かに影響しますか?
はい。レイヤーは一番上から下まで順に評価されます。Override としてセットされたレイヤーは常に前にあるレイヤーをオーバーライドします (マスクがあれば、そのマスクにもとづきます)。
Base Layer のウェイトは常に 1 とすべきでしょうか、あるいは別のレイヤーが実行されているときは 0 に設定すべきでしょうか。
Base Layer のウェイトは常に1で、オーバーライド レイヤーは完全に Base Layer を上書きします。
コントローラーから変数の値を文字列以外の形式で取得する方法はありますか?
整数型を使用してステートおよびパラメーターを識別することができます。Animator.StringToHash 関数を使用して整数型の識別子を取得してください。 例:
runState = Animator.StringToHash("Base Layer.Run");
animator.SetBool(runState, false);
同期するレイヤーと同期元のレイヤーの長さが異なる場合、どうなりますか?
レイヤーの長さが異なる場合は、同期されません。Timing オプションを有効にして、現在のレイヤーのステートのタイミングをソースレイヤーのタイミングに合わせます。
LeftFoot、RightFoot、LeftHand、RightHand 以外の AvatarIKGoals を作成する方法はありますか?
はい、膝と肘は IK をサポートしています。
どのボーンがアバターマスクの一部とするか定義する方法はありますでしょうか。
Generic のクリップでは、どのトランスフォームアニメーションをインポートするかを設定できます。Humanoid のクリップでは、人型部分のトランスフォームは常にインポートされ、追加のトランスフォームを設定する事ができます。
カーブつきのアニメーションはアニメーションなしの場合とどのようにブレンドできますか?
カーブつきのアニメーションと、カーブなしのアニメーションがある場合、Unity はカーブに接続されたパラメーターのデフォルト値を使用してブレンドを行います。パラメーターに対してデフォルト値を設定することができ、あるステート (状態) に置いてカーブパラメーターと 1 つも持っていないものをブレンドする時には、カーブの値とデフォルトのパラメーター値でブレンドされます。パラメーターのデフォルト値を設定するには、LiveLink のないアニメーターツールウィンドウにその値を設定します。