このページでは、Datasmith で Trimble SketchUp Pro から Unreal Editor にどのようにシーンがインポートされるかについて説明します。ここでは、「Datasmith の概要」と「Datasmith のインポート プロセスについて」で説明されている基本的なプロセスに沿っています。ただし、SketchUp に固有の特別な変換動作がいくつか追加されています。Datasmith を使用して SketchUp から Unreal Editor にシーンをインポートすることを予定している場合は、このページを読むと、シーンがどのように変換されるか、およびその結果を Unreal Editor でどのように使用できるかを理解するのに役立ちます。
SketchUp のワークフロー
エクスポートのワークフロー
Datasmith は SketchUp に対して エクスポート プラグイン ワークフローを使用します。つまり、Datasmith を使用して SketchUp のコンテンツを Unreal に取り込むには、次の手順を実行する必要があります。
SketchUp 用プラグインをインストールします。「インストールに関する注記」セクションを参照してください。
SketchUp のコンテンツを「
.udatasmith
」ファイルにエクスポートします。「SketchUp Pro から Datasmith のコンテンツをエクスポートする」を参照してください。Datasmith インポータ プラグインをまだインストールしていない場合は、[Importers (インポータ)] > [Datasmith Importer (Datasmith インポータ)] プラグインを有効にします。
Unreal Editor のツールバーの Datasmith インポータを使って、「
.udatasmith
」ファイルをインポートします。「Unreal Engine に Datasmith コンテンツをインポートする」を参照してください。
Ruby によるシーンのバッチ エクスポート
SketchUp で Ruby スクリプトを実行して、「」ファイルをバッチ エクスポートすることができます。パイプラインの自動化に役立ちます。
この操作を始める前に、SketchUp 用の Ruby Code Editor 拡張をインストールする必要があります。この手順については、『Managing Extensions』の StetchUp ドキュメントを参照してください。Ruby Code Editor 拡張をインストールすると、SketchUp のメイン メニューからアクセスできるようになります。([Window] > [Ruby Code Editor])。
特定のフォルダからすべての SketchUp ファイルをエクスポートするには、次のコードを実行します。
target_dir = 'C:\temp\udatasmithExports'
source_directory = 'E:\path\to\folder'
Dir.foreach(source_directory) do |filename|
ext = File.extname(filename)
if ext == '.skp' then
name = File.basename(filename, ext)
path = File.join source_directory, filename
Sketchup.active_model.close true
Sketchup.open_file path
puts "Exporting '#{filename}' as '#{name}' to '#{target_dir}'"
EpicGames::Datasmith.export name, target_dir
end
end
コードから単一のファイルをエクスポートすることもできます。これは、Datasmith のツールバーで Export ボタンをクリックすることに相当します。
Sketchup.open_file 'E:\path\to\file\sketchup_file.skp'
EpicGames::Datasmith.export "hello", 'C:\temp'
# これにより「C:\temp\hello.udatasmith」ファイルが作成されます。
Direct Link を使用するワークフロー
SketchUp のシーンへ行った変更内容を Unreal Engine でリアルタイムでプレビューするために、SketchUp と Unreal Engine の間で Datasmith Direct Link をセットアップすることができます。これにより、変更を加えるたびにシーン全体を Unreal Engine に手動で再インポートする必要がなくなります。詳細は、「実行時に Datasmith を使用する」ドキュメントを参照してください。
次の SketchUp バージョンを使用する場合、Datasmith DirectLink は UE 4.27 以降のバージョンのみ Unreal Engine でサポートされています。
SketchUp 2020 (Windows と macOS)
SketchUp 2021 (Windows と macOS)
インストールに関する注記
SketchUp のコンテンツをエクスポートするには、Datasmith エクスポート プラグイン ページから Datasmith Exporter for SketchUp プラグインをダウンロードしてインストールしなければなりません。
プラグインがサポートしている SketchUp のバージョンを確認するには、「Datasmith でサポートされているソフトウェアとファイルの種類」を参照してください。
現時点では、Datasmith Exporter プラグインは SketchUp Pro でのみ動作します。SketchUp Free または廃止された SketchUp Make はサポートされていません。
Datasmith エクスポーター プラグインのダウンロード リンクは、所属している組織の内外を問わず不特定多数のユーザーと共有できます。ただし、Datasmith エクスポーター プラグイン自体の配布は許可されていないため、ご注意ください。
SketchUp 用 Datasmith エクスポーター プラグインをインストールする前に、以下について確認してください。
SketchUp を実行していない。
使用する Unreal Engine のバージョンと一致するエクスポーター プラグインのインストーラーをダウンロードしている。
SketchUp 用 Datasmith エクスポーター プラグインの以前のバージョンをすべてアンインストールしている。
インストーラーをダウンロードしたら、インストーラーをクリックして開き、画面上のインストラクションに従います。
SketchUp 用 Datasmith エクスポーター プラグインをアンインストールするには、他の Windows アプリケーションと同じ要領で行うことができます。
Windows:コントロール パネル からプラグインをアンインストールします。
macOS: Finder でプラグインを検索し、Dock のゴミ箱アイコン上にドラッグするか、右クリックして [Move to Trash (ゴミ箱へ移動)] を選択します。
Datasmith ツールバーを使用する
Datasmith プラグインをインストールするとツールバーが Rhino に追加されます。
Datasmith のツールバーを使って、次のアクションを行うことができます。
アクション |
ボタン |
説明 |
---|---|---|
Datasmith |
|
Direct Link 接続を使用して、選択されたモデルを Unreal Engine または Twinmotion にプッシュします。 |
接続を管理する |
|
Connection Status (接続状態) ダイアログを起動します。 |
Datasmith ファイルをエクスポートする |
|
既存の |
メッセージを表示する |
|
メッセージおよびログ出力ウィンドウを起動します。エラー、見つからないテクスチャ、その他の情報の報告に役立ちます。 |
これらのコマンドは [Extensions] > [Datasmith] の順に進んで SketchUp のメインメニューから使用することができます。
ジオメトリをスタティック メッシュに変換する
Datasmith は、同一のコンポーネントまたはグループの連結したポリゴン面をすべて単一のスタティック メッシュに結合することで、SketchUp のジオメトリを Static Mesh アセットに分割します。この手法を把握しておくことで、Datasmith が作成するスタティック メッシュをよりうまく制御することができます。
Unreal のスタティック メッシュがきわめて大きい場合、シーンの静的または固定ライトのベイクがうまくいかないことがあります。大きなメッシュには、モデルの各部分にライトとシャドウを記録する十分な量のテクスチャ スペースを確保するため、それに対応する大きなライトマップ テクスチャが必要になります。大きなスタティック メッシュのライトマップの解像度を上げることもできますが、これによりベイク時間とランタイム時のメモリ要求も増大します。ライトマップ UV の配置方法によっては、生成がまったくうまくいかないことがあります。このような場合は、Unreal でのスタティック メッシュの処理を容易にするために、大きなジオメトリを SketchUp で複数のコンポーネントやレイヤーに分割してみてください。
インスタンス化
Datasmith が SketchUp のシーン内に同一コンポーネントの複数のコピーを検出すると、そのコンポーネントの Static Mesh アセットを 1 セットのみ作成して、これらのスタティック メッシュの複数のインスタンスをシーンに配置します。これにより、通常、ランタイム メモリ要件とプロジェクトのパフォーマンスが改善されます。また、コンテンツ ブラウザでの Static Mesh アセット数の管理が容易になります。
シーンで繰り返し使用されるすべての要素 (窓、ドア、椅子など) を SketchUp の再利用可能なコンポーネントにすることで、この機能をできる限り活用することをお勧めします。
ビルボード
Datasmith では SketchUp のシーンから回転するビルボードをエクスポートして、これらの平面のスタティック メッシュの複数のインスタンスをレベルに配置します。
レベルでの各スタティック メッシュの向きは、シーンをエクスポートした時点の SketchUp カメラのビューポイントに基づいています。Unreal Engine のカメラが、レベルで SketchUp の元のカメラと同じ場所にある場合、平面のスタティック メッシュは SketchUp で実行されているビルボードの回転と同じように表示されます。ただし、Unreal Engine でカメラを移動させると、スタティック メッシュの回転状態は、SketchUp で行われるように、カメラの現在のビューポイントに合わせて更新されません。
トライアングルの向き
SketchUp はジオメトリの面の向きに関しては大変柔軟です。「片面のジオメトリ」、つまり厚みのないジオメトリを作成することができます。それを両側から表示することができ、それぞれの面に別のマテリアルを適用することも可能です。
Unreal Engine でのアプローチはこれとは異なり、すべてのジオメトリには厚みがあるということが前提となっています。カメラの方を向いていないトライアングルはサーフェスの背面を意味し、サーフェス前面からの視点では非表示になることが想定されます。ランタイム時のパフォーマンスを最大限に引き出すために、Unreal では後ろ向きのトライアングルは常に カリング されます。これにより、実際には表示されないトライアングルのレンダリングに GPU サイクルが浪費されることが回避されます。
3D オブジェクトが Unreal で想定通りに動作するよう、常に厚みを含めてモデリングすることをお勧めします。ただし、SketchUp で片面のジオメトリを使用している場合、Datasmith では、マテリアルと面方向をスタティック メッシュのトライアングルに割り当てる方法において、片面のジオメトリを使用する意図を最大限反映します。
SketchUp でサーフェスの 1 面だけにマテリアルが割り当てられている場合、Unreal ではそのサーフェスがトライアングルの前面として選択されます。
それ以外の場合、Datasmith は SketchUp でのサーフェスの正面を Unreal での前面として認識します。
「両面」にマテリアルが割り当てられている場合、Datasmith は正面のマテリアルのみをインポートします。
つまり、片面のジオメトリに含まれるトライアングルを裏側から見た場合、デフォルトでは Unreal のシーンではこれらが表示されないことになります。さらに、背面側ではシャドウがキャストされません。
上の例では、各ボックスの側面と底面は外側を向いています。左の画像では、側面にはそれぞれ外側に割り当てられている単一のマテリアルが含まれています。中央の画像では、それぞれに 2 つのマテリアルが各面に 1 つずつ割り当てられています。右の画像では、赤のマテリアルがグループ全体に割り当てられており、ボックスの 1 面だけに異なるマテリアルが割り当てられています。外側に向いている前面の色はすべて Unreal 向けに変換されますが、背面側はボックスをもう一方の側から見た場合にのみ表示されます。
これに対処する最良の方法は、SketchUp でオブジェクトに厚みを加えて修正することです。ただし、Unreal でこの問題を修正する場合は、これ以外のオプションもあります。詳細については、「Datasmith のインポート プロセスについて」を参照してください。
SketchUp のマテリアル
Datasmith は、SketchUp シーンのマテリアルごとに、Unreal Engine プロジェクトに新しいマテリアル インスタンスを作成し、SketchUp マテリアルを可能な限り複製しようとします。これらの各 Material アセットは親マテリアルのインスタンスです。Datasmith では、プロジェクトの「Materials/Master
」フォルダにこの親マテリアルのインスタンスも作成されます。Datasmith では、Unreal Engine の物理ベース レンダラで SketchUp でのレンダリング結果と同等の結果を生成する目的で、それぞれの親マテリアルのマテリアル グラフを作成します。
独自の親が存在しないインスタンス化マテリアルもあります。可能であれば、2 つの異なるマテリアル インスタンスが同じマテリアル グラフを共有している場合、Datasmith ではその両方のマテリアル インスタンスに対して 1 つの親マテリアルを使用しようとします。
Unreal で表示される [Material (マテリアル)] プロパティは、SketchUp のマテリアルがどのように設定されていたかによって異なります。親マテリアルの PBR グラフを編集することで、さらにマテリアル プロパティを追加できます。
SketchUp からシーンを再度インポートすると、これらのプロパティは上書きされます。
親マテリアルを編集して、次のセクションで説明するプロパティを追加またはオーバーライドできます。
色とテクスチャの画像
デフォルトでは、インポートしたマテリアルは SketchUp で保持していたテクスチャまたは色を維持します。これをオーバーライドして、マテリアルがソリッド カラーまたはテクスチャのいずれかを使用するように設定することができます。
[Color (色)] オプションまたは [Use Texture Image (テクスチャの画像を使用する)] オプションのいずれかをオンにします ([Color (色)] オプションが表示されない場合は、まず [Use Texture Image (テクスチャの画像を使用する)] オプションをオフにしてください)。
ソリッド カラーを使用するには、希望の色を出力できるように RGB カラー値を設定します。
テクスチャの画像を使用するよう選択すると [Texture (テクスチャ)] プロパティが表示され、使用するTexture アセットを参照するよう設定できます (Unreal プロジェクトにないテクスチャを使用する場合は、コンテンツ ブラウザにそのテクスチャをドラッグ&ドロップして、プロジェクトにインポートします)。
オパシティおよびブレンド モード
マテリアルのベース カラーにソリッド カラーまたはテクスチャ マップのどちらを使用している場合でも、[Opacity (オパシティ)] コントロールを使用すると、スタティック メッシュを透かして見える背景の量を設定できます。
デフォルトでは、SketchUp マテリアルのオパシティ値が 100% 未満であれば、Unreal ではその値が正しく引き継がれてマテリアルに適用されます。
Unreal でこれまで 不透明 だったマテリアルに [Opacity (オパシティ)] を設定する場合は、マテリアルのブレンド モードを変更する必要があります。[General (一般)] セクションで [Material Property Overrides (マテリアル プロパティの上書き)] グループを展開し、[Blend Mode (ブレンド モード)] オプションをオンにして、その値を [Translucent (半透明)] に設定します。
UE Extended プロパティ
デフォルトでは、インポートされたマテリアルはすべて非メタリックで、バランスの取れたラフネス値「0.5」が設定されています。ただし、異なるマテリアルに対してこれらの値を調整することで、Unreal でのシーンのレンダリングでのリアリズムを容易に高めることができます。これらの値はプロパティの [UE Extended (UE 拡張機能)] グループにあります。
金属で構成されるオブジェクトで [Metallic (メタリック)] オプションを選択します。これにより、ベース カラーまたはテクスチャがサーフェスに当たる入射光に影響する方法がわずかに変化します。
オブジェクトのサーフェスが特に艶なし、または艶光りしている場合は、[Roughness (ラフネス)] チェックボックスをオンにして、その値を調整します。
オブジェクトの部分ごとに異なる光沢が必要な場合は、代わりにラフネス マップを使用できます。ラフネス マップは、艶消しする部分は白く塗り、艶光りさせる部分は黒く塗った、グレースケールのテクスチャの画像です。
どのようにラフネス値とメタリック値が相互作用して、光沢のあるサーフェスが作成されるかについては、「光沢のあるマテリアルの作成方法」を参照してください。
さらに、インポートしたマテリアルに法線マップを設定することもできます。これにより、ジオメトリの小スケール サーフェスの詳細に関するヒントがレンダラに提供されます。
法線マップおよびラフネス マップは、Adobe Photoshop などの 2D 画像作成ソフトウェアで生成できます。上の画像のテクスチャのように、これらの法線マップおよびラフネス マップをマテリアルのベース カラー テクスチャでベースとして使用できる場合もあります。
メタデータ
SketchUp で作成する各コンポーネントでは、[Price (価格)]、[Size (サイズ)] および [Status (ステータス)] など Advanced Attributes を設定できます。
SketchUp コンポーネントまたは SketchUp グループのエンティティ情報は標準の Datastmith メタデータ としてエクスポートされます。Unreal Engine は、SketchUp コンポーネントまたは SketchUp グループのルートを表すアクタに関するメタデータを格納します。
Datasmith のメタデータはコンポーネントのジオメトリを表す個別の Static Mesh アクタではなく、シーン階層のコンポーネントを表すアクタにアタッチされている場合があります。シーンでこのようなアクタを使用している場合、 ブループリントおよび Python でメタデータにアクセスする の例を調整する必要があります。