3ds Max

Datasmith を使用して Autodesk 3ds Max から Unreal Editor にシーンを取り込む場合にのみ該当する特別な考慮事項について説明します。

このページでは、Datasmith で Autodesk 3ds Max から Unreal Editor にシーンがどのようにインポートされるかについて説明します。ここでは、「Datasmith の概要」と「Datasmith のインポート プロセスについて」で説明されている基本的なプロセスに沿っています。ただし、3ds Max に固有の特別な変換動作がいくつか追加されています。Datasmith を使用して 3ds Max から Unreal Editor にシーンをインポートする予定がある場合は、このページを読むとシーンがどのように変換されるか、およびその変換結果を Unreal Editor で操作する方法を理解するのに役立ちます。

3ds Max の V-Ray

Unreal Engine

画像提供:Litrix

3ds Max のワークフロー

Datasmith は 3ds Max に対して エクスポータ プラグイン のワークフローを使用します。つまり、Datasmith を使用して 3ds Max のコンテンツを Unreal に取り込むには、以下の手順を実行する必要があります。

  1. 3ds Max 用のプラグインをインストールします。「インストールに関する注記」セクションを参照してください。

  2. 3ds Max のコンテンツを「.udatasmith」ファイルにエクスポートします。「3ds Max から Datasmith コンテンツをエクスポートする」を参照してください。

  3. Datasmith インポータ プラグインをまだインストールしていない場合は、[Importers (インポータ)] > [Datasmith Importer (Datasmith インポータ)] プラグインを有効にします。

  4. Unreal Editor のツールバーの Datasmith インポータを使って、「.udatasmith」ファイルをインポートします。「Unreal Engine に Datasmith コンテンツをインポートする」を参照してください。

インストールに関する注記

3ds Max のコンテンツをエクスポートするには、『Datasmith エクスポート プラグイン』ページから Datasmith Exporter for 3ds Max プラグインをダウンロードおよびインストールしなければなりません。

プラグインがサポートしている Autodesk 3ds Max のバージョンを確認するには、「Datasmith でサポートされているソフトウェアとファイルの種類」を参照してください。

Datasmith エクスポーター プラグインのダウンロード リンクは、所属している組織の内外を問わず不特定多数のユーザーと共有できます。ただし、Datasmith エクスポーター プラグイン自体の配布は許可されていないため、ご注意ください。

3ds Max 用 Datasmith エクスポーター プラグインをインストールする前に、以下について確認してください。

  • 3ds Max を実行していない。

  • 使用する Unreal Engine のバージョンと一致するエクスポーター プラグインのインストーラーをダウンロードしている。

  • 3ds Max 用 Datasmith エクスポーター プラグインの以前のバージョンをすべてアンインストールしている。

インストーラーをダウンロードしたら、インストーラーをクリックして開き、画面上のインストラクションに従います。

3ds Max 用 Datasmith エクスポーター プラグインをアンインストールするには、他の Windows アプリケーションと同じ要領で コントロール パネル から行うことができます。

ジオメトリ

このセクションでは、Datasmith が 3ds Max のシーンからのジオメトリック オブジェクトを Unreal Engine プロジェクトの Static Mesh アセットと Static Mesh アクタに変換する方法に関する特別な考慮事項について説明します。

メッシュとテッセレーション

Unreal で対応するスタティック メッシュ アセットのジオメトリを作成する場合、Datasmith では、たいてい、各 3ds Max オブジェクトのレンダリング メッシュを使用します。つまり、Unreal のアセットには、通常、3ds Max のレンダリングを表示するときとまったく同じ三角ポリゴンが含まれています。

例外は、3ds Max のボディ オブジェクト です。ボディ オブジェクトでは、Datasmith はレンダリング メッシュではなく 3ds Max の ビューポート メッシュ 上のスタティック メッシュ アセットのジオメトリをベースにしているためです。このようなオブジェクトの場合、3ds Max では、[Viewport Display Settings (ビューポート表示設定)] > [Mesh Quality Presets (メッシュ品質プリセット)] 設定 ([Coarse (粗い)][Medium (中程度)]、または [Fine (細かい)]) で、ビューポートでレンダリングする際に使用するテッセレーションの粒度をカスタマイズできます。

Body Object viewport tessellation settings

Datasmith では、シーンの各ボディ オブジェクトのためにここで設定するテッセレーションのレベルが反映されます。この設定の詳細については、「3ds Max ヘルプ 」を参照してください。

インスタンス

Datasmith が 3ds Max のシーンで同一マスター オブジェクトの複数のインスタンスを検出すると、そのオブジェクトに対してスタティック メッシュ アセットを 1 つだけ作成します。そして、そのスタティック メッシュの複数のインスタンスを Unreal のレベルに配置します。この機能により、通常、プロジェクトのランタイム メモリの要件とパフォーマンスが改善します。また、スタティック メッシュ数を抑えることでコンテンツの管理に役立ちます。

シーンで繰り返し使用される要素 (窓、ドア、椅子など) すべてで 3ds Max のインスタンスを使用して、この機能をできる限り活用することをお勧めします。

ピボット ポイント

3ds Max では、シーンの各オブジェクトに対してカスタム ピボット ポイントを設定できます。カスタム ピボット ポイントは、それらのオブジェクトが同一のマスター オブジェクトの複数のインスタンスであっても設定できます。ただし、Unreal Engine では、同じジオメトリのすべてのインスタンスは同一のピボット ポイントを使用する必要があります。Datasmith がオブジェクトを Unreal に変換するときに、そのようなピボット ポイントは次のように処理されます。

  • 3ds Max で「すべて」のインスタンスで同じカスタム ピボット ポイントが使用されている場合、Datasmith はそのピボット ポイントを、作成するスタティック メッシュ アセットのピボット位置として設定します。Unreal Engine のレベルで Datasmith がそのオブジェクト用に作成する Static Mesh アクタのいずれかを回転すると、Static Mesh アクタはそのカスタム ピボットの位置の周りを予期したとおりに回転します。

  • 1 つまたは複数のインスタンスで他のインスタンスと異なるピボット位置が使用されている場合、Datasmith は、その 3ds Max オブジェクトのデフォルトのピボット位置を使用するように、Unreal で作成するスタティック メッシュ アセットを設定します。そのアセットをレベル配置する必要があるたびに、Datasmith は Static Mesh アクタを作成するのではなく、そのインスタンスのカスタム ピボットの位置に新しい空の親アクタを作成します。次に、Datasmith ではその親アクタにスタティック メッシュ コンポーネントを与えます。このコンポーネントはスタティック メッシュ アセットを参照し、3D シーンでこのコンポーネントを配置すべき場所の親アクタからの移動オフセットを含んでいます。Datasmith では、その子コンポーネントの名前にサフィックス _pivot を付加します。

例えば、左側にあるティーポットでは、その蓋の上部にカスタム ピボットが配置されています。

Custom pivot points on instanced objects

Datasmith はそのシーンを Unreal に取り込むときに、3D ワールドでのそのピボット ポイントの位置に Teapot002 という新しいアクタを作成します。そのアクタには Teapot002 という名前のスタティック メッシュ コンポーネントが与えられ、そのコンポーネントはティーポットのスタティック メッシュ アセットを参照し、シーン内の他のジオメトリに対して適切な位置に表示されるように、親アクタからのオフセットが適切に設定されます。

Parent Actor to represent the custom pivot

Unreal Engine レベルで親アクタを移動、回転、およびスケーリングでき、モデルも期待どおりに動作します。この場合、モデルは Static Mesh アクタあるというより、親アクタの コンポーネント であるということに注意する必要があります。例えば、上記の場合、右側のティーポットはスタティック メッシュ コンポーネントを持つアクタではなく Static Mesh アクタとしてレベルでインスタンス化されています。

Datasmith では、3ds Max で異なるピボット ポイントと不均等なスケーリングの両方を持つインスタンスのインポートはサポートしていません。このようなインスタンスがある場合は、エクスポートする前に、当該インスタンスに対して Reset XForm ユーティリティ を使用します。

UV チャンネル

Datasmith では、Unreal に取り込むすべてのスタティック メッシュに、ライトマップ テクスチャに静的ライティングをビルドする際にライトマスが使用できる一連の UV が含まれていることを必ず確認します。Datasmith ファイルをインポートする際は、Unreal Engine によって UV チャンネルが自動的に作成され、その新しいチャンネルをライトマップのベイクに使用するように各スタティック メッシュ アセットを設定します。

ただし、場合によっては、3ds Max で独自のカスタム ライトマップ UV を手動で作成することをお勧めします。手動で作成することで、シームの配置やジオメトリで三角ポリゴンに割り当てる相対空間を完全にアーティスティックにコントロールできます。その場合、UV が 3ds Max から Unreal に取り込まれる仕組みと、その動作を上書きする方法を把握しておく必要があります。

Unreal Engine では、スタティック メッシュあたり最大 8 つの UV チャンネルをサポートしています。また、Datasmith はジオメトリ オブジェクトを 3ds Max から Unreal Engine のスタティック メッシュ アセットにインポートするたびに、2 つの UV チャンネルを使用してそのスタティック メッシュ用のライトマップ UV を生成します。そのため、Datasmith では、3ds Max から Unreal にインポートするオブジェクトごとに既存の UV チャンネルを最大 6 つ保持できます。

ただし、3ds Max ではオブジェクトあたり最大 99 個の UV チャンネルを使用できます。そのため、Datasmith では 3ds Max でインデックスが最も小さい 6 つのチャンネルのみをインポートします。

例えば、下図の 3ds Max オブジェクトには [Modifier List (モディファイア リスト)] に 5 つの UV チャンネルがあります。これらの各チャンネルには 0~99 の間の番号が関連付けられています。Datasmith ではこれら 5 つの UV チャンネルをインポートし、その番号を 0 から始まるようにリセットします。そのため、Unreal での UV チャンネルの番号は 0~4 になります。その後、インポート プロセスで、自動生成されるライトマップ用の 2 つの UV チャンネル (この場合は 5 と 6) が追加で作成されます。

UV channel numbering in 3ds Max and Unreal

次の表は、3ds Max と Unreal での UV チャンネル番号の関連付けの詳細を示しています。

3ds Max での UV チャンネル番号

Unreal で生成された UV チャンネル番号

1

0

2

1

3

2

10

3

99

4

5

Unreal での UV チャンネル 5 は、Datasmith のシーンに含まれているジオメトリの自動アンラップを作成するために、インポート中に生成されます。これは、UV チャンネル 6 で使用されるライトマップ UV 生成のベースになります。

6

Unreal での UV チャンネル 6 は、スタティック メッシュのライトマップ解像度の値で使用される Datasmith のインポート オプションに基づいて UV チャートを正しくパディングおよびパックするために、UV チャンネル 5 に基づいて生成されます。

インポートしたスタティック メッシュで、3ds Max で作成した既存の UV チャンネルを使用するには、以下の 2 つの方法があります。

  1. 3ds Max からシーンをエクスポートする前に、[Datasmith Attributes (Datasmith 属性)] モディファイアを使用して、Unreal Engine でライトマップ用に使用する UV チャンネルを指定します。詳細は「オブジェクトごとの変換設定」を参照してください。

  2. Unreal Editor にシーンをインポートした後に、Unreal Engine でライトマップ用に使用する UV チャンネルのインデックスを変更できます。これを行うには、次のいずれかの方法を実行します。

    • スタティック メッシュ エディタの場合:[Details (詳細)] パネルで、[General Settings (一般設定)] グループ内の [Advanced (詳細設定)] コントロールを展開し、[Light Map Coordinate Index (ライトマップ座標インデックス)] を、使用する UV チャンネルに設定します。

    • Python の場合:次の関数を呼び出します。

      static_mesh.set_editor_property("light_map_coordinate_index", index)

カスタム コリジョン形状

場合によっては、3ds Max でのオブジェクトのカスタム ジオメトリをモデル化して、そのカスタム ジオメトリを Unreal Engine で対応するスタティック メッシュのコリジョン メッシュとして使用することがあります。そうすることで、シーン オブジェクトの表現を、含まれている三角ポリゴンの数を最小限に抑えながら、可能な限り元のシーン オブジェクトのボリュームに近づけることができます。これは、ゲーム エンジンでの物理シミュレーションの動作とパフォーマンスを向上させるうえで役立ちます。

Datasmith でこれを行うには次の 2 つの方法があります。

  • 3ds Max でシーン内の 1 つまたは複数のオブジェクトに [Datasmith Attributes (Datasmith 属性)] モディファイアを割り当て、そのモディファイアを使用して、Unreal Engine でそのコリジョン メッシュとして使用する別のオブジェクトを指定します。詳細は「オブジェクトごとの変換設定」を参照してください。

  • FBX インポータと同じ命名規則を使用して、Datasmith がそのジオメトリを対応するスタティック メッシュ アセットに自動的に割り当てるようにできます。 別のオブジェクトと同じ名前でプレフィックスが UCX_ である凸型ジオメトリ オブジェクトがシーンにある場合、Datasmith はこの UCX_ オブジェクトを他のオブジェクトのコリジョン表現であると見なします。Datasmith はそのプレフィックスが付いていないオブジェクトのみをスタティック メッシュ アセットとしてインポートします。次に、UCX_ プレフィックス付きのオブジェクトのジオメトリを、そのスタティック メッシュ アセットのコリジョン メッシュとして割り当てます。

使用する手法にかかわらず、ユーザーは、完全に閉じた凸型 3D 形状の任意のオブジェクトをコリジョン メッシュとして設定できます。例えば、ボックスは凸型オブジェクトです。次の図では、凸型オブジェクトと非凸型オブジェクトを示しています。

Convex and non-convex examples

さらに、カスタム ジオメトリ オブジェクトのピボット ポイントが、元のオブジェクトのピボット ポイントとボリュームに応じた同じ位置になるようにします。例えば、次の図では、右側にある椅子のピボット ポイントはオブジェクトの下部サーフェスに揃えられていて、ボリュームの中心にあります。そのため、左側にある単純化されたジオメトリ ボリュームのピボット ポイントは、全体的なボリュームに応じた同じ位置に揃えられている必要があります。

Pivot points on custom collision volumes

全体的なボリュームに応じた同じ位置でコリジョン ジオメトリのピボット ポイントを保持していない場合、物理ワールド内でのオブジェクトの表現は、そのオブジェクトのビジュアル エクステントと揃わなくなります。その場合に、予期していない位置でコリジョンが発生することがあります。

レベル ビューポートでコリジョン レンダリングをオンにすることで、カスタム形状が正しくインポートされていることを確認できます。ビューポートのオーバーレイ メニューで [Show (表示)] > [Collision (コリジョン)] を選択します。シーン オブジェクトの上にカスタム コリジョン ボリュームがレンダリングされています。この例では、球形モデルにボックス オブジェクトがカスタム コリジョン ボリュームとして割り当てられています。

頂点カラー

頂点カラーを 3ds Max オブジェクトと関連付けている場合、Unreal Engine で対応するスタティック メッシュ アセットを作成するときに、Datasmith ではその色を保持します。

Unreal Editor でカスタム マテリアルを作成するときに、マテリアル グラフに [Constants (定数)] > [Vertex Color (頂点カラー)] を含めることで、この頂点カラーを使用することもできます。

例えば、下図の左側の画像は、頂点カラーを表示するように設定されている 3ds Max でのオブジェクトを示しています。右側の画像は、その頂点カラーを取得してそれを [Base Color (ベース色)] 出力に直接渡す、単純なカスタム マテリアルを示しています。

3ds Max で表示されている頂点カラー

Unreal Engine で表示される頂点カラー

独自のカスタム マテリアル グラフでは、上記のようにサーフェスに可視色を提供するためだけに、頂点カラーを使用する必要はありません。マテリアル グラフでは、頂点カラーを他のサーフェス プロパティと組み合わせたり、ブレンドしたりすることができます。さらに、リテラル カラー値を渡すために頂点カラーを使用する必要もありません。代わりに、カスタム データ値をソース オブジェクトのジオメトリと関連付けて、特別なビジュアル エフェクトを動作させるために Unreal Editor で作成するカスタム マテリアルにその値を渡すためのメカニズムとして、頂点カラーを使用できます。例えば、頂点カラーを使用して木の枝や葉に重みを割り当て、その重みを使用して、頂点シェーダに適用する風のアニメーション エフェクトの効果を調整できます。

スタティック メッシュ エディタでスタティック メッシュ アセットを開いてツールバーの [Vert Colors (頂点カラー)] トグル ボタンをオンにすることで、頂点カラーを視覚化して、頂点カラーが正しく変換されていることを確認することもできます。

Vert Colors in the Static Mesh Editor Toolbar

Datasmith は 3ds Max の他のメッシュ チャンネル (Vertex AlphaMap Channel ColorSoft Selection Color など) からのデータを変換しません。

Levels of Detail

Datasmith は現時点では、ユーザーが 3ds Max でセットアップしたカスタム LOD をインポートしません。ただし、Unreal Editor で新しい LOD を自動的に生成できます。詳細は「自動 LOD 生成」または「ブループリントまたは Python で LOD を作成する」を参照してください。

Forest Pack と RailClone オブジェクト

Forest PackRailClone は、iToo Software 社が作成した 3ds Max 用のオプションのサードパーティー プラグインであり、ジオメトリック オブジェクトを分散して配置したり、手順通りに配置したりすることで、3ds Max のシーンに多数のジオメトリック オブジェクトを取り入れることができます。これらのプラグインはデザインビジュアリゼーション業界で広く使用されているため、Datasmith では Forest Pack オブジェクトと Railclone オブジェクトに特化した処理を提供しています。

Forest Pack オブジェクトや Railclone オブジェクトが含まれているシーンを Datasmith を使用してエクスポートし、そのシーンを Unreal Engine にインポートする場合は、次のように処理されます。

  • Datasmith が Unreal Engine のレベルで 1 つのアクタを作成し、3ds Max でのオブジェクトの名前に応じた名前を付けます。

  • Datasmith が、そのオブジェクトで扱われているジオメトリのタイプごとに 1 つの Hierarchical Instanced Static Mesh (HISM) コンポーネントをそのアクタ内に作成します。また、プロジェクト コンテンツ内にジオメトリのタイプごとに 1 つのスタティック メッシュ アセットも作成して、そのスタティック メッシュ アセットを参照するように HISM コンポーネントを設定します。 例えば、次の画像は、[World Outliner (アウトライナ)] (1) で選択されている Forest Pack オブジェクトから作成されたアクタと、[Details (詳細)] パネル (2) で選択されているその HISM コンポーネントの 1 つを示しています。また、下部では、[Static Mesh (スタティック メッシュ)] 設定 (3) で選択されている HISM コンポーネントに関連付けられているスタティック メッシュ アセットも確認できます。

    Hierarchical Instanced Static Mesh コンポーネントは、同一のスタティック メッシュの多数のインスタンスをレンダリングするためのきわめて効率的な方法です。Unreal Engine のレンダラは、同一の HISM コンポーネントで管理されているすべてのインスタンスを 1 回の描画呼び出し (実際には、そのスタティック メッシュ アセットに割り当てられているマテリアルごとに 1 回の描画呼び出し) でバッチ処理します。そうすることで、GPU のパフォーマンスやフレーム レートに影響することなくレンダラが処理できるインスタンスの数が増加します。また、HISM コンポーネントは、Unreal Engine のフォリッジ システムをサポートするために内部で使用されているのと同じテクノロジーです。

  • 各 HISM コンポーネント内で、Datasmith は 3ds Max のシーンで表示されるジオメトリの各インスタンスと同じ位置に同じ回転でインスタンスを追加します。

このプロセスによって、Unreal Engine での結果は、シーン階層 (そのすべてのインスタンスを内部的に管理している 1 つの Forest Pack オブジェクトまたは RailClone オブジェクト) および表示結果の両方が元の 3ds Max のシーンとほぼ一致します。例えば、以下の左側の画像は、2 つの異なるタイプのオブジェクトを分散配置する 1 つの Forest Pack オブジェクトを含む 3ds Max のシーンを表示しています。右側の画像は、そのシーンを Unreal Engine にインポートした表示結果を表示しています。

3ds Mas の Forest Pack

Unreal Engine

Forest Pack オブジェクトまたは RailClone オブジェクトを使用して、複雑なジオメトリを含むオブジェクト (木など) を管理することもできます。ユーザーは、このようなオブジェクトを Unreal Engine では、リアルタイムでより効率的に実行されるより単純なジオメトリに置き換えようと考えるでしょう。 その場合、3ds Max で Forest Pack オブジェクトまたは RailClone オブジェクトに [Datasmith Attributes (Datasmith 属性)] モディファイアを適用して、そのジオメトリのバウンディング ボックスのみをエクスポートするように設定できます。その Forest Pack アクタまたは RailClone アクタで管理されているすべてのインスタンスでは、単純化されたバウンディング ボリュームが使用されます。次に例を示します。 datasmith-max-forestpack-bbox.png [Datasmith Attributes (Datasmith 属性)] モディファイアの使用方法の詳細については、「オブジェクトごとの変換設定」を参照してください。 インポートした後に、HISM コンポーネントで [Static Mesh (スタティック メッシュ)] 設定を 1 回変更することによって、Unreal Engine のレベル内のすべてのインスタンスで新しいスタティック メッシュ アセットが使用されるように更新できます。

ライティングとレンダリング環境

3ds Max では、Datasmith がサポートしている他のサードパーティ ソフトウェアの多くより、はるかに詳細で高度なライティングとレンダリングの機能が提供されています。このセクションでは、Datasmith が 3ds Max のライティングとレンダリング環境を Unreal Engine に取り込む特別な方法について説明します。

ライト

Datasmith では、Unreal のレベルでのライティングを、ユーザーが 3ds Max でセットアップしたライティングにできる限り近づけるために、3ds Max のシーン内のライトに関する豊富な情報を維持します。

Datasmith では 3ds Max の幅広いライト タイプ (標準、フォトメトリック、V-Ray、Corona など) を変換します。各ライトの以下の情報が Unreal に取り込まれます。

  • 3D 空間での位置、方向、形状、およびサイズ。

  • ライト タイプ (ポイント ライト、スポット ライトなど)。

  • 強度、単位、ランプ色、温度、およびフィルター色。

  • レンダリング形状の可視性。

  • IES ライト プロファイル。

3ds Max

Unreal Engine

上部:IES プロファイル付きでケルビン温度がスケーリングされているポイント ライト。 中央:IES プロファイル付きでライトの強度がスケーリングされているポイント ライト。 下部:フィルター色付きのポイント ライト。

それぞれのライティング システムにより、少しずつ異なる結果が生成されます。Datasmith はライトの配置、タイプ、およびプロパティをできる限り近い状態で Unreal Engine に取り込みます。ただし、期待どおりの結果を得るため、およびレベルのライティングのランタイム時のパフォーマンスを最適化するため、インポート後にレベルのライティングの調整が必要になる場合があります。

以下は、Datasmith を使用するときの 3ds Max と Unreal Engine の顕著な違いです。

  • Unreal Engine は現時点ではライト用のインスタンスをサポートしていません。3ds Max のシーンでインスタンス化されている各ライトに対して、Datasmith は Unreal Engine のレベルで個別の Light アクタを作成します。

  • 3ds Max の標準ライトはユニットレスであり、Unreal Engine ではサポートされていないカスタム減衰パラメータを使用できます。

  • 一部の V-Ray 形状 (垂直円柱ライト、回転楕円体ライト、カスタム メッシュ ライト) はサポートされていません。

  • エリア ライトは専用のブループリント クラスを使用して処理されます。詳細は「Datasmith のインポート プロセスについて」を参照してください。

露出

Datasmith では 3ds Max から Unreal Engine に取り込んだライトの強度を維持します。ただし、ライトの強度だけでは、シーンの適切なレンダリングを保証するには不十分です。Unreal Engine のレンダラでは、シーンの輝度 (最終的なレンダリングで、そのシーンがどの程度明るくまたは暗く見えるか) を判断するために、コンテキストでのライトの強度を解釈する必要があります。このコンテキストの一部は、カメラまたはビューの 露出 によって提供されます。露出は、最終的な画像がシーン内のライトの強度に対してどの程度の感度を持つかを制御する一連の物理特性です。

シーン内のライトの強度によって、ユーザーが期待する見かけ上の輝度で Unreal Engine 内のレンダリング済み画像が生成されるようにするため、Datasmith では 3ds Max のいくつかの異なる露出値も変換します。詳細については、次のセクションを参照してください。

物理カメラの露出設定

3ds Max のシーンに物理カメラが含まれている場合、Datasmith ではそのカメラの露出とホワイト バランスの設定を維持し、Unreal のレベルでその物理カメラを表す CineCameraActor に引き継ぎます。

それぞれのカメラに対して、Datasmith は [WhiteBalance (ホワイト バランス)] > [Temp (温度)][Shutter Speed (シャッター速度)][ISO][Aperture (f-stop) (絞り (F 値))] 設定を、3ds Max での同等の設定に一致するように設定します。また、[Exposure (露出)] > [Metering Mode (測光モード)][Manual (手動)] に設定して自動露出を無効にします。

3ds Max での物理カメラの露出設定

Unreal Engine での CineCameraActor の露出設定

このカメラを通してレベルを表示した場合の結果で、ライト レベルが 3ds Max でレンダリングしたときの結果にほぼ一致していることが分かります。

Unreal Engine CineCameraActor

Unreal Engine CineCameraActor

グローバル露出設定

3ds Max の[Exposure Control (露出コントロール)] 設定で [Physical Camera Exposure Control (物理カメラの露出コントロール)] または [VRay Exposure Control (V-Ray の露出コントロール)] を使用している場合、Datasmith では Datasmith のシーンにポストプロセス ボリュームを作成します。このポストプロセス ボリュームにより、これらのグローバル露出設定が Unreal Engine のレベル全体に適用されます。

物理カメラと同様に、Datasmith はポストプロセス ボリュームの [WhiteBalance (ホワイト バランス)] > [Temp (温度)][Shutter Speed (シャッター速度)][ISO][Aperture (f-stop) (絞り (F 値))] 設定を、3ds Max での同等の設定に一致するように設定します。また、[Exposure (露出)] > [Metering Mode (測光モード)][Manual (手動)] に設定して自動露出を無効にします。

これらのコントロールは 3ds Max の [Environment and Effects (環境とエフェクト)] ダイアログにあります。このダイアログを開くには、メイン メニューで [Rendering (レンダリング)] > [Exposure Control... (露出コントロール)] を選択します。

3ds Max での物理カメラの露出コントロール

3ds Max での V-Ray の露出コントロール

Unreal Engine での PostProcessVolume の露出設定

Unreal Editor のビューポートでデフォルトのパースペクティブ カメラを使用してレベルを表示した場合の結果で、ライト強度が 3ds Max でのレンダリング結果にほぼ一致していることが分かります。

Global exposure in|3ds Max perspective camera

Post Process Volume|exposure in Unreal Engine

3ds Max では、グローバル ホワイト バランスと露出の設定を、物理カメラに割り当てられている設定と一致させる必要はありません。この場合、パースペクティブ カメラの視点でシーンをレンダリングすると、特定の物理カメラに割り当てられている設定ではなくグローバル露出設定を使用してレンダリングされます。 Unreal Engine にインポートした後でも同様です。レベルのビューポートのデフォルトのカメラを通したシーンの表示では、(上図のような) グローバル露出設定が使用されます。ただし、CineCameraActor を通したシーンの表示では、3ds Max での対応する物理カメラに割り当てられている露出設定が使用されます。

自動露出

Unreal Engine には、カメラに届くライトの量をモニタリングして、最終的な画像が適切な輝度レベルで表示されるように露出を自動的に調整する、ビルトイン自動露出システムがあります。このシステムは Unreal Engine ではデフォルトでアクティブになっています。Datasmith で 3ds Max のシーンから取り込むことができる物理カメラまたはグローバル露出設定が見つからない場合、プロジェクトではこのデフォルトの自動露出システムが使用されます。

3ds Max のシーンに物理カメラまたはグローバル露出設定が含まれていないときに自動露出に戻す場合は、CineCameraActor または PostProcessVolume[Metering Mode (測光モード)] 設定の値を [Manual (手動)] から [Auto Exposure (自動露出)] の選択肢のいずれか (デフォルトは通常 [Auto Exposure Histogram (自動露出ヒストグラム)]) に変更するだけで済みます。

  • CineCameraActor では、この設定は [Post Process (ポストプロセス)] > [Lens (レンズ)] > [Exposure (露出)] > [Metering Mode (測光モード)] 内にあります。

  • PostProcessVolume では、この設定は [Lens (レンズ)] > [Exposure (露出)] > [Metering Mode (測光モード)] 内にあります。

明暗順応 (自動露出)」も参照してください。

自動露出を使用していてシーンが露光過多または露光不足で表示される場合、自動露出システムがデフォルトの感度で処理するにはシーン内のライティングが明るすぎるか暗すぎることが考えられます。これを修正するには、メイン メニューで [Edit (編集)] > [Project Settings (プロジェクト設定)] を選択し、[Engine (エンジン)] > [Rendering (レンダリング)] セクションに移動します。[Default Settings (デフォルト設定)] カテゴリにある [Extend default luminance range in Auto Exposure settings (自動露出設定のデフォルトの輝度範囲を拡張する)] オプションがオンになっていることを確認します。

カメラ

Datasmith では、3ds Max のシーンで見つけたすべてのカメラに対して、Unreal Engine での Datasmith のシーンに、3D 空間での同じ位置と同じ回転状態で CineCameraActor を作成します。Datasmith はそのカメラの焦点プロパティを維持しようとします。この目的は、そのカメラを通してレベルを表示した結果を、3ds Max でそのカメラからのシーンをレンダリングした結果にできる限り近づけることです。

さらに、3ds Max でのカメラでターゲットがセットアップされている場合、Datasmith ではそのターゲット アクタを追跡するように CineCameraActor をセットアップします。3ds Max と同様に、Unreal Engine のレベルでターゲット アクタを移動させると、CineCameraActor はターゲット アクタを中心に保つように自動的に回転します。

たとえば、下図では PhysCamera001 という名前の CineCameraActor が、PhysCamera001_Target アクタに焦点を当てるようにセットアップされています。

Look at target for a CineCameraActor

Datasmith が物理カメラの露出設定をどのように変換するかについての詳細は、上記の「物理カメラの露出設定」 を参照してください。

マテリアル

3ds Max のシーン内の各マテリアルに対して、Datasmith では Unreal Engine のプロジェクトに新しいマテリアル インスタンスを作成します。これらの各 Material アセットは親マテリアルのインスタンスです。Datasmith ではまたプロジェクトの「Materials/Master」フォルダにこの親マテリアルのインスタンスも作成します。Datasmith では、Unreal Engine の物理ベース レンダラで 3ds Max でのレンダリング結果と同等の結果を生成する目的で、それぞれの親マテリアルのマテリアル グラフを作成します。

独自の親が存在しないインスタンス化マテリアルもあります。可能であれば、2 つの異なるマテリアル インスタンスが同じマテリアル グラフを共有している場合、Datasmith ではその両方のマテリアル インスタンスに対して 1 つの親マテリアルを使用しようとします。

1 つのシェーディング モデルと 1 つの比較的単純なグラフを持つマテリアルは、適切に変換されます。例えば、Datasmith は以下の 3ds Max マテリアルを親マテリアルのグラフに比較的スムーズに変換します。

Simple material in 3ds Max

親マテリアル アセットを開くと、上記のような単純なマテリアルであっても、そのグラフが 3ds Max で始めたときのグラフと少し違っていることがよくあることに気付きます。これはシェーディング モデル間の変換での正常な結果です。Datasmith では、追加の接続や定数をグラフに挿入することになっても、できる限り近い表示結果を維持しようとします。

ただし、3ds Max ではマテリアルに対して複数のさまざまなシェーディング モデル (V-Ray、Corona、Arnold、Mental Ray など) がサポートされています。各シェーディング モデルは個別のソフトウェアであり、互いに整合しているとは限らない独自の機能を備えています。場合によっては、Datasmith でそのような機能を、Unreal Engine で提供されている類似の機能に変換できることがあります。

ただし、Datasmith ではこれらのシェーディング モデルのかなり難解な機能には対処できないことがあります。次の例のような、複数の出力シェーダが混在する複雑なグラフを持つマテリアルに対しては、Unreal での同等な結果を生成できません。

この場合、インポートした後に、Unreal Editor でこれらのマテリアルを調整または置き換えるために追加作業を行う必要があります。

Datasmith では 3ds Max からの Autodesk マテリアル および Arnold マテリアル/シェーダ を変換しません。これらは、通常、Revit のシーンを 3ds Max にインポートした場合にシーンで使用されるマテリアルです。これらのマテリアルは、Datasmith にエクスポートする前に 3ds Max で置き換えるか、またはシーンをインポートした後に Unreal Editor で置き換える必要があります。

メタデータ

[Object Properties (オブジェクト プロパティ)] ウィンドウの [User Defined (ユーザー定義)] タブで 3ds Max オブジェクトにメタデータを追加します。

Metadata in 3ds Max User Defined Properties

3ds Max でメッシュ用のこのパネルを表示するには、次の手順を実行します。

  1. アウトライナまたはビューポートでメッシュを選択します。

  2. 右クリックして、コンテキスト メニューから [Properties (プロパティ)] または [Object Properties (オブジェクト プロパティ)] を選択するか、メイン メニューから [Edit (編集)] > [Properties (プロパティ)] を選択します。

  3. 上図のように、key = value ペアの形式でこのパネルにメタデータを入力します。

    等号 (=) の両側に必ず半角スペースを 1 つ入れてください。このスペースがない場合、Datasmith がメタデータを認識できず、予期したとおりにメタデータがインポートされません。

MAXScript を使用して ユーザー定義のプロパティをセットアップすることもできます。

元は Revit で作成され、3ds Max にインポートされたモデルの場合、3ds Max インポータにより、ユーザー定義プロパティにモデルの BIM 情報がすでに設定されています。

変換に関する注記と警告

Datasmith では 3ds Max のシーンのエクスポートが完了したときに、プロセス中に発生したことに関する注記、問題点、警告、およびエラーが一覧表示されているポップアップ ウィンドウを表示します。

3ds Max conversion notes and warnings

このウィンドウの目的は、厳密にユーザーが期待するとおりに Unreal に取り込まれなかった可能性のあるシーンの要素についてユーザーに通知することです。

  • いくつかの行 (上記で、見つからなかったビットマップに関する行など) はソース シーンでの問題点を表しています。再度 Datasmith にエクスポートする前に、これらの問題点を 3ds Max で修正することもできます。

  • その他の行は、Datasmith または Unreal Engine のいずれかでサポートされていない、3ds Max のシーン内の要素、またはユーザーが想定していない方法で Datasmith が変換する必要があったことについてユーザーに通知しています。

Datasmith のシーンを Unreal Editor にインポートした後に、変換に関して解決する必要がある問題を検索する場合は、[Output Warnings (出力の警告)] ウィンドウから始めることをお勧めします。

このページは Unreal Engine の前のバージョン用です。現在リリースされている Unreal Engine 5.2 に対して更新は行われていません。
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル