Autodesk 3ds Max から Unreal Editor にシーンを変換するにあたり、Datasmith は「Datasmith の概要」と「Datasmith のインポート プロセス」に概説されているプロセスに従いますが、3ds Max に特有のいくつかの特殊な変換動作を追加します。
Datasmith エクスポータがシーンを変換する方法と Unreal Editor でその結果を処理する方法について、このページで詳細をご確認ください。
ジオメトリ
このセクションでは、Datasmith が 3ds Max のシーンのジオメトリック オブジェクトを Unreal Engine プロジェクトの スタティックメッシュ アセット と アクタ に変換する方法について説明します。
メッシュとテッセレーション
ほとんどの場合、Datasmith は各 3ds Max オブジェクトのレンダリング メッシュを使用して、Unreal Engine で対応するスタティックメッシュ アセットのジオメトリを作成します。Unreal Engine のアセットには通常、3ds Max のレンダリングで見られるものとまったく同じトライアングルがあります。
3ds Max のボディ オブジェクト (3ds Max のドキュメントの「ボディ オブジェクトのカテゴリ」を参照) に関しては、Datasmith はレンダリング メッシュではなく、3ds Max のビューポート メッシュ上のスタティックメッシュ アセットのジオメトリをベースにします。
3ds Max がビューポートでのレンダリングに使用するテッセレーションの粒度は、次のように制御します。
- [Viewport Display Settings (ビューポート表示設定)] のロールアウトで、[Mesh Quality Presets (メッシュ品質のプリセット)] を [Coarse (粗い)]、[Medium (中程度)]、または [Fine (細かい)] に設定します。
Datasmith では、シーンの各ボディ オブジェクトに設定するテッセレーションのレベルが反映されます。
[Mesh Quality Presets] の設定の詳細については、3ds Max のドキュメントの「[Viewport Display Settings] のロールアウト」を参照してください。
インスタンス
Datasmith が 3ds Max のシーンで同じマスター オブジェクトの複数のインスタンスを検出すると、そのオブジェクト用のスタティックメッシュ アセットを 1 つ作成し、そのスタティックメッシュの複数のインスタンスを Unreal Engine の レベル に配置します。
窓、ドア、椅子など、シーンで繰り返し使用される要素に 3ds Max のインスタンスを使用することをお勧めします。インスタンスは通常、Unreal Engine のプロジェクトの実行時メモリの要件とパフォーマンスに適しています。また、スタティックメッシュの数を減らすことでコンテンツを管理しやすくします。
インスタンスの詳細については、3ds Max のドキュメントの「コピー、インスタンス、参照を作成する」を参照してください。
ピボット ポイント
3ds Max では、シーンの各オブジェクトにカスタム ピボット ポイントを設定できます。カスタム ピボット ポイントは、それらのオブジェクトが同じマスター オブジェクトの複数のインスタンスであっても設定できます。Unreal Engine では、同じジオメトリのすべてのインスタンスで同じピボット ポイントを使用する必要があります。
3ds Max のシーンのオブジェクト インスタンスにカスタム ピボット ポイントがある場合、Datasmith はカスタム ピボット ポイントをレプリケートしようとします。Datasmith がピボット ポイントを変換する方法は、3ds Max のすべてのインスタンスが同じピボット ポイントを使用するかどうかによって変わります。
Datasmith では、3ds Max で異なるピボット ポイントと不均等なスケーリングの両方を持つインスタンスのインポートはサポートしていません。このようなインスタンスがある場合は、エクスポートする前に、当該インスタンスに対して Reset XForm ユーティリティ を使用します。
単一の共有ピボット ポイントを変換する
3ds Max のすべてのインスタンスが同じカスタム ピボット ポイントを持つ場合、そのピボット ポイントは、Datasmith によって Datasmith が作成するスタティックメッシュ アセットのピボット位置として設定されます。Unreal Engine のレベルで Datasmith がそのオブジェクト用に作成するスタティックメッシュ アクタのいずれかを回転すると、スタティックメッシュ アクタはそのカスタム ピボットの位置の周りを予期したとおりに回転します。
複数のカスタム ピボット ポイントを変換する
1 つまたは複数のインスタンスで他のインスタンスと異なるピボット位置が使用されている場合、Datasmith は次のいずれかを実行します。
- 3ds Max オブジェクトのデフォルトのピボット位置を使用するように Unreal で作成するスタティックメッシュ アセットを設定します。
- Unreal Engine のレベルにアセットを配置するときに、Datasmith はスタティックメッシュ アクタを作成するのではなく、そのインスタンスのカスタム ピボットの位置に新しい空の親アクタを作成します。
- 最後に、Datasmith は親アクタに次のような スタティックメッシュ コンポーネント を与えます。
- スタティックメッシュ アセットを参照する。
- 3D シーンでこのコンポーネントを配置すべき場所の親アクタからの移動オフセットを含む。
- 名前に
_pivot
サフィックスが付けられている。
Unreal Engine のレベルでこの親アクタを移動、回転、スケールすると、モデルは期待どおりに動作します。気を付けなければならないことは、モデルがスタティックメッシュ アクタ自体ではなく、親アクタのコンポーネントであるという点です。
カスタム ピボット ポイントの例
たとえば次の画像では、右側にあるティーポットにはデフォルトのピボット ポイントが使用されていますが、左側のティーポットには蓋の上部にカスタム ピボットが配置されています。
拡大表示するには、画像をクリック。
Datasmith は、Unreal にシーンを取り込むときに右側のティーポット用のスタティックメッシュ アクタを作成しますが、左側のティーポットに関しては以下を実行します。
- 3D ワールドのピボット ポイントの位置に
Teapot002
という新しいアクタを作成します。 - ティーポットのスタティックメッシュ アセットを参照する、
Teapot002_2
という名前のスタティックメッシュ コンポーネントをTeapot002
アクタに与えます。 - シーン内の他のジオメトリに対して正しい位置に配置されるように、親アクタ
Teapot002
からTeapot002_2
をオフセットします。
拡大表示するには、画像をクリック。
UV チャンネル
Datasmith は、ライトマス がライトマップ テクスチャに静的ライトを組み込むのに使用できる UV セットが Unreal Engine に取り込むすべてのスタティックメッシュに含まれるようにします (「グローバル イルミネーション」を参照)。3ds Max のシーンを同期するか、Datasmith ファイルをインポートすると、Unreal Engine によって自動的に UV チャンネルが作成されます。すべてのスタティックメッシュ アセットは、この新しいチャンネルを使用してライトマップをベイクします。
また、3ds Max でカスタム ライトマップ UV を作成し、代わりにそれらを使用することもできます。その場合は、Datasmith が 3ds Max から Unreal に UV を取り込む方法とともに、その動作をオーバーライドする方法を理解しておくことが重要です。
- 次のセクションでは、Datasmith が 3ds Max から UV をインポートする方法について説明します。
- その次のセクション「カスタム ライトマップ UV を使用する」では、Datasmith のデフォルトのインポート動作をオーバーライドする方法について説明します。
Datasmith が UV チャンネルをインポートする方法
Unreal Engine はスタティックメッシュあたり最大 8 個の UV チャンネルをサポートし、Datasmith はそれらの 2 つを使用してライトマップ UV を生成します。つまり Datasmith は、3ds Max からインポートする各オブジェクト用に最大 6 個の既存の UV チャンネルを保持できます。3ds Max では、オブジェクトに最大 99 個の UV チャンネルを含めることができ、順番にチャンネル インデックスを設定する必要がありません。Datasmith は、インデックスの一番下から 6 個のチャンネルをインポートします。
Datasmith は UV チャンネルのインポート時に以下のことを行います。
- UV チャンネルをインポートするときにそれらのインデックスをリセットして 0 から始まるようにします。
- 3ds Max の一番下のインデックスを Unreal の一番下のインデックスに、下から 2 番目を下から 2 番目にといったようにマッピングします。
- 自動生成されるライトマップ用にさらに 2 つのチャンネルを作成します。
たとえば、以下の表には、インデックスが完全に連続していない 5 個のチャンネルを持つ 3ds Max オブジェクトをインポートするときに、Datasmith が UV チャンネルのインデックスをどのように再作成するかが示されています。以下に留意してください。
- チャンネル 0 ~ 4 に加え、Datasmith がライトマップ用のチャンネル 5 と 6 を追加します。
- いくつかの 3ds Max UV のインデックス間には大きな隔たりがありますが、Datasmith が Unreal Engine で使用可能な一番下のスロットに各インデックスを再マッピングします。
3ds Max の UV チャンネル | Unreal の UV チャンネル | 注記 |
---|---|---|
1 | 0 | |
2 | 1 | |
3 | 2 | |
10 | 3 | |
99 | 4 | |
5 | Datasmith のシーンに含まれているジオメトリの自動アンラップを作成するために、インポート中に生成されます。これは、UV チャンネル 6 で使用されるライトマップ UV 生成のベースになります。 | |
6 | スタティックメッシュのライトマップ解像度の値で使用される Datasmith のインポート オプションに基づいて UV チャートを正しくパディングおよびパックするために、UV チャンネル 5 に基づいて生成されます。 |
カスタム ライトマップ UV を使用する
インポートしたスタティックメッシュで、3ds Max で作成した既存の UV チャンネルを使用するには、以下の 2 つの方法があります。
-
オプション 1:3ds Max からシーンをエクスポートする前に、Datasmith 属性モディファイアを使用して、Unreal Engine でライトマップ用に使用する UV チャンネルのインデックスを指定します。詳細については、「オブジェクトごとの変換設定」を参照してください。
-
オプション 2:Unreal Editor にシーンをインポートした後に、Unreal Engine でライトマップ用に使用する UV チャンネルのインデックスを変更できます。
- コンテンツ ブラウザで、ライトマップ UV インデックスを変更するスタティックメッシュ アセットをダブルクリックしてスタティックメッシュ エディタを開きます。
- [Details (詳細)] パネルで [General Settings (一般設定)] > [Advanced (詳細設定)] の順に移動し、[Light Map Coordinate Index (ライトマップ座標インデックス)] を使用する UV チャンネルに設定します。
別の方法として Python でライトマップ UV インデックスを変更できますが、その場合は次の関数を呼び出します。
static_mesh.set_editor_property("light_map_coordinate_index", index)
カスタム コリジョン形状
Unreal Engine の物理シミュレーションの動作とパフォーマンスを向上させるには、3ds Max のオブジェクトのカスタム ジオメトリをモデル化し、それを Unreal Engine の対応するスタティックメッシュ用のコリジョン メッシュとして使用します。その狙いは、カスタム ジオメトリを元のシーン オブジェクトのボリュームに可能な限り一致させ、そのジオメトリに含まれるトライアングルの数を最小限に抑えることにあります。
- 次のセクション「カスタム コリジョン形状を使用するうえでの考慮事項」では、カスタム コリジョン形状を使用するときに何を考慮する必要があるかを説明します。
- その次のセクション「カスタム コリジョン形状を設定する」では、カスタム コリジョン形状の設定方法について説明します。
カスタム コリジョン形状を使用するうえでの考慮事項
形状タイプ
カスタム コリジョン形状を使用すると、コリジョン メッシュとして設定したオブジェクトを (ボックスなどの) 完全に閉じた凸型の 3D 形状にできます。次の図に許容できる形状と許容できない形状の種類を示します。

ピボットポイント位置
また、カスタム ジオメトリのピボット ポイントが、元のオブジェクトのピボット ポイントとボリュームに応じた同じ位置になるようにします。たとえば次の図では、右側の椅子と左側の単純化された表現の両方のボリュームの下部中央にピボット ポイントがあります。

全体的なボリュームに応じた同じ位置でコリジョン ジオメトリのピボット ポイントを保持していない場合、物理ワールド内でのオブジェクトの表現は、そのオブジェクトのビジュアル エクステントと揃わなくなります。これにより、想定外の場所でコリジョンが発生することがあります。
カスタム コリジョン形状を設定する
Datasmith が Unreal Engine にインポートできるように 3ds Max でカスタム コリジョン形状を設定するには、Datasmith 属性モディファイアを使用します。3ds Max でシーンの 1 つ以上のオブジェクトにモディファイアを割り当ててから、そのモディファイアを使用して Unreal Engine でコリジョン メッシュとして使用するオブジェクトを指定します。詳細については、「オブジェクトごとの変換設定」の「カスタム コリジョン ボリュームを設定する」を参照してください。
Unreal Engine でカスタム コリジョン形状を確認する
Datasmith がインポートしたカスタム コリジョン形状を正しく確認するには、[Level Viewport (レベル ビューポート)] でコリジョン レンダリングをオンにします。
- ビューポートのオーバーレイ メニューから、[Show (表示)] > [Collision (コリジョン)] の順に選択します。
Unreal Engine は、シーン オブジェクト上にカスタム コリジョン ボリュームをレンダリングします。次の画像にカスタム コリジョン ボリュームとしてボックス オブジェクトを使用する球形を示します。
クリックしてフルサイズで表示。
頂点カラー
頂点カラーを 3ds Max オブジェクトと関連付けている場合、Datasmith は Unreal Engine で対応するスタティックメッシュ アセットを作成するときにそのカラーを保持します。
Datasmith は 3ds Max の他のメッシュ チャンネル (Vertex Alpha、Map Channel Color、Soft Selection Color など) からのデータを変換しません。
Unreal Editor でカスタム マテリアル を作成するときに、マテリアル グラフに [Constants (定数)] > [Vertex Color (頂点カラー)] ノードを含めることにより、これらの頂点カラーを使用できます。
たとえば次の図は、頂点カラーを表示するように設定されている 3ds Max のオブジェクトと、頂点カラーを取得して ベース カラー の出力に直接渡す Unreal Engine の単純なカスタム マテリアルを示しています。
3ds Max で表示されている頂点カラー。画像をクリックすると拡大表示されます。
Unreal Engine で表示されている頂点カラー。画像をクリックすると拡大表示されます。
インポートされた頂点カラーを確認する
Datasmith によって頂点カラーが正しく変換されたことを確認するために、Unreal Engine エンジンでそれらの頂点カラーを視覚化できます。
- コンテンツ ブラウザ で スタティックメッシュ アセット をダブルクリックして スタティックメッシュ エディタ で開きます。
- ビューポート のツールバーから、[Show] > [Vert Colors] の順に選択します。
インポートされた頂点カラーのその他のユーザー
カスタム マテリアル グラフ の頂点カラーは、サーフェスに可視色を提供するだけではありません。それらの頂点カラーは、他のサーフェスのプロパティと組み合わせることもできます。
また頂点カラーは、カスタム データ値をソース オブジェクトのジオメトリと関連付け、それらの値を Unreal Editor のカスタム マテリアルに渡して視覚効果を高める目的で使用できます。
たとえば、頂点カラーを使用して木の枝や葉に重みを割り当て、その重みを使用して頂点シェーダーに適用する風のアニメーション エフェクトの効果を調整できます。
詳細度
Datasmith は、3ds Max で設定したカスタム 詳細度 をインポートしませんが、Unreal Editor で新しい詳細度を自動的に生成できます。詳細については、「自動 LOD 生成」または「ブループリントか Python で詳細度を作成する」を参照してください。
Forest Pack と RailClone オブジェクト
iToo Software の Forest Pack と RailClone は、多数のジオメトリック オブジェクトをプロシージャルに散乱させて (配置して) シーンの構成をサポートする 3ds Max のプラグインです。
Datasmith が Forest Pack オブジェクトと RailClone オブジェクトを変換する方法
Datasmith を使用して Unreal Engine の Forest Pack または RailClone オブジェクトを含む 3ds Max のシーンをインポートするか同期すると、Datasmith は Unreal Engine のレベルで 1 つのアクタを作成し、3ds Max のオブジェクトの名前に応じた名前を付けます。
Datasmith は、オブジェクトが処理する各ジオメトリ タイプに対してアクタ内で以下を作成します。
- 階層インスタンス化スタティックメッシュ (HISM) コンポーネント。
- プロジェクトのコンテンツのスタティックメッシュ アセット。
次に、Datasmith はスタティックメッシュ アセットを参照するように各ジオメトリ タイプの HISM コンポーネントを設定します。
各 HISM コンポーネント内で、Datasmith は 3ds Max のシーンで表示される各インスタンスのスタティックメッシュ アセットのインスタンスを 1 つ追加し、3ds Max の各インスタンスの位置と回転を一致させます。
このインポート プロセスによって、見た目だけでなく、構造の面 (シーン階層で 1 つの Forest Pack または RailClone オブジェクトが内部的にすべてのインスタンスを管理するという点) でも元の 3ds Max のシーンに厳密に一致する Unreal Engine のレベルが生成されます。


HISM コンポーネントは、Unreal Engine の フォリッジ システムで使用されているのと同じテクノロジーであり、同じスタティックメッシュの多くのインスタンスをレンダリングする非常に効率的な方法です。Unreal Engine のレンダラは、同じ HISM コンポーネントで管理されているすべてのインスタンスをバッチ処理し、スタティックメッシュ アセットに割り当てられているマテリアルごとに 1 回のドロー コールを行います。HISM を使用することにより、レンダラは GPU のパフォーマンスやフレームレートに影響を与えることなく、より多くのインスタンスを処理できます。
Forest Pack オブジェクトと RailClone オブジェクトを単純化されたジオメトリに置き換える
Forest Pack または RailClone を使用して、複雑なジオメトリを含むオブジェクト (木など) を管理することもできます。Unreal Engine では、ユーザーはこのようなオブジェクトをリアルタイムでより効率的に実行される、より単純なジオメトリに置き換えようと考えるでしょう。

Forest Pack または RailClone オブジェクトを単純化されたジオメトリに置き換えるには、次の手順を実行します。
- 3ds Max で Forest Pack または RailClone オブジェクトに Datasmith 属性モディファイア を適用し、ジオメトリのバウンディング ボックスのみをエクスポートするように設定します。
手順については、「オブジェクトごとの変換設定」の「バウンディング ボックスのみをエクスポートする」セクションを参照してください。 - 3ds Max のシーンを同期するかインポートします。
- Unreal Engine のレベルのすべてのインスタンスを更新して新しいスタティックメッシュが使用されるようにするために、HISM コンポーネントを編集し、[Details] パネルで [Static Mesh (スタティックメッシュ)] の設定を変更します。
XRef シーン
XRef シーンは、現在のファイルに表示される外部参照シーンですが、他の MAX ファイルから一時的にロードされます。詳細については、3ds Max のドキュメントの「XRef シーン」を参照してください。シーンが 1 つ以上の XRef シーンを参照している場合、Datasmith はそれらのシーンをデフォルトでエクスポートします。
Datasmith が XRef シーンをエクスポートしないようにするには、次の手順を実行します。
3ds Max のリボンの [Datasmith] タブから [Settings (設定)] パネルに移動し、[Export XRef Scenes (XRef シーンをエクスポート)] を無効にします。
ライティングとレンダリング環境
3ds Max は、Datasmith がサポートする他のサードパーティ アプリケーションの多くより、はるかに詳細で高度なライティング機能とレンダリング機能を提供します。このセクションでは、Datasmith がどのように 3ds Max のライティング データとレンダリング データを Unreal Engine に取り込もうとするかを説明します。
ライト
Datasmith は、標準、フォトメトリック、V-Ray、Corona ライトといった、さまざまな 3ds Max ライト タイプを変換します。各ライトについて、Datasmith は次のようなライトの情報を Unreal に取り込みます。
- 3D 空間での位置、方向、形状、サイズ。
- ライト タイプ (ポイント ライトやスポット ライトなど)。
- 強度、単位、ランプ色、温度、フィルタ色。
- レンダリング形状の可視性。
- IES ライト プロファイル。


IES プロファイル付きでケルビン温度がスケーリングされているポイント ライト。中央:IES プロファイル付きでライトの強度がスケーリングされているポイント ライト。下:フィルタ色付きのスポット ライト。
Datasmith は、3ds Max で設定したライティングを可能な限り近似化しようとしますが、期待しているような結果を得るとともに、ランタイム時のライティングのパフォーマンスを最適化するには、Unreal Engine にシーンをインポートした後に、レベルのライティングの調整が必要になる可能性があります。通常は、処理後の露出値を調整してレベルのライティングを微調整します。
以下は、Datasmith を使用するときの 3ds Max と Unreal Engine の顕著な違いです。
-
現在のところ、Unreal Engine はライトのインスタンスをサポートしていません。3ds Max のシーンでインスタンス化されている各ライトに対して、Datasmith は Unreal Engine のレベルで個別の Light アクタ を作成します。
ライトは Unreal Engine でインスタンス化されませんが、[Detail] パネルですべてのライトを選択してそれらのプロパティを変更することにより、すべてのライトを一度に編集できます。
- 3ds Max の標準ライトはユニットレスであり、Unreal Engine がサポートしないカスタム減衰パラメータをサポートします。
- 垂直円柱、回転楕円体、カスタム メッシュ ライトなどの一部の V-Ray 形状はサポートされません。
- エリア ライトは専用のブループリント クラスを使用して処理されます。詳細については、「Datasmith のインポート プロセス」を参照してください。
露出
Datasmith は 3ds Max のライトの強度を維持しますが、シーンを適切にレンダリングするにはその強度では不十分です。Unreal Engine のレンダラには、ライトの強度を解釈するコンテキストが必要であり、そのようなコンテキストがあれば、シーンのルミナンス (最終的なレンダリングでシーンがどの程度明るく、または暗く見えるか) を判断できます。
このコンテキストの一部は、カメラまたはビューの露出によって提供されます。露出は、最終的な画像がシーン内のライトの強度から受ける影響を制御する一連の物理特性です。
また Datasmith は、3ds Max のいくつかの露出値も変換します。
詳細については、次のセクションを参照してください。
物理カメラの露出設定
3ds Max のシーンに物理カメラが含まれている場合、Datasmith はそのカメラの露出とホワイト バランスの設定を維持し、Unreal Engine のレベルで対応する Cine カメラ アクタに引き継ぎます。
3ds Max の同じ設定と一致するように、Datasmith は各カメラで以下の設定を行います。
- [WhiteBalance (ホワイトバランス)] > [Temp (温度)]
- [Shutter Speed (シャッター スピード)]
- [ISO]
- [Aperture (f-stop) (絞り (f 値))]
また、[Exposure (露出)] > [Metering Mode (測光モード)] を [Manual (手動)] に設定して自動露出を無効にします。
このカメラを通してレベルを表示すると、ライト レベルが 3ds Max でレンダリングしたときの結果にほぼ一致していることがわかります。


Cine カメラ アクタの設定の詳細については、「Cine カメラ アクタ」を参照してください。
グローバル露出設定
3ds Max の [Exposure Control (露出コントロール)] 設定で [Physical Camera Exposure Control (物理カメラの露出コントロール)] または [VRay Exposure Control (V-Ray の露出コントロール)] を使用している場合、Datasmith は Datasmith のシーンに ポストプロセス ボリューム を作成します。このポストプロセス ボリュームにより、これらのグローバル露出設定が Unreal Engine のレベル全体に適用されます。
3ds Max の露出設定は、[Environment and Effects (環境とエフェクト)] ダイアログにあります。メイン メニューから、[Rendering (レンダリング)] > [Exposure Control] の順に選択します。
3ds Max の同じ設定と一致するように、Datasmith は Unreal Engine のポストプロセス ボリュームで以下の設定を行います。
- [WhiteBalance (ホワイトバランス)] > [Temp (温度)]
- [Shutter Speed (シャッター スピード)]
- [ISO]
- [Aperture (f-stop) (絞り (f 値))]
また、[Exposure (露出)] > [Metering Mode (測光モード)] を [Manual (手動)] に設定して自動露出を無効にします。
Unreal Editor のビューポートでデフォルトのパースペクティブ カメラを使用してレベルを表示すると、ライト強度が 3ds Max でレンダリングしたときの結果にほぼ一致していることがわかります。


グローバル露出設定と物理カメラ設定
3ds Max では、グローバル ホワイト バランスと露出の設定を物理カメラに割り当てられている設定と一致させる必要はありません。この場合、パースペクティブ カメラの視点でシーンをレンダリングすると、レンダラは特定の物理カメラに割り当てられている設定ではなく、グローバル露出設定を使用します。
Unreal Engine も同じようになっており、レベルのビューポートでデフォルトのカメラを通じてシーンを表示すると、Unreal Engine は、プロジェクトのグローバルな露出設定かアクティブなポストプロセス ボリュームからの露出設定を使用します。Cine カメラ アクタを通じてシーンを表示すると、Unreal Engine はそのカメラの露出設定を使用します。
自動露出
Unreal Engine には、カメラに届くライトの量をモニタリングして、最終的な画像が適切なルミナンス レベルで表示されるように露出を自動的に調整する、ビルトイン自動露出システムがあります。
この自動露出システムは、デフォルトでアクティブになっています。Unreal Engine の自動露出の詳細については、「自動露出」を参照してください。
カメラ
3ds Max のシーンのすべてのカメラについて、Datasmith は 3D 空間と同じ位置と回転で Unreal Engine の Cine カメラ アクタを作成し、そのカメラの焦点プロパティを可能な限り維持しようとします。Unreal Engine のカメラを通したレベルの表示と 3ds Max の対応するカメラからレンダリングされたシーンの表示が、できるだけ同じようになるのが理想的です。
3ds Max のカメラにターゲットがある場合、Datasmith は Unreal Engine の対応するアクタをトラックするように Cine カメラ アクタを設定します。Unreal Engine のレベルでターゲット アクタを移動させると、Cine カメラ アクタは自動的に回転してターゲット アクタをトラックします。
Datasmith が物理カメラの露出設定をどのように変換するかについての詳細は、「物理カメラの露出設定」を参照してください。
マテリアル
Unreal Engine に 3ds Max のシーンをインポートするときに、Datasmith はプロジェクトの「Materials / Master」フォルダに 1 つ以上の親マテリアル アセットを作成します。そして各親マテリアルについて、Unreal Engine の物理ベースのレンダラを使用して 3ds Max でシーンをレンダリングしたときと同等の結果をもたらすマテリアル グラフを作成しようとします。
Datasmith は、親マテリアルの新しいインスタンスとして 3ds Max のシーンの各マテリアルをインポートしますが、すべてのマテリアル インスタンスに親があるわけではありません。2 つの異なるマテリアル インスタンスが同じマテリアル グラフを共有できる場合、Datasmith は両方のインスタンスに同じ親マテリアルを使用しようとします。
Datasmith は通常、1 つのシェーディング モデルと比較的単純なグラフを持つ、次の画像のマテリアルのような 3ds Max のマテリアルを変換できます。

単純なマテリアルであっても、親マテリアル アセットのグラフは多くの場合、3ds Max の対応するマテリアルとは違って見えます。シェーディング マテリアル間で変換を行うとき、Datasmith はグラフに接続や定数が追加されることになったとしても、視覚的な結果を可能な限り厳密に維持しようとします。
シェーディング モデルの変換の制限
3ds Max は、V-Ray、Corona、Mental Ray など、マテリアルのその他いくつかのシェーディング モデルをサポートします。各シェーディング モデルは個別のソフトウェアであり、互いに整合しているとは限らない独自の機能を備えています。Datasmith は、いくつかの機能を Unreal Engine の同じような機能に変換できますが、より複雑な機能や特殊用途の機能を処理できないことがあります。
たとえば、複数の出力シェーダーが混在する複雑なグラフを持つマテリアルの場合、Datasmith による Unreal Engine での再生成が難しいこともあれば不可能なこともあります。そのようなマテリアルを調整したり置き換えたりするには、シーンのインポート後に追加でいくつか作業を行わなければなりません。次の画像のグラフはその好例です。
プロシージャル テクスチャ
3ds Max のシーンでプロシージャル テクスチャが使用されている場合、Datasmith は、Datasmith が作成する Unreal Engine のマテリアルで使用するベイク済みテクスチャとしてそれらのプロシージャル テクスチャをエクスポートし、それらのベイク済みテクスチャを .tga ファイルとして保存します。Datasmith がどのようにマテリアルを作成するかについての詳細は、「マテリアル」を参照してください。
シーンのテクスチャの数とサイズはどちらも、3ds Max からのエクスポートと Unreal Engine へのインポートの時間に影響しますが、ベイク済みテクスチャとプロシージャル テクスチャの解像度を制限すれば、インポートとエクスポートのパフォーマンスを向上させることができます。これは特に、複雑なマテリアルを含む大規模なシーンで役に立ちます。
この設定は、TIFF ファイルや JPEG ファイルなどのラスタ テクスチャのサイズには影響しません。
プロシージャル テクスチャをベイクするときのエクスポート解像度を指定するには、次の手順を実行します。
- 3ds Max のリボンの [Datasmith] タブから [Settings] タブに移動し、[Limit Texture Resolution (テクスチャ解像度を制限)] を希望の値に設定します。
値を設定するとターゲット解像度のピクセル数 (4,000 (4,096 ピクセル) ~ 1,600 万 (16 メガピクセル)) が指定されます。
たとえば、解像度の上限を 4,000 に設定すると、Datasmith はテクスチャを 4,096 ピクセル (64x64、128x32px、またはその他の幅と高さの値の組み合わせ) までの解像度に制限します。
メタデータ
[Object Properties (オブジェクト プロパティ)] ウィンドウの [User Defined (ユーザー定義)] タブで 3ds Max オブジェクトにメタデータを追加します。

3ds Max でメッシュ用のこのパネルを表示するには、次の手順を実行します。
- アウトライナまたはビューポートでメッシュを選択します。
- 右クリックして、コンテキスト メニューから [Properties (プロパティ)] または [Object Properties (オブジェクト プロパティ)] を選択するか、メイン メニューから [Edit (編集)] > [Properties (プロパティ)] を選択します。
- 上図のように、
key = value
ペアの形式でこのパネルにメタデータを入力します。等号 (=) の両側に必ず半角スペースを 1 つ入れてください。このスペースがない場合、Datasmith がメタデータを認識できず、予期したとおりにメタデータがインポートされません。
MAXScript を使用して ユーザー定義のプロパティをセットアップすることもできます。
元は Revit で作成され、3ds Max にインポートされたモデルの場合、3ds Max インポータにより、ユーザー定義プロパティにモデルの BIM 情報がすでに設定されています。
変換に関する注記と警告
Datasmith の変換プロセスの情報は、次のタイミングで取得できます。
- 3ds Max:シーンをエクスポートするか同期した後。
- Unreal Engine:シーンを同期するかインポートした後。
3ds Max の注意事項と警告
3ds Max のシーンをエクスポートした後、Datasmith は、統計、注記、プロセス中に発生した問題、警告、またはエラーをメッセージ ウィンドウで一覧表示します (「Datasmith メッセージ ウィンドウ」を参照)。
Direct Link を使用して 3ds Max と Unreal Engine を同期する場合、Datasmith はデフォルトでは統計を出力しません。Direct Link の同期と自動同期の統計のエクスポートを有効にするには、MaxScript コンソール ウィンドウで次のコマンドを入力します。
Datasmith_SetExportOption_StatSync true
次のようなメッセージにより、期待どおりに Unreal Engine に変換されない可能性があるシーンの要素が通知されます。次に例を挙げます。
- 画像が不足しているなど、ソース シーンに問題があります。もう一度エクスポートする前に 3ds Max でこれらの問題を修正してください。
- 3ds Max のシーンに Datasmith か Unreal Engine でサポートされていないものがあります。
- 想定されていなかった可能性がある方法で Datasmith が変換したものがあります。
Unreal Engine の注意事項と警告
Datasmith のシーンを Unreal Editor にインポートすると、アウトプット ログ (メイン メニューから [Window (ウィンドウ)] > [Output Log (アウトプット ログ)] の順に選択) に解決する必要があるかもしれない変換の問題に関する情報が表示されることがあります。
まずはアウトプット ログをフィルタリングして警告のみを表示してみます。アウトプット ログのツールバーから、[Filters (フィルタ)] > [Messages (メッセージ)] と [Filters] > [Errors (エラー)] を無効にします。