ヒューマノイドモデル は非常に特殊な構造であり、実際の人間の骨格 (スケルトン) に緩く従う最低 15 個のボーンで編成 されています。それ以外で Unity Animation System を使用するものはすべて 非ヒューマノイド、つまり Generic (ジェネリック) カテゴリになります。要するに、ジェネリックモデルは、やかんからドラゴンまで何にでもなる可能性があるため、非ヒューマノイドのスケルトンのボーンの構造は膨大な範囲に及びます。
この複雑さに対処するための解決策として、ルートノード であるボーンだけが決定されていれば良いという方法です。ジェネリックキャラクター関して、ヒューマノイドキャラクターの重心を近似するために、この方法は最良の方法です。Unity が最も忠実にアニメーションを描画する方法を決定するのに役立ちます。マップするボーンは 1 つだけなので、ジェネリックの設定では Humanoid Avatar ウィンドウ を使用しません。結果として、非ヒューマノイドモデルのファイルをインポートする準備に必要なステップは、ヒューマノイドモデルの場合よりも少なくなります。
Inspector ウインドウの Rig タブ で、Avatar (Animation) Type を Generic に設定します。デフォルトでは、Avatar Definition プロパティーは Create From This Model に設定され、Root node は None に設定されています。
場合によっては、Avatar Definition を Copy From Other Avatar に変更して、すでに別のモデルファイル用に定義したアバターを使用することができます。例えば、3D モデリングアプリケーションで複数の異なるアニメーションを使用してメッシュ (スキン) を作成する場合、メッシュを 1 つの FBX ファイルにエクスポートし、各アニメーションをそれぞれの FBX ファイルにエクスポートすることができます。これらのファイルを Unity にインポートするときは、インポートする最初のファイル (通常はメッシュ) に 1 つのアバターを作成するだけです。すべてのファイルが同じボーン構造を使用する限り、ファイルの残りの部分 (例えば、すべてのアニメーション) にそのアバターを再使用することができます。
Create From This Model に設定する場合は、Root node プロパティーからボーンを選択する必要があります。
Avatar Definition オプションを Copy From Other Avatar に変更する場合は、Source プロパティーを設定して、使用したいアバターを指定する必要があります。
You can also change the maximum number of bones that can influence a given vertex with the Skin Weights property. By default, this property limits influence to four bones, but you can specify more or fewer.
When you click the Apply button, Unity creates a Generic Avatar and adds an Avatar sub-asset under the Model Asset, which you can find in the Project view.
ノート ジェネリックアバターはヒューマノイドアバターと同じではありませんが、Project ビューに表示され、ルートノードマッピングを保持します。ただし、Project ビューでアバターのアイコンをクリックして Inspector にプロパティーを表示すると、その名前だけが表示され、Configure Avatar ボタンは表示されません。
マスキングは、インポート時かランタイムのいずれかにアニメーションクリップに適用することができます。アニメーションデータを削除して、ビルドから除くことができ、ファイルサイズやメモリ使用量を小さくできるため、インポート時にマスキングすることが好ましいと言えます。アニメーションデータがランタイムにブレンドされるより少なくなるので、より高速な処理ができます。インポート時のマスキングは目的に適さない場合があります。その場合には、アバターマスク アセットを作成してランタイムにマスクを適用し、アニメーターコントローラー の レイヤー設定 でこれを使用します。
空のアバターマスクアセットを作成するには、以下のいずれかを行います。
新しいアセットが Project ビューに表示されます。
Transform 階層 に含む/除外するボーンを選択し、次に、マスクを アニメーションレイヤー に加えるか、または、マスクへの参照を Animation タブ の Mask セクションに加えます。