Language:
The translation of this page is out of date. Please see the English version for the latest version of the page.

Datasmith で 3ds Max シーンを使用する

3ds Max の V-Ray

UE4

画像提供:Litrix.

Datasmith を使用して Autodesk 3ds Max から Unreal Editor にシーンを取り込むにあたり、Datasmith によるシーンの処理方法について、 Datasmith の概要NEW!  および Datasmith インポート プロセスについてNEW! で説明されている基本事項以外にも何点か追加で知っておくべきことがあります。

3ds Max のワークフロー

Datasmith は 3ds Max に対して Export Plugin のワークフローを使用するので、Datasmith を使用して 3ds Max のコンテンツを Unreal に取り込むには以下を実行してください。

1.3ds Max 用のプラグインをインストールします。 3ds Max 用 Datasmith Exporter プラグインをインストールするNEW! を参照してください。 2.3ds Max のコンテンツを 「.udatasmith」 ファイルにエクスポートします。3ds Max から Datasmith のコンテンツをエクスポートするNEW! を参照してください。 3.Datasmith インポータを使用して、エクスポートした 「.udatasmith」 ファイルを Unreal Editor に取り込みます。Unreal Engine 4 に Datasmith コンテンツをインポートするNEW! を参照してください。

インスタンス

Datasmith が 3ds Max のシーンに同一マスター オブジェクトの複数インスタンスを検出すると、そのオブジェクト用のスタティック メッシュ アセットを 1 つのみ作成して、そのスタティック メッシュの複数のインスタンスを Unreal のレベルに配置します。通常、これによりランタイム メモリの要件とプロジェクトのパフォーマンスにおいて良い結果がもたらされます。また、スタティック メッシュの数を増加させないためコンテンツの管理が簡素化されます。

この機能を可能な限り活用して、シーンに繰り返し登場するエレメント (窓、ドア、椅子など) すべてに対して 3ds Max のインスタンスを使用することを推奨します。

ピボット ポイント

3ds Max では、オブジェクトが同一マスターオブジェクトのインスタンスであっても、シーンのオブジェクトそれぞれにカスタムのピボット ポイントの設定が可能です。Datasmith がオブジェクトを Unreal に変換する際、Datasmith は次のようにピボット ポイントを処理します。

  • 3ds Max の すべての インスタンスが同じカスタム ピボット ポイントを持つ場合、Datasmith によってそのピボット ポイントが、Datasmith が作成するスタティック メッシュ アセットのピボット位置として設定されます。Datasmith が Unreal Engine のレベルでこのオブジェクト向けに作成したスタティック メッシュ アクタを回転させると、アクタは想定通りにカスタム ピボット位置の周りを回転します。

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

例えば、左のティーポットには、蓋の上部のにカスタム ピボットがあります。

インスタンス化されたオブジェクトのカスタム ピボット ポイント

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

カスタム ピボットを表す親アクタ

Unreal Engine のレベルで親アクタを移動、回転、スケーリングして、モデルを想定どおりに変化させることができます。この場合に気を付けなければならないことは、モデルはスタティック メッシュ アクタそれ自体ではなく、親アクタの コンポーネント であるということです。例えば上記の例で、右のティーポットは、スタティック メッシュ コンポーネントを持つアクタではなく、レベル内でスタティック メッシュ アクタとしてインスタンス化されたものです。

Datasmith では、異なるピボット ポイントを使用し、 さらに 不均等なスケールを持つ 3ds Max のオブジェクトのインスタンスの配置はサポートされません。そのようなインスタンスには、エクスポート前に Reset XForm Utility を使用してください。

ライト

Datasmith では、Unreal のレベルでのライティングを可能な限り 3ds Max で設定したライティングに近づけるために、3ds Max シーン内のライティングに関する詳細な情報が維持されます。

Datasmith では、標準ライト、フォトメトリック、V-Ray、Corona など、多様な 3ds Max のライト タイプを変換できます。各ライトにおいて、以下のものが Unreal に取り込まれます。

  • 3D 空間における位置、方向、形状とサイズ

  • ライトの種類 (ポイント ライトかスポットライトかなど)

  • 強さ、ユニット、ランプの色、温度、フィルタの色

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

  • IES ライト プロファイル

3ds Max

Unreal Engine 4

  • 上段:IES プロファイルを持ち、ケルビン温度でスケーリングしたポイント ライト。 中段:IES プロファイルを持ち、ライティングの強度でスケーリングしたポイント ライト。 下段:フィルタ カラーのスポット ライト。

ただし、ライティング システムごとに出力される結果が若干異なります。Datasmith はライトの配置、種類、プロパティを可能な限り近似させて Unreal Engine に取り込みますが、ライトを想定通りに表示させ、さらにランタイム時にレベルでのライティング パフォーマンスを最適化するためには、インポート後にレベルのライティングを調整しなければならないことが多々あります。

Datasmith の使用時に注意すべき 3ds Max と Unreal の相違点を以下にいくつか挙げます。

  • Datasmith では、現時点でライトのインスタンスをサポートしていない。そのため、3ds Max のインスタンス化したライトごとに、別個のライト アクタをレベルに作成します。

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

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

  • エリア ライトは特別な処理がされます。 (下記参照)

エリア、プレーンおよびボリューム ライト

3ds Max は 2D 形状や 3D ボリュームから発せられるライトの一部をサポートしますが、Unreal Engine にはこれらに厳密に相当するものはありません。これには、Mental Ray エリアのライト、V-Ray の平面、ディスク、ドームおよび球体のライトなどがあります。Datasmith がこれらのエリア ライトのいずれか 1 つを 3ds Max からインポートする際は、 DatasmithAreaLightMesh と呼ばれる、カスタム作成の特別なブループリント クラスを使用して、ライトの動作を模倣します。

エリア ライト オフ

エリア ライト オン

基本的に、このブループリントでは、自動生成された発光サーフェスとポイント ライトまたはスポット ライトをペアにします。

  • 発光サーフェスの役割は、レベルの 3D 空間および他のサーフェスからの反射における、可視性のある物理的なライトの広がりを表現することにあります。 このサーフェスからの発光の形状、サイズ、色、強度を制御できます。制御するには、ビューポートまたは [World Outliner (ワールド アウトライナー)] で DatasmithActorLightMesh アクタを選択して、 [Details (詳細)] パネルの [Appearance (外観)] コントロールを使用します。 発光するサーフェスの形状を制御

  • ポイント ライトまたはスポット ライトの役割はシーンに実際の光を放つことです。 ライトは DatasmithActorLightMesh アクタでコンポーネントとして設定されます。プロパティを設定するには、ビューポートまたは [World Outliner (ワールド アウトライナー)] で DatasmithActorLightMesh アクタを選択して、 [Details (詳細)] パネル上部のシーンのツリーで [Point Light Component (ポイント ライト コンポーネント)] または [Spot Light Component (スポット ライト コンポーネント)] を選択します。 他のサーフェスで発光するライトを制御
    ライトのプロパティの詳細については、 ポイントライト  および スポットライト を参照してください。

この設定によりシーンでライトが可視化され、周辺のオブジェクトを照らします。ただし、オフラインのレンダリングと異なり、DatasmithAreaLightMesh がレベルに放射する実際の光は、サーフェス全域からではなく一点から発光します。

ライトマスを使用してライティングをベイクするかどうか、または動的なライティングを使用するかどうかにかかわらず、現時点では、発光するサーフェスはシーンに対して光をまったく出力しません。実際には、ポイント ライトまたはスポット ライト コンポーネントのみがレベル内にある周辺のオブジェクトを照らします。

マテリアル

Datasmith は、同等の結果を Unreal Engine の物理ベースのレンダラーで出力させるために、3ds Max のシーン内の各マテリアルについて、同等のシェーダ グラフを含む新しいマテリアルを Unreal Engine プロジェクトに作成しようと試みます。

単一のシェーディング モデルと比較的シンプルなグラフを持つマテリアルの変換は、次の 3ds Max マテリアルの変換のようにスムーズに行われます。

3ds Max の単純なマテリアル

インポートしたマテリアル アセットを開くと、上のようなシンプルなマテリアルであっても、元の 3ds Max のグラフと若干異なっていることが頻繁にありますが、これはシェーディング モデル間で変換を行ったときの正常な結果です。Datasmith は、追加の接続や定数をグラフに挿入する必要が生じる場合でも、視覚的出力を可能な限り近似して保持しようとします。

したがって、3ds Max はマテリアルに対して V-Ray、Corona、Arnold、Mental Ray などの多様なシェーディング モデルをサポートします。各シェーディング モデルは、他には必ずしも備わっているとは限らない固有の機能を持つ 1 つの独立したソフトウェアです。Datasmith では、これらの機能を Unreal Engine 提供の類似した機能に変換できることがあります。例えば、3ds Max マテリアルで使用される バンプ マップ は、Datasmith では 法線マップ に自動変換されます。

ただし、Datasmith では、より複雑なシェーディング モデルの機能は処理できないこともあります。以下の例のような複数の出力シェーダが混在する複雑なグラフを持つマテリアルでは、Unreal で同等の結果を出力できないことがあります。

3ds Max の複雑なマテリアル

このような場合は、これらのマテリアルの調整や入れ替えなど、インポート後に Unreal Editor での追加作業が必要になります。

Datasmith では 3ds Max からの Autodesk マテリアル は変換されません。通常、これらは Revit シーンが 3ds Max にインポートされた場合にシーンで使用されるマテリアルです。これらのマテリアルは、Datasmith へのエクスポート前に 3ds Max で、またはシーンのインポート後に Unreal Editor で入れ替える必要があります。

UV チャンネル

Datasmith は、Unreal に取り込む各スタティック メッシュに、スタティック ライティングをライトマップ テクスチャに構築する際にライトマスで使用可能な一連の UV が含まれていることを常に確認します。Datasmith ファイルをインポートすると、Unreal Engine は UV チャンネルを自動作成し、ライトマップのベイク時にこの新しいチャンネルを使用するよう各スタティック メッシュ アセットを設定します。

ただし、独自のカスタム ライトマップ UV を 3ds Max で手動作成した方がよいこともあります。こうすることで、継ぎ目の配置とジオメトリのトライアングルに割り当てられた相対空間に対して、アーティスティックな面でより詳細な制御が可能になります。その際は、使用する UV が 3ds Max から Unreal にどのように取り込まれるかを理解しておく必要があります。

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

しかし、3ds Max では 1 つのオブジェクトあたり最大 99 の UV チャンネルを持てるので、Datasmith は 3ds Max で昇順で検出される最初の 6 チャンネルを Unreal に取り込みます。

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

3ds Max と Unreal での UV チャネルの番号付け

以下の表では、3ds Max と Unreal の間で UV チャンネルの番号がどのように対応するかを示します。

3DS Max の UV チャンネル

変換後の Unreal の UV チャンネル

注記

1

0

3ds Max の UV チャンネル 1 は Unreal の UV チャンネル 0 に割り当てられます。

2

1

3ds Max の UV チャンネル 2 は Unreal の UV チャンネル 1 に割り当てられます。

3

2

3ds Max のUV チャンネル 3 は Unreal の UV チャンネル 2 に割り当てられます。

10

3

3ds Max の UV チャンネル 10 は Unreal の UV チャンネル 3 に割り当てられます。

99

4

3ds Max の UV チャンネル 99 は Unreal の UV チャンネル 4 に割り当てられます。

--

5

Unreal の UV チャンネル 5 はインポート中に生成され、Datasmith のシーンに含まれるジオメトリの自動アンラップを作成します。UV チャンネル 6 が使用するライトマップ UV 生成の基礎になります。

--

6

Unreal の UV チャンネル 6 は UV チャンネル 5 に基づいて生成され、スタティック メッシュ ライトマップ解像度の値として使用される、Datasmith のインポート オプションに基づいて UV チャートを適切に形成してパックします。

現時点では、インポート時に自動ライトマップ UV が作成されないようにすることと、自動生成されたライトマップ UV をインポート後に Unreal のスタティック メッシュで使用できないようにすることはできません。インポートしたスタティック メッシュに 3ds Max からインポートした既存の UV チャンネルを使用させるには、各スタティック メッシュ アセットのライトマップで使用される UV チャネルを変更する必要があります。

このためには次の操作を行います。

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

  • Python で、static_mesh.set_editor_property("light_map_coordinate_index", index) を呼び出す。

カスタム コリジョン形状

3ds Max のオブジェクト向けにカスタムの物理コリジョン ジオメトリをモデリングする場合に、特殊な命名規則を使用して、Datasmith でそのジオメトリを対応するスタティック メッシュ アセットに自動的に割り当てることができます。Datasmith は、FBX インポータと同じ命名規則を使用して、これらの特殊なコリジョン メッシュを認識して割り当てを行います。

  • 別のオブジェクトと同名ですがそれに UCX_ プレフィックスが付加されている凸型ジオメトリ オブジェクトがシーン内に存在する場合、Datasmith はこの UCX_ オブジェクトを別のオブジェクトのコリジョンを表すものとして解釈します。その別のオブジェクトのみがスタティック メッシュ アセットとしてインポートされ、 UCX_ プレフィックスが付いたオブジェクトはそのスタティック メッシュ アセットのコリジョン メッシュとして割り当てられます。 コリジョン メッシュとして設定されたオブジェクトは、完全にクローズした凸型の 3D 形状とすることができます。例えば、箱は凸型オブジェクトになります。以下に凸型と、凸型ではないものを示します。 凸型と非凸型の例

レベルオブディテール (LOD)

現時点では、Datasmith では 3ds Max で設定したカスタムの LOD をインポートできませんが、Unreal Editor で LOD を自動生成することができます。詳細については、 LOD の自動生成をセットアップする または ブループリントおよび Python で LOD を作成するNEW! を参照してください。

変換に関する注意事項と警告

Datasmith が 3ds Max のシーンをエクスポートし終えると、処理中に発生した注意事項、問題、警告またはエラーのリストを含むウィンドウが表示されます。

3ds Max の変換に関する注意事項と警告

このウィンドウの目的は、Unreal に想定通りに取り込まれなかった可能性のある、シーンのエレメントについて通知することです。

  • これらの行の一部、例えば上の画像内の上部に表示されている「不明なビットマップ」についての行などはソース シーンに問題があることを示しており、この場合は 3ds Max で修正してから Datasmith に再度エクスポートしなければなりません。

  • それ以外は、3ds Max のシーン内で Datasmith または Unreal Engine のいずれかがサポートしないものや、想定していなかった方法による Datasmith での変換が必要であったものについて通知しています。

Datasmith のシーンを Unreal Editor にインポートした後に、解決すべき変換の問題を見つける場合は、まずこのリストのアイテムを確認してください。