Version: 2020.3
言語: 日本語
モデルのインポート
ヒューマノイド以外 (汎用) のアニメーションを含むモデルのインポート

ヒューマノイドアニメーションを含むモデルのインポート

このページでは、Unity の アニメーションシステム で使用するモデルのインポートについて説明します。アニメーションシステムに使用するモデルの作成については、アニメーション用モデルの作成 を参照してください。

アニメーションシステムは、2 種類のモデルに対応しています。

  • ヒューマノイド モデルとは、実際の人間の骨格にだいたい適合するように編成された、少なくとも 15 の骨を含む特定の構造のことです。このページは、このタイプのモデルのインポートに関して説明します。
  • 汎用 モデルはそれ以外のすべてを指します。湯沸し用のケトルからドラゴンまで何でもありえます。この種のモデルのインポートについては、ヒューマノイド以外 (汎用) のアニメーションを含むモデルのインポート を参照してください。

すべての種類のモデルに適用される一般的なインポートの説明は、モデルのインポート を参照してください。

概要

Unity が ヒューマノイド リグとアニメーションを含むモデルファイルをインポートするとき、モデルのボーン構造をアニメーション用に調整する必要があります。それを行うには、ファイル内の各ボーンをヒューマノイドアバターにマッピングし、アニメーションを適切に再生できるようにします。このため、Unity にインポートする前に、モデルファイルを慎重に準備することが重要です。

  1. リグのタイプを定義し、アバターを作成します。
  2. アバターのマッピングを修正、または確認します。
  3. ボーンマッピングが終了したら、任意で Muscles & Settings タブをクリックし アバターのマッスル設定を調整 します。
  4. 任意で、ヒューマンテンプレート (.ht) ファイルとして、スケルトンのボーンマッピングをアバターへ保存できます。
  5. アバターマスクを定義する ことによって、特定のボーンにインポートされたアニメーションを任意に制限することができます。
  6. Animation タブで Import Animation を有効にし、他のアセット特有のプロパティを設定します。
  7. ファイルが複数のアニメーションやアクションで構成されている場合は、アニメーションクリップとして特定のアクション範囲を定義 できます。
  8. ファイルに定義されているアニメーションクリップごとに、以下を行うことができます。
  9. Import Settings ウィンドウの一番下にある Apply ボタンをクリックして変更を保存するか、Revert ボタンを押して変更を破棄します。

アバターの設定

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 は有効なアバターの作成に失敗しました

アバターはアニメーションシステムの重要な一面であるため、モデル に適切にアバターを設定することが重要です。

このような理由で、自動的なアバター作成が成功したかどうかにかかわらず、アバターが有効で適切に設定されていることを常に確認 する必要があります。

アバターの設定

Unity があなたのモデルのボーンを正しくアバターにマッピングしたかどうかを確認したい場合、あるいは Unity があなたのモデルのアバターの作成に失敗した場合、Rig タブの Configure … ボタンをクリックして、アバター設定モード にすることができます。

Unity がアバターの作成に成功すると、アバターはモデルアセットのサブアセットとして表示されます。Project ウィンドウでアバターアセットを選択して、Inspector の “Configure Avatar” ボタンをクリックすると、アバター設定モードに入ります。このモードでは、Unity がモデルのボーンをアバターのレイアウトにマッピングする方法を確認したり調整することができます。

アバターのサブアセットの Inspector
アバターのサブアセットの Inspector

アバターの設定モードに入ると、 Avator ウィンドウが Inspector に表示され、ボーンマッピングが表示されます。

ボーンのマッピングが正しいことと、Unity が割り当てなかった必須でないボーンをマップすることを確認してください。

Unity が有効なマッチを探すためには、少なくとも必須のボーンはスケルトンの正しい位置になくてはなりません。アバターにうまくマッチングさせるには、ボーンに身体の部位を表す名前を付けます。例えば、“LeftArm” と “RightForearm” のような名は、ボーンが何を制御するかを明確に表しています。

マッピングの方法

モデルが有効なマッチを探せない場合は、Unity が内部で行うのと似た手順を手動で行います。

  1. Avatar ウィンドウの下部にある Mapping メニューから Clear を選択し、Unity が試みたマッピングをリセットします。
    Avatar ウィンドウの下部にある Mapping ドロップダウンメニュー
  2. Avatar ウィンドウの下部にある Pose メニューから Sample Bind-pose を選択して、モデルの最初のモデリングポーズを近似します。
    Avatar ウィンドウの下部にある Pose ドロップダウンメニュー
  3. Mapping > Automap を選択して、最初のポーズからボーンマッピングを行ないます。
  4. Pose > Enforce T-Pose を選択し、T ポーズ を適用して、モデルを必要な T ポーズに戻します。

自動マッピングが完全に、または部分的に失敗した場合は、手動で シーン または Hierarchy からボーンをドラッグして割り当てることができます。ボーンがマッチする場合は、Avatar Mapping タブは緑色で表示され、そうでない場合は赤で表示されます。

ポーズのリセット

T ポーズ は Unity のアニメーションに必要なデフォルトのポーズで、3D モデリングアプリケーションでモデルを作成するのに推奨されるポーズ です。ただし、キャラクターのモデリングに T ポーズを使用せず、アニメーションが期待どおりに動作しない場合は、Pose ドロップダウンメニューから Reset を選択します。

Avatar ウィンドウの一番下にある Pose ドロップダウンメニュー
Avatar ウィンドウの一番下にある Pose ドロップダウンメニュー

ボーンの 割り当ては正しいにもかかわらず、キャラクターが正しいポーズでない場合は、“Character not in T-Pose” というメッセージが表示されます。Pose メニューから Enforce T-Pose を選択することで解決できます。それでもポーズが正しくない場合は、他のボーンを手動で回転させて T ポーズに収めることができます。

アバターマスクの作成

マスキングを行えばクリップ中のアニメーションデータの一部を破棄できるので、オブジェクトやキャラクターを部分的に動かすことができます。例えば、腕と脚両方のモーションを含む標準の歩行をするアニメーションがあるとします。しかし、そのキャラクターが大きな荷物を両手で持っている場合は、歩きながら腕を振って欲しくないでしょう。マスクを使用することで、荷物運びのアニメーションの上半身の部分のみを再生し、歩行するアニメーションに重ねることによって、荷物運びのアニメーションに標準の歩行のアニメーションを使用することができます。

マスキングは、インポート時かランタイムのいずれかにアニメーションクリップに適用することができます。アニメーションデータを削除して、ビルドから除くことができ、ファイルサイズやメモリ使用量を小さくできるため、インポート時にマスキングすることが好ましいと言えます。アニメーションデータがランタイムにブレンドされるより少なくなるので、より高速な処理ができます。インポート時のマスキングは目的に適さない場合があります。その場合には、アバターマスク アセットを作成してランタイムにマスクを適用し、アニメーターコントローラー の レイヤー設定 でこれを使用します。

空のアバターマスクアセットを作成するには、以下のいずれかを行います。

  • Assets メニューから Create > Avatar Mask を選択します。
  • Project ビューでマスクを定義したいモデルオブジェクトをクリックし、右クリックし Create > Avatar Mask を選択します。

新しいアセットが Project ビューに表示されます。

Avatar Mask ウィンドウ
Avatar Mask ウィンドウ

これで、マスクにボディ部分を追加 し、次にマスクを アニメーションレイヤー に加えたり、ボディ部分の参照を Animation タブ の Mask セクションに追加できます。

モデルのインポート
ヒューマノイド以外 (汎用) のアニメーションを含むモデルのインポート