Version: 2019.4
言語: 日本語
モデルのインポート
非ヒューマノイドアニメーションのインポート

ヒューマノイドアニメーションのインポート

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

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

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

アバターの設定

モデルのアバターを作成できなかった場合は、Rig タブの Configure … ボタンをクリックして Avatar ウィンドウ を開き、アバターを修正する必要があります。

マッチした場合は、Rig タブの Configure … ボタンをクリックするか、プロジェクトビューからウィンドウを開きます。

  1. Project ビューでアバターのサブアセットをクリックします。 Inspector には、アバター名と Configure Avatar ボタンが表示されます。
  2. Configure Avatar ボタンをクリックします。
アバターのサブアセットのインスペクター
アバターのサブアセットのインスペクター

まだアバターを保存していない場合は、シーンを保存するようメッセージが表示されます。

この理由は、Configure モードでは、シーンビューはボーン、マッスル、選択されたモデルのみのアニメーション情報を表示し、シーンの他の部分を表示しないからです。

シーンを保存したら、Avatar ウィンドウが 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 セクションに追加できます。

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