Datasmith で SketchUp Pro を使用する

Datasmith を使用して Trimble SketchUp Pro から Unreal Editor にシーンを取り込む際に特に考慮する必要のある事項について説明します。

Windows
MacOS
Linux

このページでは、Datasmith で Trimble SketchUp Pro から Unreal Editor にどのようにシーンがインポートされるかについて説明します。ここでは、「

[Datasmith の概要](Engine/Content/Importing/Datasmith/Overview)
」と「
[Datasmith のインポート プロセスについて](Engine/Content/Importing/Datasmith/Overview/ImportProcess)
」で説明されている基本的なプロセスにに沿っています。ただし、SketchUp に固有の特別な変換ビヘイビアがいくつか追加されています。Datasmith を使用して SketchUp から Unreal Editor にシーンをインポートする予定の場合は、このページを読むとシーンがどのように変換されるか、その結果を Unreal Editor でどのように使用できるかを理解するのに役立ちます。

SketchUp

UE4

SketchUp のワークフロー

エクスポートのワークフロー

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

  1. SketchUp 用プラグインをインストールします。Sketchup Pro 用 Datasmith Exporter プラグインをインストールする を参照してください。

    Epic では、Unreal Engine のすべての新リリースに合わせて SketchUp 用 Datasmith Exporter プラグインの新バージョンもリリースしています。Unreal Engine を別のバージョンに切り替える場合は、必ず該当するバージョンのプラグインをダウンロードしてインストールしてください。

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

  3. まだインストールしていない場合は、[Importers] > [Datasmith Importer] プラグインをプロジェクトで有効にします。

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

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」ファイルが作成されます。

DirectLink ワークフロー

Unreal Engine で SketchUp シーンに対する変更をリアルタイムでプレビューするには、2 つの間に Datasmith DirectLink をセットアップする必要があります。このようにすると、変更を加えるたびにシーン全体を Unreal Engine に手動で再インポートしなくてもよくなります。詳細は、「Datasmith Runtime」ドキュメントを参照してください。

、次の SketchUp バージョンを使用する場合、Datasmith DirectLink は UE 4.27 以降のバージョンのみ Unreal Engine でサポートされています。

  • SketchUp 2020 (Windows と macOS)

  • SketchUp 2021 (Windows と macOS)

Datasmith ツールバーを使用する

Datasmith プラグインをインストールするとツールバーが Rhino に追加されます。

Datasmith Toolbar in SketchUp

Datasmith のツールバーを使って、次のアクションを行うことができます。

アクション

ボタン

説明

Datasmith

dst-synchronize-button.png

Direct Link 接続を使用して、選択されたモデルを Unreal Engine または Twinmotion にプッシュします。

接続を管理する

dst-connections-button.png

Connection Status (接続状態) ダイアログを起動します。

Datasmith ファイルをエクスポートする

dst-export-button.png

既存の .udatasmith エクスポータを起動します。このエクスポータは、 .udatasmith ファイルをディスクに保存するために使用されます。

メッセージを表示する

dst-messages-button.png

メッセージおよびログ出力ウィンドウを起動します。エラー、見つからないテクスチャ、その他の情報の報告に役立ちます。

これらのコマンドは [Extensions] > [Datasmith] の順に進んで SketchUp のメインメニューから使用することができます。

他のタイプの Datasmith のワークフローについては、「Datasmith でサポートされているソフトウェアとファイルの種類」を参照してください。

ジオメトリをスタティック メッシュに変換する

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 のシーンではこれらが表示されないことになります。さらに、背面側ではシャドウがキャストされません。

SketchUp

Unreal

上の例では、各ボックスの側面と底面は外側を向いています。左の画像では、それぞれの側面に単一のマテリアルが外側に割り当てられています。中央の画像では、側面に 1 つずつ、合計 2 つのマテリアルが割り当てられています。右の画像では、赤のマテリアルがグループ全体に割り当てられており、ボックスの 1 面だけに異なるマテリアルが割り当てられています。外側に向いている前面の色はすべて Unreal 向けに変換されますが、背面側はボックスをもう一方の側から見た場合にのみ表示されます。

これに対処する最良の方法は、SketchUp でオブジェクトに厚みを加えて修正することです。ただし、Unreal でこの問題を修正する場合は、これ以外のオプションもあります。詳細については、「Datasmith のインポート プロセスについて」を参照してください。

SketchUp のマテリアル

Datasmith は、SketchUp シーンのマテリアルごとに、Unreal Engine プロジェクトに新しいマテリアル インスタンスを作成し、SketchUp マテリアルを可能な限り複製しようとします。これらの各 Material アセットは親マテリアルのインスタンスです。Datasmith ではまたプロジェクトの「Materials/Master」フォルダにこの親マテリアルのインスタンスも作成します。Datasmithは、SketchUp でのレンダリングと同等の表示結果を、Unreal Engine の物理ベースのレンダリングで生成することを目的として、これらの各親マテリアルのマテリアル グラフを作成します。

すべてのインスタンス化されたマテリアルにそれぞれの親があるわけではありません。2 つの異なるマテリアル インスタンスが同じマテリアル グラフを共有できる場合、Datasmith は両方のマテリアル インスタンスに単一の親マテリアルを使用しようとします。

Unreal に表示されるマテリアル プロパティは、SketchUp マテリアルの構成によって異なります。親マテリアルの PBR グラフを編集することで、さらにマテリアル プロパティを追加できます。

SketchUp からシーンを再度インポートすると、これらのプロパティは上書きされます。

親マテリアルを編集して、次のセクションで説明するプロパティを追加またはオーバーライドできます。

色とテクスチャの画像

デフォルトでは、インポートしたマテリアルは SketchUp で保持していたテクスチャまたは色を維持します。これをオーバーライドして、マテリアルがソリッド カラーまたはテクスチャのいずれかを使用するように設定することができます。

  • [Color (色)] オプションまたは [Use Texture Image (テクスチャの画像を使用する)] オプションのいずれかをオンにします ([Color (色)] オプションが表示されない場合は、まず [Use Texture Image (テクスチャの画像を使用する)] オプションをオフにしてください)。

  • ソリッド カラーを使用するには、希望の色を出力できるように RGB カラー値を設定します。 
    datasmith-sketchup-material-color.png
    なお、A チャンネルは使用されないことに注意してください。アルファ ブレンディングは別の [Opacity (オパシティ)] オプションでコントロールされます (以下参照)。

  • テクスチャの画像を使用するよう選択すると [Texture (テクスチャ)] プロパティが表示され、使用するTexture アセットを参照するよう設定できます (Unreal プロジェクトにないテクスチャを使用する場合は、コンテンツ ブラウザにそのテクスチャをドラッグ&ドロップして、プロジェクトにインポートします)。
    datasmith-sketchup-material-usetexture.png
    また、テクスチャがサーフェスにタイル化される方法を変更する場合は、[Texture Scale (テクスチャのスケール)] コントロールも使用できます。[R] 値は水平スケーリングを (UV 空間の U 軸)、[G] 値は垂直スケーリングをコントロールします (UV 空間の V 軸)。[B] 値と [A] 値は使用されません。

テクスチャのスケーリング設定の違いによる効果

オパシティおよびブレンド モード

マテリアルのベース カラーにソリッド カラーまたはテクスチャ マップのどちらを使用している場合でも、[Opacity (オパシティ)] コントロールを使用すると、スタティック メッシュを透かして見える背景の量を設定できます。

デフォルトでは、SketchUp マテリアルのオパシティ値が 100% 未満であれば、Unreal ではその値が正しく引き継がれてマテリアルに適用されます。

Unreal でこれまで 不透明 だったマテリアルに [Opacity (オパシティ)] を設定する場合は、マテリアルのブレンド モードを変更する必要があります。[General (一般)] セクションで [Material Property Overrides (マテリアル プロパティの上書き)] グループを展開し、[Blend Mode (ブレンド モード)] オプションをオンにして、その値を [Translucent (半透明)] に設定します。

UE Extended プロパティ

デフォルトでは、インポートされたマテリアルはすべて非メタリックで、バランスの取れたラフネス値「0.5」が設定されています。ただし、異なるマテリアルに対してこれらの値を調整することで、Unreal でのシーンのレンダリングでのリアリズムを容易に高めることができます。これらの値は [UE Extended (UE 拡張機能)] グループのプロパティにあります。

datasmith-sketchup-material-ueextended.png

  • 金属で構成されるオブジェクトで [Metallic (メタリック)] オプションを選択します。これにより、ベース カラーまたはテクスチャがサーフェスに当たる入射光に影響する方法がわずかに変化します。

Default

Metallic On

  • オブジェクトのサーフェスが特に艶なし、または艶光りしている場合は、[Roughness (ラフネス)] チェックボックスをオンにして、その値を調整します。

Default Roughness 0.5

Roughness 0.05

  • オブジェクトの部分ごとに異なる光沢が必要な場合は、代わりにラフネス マップを使用できます。ラフネス マップは、艶消しする部分は白く塗り、艶光りさせる部分は黒く塗った、グレースケールのテクスチャの画像です。

  • どのようにラフネス値とメタリック値が相互作用して、光沢のあるサーフェスが作成されるかについては、「光沢のあるマテリアルの作成方法」を参照してください。

  • さらに、インポートしたマテリアルに法線マップを設定することもできます。これにより、ジオメトリの小スケール サーフェスの詳細に関するヒントがレンダラに提供されます。

No normal map

With normal map

法線マップおよびラフネス マップは、Adobe Photoshop などの 2D 画像作成ソフトウェアで生成できます。上の画像のテクスチャのように、これらの法線マップおよびラフネス マップをマテリアルのベース カラー テクスチャでベースとして使用できる場合もあります。

メタデータ

SketchUp コンポーネントまたは SketchUp グループのエンティティ情報は標準の Datastmith メタデータ としてエクスポートされます。Unreal Engine は SketchUp コンポーネントまたは SketchUp グループのルートを表すアクタのメタデータを格納します。

SketchUp Pro のみ

現時点では、Datasmith Exporter プラグインは SketchUp Pro でのみ動作します。SketchUp Free または廃止された SketchUp Make はサポートされていません。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる