3ds Max シーンで Datasmith 属性 モディファイヤをオブジェクトに適用すると、Datasmith が個々のシーン オブジェクトを 3ds Max から Unreal Engine に変換する方法をカスタマイズできます。
以下を行うことができます。
- Unreal Engine で作成するライトマップに使用する UV チャンネルのインデックスを指定する。「ライトマップ UV インデックスを指定する」を参照。
- シーン内のオブジェクトに対してカスタム コリジョン ジオメトリを割り当てる。「カスタム コリジョン ボリュームを設定する」を参照。
- オブジェクトを、ジオメトリ全体ではなく単純化バウンディング ボックスとしてエクスポートする。「バウンディング ボックスのみをエクスポートする」を参照。
Datasmith 属性モディファイヤを適用する
3ds Max で、リボンまたは [Modify (修正)] パネルから Datasmith 属性モディファイヤを適用します。
デフォルトでは、モディファイヤは、「How Datasmith Translates 3ds Max Content (Datasmith による 3ds Max コンテンツの変換方法)」で説明されているエクスポート動作を変更しません。そのデフォルトの動作をカスタマイズするには、モディファイヤの設定を変更する必要があります。
3ds Max リボンからの適用
3ds Max シーンで Datasmith 属性モディファイヤをオブジェクトに適用する最も簡単な方法は 3ds Max リボンから行う方法です。
- エクスポート設定をカスタマイズする 1 つ以上のオブジェクトを選択します。
- 3ds Max リボンの [Datasmith] タブで、[Tools (ツール)] パネルから [Add Datasmith Attributes Modifier (Datasmith 属性モディファイヤを追加)] を選択します。
[Modify] パネルからの適用
3ds Max で他の種類のモディファイヤを適用するときとまったく同じ方法で、Datasmith 属性モディファイヤを適用することもできます。詳細については、3ds Max ドキュメントの「モディファイヤ」を参照してください。
- エクスポート設定をカスタマイズする 1 つ以上のオブジェクトを選択します。
- [Modify] パネルを開きます。
- [Modifier List (モディファイヤ リスト)] ドロップダウン メニューで、[OBJECT-SPACE MODIFIERS (オブジェクト空間モディファイヤ)] > [Datasmith Attributes (Datasmith 属性)] を見つけます。
ライトマップ UV インデックスを指定する
デフォルトでは、Datasmith はシーン内の各ジオメトリ オブジェクトに対して 2 つの新しい UV チャンネルを作成します (「How Datasmith Translates 3ds Max Content (Datasmith による 3ds Max コンテンツの変換方法)」の「UV チャンネル」を参照)。作成されるチャンネルの 1 つはライトマップ UV で、事前計算されたライティングが格納されます。それによって、すべてのオブジェクトで Unreal Engine の スタティック ライティングおよび 固定 ライティングとの互換性が確保されます。
3ds Max ですでにオブジェクトのライトマップ UV を作成している場合は、代わりにそのライトマップ UV を使用することができます。Datasmith 属性モディファイヤを使用すると、3ds Max で作成したライトマップ UV をオブジェクトで使用することができます。この場合は、Unreal Engine にシーンをインポートしても、Datasmith によって追加の UV は生成されません。
ライトマップ UV インデックスを指定するには、次の手順を実行します。
- 3ds Max で、ライトマップ UV を作成したオブジェクトを選択します。
- Datasmith 属性モディファイヤを適用します (「Datasmith 属性モディファイヤを適用する」を参照)。
- Datasmith 属性モディファイヤの設定で、以下を実行します。
- [Lightmap UVs (ライトマップ UV)] を [Specify Lightmap Channel (ライトマップ チャンネルを指定)] に設定する。
- [Map Channel (マップ チャンネル)] を、選択されているオブジェクトで事前計算されたライティングに使用させたい UV チャンネルのインデックスに設定する。
シーンを Unreal と同期するか、エクスポートして Unreal Engine にインポートすると、Datasmith 属性モディファイヤが適用されたオブジェクトが、指定したマップ チャンネルを使用します。Datasmith は新しい UV チャンネルを一切作成しません。
Unreal Engine の UV の詳細については、「スタティックメッシュでの UV チャンネルの使用」を参照してください。
Unreal Engine で UV インデックスを検証する
Unreal Engine が正しいライトマップ UV インデックス設定を使用していることを確認するには、以下の手順を実行します。
- コンテンツ ブラウザ で、3ds Max でライトマップ UV を作成したオブジェクトの 1 つに対応する スタティックメッシュ アセット を見つけます。
- そのアセットをダブルクリックして、スタティックメッシュ エディタ で開きます。
- [Details (詳細)] パネルで、[General Settings (一般設定)] > [Light Map Coordinate Index (ライトマップ座標インデックス)] を見つけます。この値は、3ds Max で特定した UV チャンネルに一致している必要があります。
[Light Map Coordinate Index] 設定に示されているインデックス番号は、そのオブジェクトを Unreal Engine にインポートするときに Datasmith が UV チャンネルを再インデックス付けする方法によっては、ユーザーが Datasmith 属性モディファイヤで設定した番号と一致していないことがあります。
インデックスで、ユーザーが想定している UV レイアウトが参照されていることを確認するため、スタティックメッシュ エディタのライトマップを表示することができます。
- スタティックメッシュ エディタ ツールバーから、[UV] > [UV INDEX NUMBER (UV インデックス番号)] を選択します。UV インデックス番号は [Light Map Coordinate Index] 設定の番号です。
スタティックメッシュ エディタでは、ビューポートの左下にライトマップが表示されます。
カスタム コリジョン ボリュームを設定する
Datasmith 属性モディファイヤを使用して、Unreal Engine で、他のシーン オブジェクトに対するコリジョン メッシュとして使用されるオブジェクトを指定できます。コリジョン メッシュ オブジェクトは完全に凸型である必要があり、そのピボットはそのボリュームを基準として元のオブジェクトと同じ位置にある必要があります。詳細については、「How Datasmith Translates 3ds Max Content (Datasmith による 3ds Max コンテンツの変換方法) 」の「カスタム コリジョンの形状」を参照してください。
カスタム コリジョン ボリュームを設定するには、次の手順を実行します。
- 3ds Max で、カスタム コリジョン メッシュを設定したいオブジェクトを選択します。
- Datasmith 属性モディファイヤを適用します (「Datasmith 属性モディファイヤを適用する」を参照)。
- Datasmith 属性モディファイヤの設定で、以下を実行します。
- [Use Custom Collision Mesh (カスタム コリジョン メッシュを使用)] を有効にする。
- [Pick Geometric Object (ジオメトリ オブジェクトを選択)] をクリックする。
- 3ds Max の ビューポート または [Outliner (アウトライナー)] パネル で、コリジョン メッシュとして機能させるオブジェクトを選択する。
シーンを Unreal Editor に同期または再インポートすると、Datasmith 属性モディファイヤを割り当てたオブジェクトのコリジョン メッシュ オブジェクトの形状に新しいコリジョン ボリュームが追加されます。
バウンディング ボックスのみをエクスポートする
Unreal Engine や 3ds Max で、同じシーン オブジェクトに対して異なるジオメトリを使用する必要がある場合があります。たとえば、3ds Max シーンにオフライン レンダリングで使用している複雑なジオメトリや非常に緻密なジオメトリが含まれている場合、より効率的にリアルタイムで実行されるため、Unreal Engine では複雑度の低いバージョンのジオメトリを使用したいとします。
Datasmith 属性モディファイヤを使用すると、シーンのエクスポート時に、ジオメトリを簡略化した表現に置き換えたいオブジェクトを特定できます。ジオメトリ全体をエクスポートするのではなく、各オブジェクトの 3D バウンディング ボックスに基づいて、Datasmith がそのオブジェクトの新しい軽量のジオメトリ表現を作成します。
シーンを Unreal Engine に同期またはインポートすると、Datasmith 属性モディファイヤでマークしたシーン オブジェクトの元のジオメトリは、シンプルなグレーのバウンディング ボリュームに置き換わります。これらは、元のオブジェクトと名前と位置が同じです。
選択したオブジェクトのバウンディング ボックス表現をエクスポートするには、次の手順を実行します。
- 3ds Max で、バウンディング ボックス表現のエクスポートを設定したいオブジェクトを選択します。
- Datasmith 属性モディファイヤを適用します (「Datasmith 属性モディファイヤを適用する」を参照)。
- Datasmith 属性モディファイヤの設定で、[Export Geometry As (ジオメトリを次の形式でエクスポート)] を [Bounding Geometry (バウンディング ジオメトリ)] に設定します。
バウンディング ボックスのエクスポートの例
次の画像では、3ds Max シーンの窓に Datasmith 属性モディファイヤが適用され、バウンディング ボックスのみでエクスポートされるように設定されています。Unreal Engine のレベルにインポートすると、それらのオブジェクトはデフォルトのマテリアルを使用して単純化されたボリュームとして表示されます。
この 3ds Max シーンの窓は、バウンディング ボックスのみでエクスポートされるように設定されています。画像をクリックすると拡大表示されます。
Unreal Engine では、この窓はデフォルトのマテリアルを使用して単純化されたボリュームとして表示されます。画像をクリックすると拡大表示されます。
これらの単純化されたシーン要素をさまざまな方法で使用することができます。たとえば、この単純化されたオブジェクトを、独自のカスタム スタティックメッシュ アセットのインスタンスで置き換えることができます。または、この単純化されたアクタをビューで非表示にし、そのアクタに含まれている情報 (3D 空間での配置、バウンディング ボックスのエクステントなど) を他の用途に利用することもできます。