Version: 2020.1
言語: 日本語
最適なパフォーマンスのためのキャラクターモデリング
FBX ファイルを他のアプリケーションで使う

ヒューマノイドアセットのエクスポートの準備

Unity のヒューマノイドアニメーションシステムとリターゲティングの利点をフルに活用するために、リグスキン のヒューマノイドタイプのメッシュが必要です。

キャラクター準備のステージ (モデリング、リギング、スキニング)
キャラクター準備のステージ (モデリング、リギング、スキニング)
  1. キャラクター モデル は 3D モデリングソフトウェアで、一般的にポリゴンから構成されます。または、エクスポート前に、より複雑なメッシュタイプからポリゴンや三角メッシュに変換されます。

  2. キャラクターの動きを制御するには、ジョイント階層スケルトン を作成し、メッシュ内のボーンとそれらの相互の動きを定義する必要があります。このようなジョイント階層を作成する処理を リギング と言います。

  3. 次に、メッシュか スキン をジョイント階層に接続する必要があります。これは、任意のジョイントがアニメーション化されたときにキャラクターメッシュのどの部分が動くかを決定します。メッシュにスケルトンを接続する処理は スキニング と呼ばれます。

ヒューマノイドモデルの取得方法

Unity のアニメーションシステムで使用するヒューマノイドモデルを取得するには、主に 3 つの方法があります。

  • PoserMakehumanMixamo などのプロシージャルなキャラクターシステムやキャラクタージェネレーターを使用します。これらのシステムの中には、メッシュにリグとスキンの処理を行えるもの (Mixamo など) と、そうでないものがあります。さらに、これらの方法を使用する場合は、元のメッシュ内のポリゴン数を減らして、Unity で使用できるように適応させなければならない場合があります。

  • デモサンプルとキャラクターコンテンツを Unity Asset Store から購入します。

  • 3D モデリングアプリケーションを使用して、独自のキャラクターの モデリングリギングスキニング をゼロから行います。

モデリング

モデリングは、3D モデリングソフトウェア (Autodesk® 3dsMax®、Autodesk® Maya®、Blender など) で独自のヒューマノイドの メッシュ を作成する処理です。それ自体で主題になり得るほど、大きなトピックですが、モデルが Unity プロジェクトのアニメーションとうまく機能するためのガイドラインをいくつか挙げます。

  • 適正な構造 を持つトポロジーを使用します。メッシュの「適正な」構造の正確な性質はやや微妙ですが、一般的に、モデルの頂点と三角形がアニメーション化されるときに、どのように歪むのかに注意する必要があります。不十分なトポロジーでは、メッシュを歪ませずにモデルを動かすことはできません。既存の 3D キャラクターメッシュを調べて、トポロジーの配置方法とその理由を確認してください。

  • メッシュの スケール を確認します。テストインポートを行い、インポートしたモデルのサイズを「メーターキューブ」と比較します。標準の Unity キューブプリミティブは、1 ユニットの辺の長さを持つため、たいていの目的で 1m のキューブとして扱うことができます。3D モデリングソフトウェアが使用するユニットを確認し、エクスポート設定を調整します。すると、モデルのサイズがキューブに対し正しい比率になります。スケールの概念を持たずにモデルを作成するのは簡単ですが、Unity にオブジェクトをインポートしたときにサイズが不均衡なオブジェクトになってしまいます。

  • キャラクターの足がモデルのローカルの原点または「アンカーポイント」に立つようにメッシュを配置します。キャラクターは通常、床の上を直立して歩くので、アンカーポイント (つまり、その変換位置) が直接その床にあると、扱いがはるかに簡単になります。

  • できるだけ T ポーズ でモデル化します。これにより、必要な場所 (例えば、脇の下) でポリゴンを細かく調整することができます。これにより、リグをメッシュの内側に配置しやすくなります。

  • ビルド中に、モデルをきれいにします。可能であれば、穴を塞ぎ、頂点を結合し、隠れた面を削除します。これはスキニング、特に自動スキニング処理を容易にします。

テクスチャと三角形を使ったスキンメッシュ
テクスチャと三角形を使ったスキンメッシュ

リギング

リギングは、ジョイントのスケルトンを作成してモデルの動きを制御する処理です。

3D モデリングソフトウェアは、ヒューマノイドリグのジョイントを作成するためのさまざまな方法を提供します。これらは、メッシュに合わせてスケーリングできる既製の 2 足歩行のスケルトンから、個々のボーンを作成し独自のボーン構造の親子関係を作るツールに至るまで、様々です。Unity でアニメーションを扱うには、それらがボーンの階層構造のルート要素であることを確認します。スケルトンには、最低 15 個のボーンが必要です。

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

ジョイント/ボーンの階層は、作成しているキャラクターの自然な構造に従う必要があります。腕と足がペアになっている場合、一貫した名前の命名規則に従います (例えば、左腕の場合は “arm_L”、右腕の場合は “arm_R”)。階層に使用可能な構造は以下のとおりです。

* HIPS - spine - chest - shoulders - arm - forearm - hand
* HIPS - spine - chest - neck - head
* HIPS - UpLeg - Leg - foot - toe - toe_end
2 足歩行スケルトン、T ポーズ
2 足歩行スケルトン、T ポーズ

スキニング

スキニングは、メッシュをスケルトンにアタッチする処理です。

スキニングには、メッシュの頂点をボーンに直接バインドする (リジッドバインド) 方法か、複数のボーンにブレンドしたインフルエンスを与える (ソフトバインド) 方法が使われます。異なる 3D モデリングソフトウェアアプリケーションは、異なる方法を使用します。例えば、個々の頂点を割り当て、ボーンごとのインフルエンスのウェイトをメッシュにペイントすることができます。

通常、初期設定は自動化されています。例えば、最も近いインフルエンスを見つけたり、 ヒートマップ を使って行われます。通常、満足のいくスキンのデフォーメーション結果を得るために、スキニングにかなりの作業とアニメーションによるテストが必要です。

インタラクティブなスキニングによる紐付け (Interactive Skin Bind) はスキニング手法のひとつです
インタラクティブなスキニングによる紐付け (Interactive Skin Bind) はスキニング手法のひとつです

このプロセスの一般的なガイドラインは以下のとおりです。

  • 最初に自動化されたプロセスを使用して、スキニングの一部を設定します (使用する 3D モデリングソフトウェアに使用可能なスキニングチュートリアルを参照してください)。

  • リグにシンプルなアニメーションを作成するか、スキニングのテストとして使用できるアニメーションデータをインポートします。これにより、動いているときにスキニングの見え方が適切か素早く判断することができます。

  • スキニングソリューションをインクリメントに編集し、改良します。

  • パフォーマンス上の理由から、ソフトバインドを使用する場合はインフルエンスの数を最大 4 つに制限することを検討してください。Unity がデフォルトでサポートする最大数です。メッシュが 4 つ以上のインフルエンスを使用する場合は、以下のオプションのいずれかを選択します。

エクスポートと検証

Unity は多くの異なるジェネリックとネイティブの 3D ファイル形式をインポートします。FBX はモデルのエクスポートと検証に推奨される形式で、以下に使用できます。

  • スケルトンの階層、法線、テクスチャ、アニメーションを持つメッシュをエクスポートします。
  • メッシュを 3D モデリングソフトウェアに再インポートして、アニメーション化したモデルが期待どおりに見えることを確認します。
  • アニメーションをメッシュなしでエクスポートします。
最適なパフォーマンスのためのキャラクターモデリング
FBX ファイルを他のアプリケーションで使う