FBX スタティックメッシュ パイプライン

FBX コンテンツ パイプラインを使用し、スタティックメッシュを設定、エクスポート、インポートします。

FBX インポート パイプラインで スタティックメッシュ がサポートされているため、簡単に負担なく3D アプリケーションから Unreal Engine 5 へメッシュを取り込むことができます。メッシュをインポートすると、それぞれの 3D アプリケーションでメッシュに適用されているマテリアルで使用されたテクスチャ (ディフューズと法線マップのみ) もインポートされ、UE5 でメッシュに適用するマテリアルの生成に使用されます。

FBX を使用して「スタティックメッシュ」をインポートする機能は以下のとおりです。

現時点では、1 つのファイルに複数のメッシュをカスタム コリジョンと併せてインポートすると、最初のメッシュのコリジョンのみがインポートされます。

Unreal Engine の FBX インポート パイプラインでは、FBX 2020.2 を使用します。エクスポート中に他のバージョンを使用すると、互換性がなくなる場合があります。

一般設定

一般的に、どのようなツールや方法を使用しても「スタティックメッシュ」を作成することができます。エクスポートやインポート処理を円滑に行い、メッシュが Unreal Editor で正しく動作するためには、UV の設定やメッシュの配置に監視て考慮すべき条件がいくつかあります。

ピボット ポイント

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

クリックして拡大表示します。

3D モデリング アプリケーションからエクスポートする場合、ピボット ポイントの原点は常に (0、0、0) となります。そのため、原点は通常、Unreal Editor 内側のグリッドにスナップする際に、正確にアライメントするためにメッシュの隅を原点にして、メッシュをその原点で作成するのが最適です。

クリックして拡大表示します。

三角分割

グラフィックス ハードウェアは三角ポリゴンしか扱わないため、Unreal Engine のメッシュは三角分割する必要があります。

クリックして拡大表示します。

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

  • 三角ポリゴンのみを使用してメッシュをモデリングする - これは、仕上がりを最大限に制御できるため、最善の方法です。

  • 3D アプリケーションでメッシュを三角分割する - エクスポートする前にクリーンアップおよび修正できるため良い方法です。

  • FBX エクスポータがメッシュを三角分割できるようにする - クリーンアップはできませんが単純なメッシュには機能するため、悪くはない方法です。

  • インポータがメッシュを三角分割できるようにする - クリーンアップはできませんが単純なメッシュには機能するため、悪くはない方法です。

3D アプリケーション内でメッシュを手動で三角分割し、エッジの方向と配置をコントロールすることが常に最善の方法です。自動的に行う三角分割では望ましくない結果になることがあります。

クリックして拡大表示します。

UV テクスチャ座標

Unreal Engine 5 は、複数の UV セットのインポートを FBX パイプラインでサポートしていますスタティックメッシュの場合、これは通常ディフューズの UV の一式の処理に使用しますFBX パイプラインを使用したスタティックメッシュの UV の設定に、特別な条件はありません。

法線マップの作成

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

クリックして拡大表示します。

高解像度の詳細メッシュのジオメトリは、法線マップの法線を生成するために使用します。Epic では XNormal をプロセスに導入するワークフローを採り入れていますが、Unreal Engine 4 内でレンダリング処理する場合、通常、法線の質がはるかに良くなります。プロセスの詳細は、「Unreal Engine のテクスチャ」を参照してください。

マテリアル

外部アプリケーションでモデリングされたメッシュに適用されるマテリアルは、メッシュとともにエクスポートされて、Unreal にインポートされます。これによって、プロセスは簡略化されます。テクスチャを単独で Unreal へインポートする必要がなく、マテリアルを作成したり適用したりする必要もありません。このようなマテリアルも、特定の方法で設定する必要があります。

特にメッシュに複数のマテリアルがある場合、またはメッシュ上のマテリアルの順序が重要な場合などです (たとえば、マテリアル 0 を胴体にして、マテリアル 1 を頭部にしなければならないキャラクター モデルの場合など)。

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

コリジョン

Unreal Engine 5 には、スタティックメッシュ エディタ 内でコリジョン Unreal Engine 5 には、スタティックメッシュ エディタ 内でコリジョン ジオメトリを作成するための基本ツールがあります。ただし、状況によっては、使用している 3D モデリング アプリケーション内でカスタムのコリジョン ジオメトリを作成して、これをレンダー メッシュでエクスポートするのが最善の処理となる場合もあります。これは一般的に、オブジェクトが衝突しなくてもよい開口部、または凹んだ領域などがあるメッシュの場合に当てはまります。

たとえば、以下の例があります。

  • ドアウェイ (入口) メッシュ

  • 切り窓がある壁

  • 変わった形状をしたメッシュ

コリジョン メッシュは名前に基づいてインポータによって特定されます。コリジョンの命名記法は、以下に従ってください。

メッシュのプレフィックスと名前

説明

UBX_[RenderMeshName]_##

ボックス は通常の四角形の 3D オブジェクトを使って作成しなければなりません。直方体プリズム以外の形状を作成するために、頂点を移動したり変形したりすることはできません。これを行うと機能しなくなります。

UCP_[RenderMeshName]_##

カプセル は半球で覆われた円筒状のオブジェクトでなければなりません。コリジョンのために実際のカプセルへ変換されるため、多数のセグメント (8 が理想的) は必要はありません。ボックス同様に、個々の頂点を移動することはできません。

USP_[RenderMeshName]_##

球体 は、コリジョンのために実際の球体へ変換されるため、多数のセグメント (8 が理想的) は必要はありません。ボックス同様に、個々の頂点を移動することはできません。

UCX_[RenderMeshName]_##

凸型 オブジェクトは、完全に閉じた凸型の 3D 形状であればどのようなものでも構いません。たとえば、ボックスも凸型オブジェクトになります。次の図では、凸型オブジェクトと非凸型オブジェクトを示しています。

Image comparing correct and incorrect ways to create convex objects

注意・考慮事項

  • RenderMeshName は、3D アプリケーション内でコリジョン メッシュが関連付けられているレンダリング メッシュと同名でなくてはいけません。使用している 3D アプリケーションに Tree_01 という名前のレンダリング メッシュがある場合、コリジョン メッシュはそのレンダリング メッシュと一緒にシーンに配置し、UCX_Tree_01 という名前を付け、レンダリング メッシュと一緒に同じ FBX ファイルにエクスポートする必要があります。メッシュに 1 つ以上のコリジョン オブジェクトが必要な場合、追加の識別子、たとえば、UCX_Tree_01_00UCX_Tree_01_01UCX_Tree_01_02 などを使用して名前を拡張できます。こうすると、そのメッシュに対応するコリジョンとして関連付けられます。

  • 現在、球体は剛体コリジョンと Unreal のゼロ エクステント トレース (例えば武器) のみに使用し、非ゼロ エクステント トレースには使用しません (例えばプレイヤーの移動)。また、「スタティックメッシュ」 が不均等にスケーリングされると、球体とボックスは機能しません。通常は、「UCX」プリミティブを作成することが多いでしょう。

  • コリジョン オブジェクトを設定したら、レンダリング メッシュとコリジョン メッシュの両方を同じ「.FBX」ファイルへエクスポートすることができます。Unreal Editor へ「.FBX」ファイルをインポートすると、ファイルはコリジョン メッシュを探して、これをレンダリング メッシュから削除して、コリジョン モデルに変換します。

  • 非凸型メッシュを凸型プリミティブへ分解するのは複雑な操作であるため、予期しない結果となる場合があります。別の方法としては、Max か Maya を使用して自分でコリジョン モデルを凸型の小片に分解することもできます。

  • 複数の凸包によって定義されたコリジョンがあるオブジェクトの場合、凸包が互いに交差しないときに最良の結果が得られます。例えば、ロリポップ形状のコリジョンを、1 つはキャンディ、もう片方はキャンディの棒という 2 つの凸包で定義した場合、この 2 つの間には以下の画像のようなギャップが残るはずです。

クリックして拡大表示します。

  1. UCX_Candy

  2. コリジョン サーフェス間の小さなギャップ

  3. UCX_Stick

ソケット

一般的に、ソケットは、スケルタル メッシュ用かスタティックメッシュ用かに関わらず、ゲーム内にあるオブジェクトを別のオブジェクトにアタッチするために使用します。Unreal Engine 4 には、スタティックメッシュ エディタ内で ソケットを作成するためのツールがあります。ご利用の 3D モデリング アプリケーション内でソケットをセットアップし、それをレンダリング メッシュと合わせてエクスポートする必要が生じる場合があります。 こうしたソケットは、スケルタル メッシュ上のボーンまたはスタティックメッシュのサイズに相対的に平行移動、回転、スケーリングすることができます。

ご利用のモデリング アプリケーションでソケットを使用するには SOCKET_ のプレフィックスを持つ Dummy または Helper のオブジェクトを使用する必要があります。

メッシュのプレフィックスと名前

説明

SOCKET_[RenderMeshName]_##

モデリング アプリケーションで Dummy または Helper のオブジェクトに使用して、ソケットをメッシュに割り当てます。

注意・考慮事項

  • RenderMeshName は、3D アプリケーション内でソケット オブジェクトが関連付けられているレンダリング メッシュと同名でなくてはいけません。例えば、 使用している 3D アプリケーションに Object_01 という名前のレンダリング メッシュがある場合、ソケット オブジェクトはそのレンダリング メッシュと一緒にシーンに配置し、SOCKET_Object_01 という名前を付け、 レンダリング メッシュと一緒に同じ FBX ファイルにエクスポートする必要があります。メッシュに 1 つ以上のソケット オブジェクトが必要な場合、追加の識別子、 たとえば、SOCKET_Object_01_00、SOCKET_Object_01_01、SOCKET_Object_01_02 などを使用して名前を拡張できます。こうすると、そのメッシュに対応するソケットとして関連付けられます。

  • メッシュに対してソケットを作成する場合、Unreal Engine 4 にインポート可能なソケットを備えた単一メッシュの FBX セットアップだけを持つことができます。たとえば、 2 つのレンダリング メッシュを別個のアセットにしたい場合は、別個の FBX ファイルとしてインポートする必要があります。つまり、複数のメッシュをインポートして、 個々のメッシュにソケットを割り当てることはできません。さらに、レンダリング メッシュが 2 セットあり、それぞれにソケットがある場合は、正しくインポートされません。たとえば、 SOCKET_Object_01_00 を持つ Object_01 と、SOCKET_Box_01_00 を持つ別のレンダリング メッシュである Box_01 がある場合、このメッシュを両方ともソケットと共にエクスポートすることはできません。別個の FBX フアィルとして エクスポートする必要があります。

頂点カラー

「スタティックメッシュ」用の頂点カラーは FBX パイプラインを使用して転送することができます。特別な設定は必要ありません。

クリックして拡大表示します。

メッシュのエクスポート

「スタティックメッシュ」は、個別にエクスポートすることも、複数のメッシュを単一の FBX ファイルにエクスポートすることもできます。インポート時に [Combine Meshes (メッシュを結合)] の設定を有効にしてメッシュの結合を指定しない限り、インポート パイプラインは、送り先パッケージ内で複数の 「スタティックメッシュ」を複数のアセットへ分割します。選択したサードパーティの DCC ツールの FBX ファイルをエクスポートするためのドキュメントを参照し、メッシュの作成について前述したガイドラインに必ず従ってください。

Unreal Engine FBX インポート パイプラインは FBX2020.2 を使用します。 エクスポート中に別のバージョンを使用すると、非互換性が生じる可能性があります。

メッシュのインポート

  1. コンテンツ ブラウザ[Add/Import] ボタンをクリックし、[Import] を選択します。開いたファイル ブラウザ内で、インポートしたい FBX ファイルへ移動し、選択します。

    ドロップダウン リストから FBX file extension を選択して、不要なファイルをフィルタリングすることができます。

    クリックして拡大表示します。

    インポートしたアセットのパスは、コンテンツ ブラウザ の現行位置によって決まります。インポートを実行する前に、必ず適切なフォルダへ移動してください。インポートが完了した後で、インポートしたアセットを新規フォルダへドラッグすることもできます。

  2. [Import (インポート)] ダイアログから適切な設定を選択します。ほとんどの場合、デフォルト設定をそのまま使用します。全設定値の詳細については、「FBX インポート ダイアログ」を参照してください。

    クリックして拡大表示します。

  3. [Import] ボタンをクリックしてメッシュをインポートします。プロセスが正常終了した場合、最終結果のメッシュ、マテリアル、テクスチャが コンテンツ ブラウザ に表示されます。

    クリックして拡大表示します。

    テクスチャとマテリアルはスタティックメッシュと一緒にインポートすることができますが、 ColorNormal は自動的に接続されます (サポートされたマテリアルの使用 を仮定)。 Specular マップはインポートされますが、接続はされません。例えば Maya マテリアルの [Diffuse] スロットの Ambient Occlusion マップなどその他のマップは、インポートすらされません。自身が作業しているマテリアルをチェックして、非接続になっているマップを接続したり、インポートされなかったマップをチェックしてください。。新しいマテリアルを ダブルクリック して、利用可能なテクスチャを適切な入力と接続するだけです。

    スタティックメッシュ エディタ でインポートしたメッシュを表示して、コリジョンの表示を有効にすると、プロセスが期待どおりに機能したかを判断することができます。

    クリックして拡大表示します。

あるいは、Windows から FBX ファイルを単にクリックして コンテンツ ブラウザ へドラッグすると、インポート ダイアログが呼び出されます。

スタティックメッシュ LOD

「スタティックメッシュ」は、カメラから遠ざかるにつれてメッシュの影響を制限するために、ゲーム内の詳細度 (LOD) を利用することができます。通常これは、各 LOD でトライアングル数が減少するとともに、より単純な単一マテリアル (あるいは複数マテリアル) が適用されることを意味します。

クリックして拡大表示します。

FBX パイプラインを使用して、DCC ツールで作成された LOD メッシュをインポートしたり、インポートされたスタティックメッシュの LOD を UE 内に直接作成することができます。

LOD 設定

一般に LOD は、完全な詳細度をもつベース メッシュから最も低い詳細度をもつ LOD メッシュまで、さまざまな複雑度のモデルを作成して処理します。これらはすべて同一のピボット ポイントで、すべて整列されて同一空間を使用しなければなりません。各 LOD メッシュには、異なるマテリアルの量など、完全に異なるマテリアルを割り当てることができます。つまり、ベース メッシュは間近で見たときに必要な詳細度を持たせるために複数のマテリアルを使用することもできますが、低い詳細度のメッシュではディテールがあまり目立たないため、単一のマテリアルを使用することもできます。

各 DCC ツールには、スタティックメッシュの LOD を作成するための独自のワークフローがあります。それらを作成して FBX エクスポートに含める方法の詳細については、選択したツールのドキュメントを参照してください。

LOD のインポート

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

  1. コンテンツ ブラウザ[Add/Import] ボタンをクリックし、[Import] を選択します。開いたファイル ブラウザ内で、インポートしたい FBX ファイルへ移動し、選択します。

    ドロップダウン リストから FBX file extension を選択して、不要なファイルをフィルタリングすることができます。

    インポートしたアセットのパスは、コンテンツ ブラウザ の現行位置によって決まります。インポートを実行する前に、必ず適切なフォルダへ移動してください。インポートが完了した後で、インポートしたアセットを新規フォルダへドラッグすることもできます。

  2. [Import (インポート)] ダイアログから適切な設定を選択します。デフォルト設定で十分ですが、必ず Import LODs を有効にしてください。注記: インポートされるメッシュの名前はデフォルトの 命名規則 に従います。全設定値の詳細については、「FBX インポート ダイアログ」を参照してください。

    クリックして拡大表示します。

  3. メッシュと LOD をインポートするには、[Import] ボタンをクリックします。プロセスが正常終了した場合、最終結果のメッシュ、マテリアル、テクスチャが コンテンツ ブラウザ に表示されます。

    クリックして拡大表示します。

    テクスチャとマテリアルはスタティックメッシュと一緒にインポートすることができますが、 ColorNormal は自動的に接続されます (サポートされたマテリアルの使用 を仮定)。 Specular マップはインポートされますが、接続はされません。例えば Maya マテリアルの [Diffuse] スロットの Ambient Occlusion マップなどその他のマップは、インポートすらされません。自身が作業しているマテリアルをチェックして、非接続になっているマップを接続したり、インポートされなかったマップをチェックしてください。新しいマテリアルを ダブルクリック して、利用可能なテクスチャを適切な入力に接続するだけです。

インポートしたメッシュを スタティック メッシュ エディタ で表示して、[Details] パネルの LOD Picker を使って LOD を循環表示することができます。

クリックして拡大表示します。

インポートしたスタティックメッシュの LOD を作成する

スタティックメッシュをインポートしたら、LOD を手動で作成する か UE の LOD 自動生成ツールを使用する ことができます。前者は時間がかかりますが良い結果を得ることができます。後者は複数のシンプルなメッシュに対して LOD を作成する必要がある場合に速く処理することができます。

タグ
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル