Version: 2023.1
言語: 日本語
最適なパフォーマンスのためのモデル作成
Unity にモデルをインポート

アニメーション用モデルの作成

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

すべてのタイプのモデルを作成するために共通のベストプラクティスについては、最適なパフォーマンスのためのモデル作成 を参照してください。アニメーション付きのモデルを Unity にインポートする方法については、ヒューマノイドアニメーション付きのモデルをインポート またはヒューマノイドアニメーション以外 (汎用) のアニメーション付きモデルをインポート を参照してください。

キャラクター準備のステージ (モデリング、リギング、スキニング)
キャラクター準備のステージ (モデリング、リギング、スキニング)

Unity のアニメーションシステムで使用できるモデルには 2 種類あります。

  • ヒューマノイド モデルとは、実際の人間の骨格にだいたい適合するように編成された少なくとも 15 個の骨を含む、特定の構造のことです。
  • 汎用 モデルはそれ以外のすべてを指します。湯沸し用のケトルからドラゴンまで何でもありえます。

どちらもリギングとスキニングがされたモデルが必要です。このようなモデルを作成するには、以下の段階があります。

  1. モデリング: モデルの作成。モデルには、メッシュやテクスチャなどが含まれます
  2. リギング: スケルトン (リグやジョイントの階層とも呼ばれます) の作成。メッシュ内のボーンを定義し、その動きを相互に関連付けます。
  3. スキニング: メッシュをスケルトンに結合します。これにより、指定したジョイントをアニメーション化したときに、キャラクターメッシュのどの部分が動くかを定義します。

通常は 3D モデリングソフト (Autodesk® 3ds Max®、Autodesk® Maya®、Blender など) でこれらの手順をすべて行い、出来上がったモデルをエクスポートしてから Unity にインポートします。

モデリング

Unity プロジェクトでモデルをアニメーションとうまく連動させるためのいくつかのガイドラインがあります。

  • 整った構造 のトポロジーを使ってください。一般的には、モデルの頂点や三角形がアニメーション中にどのように歪むかを考慮する必要があります。優れたトポロジーであれば、メッシュを歪ませることなくモデルを動かすことができます。既存のキャラクターメッシュを研究して、トポロジーがどのように配置されているか、またその理由を確認してください。
  • メッシュの スケール を確認します。テストインポートを行い、インポートしたモデルのサイズを “メーターキューブ” と比較します。標準の Unity キューブプリミティブは、1 ユニットの辺の長さを持つため、たいていの目的で 1m のキューブとして扱うことができます。3D モデリングソフトウェアが使用するユニットを確認し、エクスポート設定を調整します。そうすると、モデルのサイズがキューブに対し正しい比率になります。
  • ビルド中に、モデルをクリーンアップ します。可能であれば、穴を塞ぎ、頂点を結合し、隠れた面を削除します。これはスキニング、特に自動スキニング処理を容易にします。
  • キャラクターに足がある場合は、メッシュを調節してキャラクターの足がモデルのローカルの原点または “アンカーポイント” に立つようにします。キャラクターのアンカーポイント (つまり、その変換位置) が直接床についている場合は、このようにするとずっと簡単に歩かせることができます。
  • キャラクターが二足歩行する場合は、できるだけ T ポーズ でモデル化します。これにより、必要な場所 (例えば、脇の下) でポリゴンを細かく調整することができます。これにより、リグをメッシュの内側に配置しやすくなります。
テクスチャと三角形を使ったスキンメッシュ
テクスチャと三角形を使ったスキンメッシュ

リギング

3D モデリングソフトウェアでは、リグのジョイントを作成する方法がいくつかあります。

ヒューマノイド モデルの場合、Unity が ヒューマノイドアバター にマッチングできるように、スケルトンには特定の要件があります。

  • 最低でも 15 のボーンが必要です。スケルトンには、少なくとも必要なボーンが配置されている必要があります。
  • アバターにマッチングさせるチャンスを向上させるためには、ボーンに身体の部位を表す名前を付けます。例えば、“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 ポーズ

汎用 モデルの場合、唯一の要件は、モデルをインポートする際に ルートノード として指定できるボーンがスケルトンに含まれていることです。これにより、モデルの重心が効果的に定義されます。

スキニング

最初の設定は一般的に自動化されています。スキニングは通常、満足のいくスキンのデフォーメーションを得るために、かなりの量の作業とアニメーションによるテストを必要とします。

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

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

  • 最初に自動化されたプロセスを使用して、スキニングの一部を設定します (使用する 3D モデリングソフトウェアに使用可能なスキニングチュートリアルを参照してください)。
  • リグにシンプルなアニメーションを作成するか、スキニングのテストとして使用できるアニメーションデータをインポートします。これにより、動いているときにスキニングの見え方が適切か素早く判断することができます。
  • スキニングソリューションをインクリメントに編集し、改良します。
  • パフォーマンス上の理由から、ソフトバインドを使用する場合はインフルエンスの数を最大 4 つに制限することを検討してください。Unity がデフォルトでサポートする最大数です。メッシュが 4 つ以上のインフルエンスを使用する場合は、以下のオプションのいずれかを選択します。
    • Skin Weights プロパティ を使用して、インフルエンスの最大数を引き上げます。
    • モデルを Maya からエクスポートする前に、Bake Deformer ツール (Mayaのトップメニューから Skin > Bake Deformers to Skin Weights) を使用して、デフォーメーションジョイントをベイク処理します。詳細については、オートデスクのドキュメントの キャラクタにデフォーマをベイク処理する を参照してください。

モデルのエクスポートと検証

Unity は、さまざまな汎用およびネイティブの 3D ファイルフォーマットをインポートしていますが、推奨されるファイルフォーマットは FBX です。詳しくは、モデルのファイル形式 を参照してください。

FBX を使用する場合は、以下の通りです。

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