UDN
Search public documentation:

FBXStaticMeshPipelineJP
English Translation
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 ホーム > FBX コンテンツ パイプライン > FBX 静的メッシュ パイプライン
UE3 ホーム > 背景アーティスト > FBX 静的メッシュ パイプライン

FBX 静的メッシュ パイプライン


概要


FBX インポート パイプラインでは静的メッシュがサポートされているので、ゲームで使用するために、アニメートされたメッシュを 3D アプリケーションから「Unreal」に取り込むことが簡単にできます。メッシュがインポートされるだけではなく、3D アプリケーションでメッシュに適用されたマテリアルで使用されたテクスチャ (ディフューズと法線マップのみ) もインポートされます。また、マテリアルが自動的に作成され、インポートされたメッシュに適用されます。

FBX を使用して静的メッシュをインポートするための機能は、つぎのようになります。

注意 : 現在のところ、カスタムのコリジョンをともなった複数のメッシュをインポートする場合、最初のメッシュのコリジョンしかインポートされません。

ALERT! 重要 : 2011年9月以降、「Unreal Engine 3」の FBX インポートパイプラインでは、 FBX 2012 が使用されています。エクスポートにおいて異なるバージョンのものを使用すると、互換性が保たれない恐れがあります。

一般的なセットアップ


通常は、好みのツールおよび方式を使用して自由に静的メッシュを作成することができます。UV のセットアップやメッシュの配置などに関しては、エクスポートおよびインポートがスムーズに実行されるとともに、メッシュが「Unreal」エディタ内で正しく機能するために守らなければならない条件がいくつかあります。

ALERT! 注意 : 静的メッシュは頂点が 65535 に制限されています。メッシュが 65535 を超える場合には UnrealEdへのインポートが失敗します。

回転軸

「Unreal Engine」におけるメッシュの回転軸は、あらゆる変形 (平行移動、回転、スケーリング) が実行される際の中心点を決定します。

pivot.jpg

3D モデリング アプリケーションからエクスポートされると、回転軸はつねに原点 (0,0,0) に位置します。そのため、メッシュを原点に作成するとともに、通常は原点をメッシュの 1 つのコーナーに位置させることによって、「Unreal」エディタ内部のグリッドに合わせる際に適切な位置合わせが可能になるようにするのが最も適切なやり方と言えます。

pivot_origin.jpg

三角分割

グラフィックス ハードウェアがトライアングルしか扱わないため、「Unreal Engine」においてメッシュは三角分割される必要があります。

tris.jpg

メッシュを確実に三角分割する方法はいくつかあります。

  • トライアングルのみを使用してメッシュをモデリングする - これは、仕上がりを最も良く制御できるため、最善の方法です。
  • 3D アプリケーションでメッシュを三角分割する - エクスポートする前にクリーンアップおよび変形できるため良い方法です。
  • FBX のエクスポーターがメッシュを三角分割できるようにする - クリーンアップはできませんが単純なメッシュには機能するため、悪くはない方法と言えます。
  • インポーターがメッシュを三角分割できるようにする - クリーンアップはできませんが単純なメッシュには機能するため、悪くはない方法です。

どのような場合でも、3D アプリケーション内でメッシュを手動で三角分割することによって、エッジの方向と配置を制御する方法が最善となります。自動的に三角分割を実行させると、望ましくない結果になることがあります。

tris_bad.jpg

UV テクスチャ座標

マルチ UV セットのインポートは、「Unreal Engine 3」において FBX パイプラインによってサポートされています。静的メッシュについては、一般に、ディフューズのための UV のセット、および、ライトマップとともに使用する別の独立した重複のない UV のセットを扱うために使用されます。

FBX パイプラインを使用して静的メッシュのために UV をセットアップする場合、特別の条件はありません。ただし、静的メッシュについて UV をセットアップする際に守らなければならない一般的な注意事項はいくつかあります。静的メッシュのために UV をセットアップする場合の詳細については、 ライトマップのための UV 座標のアンラッピング のページを参照してください。

法線マップの作成

メッシュのための法線マップは、たいていのモデリング アプリケーションの内部で直接作成することができます。そのためには、低解像度のレンダリングメッシュと高解像度の詳細メッシュを作成します。

SideBySide.jpg

高解像度の詳細メッシュのジオメトリは、法線マップのための法線を生成するために使用します。法線マップ作成のための正確なプロセスに関する詳細については、ご使用のソフトウェアのドキュメンテーションをご覧ください。

マテリアル

外部アプリケーションでモデリングされたメッシュに適用されるマテリアルは、メッシュとともにエクスポートされて、「Unreal」エディタの中にインポートされます。これによって、プロセスは簡略化されます。テクスチャを別個に「Unreal」エディタにインポートする必要がなく、マテリアルを作成したり適用したりする必要もありません。FBX パイプラインを使用すると、インポートプロセスによってこれらの動作すべてが実行可能となるのです。

また、これらのマテリアルは特殊な方法でセットアップする必要があります。特に、メッシュが複数のマテリアルをもつ場合や、メッシュ上でマテリアルの順序が重要となる場合にその必要が生じます。(マテリアルの順序が重要となる場合には、マテリアル 0 を胴体にして、マテリアル 1 を頭部にしなければならないキャラクターモデルの場合などがあります)。

エクスポートのためにマテリアルをセットアップする場合の詳細については、 FBX マテリアル パイプライン のページを参照してください。

コリジョン

コリジョンの検知をインゲームで最適化するには、コリジョン ジオメトリの単純化が重要です。「Unreal Engine 3」には、 静的メッシュエディタ 内でコリジョン ジオメトリを作成できる基本的なツールが備わっています。 しかし、3D モデリング アプリケーション内でカスタムのコリジョン ジオメトリを作成してから、レンダリングメッシュを使ってそれをエクスポートすべき場合があります。通常、開口部や凹型の部分があるメッシュは、オブジェクトが衝突する必要がないため、上記に当てはまります。

これに該当するものには、以下のものがあります。

  • 入り口のメッシュ
  • 窓がくりぬかれている壁
  • 奇妙な形をしたメッシュ

collision.jpg

コリジョン メッシュは、その名前に基づいてインポータによって識別されます。コリジョンの命名規則は、次のようになります。

  • UBX_[RenderMeshName] - Max においては、 Box オブジェクトタイプによってボックスが作成されます。Maya では、 Cube (立方体) ポリゴン プリミティブによってボックスが作成されます。頂点を動かすことは決してできません。また、変形させて直方体以外の形にすることも決してできません。これが守られなければ、正しく機能しません。
  • USP_[RenderMeshName] - Sphere (球体) オブジェクト タイプによって球体が作成されます。球体は、多数のセグメント (部分) に分かれる必要はまったくありません (8 個が妥当な数です)。コリジョンのために真の球体に変換されるためです。ボックスの場合と同様に、個々の頂点を動かすことはできません。
  • UCX_[RenderMeshName] - 完全に閉じられた凸型 3D 図形であれば、どのようなものであっても、凸型オブジェクトです。たとえば、ボックスは凸型オブジェクトです。次の図は、どのようなものが凸型であって、どのようなものが凸型ではないのかを示しています。
    Convex.gif

RenderMeshName (レンダリング メッシュ名) は、3D メッシュにおいてコリジョン メッシュが関連づけられているレンダリング メッシュ名と同一でなければなりません。したがって、3D アプリケーションの中に Tree_01 という名前のレンダリング メッシュがあれば、コリジョン メッシュがそのメッシュとともにシーン内にあり、かつ、 UCX_Tree_01 という名前が付けられており、レンダリング メッシュとともに同一の FBX ファイルにエクスポートされる必要があります。

なお、現在のところ、球体が使用されるのは、剛体のコリジョンおよび「Unreal」のゼロエクステント トレース (例 : 武器) (ノンゼロ エクステント トレース (例 : プレイヤーの動き) ではありません) の場合だけです。また、球体とボックスは、静的メッシュが非均等にスケーリングされる場合には機能しません。通常は、 UCX プリミティブを作成することになるはずです。

コリジョン オブジェクトを設定すると、グラフィックスおよびコリジョン メッシュの両方を同一の .FBX ファイルにエクスポートできるようになります。 .FBX ファイルを「Unreal」エディタにエクスポートすると、「Unreal」エディタによって、コリジョン メッシュが特定されるとともに、グラフィックスから取り除かれ、さらに、コリジョン モデルに変換されます。

注意 : オブジェクのコリジョンが複数の凸包によって定義される場合は、凸包が互いに交差しないようにすると良い結果が得られます。 たとえば、ペロペロキャンデーのコリジョンが、2 個の凸包 (1 つはキャンデー、もう 1 つは棒) によって定義される場合は、次のように、この 2 つの凸包の間にギャップを残しておきます。

lollipop.jpg

非凸型メッシュを凸型プリミティブに分解するのは、複雑な作業となります。予期しない結果を招く場合があります。別の対処法としては、Max または Maya でコリジョン モデルを自身で凸型パーツに分解します。

頂点カラー

静的メッシュのための頂点カラーは、FBX パイプラインを使用して転送することができます。特別なセットアップは必要ありません。

vertex_color.jpg

メッシュのエクスポート


静的メッシュは個別にエクスポートするか、複数のメッシュを単一の FBX ファイルにエクスポートすることができます。インポート パイプラインによって、独立した複数の静的メッシュが、目的のパッケージ内にある複数のアセットに分けて入れられます。ただし、 Combine Meshes (メッシュを統合) 設定項目をインポート時に有効にすることによって、メッシュを統合するように指定した場合は、その限りではありません。

3dsMax

  1. ビューポートでエクスポートすべきメッシュを選択します。
    max_export_1.jpg
  2. [ File ] (ファイル) メッシュから、 Export Selected (選択してエクスポート) を選びます。(選択に無関係にシーン内のすべてをエクスポートする必要がある場合は Export All (すべてエクスポート) を選びます)。
    max_export_2.jpg
  3. メッシュ (複数可) をエクスポートする FBX ファイルの位置と名前を選択し、 max_save_button.jpg ボタンをクリックします。
    max_export_3.jpg
  4. [ FBX Export ] (FBX エクスポート) ダイアログボックスで、適切なオプションをセットし、 max_ok_button.jpg ボタンをクリックして、メッシュ (複数可) を含む FBX ファイルを作成します。
    max_export_4.jpg

Maya

  1. ビューポートでエクスポートすべきメッシュを選択します。
    maya_export_1.jpg
  2. [ File ] (ファイル) メッシュから、 Export Selected (選択してエクスポート) を選びます。(選択に無関係にシーン内のすべてをエクスポートする必要がある場合は Export All (すべてエクスポート) を選びます)。
    maya_export_2.jpg
  3. メッシュ (複数可) をエクスポートする FBX ファイルの位置と名前を選択するとともに、 [ FBX Export ] (FBX エクスポート) ダイアログボックスで適切なオプションをセットし、さらに、 maya_export_button.jpg ボタンをクリックして、メッシュ (複数可) を含む FBX ファイルを作成します。
    maya_export_3.jpg

メッシュのインポート


  1. コンテンツ ブラウザの中で import_button.jpg ボタンをクリックします。開いているファイル ブラウザで、インポートすべき FBX ファイルに進み、それを選択します。 注意 : ドロップダウン リストから import_fbxformat.jpg を選択することによって、不要なファイルを除去しなければならない場合があります。
    import_file.jpg
  2. [ Import ] (インポート) ダイアログ ボックスから適切な設定値を選択します。大抵の場合、デフォルト値で充分です。全設定値の詳細については、 FBX インポート ダイアログ のセクションを参照してください。
    import_settings.jpg
  3. import_ok_button.jpg ボタンをクリックしてメッシュ (複数) をインポートします。プロセスが成功すると、その結果として得られたメッシュ、マテリアル (複数も)、テクスチャ (複数も) がコンテンツ ブラウザ内に表示されます。
    import_result.jpg

    静的メッシュ エディタ内でインポートされたメッシュを表示するとともにコリジョンの表示を有効にすることによって、プロセスが期待したとおりに実行されたか否かを判断することができるようになります。

    import_collision.jpg

静的メッシュの LOD


静的メッシュでは、LOD (Level of Detail : 詳細度) がインゲームで使用されることによって、カメラから遠ざかるにつれてメッシュの影響度が制限されます。一般に、各 LOD のトライアングル数は減少し、おそらくは、より単純なマテリアル (複数も) が適用されることになります。

lods.jpg

FBX パイプラインを使用してこれらの LOD メッシュをエクスポート / インポートすることができます。

LOD のセットアップ

全般

通常、LOD を扱うには、完全な詳細度をもつベースメッシュから最も低い詳細度をもつ LOD メッシュまで、さまざまな複雑度のモデルを作成します。これらのモデルはすべて一列に並び、同一の回転軸をともなう同一の空間を占有します。各 LOD メッシュでは、完全に異なるマテリアルを割り当てることができます。(マテリアルの量も変えることができます)。したがって、ベースメッシュでは複数のマテリアルを使用して、カメラの近くにおいて望ましい詳細度を実現し、低い詳細度のメッシュでは、あまり目立たないため単一のマテリアルを使用することができます。

3dsMax

  1. メッシュをすべて (ベースと LOD - 順番は重要ではありません) 選択して、[ Group ] (グループ) メニューから Group コマンドを選択します。
    max_lod_group.jpg
  2. ダイアログボックスが開くので、新たなグループの名前を入力し、 max_lod_ok_button.jpg ボタンをクリックしてグループを作成します。
    max_lod_group_name.jpg
  3. max_utilities_button.jpg ボタンをクリックして、 [ Utilities ] (ユーティリティ) パネルを表示し、 Level of Detail (LOD) ユーティリティを選択します。 *注意 : * max_utility_more_button.jpg をクリックして、リストから選択しなければならない場合があります。
    max_lod_utility.jpg
  4. グループが選択されたら、 max_lod_create_button.jpg ボタンをクリックして、新たな LOD セットを作成し、選択されたグループ内にあるメッシュをそれに追加します。メッシュは、その複雑度に応じて自動的に序列化します。
    max_lod_contents.jpg

Maya

  1. ベースとなる LOD から最後の LOD まで、順番にメッシュをすべて (ベースと LOD) 選択します。これは重要であるため、複雑度に応じて正しい順序で追加します。さらに、[ Edit ] (編集) メニューから、 Level of Detail > Group コマンドを選択します。
    maya_lod_group.jpg
  2. これで、すべてのメッシュが LOD グループのもとにグループ化されているはずです。
    maya_lod_contents.jpg

LOD のエクスポート

静的メッシュの LOD をエクスポートするには以下のようにします。

3dsMax

  1. あらゆるコリジョン ジオメトリと LOD セットから構成されるメッシュのグループを選択します。
    max_lod_export_select.jpg
  2. ベースメッシュのために使用したエクスポート手順と同じ手順に従います。(上記 メッシュのエクスポート のセクションで解説されています)。

Maya

  1. LOD グループとあらゆるコリジョン ジオメトリを選択します。
    maya_lod_export_select.jpg
  2. ベースメッシュのために使用したエクスポート手順と同じ手順にしたがいます。(上記 メッシュのエクスポート のセクションで解説されています)。

LOD のインポート

静的メッシュの LOD は、コンテンツ ブラウザにベースメッシュとともにインポートすることができます。あるいは、静的メッシュ エディタを通じて個々にインポートすることができます。

LOD をともなったメッシュ

  1. コンテンツ ブラウザの中で import_button.jpg ボタンをクリックします。開いているファイル ブラウザで、インポートすべき FBX ファイルに進み、それを選択します。 注意 : ドロップダウン リストから import_fbxformat.jpg を選択することによって、不要なファイルを除去しなければならない場合があります。
    import_file.jpg
  2. [ Import ] (インポート) ダイアログボックスから適切な設定値を選択します。 Import LODs (LOD のインポート) が有効になっており、デフォルト値で充分のはずです。 注意 : LOD をインポートする際、インポートされるメッシュの名前は、デフォルトの 命名規則 に従います。全設定値の詳細については、 FBX インポート ダイアログ のセクションを参照してください。
    lod_import_settings.jpg
  3. import_ok_button.jpg ボタンをクリックして、メッシュと LOD をインポートします。プロセスが成功すると、その結果として得られたメッシュ、マテリアル (複数も)、テクスチャ (複数も) がコンテンツ ブラウザ内に表示されます。メッシュの表示の下に 4 LODs というテキストが表示されているのがわかります。
    lod_import_result.jpg

    静的メッシュ エディタ内でインポートされたメッシュを表示し、ツールバー内の lod_buttons.jpg ボタンを使用すると、LOD を循環させて表示することができます。

    lod_anim.gif

個々の LOD

  1. 静的メッシュ エディタでベースメッシュを開きます。そのためには、コンテンツ ブラウザ内でベースメッシュをダブルクリックするか、右クリックして Edit Using Static Mesh Editor (静的メッシュ エディタを使用して編集する) を選択します。
    lod_smeditor.jpg
  2. [ Mesh ] (メッシュ) メニューから Import Mesh LOD (メッシュ LOD のインポート) を選択します。
    lod_mesh_menu.jpg
  3. ファイル ブラウザで、LOD メッシュを含んでいる FBX ファイルに進み、選択します。 注意 : ファイルを見るには、ファイル形式を lod_mesh_fbx_button.jpg にセットしなければならない場合があります。
    lod_mesh_file.jpg
  4. [ Import LOD ] (LOD のインポート) ダイアログボックスにおいて、ドロップダウン メニューからインポートしたいメッシュの LOD レベルを選択します。さらに、 lod_mesh_ok_button.jpg をクリックして LOD メッシュをインポートします。
    lod_mesh_dialog.jpg
  5. インポートのプロセスが成功した場合は通知があり、インポートされた LOD のためのボタンが lod_mesh_buttons.jpg ツールバー ボタン内で有効化されます。
    lod_mesh_success.jpg
  6. インポートしたい LOD メッシュそれぞれについてプロセスを繰り返します。
  7. すべての LOD メッシュがインポートされると、ツールバー内の lod_buttons.jpg ボタンを使用して LOD メッシュをプレビューすることができるようになります。

    lod_anim.gif