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

Datasmith インポート プロセスについて

次のセクションでは、シーンの変換中に Datasmith が処理する特定の問題に関する詳細について説明します。これらの問題を把握しておくと、Datasmith が生成する結果を理解し、Unreal Editor でコンテンツで作業するときに役に立ちます。

単位とスケール

Unreal Engine では、すべての距離が常にセンチメートル単位で測定されます。ただし通常、他の 3D デザイン アプリケーションでは測定単位を選択できます。ソース アプリケーションで他の測定単位を使用している場合、Unreal Engine でジオメトリが実世界とまったく同じサイズで 3D 空間の適切な位置に表示されるように、Datasmith は自動的にシーンのスケールを調整します。ソース アプリケーションで作業する方法を変更する必要は一切ありません。

例えば、ソース アプリケーションで測定単位にインチを使用している場合、元のシーンで 10 インチのオブジェクトは、Unreal Engine では 25.4 センチの長さになります。

datasmith-units-1.png

datasmith-units-2.png

名前とラベル

Datasmith はソース アプリケーションでのジオメトリに関する命名情報を検出し、作成するアセットやアクタに対してできるだけこの情報を再利用します。正確なプロセスはアプリケーションやファイル形式が異なると多少変わります。Unreal Engine の結果はソース アプリケーションのものと少し異なることがあります。ただし、最終目標はインポート後にユーザーがコンテンツを見つけて管理できるようにすることです。

スタティック メッシュでは、コンテンツ ブラウザでアセット名を確認できます。多くの場合、ディスクでのアセットのファイル名とレベルでのアクタの名前は異なります。

  • コンテンツ ブラウザ ラベル- Datasmith ではコンテンツ ブラウザの各スタティック メッシュ アセットに対するラベルを、ソース ファイルに命名情報がある場合はそれに基づいて生成します。 一部のサポート対象アプリケーションとファイル形式では同じ名前のオブジェクトが複数存在することができます。シーンがこれに該当する場合、コンテンツ ブラウザで複数のアセットが同じラベルで表示されることがあります。

  • ファイル名 - ただし、ディスク上の各アセットのファイル名は一意である必要があります。したがって、Datasmith ではソース アプリケーションから抽出した一意の識別子を使用して各アセット ファイルに名前を付けます。

  • アクタ名 - Datasmith がアクタをレベルに配置するたびに、ソース ファイルの対応するオブジェクトに名前がある場合、それと厳密に同じ名前をアクタに付けようとします。 一意の名前が見つからない場合、コンテンツ ブラウザから同じラベルを再利用して、アクタに名前を付けます。レベルに同じ名前のアクタがある場合、Datasmith はアクタ名の末尾に数字を付加してインクリメントすることで一意の名前にします。

例えば、以下の画像で、同じ名前の複数のオブジェクトを除いて、ソース シーンからすべての名前がそのまま Unreal に導入されていることがわかります。

ソース ファイルの階層

Unreal の階層

コンテンツ ブラウザでのスタティック メッシュ アセットに対する ラベル と Datasmith がディスクでそれらアセットに生成する ファイル名 に違いがあることに注意してください。多くの場合、エディタで作業しているときに、この点を意識しないで済みます。ただし、アセットまたは Datasmith シーンで作業するのに Blueprint や Python スクリプトを使用する場合は、この違いに留意する必要があります。

三角ポリゴンの面方向

ランタイム時のパフォーマンスを最大限に引き出すために、Unreal Engine は見えるとは思われない三角ポリゴンを間引きます。これにより、それらをレンダリングするために使用される GPU サイクルを抑えられます。特に、Unreal Engine ではすべてのオブジェクトに厚みがあると仮定します。カメラの方向を向いていない三角ポリゴンは、オブジェクトの裏側であるとみなされます。そしてオブジェクト (正面) があるので見えません。これは バックフェース カリング と呼ばれる、3D レンダリングで広く使用されている最適化技法です。

ただし、デザイン アプリケーションにはサーフェスの表と裏面を区別しないものあります。これらのアプリケーションでは、どちらの側から見ているのかに関係なくサーフェスがレンダリングされることがあります。デザイン ツールで作業しているとき、ユーザーは対象のサーフェスの方向を常に意識している訳ではありません。このため、サーフェスの法線 (サーフェスに垂直な方向) が内側を向いたり、サーフェスの表示に必要な方向から逸れたりする場合が生じます。あるいは、厚さがまったくない、平面、単一壁のジオメトリが作成される場合もあります。

シーンをインポートした後、Unreal Engine で特定の角度から見たとき、シーンの一部が見えなくなることがあります。モデルの対象部分がインポートされていないかのように見えることもあります。ただし、サーフェスの法線が、シーンを表示するために使用しているカメラに向いていないだけの可能性もあります。モデルを回転すると、これらのサーフェスが突然表示されます。

例えば、次のシーン (左側) では、ジオメトリが正確にインポートされているにも関わらず天井とパイプの先端がないように見えます。マテリアルの Two Sided オプションを有効にして、サーフェスを表示させます (詳細は以下を参照)。

Single sided

Two Sided

ソース アプリケーションでこれらの状況に対処する最適な方法を以下に示します。

  • 両側から見ることが必要なときは常に、すべてのオブジェクトを厚みがあるものとしてモデリングし、法線が面の外向きであることを確認することを強く推奨します。

  • オブジェクトの 1 つの側面からしか見ないことがわかっている場合、ソース アプリケーションでサーフェスの法線を反転して、シーンを再インポートすることで、見えないメッシュを修正できます。これはサーフェスが one-sided となりますが、必要な方向から Unreal Engine で見たときに、正しく表示されるように、少なくともサーフェスの向いている方向を反転します。

ただし、ソース シーンに戻らないで、Unreal Editor で問題を修正する場合は、次のオプションを検討することもできます。

  • スタティック メッシュ エディタで、三角ポリゴンの方向を反転し、面が反対を向くようにできます。「スタティック メッシュ ジオメトリの変更NEW! 」を参照してください。 ただし、それらの三角ポリゴンが反対側から見える場合、同じ問題がまだ残っています。これは、見えるのは内側からだけである天井などに対する最適の解決策ですが、両側から見える内壁のような場合には適しません。 なお、ソース シーンのジオメトリのピースを変更して、Datasmith シーン アセットを再インポートする場合、スタティック メッシュ エディタで行った変更は失われますのでご注意ください。したがって、別の理由で前に戻ってジオメトリを変更する必要がある場合は、同時に SketchUp での面の方向を必ず変更してください。

  • マテリアル エディタでマテリアルを two-sided にできます。これによりエンジンはいずれの側から見たときでも、サーフェスをレンダリングできます。これは、はじめは最適な解決策に思えますが、静的または固定ライティングを使用したとき、ビジュアル アーティファクトを生み出す傾向があります。これは、面の両側がライトマップ テクスチャの同じ空間を使用するためです。 使用するマテリアルがマテリアル インスタンスである場合、マテリアル エディタの [Details (詳細)] パネルで [General (全般)] > [Material Property Overrides (マテリアル プロパティのオーバーライド)] > [Two Sided (両面)] を確認します。 Two Sided マテリアル プロパティのオーバーライド
    その他の場合、マテリアル エディタの [Details (詳細)] パネルで、[Material (マテリアル)] > [Two Sided (両面)] を確認します。 Two Sided マテリアル プロパティ

  • 問題が面自体の可視性に関するものではなく、オブジェクトを通過するライトのみに関係する場合、例えば、上方からの指向性ライトを正しく遮らない天井などでは、両側から影を落とすようにスタティック メッシュ アクタを設定できます。 [Details (詳細)] パネルで [Lighting (ライティング)] > [Shadow Two Sided (両面のシャドウ)] 設定を確認します。 Shadow Two Sided

ライトマップ UV

Unreal Engine では複数の方法でシーンに照明を当てることができます。最高のランタイム パフォーマンスで、間接照明の最もスムーズでリアルな広がりを実現する方法は、 ベイクド ライティングです。このアプローチでは、ライトマスというツールを使用して、Unreal Editor でライティングを設定します。これは静的な固定ライトからシーンの各オブジェクトに当たる光を計算し、 ライトマップという特別な種類のテクスチャに保存します。ランタイム時にこのライティング情報が各オブジェクトのライトマップ テクスチャからサーフェスに適用されます。

このシステムが機能するためには、スタティック メッシュの各頂点がライトマップ テクスチャの 2D 空間で一意の座標にマッピングされる必要があります。このマッピングは UV セットまたは UV チャネルと呼ばれます。さらに、この 2D 座標空間はメッシュのどの 2 つの三角ポリゴンも 2D テクスチャ空間で重ならないような方法で展開する必要があります。メッシュの 2 つの三角ポリゴンが 2D テクスチャの同じ領域にマップされている場合、ライトマスは対象の各三角ポリゴンに対する光と影の固有パターンを保存できません。これによりランタイム時に奇妙なライティング アーティファクトが生成されます。

すべてのスタティック メッシュで静的ライティングを受ける準備が確実にできているようにするために、Datasmith では、インポートするスタティック メッシュそれぞれに対して、自動的に Unreal Editor の自動 UV アンラップ システムを起動します。このプロセスは各スタティック メッシュに 2 つの新しい UV セットを追加します。

  • 1 つはメッシュを 2D 空間のフラットな表現にする三角ポリゴンの単純なアンラップ処理です。これによりメッシュが小さな複数の「アイランド」(それぞれがメッシュ サーフェスのつながれたセクションを表現する) に分割されます。

  • 最初のライトマップにあるアイランドは、重ならないようにアイランド周辺のすき間を最小化するように、大きさを変更し再配置してレイアウトに適合させます。レベルに対するライティングを設定するとき、これがオブジェクトのライトマップに対して使用される最終レイアウトです。

それから、Datasmith はスタティック メッシュ アセットを自動的にセットアップして、2 番目に生成された UV をライトマップを保存し適用するために使用します。

3ds Max を使用し、ライトマップに使用する UV チャネルがすでにセットアップされている場合、「Datasmith で 3ds Max シーンを使用するNEW! 」を参照してください。

コリジョンと物理

デフォルトでは、Datasmith は作成するスタティック メッシュ アセットに対する物理 (特性) をセットアップしません。インポート後に Unreal Editor のスタティック メッシュに対して物理を設定できます。詳細は「スタティック メッシュでコリジョンをセットアップする 」または「ブループリントおよび Python を使用してスタティック メッシュでコリジョンを設定するNEW! 」を参照してください。

3ds Max で作業している場合、3ds Max で独自のカスタム ジオメトリをモデル化し、Datasmith インポータで作成するスタティック メッシュ アセットにジオメトリを自動的に割り当てることができます。詳細については、「Datasmith で 3ds Max シーンを使用する 」を参照してください。

マテリアル

Datasmith の概要NEW! 」で説明しているように、Datasmith インポート プロセスにより、新しいマテリアル アセットが Unreal Engine プロジェクトに作成されます。このマテリアル アセットは、Datasmith によりインポートされるシーンで認識されるジオメトリ サーフェス プロパティの異なる各セットを表します。シーン変換の目標はサーフェスのプロパティをできる限り忠実に引き継ぐことですが、多くの場合、インポート後にこれらのマテリアルを微調整する必要があります。

  • 一部のソース マテリアルは、Datasmith が把握して Unreal Engine で作業するために調整可能なグラフに基づいています。最も有名なのが 3ds Max のマテリアルです。この場合、Datasmith が作成する各マテリアル アセットには、Unreal の物理ベースのレンダラー内部でソース マテリアルの効果を複製するように設計されている、独自の内部シェーダ グラフがあります。 編集するためにこれらのマテリアル アセットの 1 つをダブルクリックすると、そのシェーダ グラフに直接アクセスできます。 Datasmith で変換されたマテリアル
    このアプローチが適切なのは、物理ベースのレンダラーに対して最終サーフェス シェーディング パラメータを作成するためマテリアルがテクスチャと設定を解釈する方法を完全に制御できるためです。その反面、これは複雑なアプローチのため簡単には開始できず、一般には変更を行うとシェーダの再コンパイルが必要になります。 詳細については、このドキュメントにある「マテリアル 」トピックの各トピック (「マテリアル エディタのリファレンス 」など) を参照してください。

  • 別の場合に、Datasmith が作成する各マテリアルは、Datasmith プラグインに付属する、既存の親マテリアルのインスタンスです。つまりこれらのマテリアルの 1 つを編集するとき、インスタンス化されたマテリアルのそれぞれで公開されている、事前定義された一連の設定を自由に変更できます。 Datasmith で作成されたマテリアル インスタンス
    ただし、プロパティに基づいてサーフェスのシェーディング方法を決定するために、Datasmith にビルトインされている親マテリアルを調べない限り、マテリアルが使用するグラフを変更できません。 これらの種類のマテリアルを作業するときの詳細については、「インスタンス化マテリアル 」および「マテリアル インスタンス エディタ ユーザー ガイド 」をご覧ください。

    コンテンツ ブラウザでこれらの親マテリアルの 1 つを見つけるには、[View Options (オプションの表示)] メニューの [Show Plugin Content (プラグイン コンテンツの表示)] チェックボックスをオンに必要があります。この親マテリアルのグラフを変更する場合、親マテリアルを独自のプロジェクトのコンテンツ フォルダに複製して、複製したものを変更する必要があります。

Datasmith で作成されたマテリアルを作業する代わりに、Datasmith で作成されたマテリアルを別の物理ベースのマテリアルで常に完全に置き換えることもできます。これには、Unreal Editor で作成、またはサードパーティ製ツールで作成したマテリアルが該当します。

Unreal Studio サブスクリプションで、Allegorithmic 社の 100 個の物理ベースのサブスタンス マテリアルのライブラリにアクセスできます。開始するには、こちら を参照してください。

Datasmith カラー マテリアル

多くのコンピュータ支援デザイン (CAD) アプリケーションではジオメトリのシェーディングに単純なサーフェス カラーを使用します。Datasmith は通常これらのサーフェスを Unreal に Datasmith_Color マテリアルのインスタンスとして導入します。

Datasmith_Color マテリアル インスタンス

  • このマテリアルの色は通常ソース シーンに正確に一致する色が事前設定されます。 これらのマテリアルを Unreal Engine で使用するときは、色の輝度値に特に注意が必要です。デザイン ツールでは非常に明るいサーフェス カラー (単色の白も含む) を利用できることがあります。これらは自然にはあまり見られません。場合によりライティングが現実的に見えるようにこれらの値の色調を大きく調整する必要があります。

  • Datasmith は通常ソース マテリアルのオパシティを尊重するように設定できます。ソース シーンのサーフェス カラーが半透明に設定されている (ガラス パネルなど) 場合、Datasmith はそのオパシティを Alpha チャネル (Color 設定) に入力します。 Alpha チャネルを使用して、以前は透明ではないマテリアルを Unreal Editor で半透明にする場合、マテリアルのブレンディング モードも変更する必要があります。[General (全般)] セクションで、[Material Property Overrides (マテリアル プロパティ オーバーライド)] グループを展開し、[Blend Mode (ブレンド モード)] チェックボックスをオンにして、値を [Translucent (半透明)] に設定します。 

  • Datasmith_Color 親マテリアルでは、3 種類のテクスチャ マップを使用できます。サーフェスの基本色 (Color 設定をオーバーライドする) を提供するディフューズ マップ、表面の微細構造を実現するノーマル マップ、および同じ表面の異なる部分で異なるオパシティ値を設定できる透過マップです。 ソース アプリケーションからこれらの種類のテクスチャ マップをエクスポートできる場合、Datasmith はこれらのテクスチャ マップ設定を使用することがあります。フラット カラーの Datasmith_Color インスタンスがあり、サーフェスの現実感を高めるためにこれらのテクスチャ マップを使用する場合、これらの設定をアクティブ化し、テクスチャ アセットをそれらに割り当てる必要があります。 Map 設定の 1 つを有効にすると、Texture Prameter Values の下にある新しい設定が利用可能になり、使用するテクスチャを設定できます。 テクスチャ マップのある Datasmith_Color インスタンス
    ただし、最初から独自のマテリアルを一から作成する方法を習得するとよいでしょう。 Datasmith_Color 親マテリアルに公開されていない、Unreal Engine レンダラーの他の物理ベース プロパティ (Roughness や Metallic プロパティなど) を利用できるようになります。「物理ベースのマテリアル 」を参照してください。

レイヤー

ソース アプリケーションでコンテンツをレイヤー (または同様の構造) に構成できる場合、Datasmith は Unreal Editor でその構造を維持します。[Layers (レイヤー)] ウィンドウ ([Window (ウィンドウ)] > [Layers (レイヤー)]) を使用してレイヤーの表示/非表示を切り替え、またはレイヤーのオブジェクトをすばやく見つけ、すべてを選択できます。

Datasmith でインポートされるレイヤー

ただし、Unreal Editor では ネスト構造 のレイヤーをサポートしていません。ソース シーンでネスト構造のレイヤーを使用している場合、Datasmith は自動的にレイヤー階層を単一のリストに平坦化します。

Unreal Editor でのレイヤーの処理方法については、「レイヤー パネルのユーザー ガイド 」を参照してください。

メタデータ

一部の種類のソース ファイル形式では、ソース アプリケーションに設定したシーンにあるジオメトリ オブジェクトのメタデータを Datasmith はインポートします。Unreal Editor でこのメタデータに Blueprint および Python スクリプトでアクセスできます。このシステムの詳細については、「Datasmith メタデータの使用NEW! 」を参照してください。