このページでは、Unity のアニメーションシステムで使用するモデルのインポートについて説明します。アニメーションシステムに使用するモデルの作成については、アニメーション用モデルの作成 を参照してください。
アニメーションシステムは、2 種類のモデルに対応しています。
すべての種類のモデルに適用される一般的なインポートの説明については、モデルのインポート を参照してください。
Unity が ヒューマノイド リグとアニメーションを含むモデルファイルをインポートするとき、モデルのボーン構造をアニメーション用に調整する必要があります。それを行うには、ファイル内の各ボーンをヒューマノイドアバターにマッピングし、アニメーションを適切に再生できるようにします。このため、Unity にインポートする前に、モデルファイルを慎重に準備することが重要です。
Inspector ウィンドウの Rig タブ で、Animation Type を Humanoid に設定します。デフォルトでは、Avatar Definition プロパティは Create From This Model に設定されています。このオプションでは、Unity はファイル内で定義された一揃いのボーンをヒューマノイドアバターにマップしようと試みます。
場合によっては、このオプションを Copy From Other Avatar に変更して、すでに別のモデルファイル用に定義したアバターを使用することができます。例えば、3D モデリングアプリケーションで複数の異なるアニメーションを使用してメッシュ (スキン) を作成する場合、メッシュを 1 つの FBX ファイルにエクスポートし、各アニメーションをそれぞれの FBX ファイルにエクスポートすることができます。これらのファイルを Unity にインポートするときは、インポートする最初のファイル (通常はメッシュ) に 1 つのアバターを作成するだけです。すべてのファイルが同じボーン構造を使用する限り、ファイルの残りの部分 (すべてのアニメーションなど) にそのアバターを再使用することができます。
このオプションを有効にする場合は、Source プロパティを設定して、使用したいアバターを指定する必要があります。
また、Skin Weights プロパティを使って、指定した頂点に影響を与えることができるボーンの最大数を変更することもできます。デフォルトでは、このプロパティの影響は 4 つのボーンに制限されていますが、別の値を指定することもできます。
Apply ボタンをクリックすると、Unity は既存のボーン構造をアバターのボーン構造に一致させようとします。多くの場合、これは、リグ内のボーン間の接続を分析することで自動的に行われます。
一致に成功すると、Configure メニューの横にチェックマークが表示されます。また、Unity はアバターのサブアセットをモデルアセットに追加します。これは Project ウィンドウで確認できます。
一致の成功とは、単に Unity が必要なボーンすべてを一致させられたことを意味します。ただし、より良い結果を得るためには、Unity では必須ではないボーンも一致させ、適切な T ポーズ でモデルを設定する必要があります。
Unity がアバターを作成できない場合は、Configure ボタンの横に X が表示され、アバターのサブアセットは Project ウィンドウに表示されません。
アバターはアニメーションシステムの重要な一面であるため、モデル に適切にアバターを設定することが重要です。
このような理由で、自動的なアバター作成が成功したかどうかにかかわらず、有効で適切に設定されているか、常に アバターを確認 する必要があります。
Unity があなたのモデルのボーンを正しくアバターにマップしたかどうかを確認したい場合、あるいは Unity があなたのモデルのアバターの作成に失敗した場合、Rig タブの Configure … ボタンをクリックして、アバター設定モード にすることができます。
Unity がアバターの作成に成功すると、アバターはモデルアセットのサブアセットとして表示されます。Project ウィンドウでアバターアセットを選択して、Inspector の “Configure Avatar” ボタンをクリックすると、アバター設定モードに入ります。このモードでは、Unity がモデルのボーンをアバターのレイアウトにマップする方法を確認したり調整することができます。
アバターの設定モードに入ると、Avatar ウィンドウが Inspector に表示され、ボーンマッピングが表示されます。
ボーンのマッピングが正しいことと、Unity が割り当てなかった必須でないボーンをマップすることを確認してください。
Unity が有効な一致を探すためには、少なくとも必須のボーンはスケルトンの正しい位置になくてはなりません。アバターにうまく一致させるには、ボーンに身体の部位を表す名前を付けます。例えば、“LeftArm” と “RightForearm” のような名は、ボーンが何を制御するかを明確に表しています。
モデルが有効な一致を 探せない 場合は、Unity が内部で行うのと似た手順を手動で行います。
オートマッピングが完全に、または部分的に失敗した場合は、手動で シーン ビューまたは 階層 ビューからボーンをドラッグして割り当てることができます。Unity がボーンが一致するとみなした場合、Avatar Mapping タブは緑色で表示され、そうでない場合は赤で表示されます。
T ポーズ は Unity のアニメーションに必要なデフォルトのポーズで、3D モデリングアプリケーションでモデルを作成するのに推奨されるポーズ です。ただし、キャラクターのモデリングに T ポーズを使用せず、アニメーションが期待どおりに動作しない場合は、Pose ドロップダウンメニューから Reset を選択します。
ボーンの 割り当ては正しいにもかかわらず、キャラクターが正しいポーズでない場合は、“Character not in T-Pose” というメッセージが表示されます。Pose メニューから Enforce T-Pose を選択して、この問題の修正を試みることができます。ポーズが依然として正しく修正されない場合は、手動で残りのボーンを回転させ T ポーズにすることができます。
マスキングを使用すると、クリップ内のアニメーションデータの一部を破棄することができ、オブジェクトやキャラクターの全体ではなく一部だけをアニメーション化できます。例えば、腕と脚両方のモーションを含む標準的な歩行アニメーションがあるが、キャラクターが大きなオブジェクトを両手で持っている場合、キャラクターが歩くときに腕を横に振らせたくありません。ただし、オブジェクトを持ちながらも、標準の歩行アニメーションを使用できます。それには、マスクを使用し、運搬するアニメーションの上半身だけを、歩行アニメーションの上に再生します。
マスキングは、インポート時かランタイムのいずれかにアニメーションクリップに適用することができます。アニメーションデータを削除して、ビルドから除くことができ、ファイルサイズやメモリ使用量を小さくできるため、インポート時にマスキングすることが好ましいと言えます。アニメーションデータがランタイムにブレンドされるより少なくなるので、より高速な処理ができます。インポート時のマスキングは目的に適さない場合があります。その場合には、アバターマスク アセットを作成してランタイムにマスクを適用し、アニメーターコントローラー の レイヤー設定で使用 します。
空のアバターマスクアセットを作成するには、以下のいずれかを行います。
新しいアセットが Project ウィンドウに表示されます。
ボディの一部をマスクに追加 し、次に、マスクを アニメーションレイヤー に追加するか、マスクへの参照を Animation タブ の Mask セクションに追加します。