このページでは、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 はアバターのサブアセットをモデルアセットに加えます。これはプロジェクトビューで見つけることができます。
マッチの成功とは、単に Unity が必要なボーンすべてをマッチできたことを意味します。ただし、より良い結果を得るためには、Unity では必須ではないボーンもマッチし、適切な T ポーズ でモデルを設定する必要があります。
Unity がアバターを作成できない場合は、Configure ボタンの横に X が表示され、アバターのサブアセットはプロジェクトビューに表示されません。
アバターはアニメーションシステムの重要な一面であるため、モデル に適切にアバターを設定することが重要です。
このような理由で、自動的なアバター作成が成功したかどうかにかかわらず、アバターが有効で適切に設定されていることを常に確認 する必要があります。
Unity があなたのモデルのボーンを正しくアバターにマッピングしたかどうかを確認したい場合、あるいは Unity があなたのモデルのアバターの作成に失敗した場合、Rig タブの Configure … ボタンをクリックして、アバター設定モード にすることができます。
Unity がアバターの作成に成功すると、アバターはモデルアセットのサブアセットとして表示されます。Project ウィンドウでアバターアセットを選択して、Inspector の “Configure Avatar” ボタンをクリックすると、アバター設定モードに入ります。このモードでは、Unity がモデルのボーンをアバターのレイアウトにマッピングする方法を確認したり調整することができます。
アバターの設定モードに入ると、 Avator ウィンドウが Inspector に表示され、ボーンマッピングが表示されます。
ボーンのマッピングが正しいことと、Unity が割り当てなかった必須でないボーンをマップすることを確認してください。
Unity が有効なマッチを探すためには、少なくとも必須のボーンはスケルトンの正しい位置になくてはなりません。アバターにうまくマッチングさせるには、ボーンに身体の部位を表す名前を付けます。例えば、“LeftArm” と “RightForearm” のような名は、ボーンが何を制御するかを明確に表しています。
モデルが有効なマッチを探せない場合は、Unity が内部で行うのと似た手順を手動で行います。
自動マッピングが完全に、または部分的に失敗した場合は、手動で シーン または Hierarchy からボーンをドラッグして割り当てることができます。ボーンがマッチする場合は、Avatar Mapping タブは緑色で表示され、そうでない場合は赤で表示されます。
T ポーズ は Unity のアニメーションに必要なデフォルトのポーズで、3D モデリングアプリケーションでモデルを作成するのに推奨されるポーズ です。ただし、キャラクターのモデリングに T ポーズを使用せず、アニメーションが期待どおりに動作しない場合は、Pose ドロップダウンメニューから Reset を選択します。
ボーンの 割り当ては正しいにもかかわらず、キャラクターが正しいポーズでない場合は、“Character not in T-Pose” というメッセージが表示されます。Pose メニューから Enforce T-Pose を選択することで解決できます。それでもポーズが正しくない場合は、他のボーンを手動で回転させて T ポーズに収めることができます。
マスキングを行えばクリップ中のアニメーションデータの一部を破棄できるので、オブジェクトやキャラクターを部分的に動かすことができます。例えば、腕と脚両方のモーションを含む標準の歩行をするアニメーションがあるとします。しかし、そのキャラクターが大きな荷物を両手で持っている場合は、歩きながら腕を振って欲しくないでしょう。マスクを使用することで、荷物運びのアニメーションの上半身の部分のみを再生し、歩行するアニメーションに重ねることによって、荷物運びのアニメーションに標準の歩行のアニメーションを使用することができます。
マスキングは、インポート時かランタイムのいずれかにアニメーションクリップに適用することができます。アニメーションデータを削除して、ビルドから除くことができ、ファイルサイズやメモリ使用量を小さくできるため、インポート時にマスキングすることが好ましいと言えます。アニメーションデータがランタイムにブレンドされるより少なくなるので、より高速な処理ができます。インポート時のマスキングは目的に適さない場合があります。その場合には、アバターマスク アセットを作成してランタイムにマスクを適用し、アニメーターコントローラー の レイヤー設定 でこれを使用します。
空のアバターマスクアセットを作成するには、以下のいずれかを行います。
新しいアセットが Project ビューに表示されます。
これで、マスクにボディ部分を追加 し、次にマスクを アニメーションレイヤー に加えたり、ボディ部分の参照を Animation タブ の Mask セクションに追加できます。