Datasmith で Revit を使用する

Datasmith を使用して Autodesk Revit から Unreal Editor にシーンを取り込む際に特段考慮すべき事項を説明します。

Choose your operating system:

Windows

macOS

Linux

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

Revit

UE4

Revit のワークフロー

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

  1. Revit 用プラグインのインストール。 「Revit 用 Datasmith エクスポータ プラグインをインストールする」 を参照してください。

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

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

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

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

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

エクスポートする内容をコントロールする

Datasmith Exporter プラグインを使用してシーンをエクスポートするには、Revit で 3D ビューを選択してアクティブにする必要があります。その 3D ビューの表示設定により、エクスポートされた 「.udatasmith」 ファイルに含める Revit ファイルの要素を定義します。この操作を利用して、Unreal Engine にエクスポートするコンテンツを Revit 内で完全に制御することができます。

既に Revit ファイルにある 3D ビューを使用することができます。ただし、Unreal Engine に取り込むオブジェクトを完全に制御するには、Revit で新しい 3D ビューを設定し、リアルタイム ビジュアライゼーションに必要なオブジェクトだけが表示されるようにビューを設定することをお勧めします。

Revit には、3D ビュー内のオブジェクトの表示設定を制御するための多くのツールとテクニックが用意されています。例:

  • [Graphics (グラフィック)] > [Visibility (可視性) / Graphics Overrides (グラフィックをオーバーライド)] を使用して、レベル内のさまざまなオブジェクトおよびオブジェクトのカテゴリの可視性をコントロールできます。

  • セクション ボックス を使用すると、エクスポートしたジオメトリをカットすることができます。セクション ボックス内のオブジェクトのみ Unreal Engine にエクスポートされます。下の画像のウォール、フロア、家具などのように、オブジェクトがセクション ボックスの境界を越えてしまうと、そのジオメトリの表示は制限されることに留意してください。Unreal Engine 内にエクスポートされたオブジェクトを表すスタティック メッシュ アセットには、セクション ボックス内にあるジオメトリのみが含まれています。

  • Revit の [Temporary Hide and Isolate (一時的に非表示および分離する)] 設定を反映します。

  • 現在の 3D ビューに表示されているジオメトリック オブジェクトのみがエクスポートされます。非ジオメトリック オブジェクトは無視されます。

Datasmith Exporter では、Revit ビューポート内のオブジェクトの表示/非表示の選択が反映されます。ただし、3D ビューの描画方法のコントロールに関する設定は反映されません。たとえば、3D ビュー向けに設定される [Graphics (グラフィック)] > [Graphic Display Options (グラフィック表示オプション)] (リアリスティック モデル表示、シェーディング モデル表示、シャドウのキャストなど) や [Camera (カメラ)] > [Rendering Settings (レンダリング設定)] (ドラフト品質設定、高品質設定、ライティング スキームなど) は考慮されません。

Revit 3D ビューでの表示/非表示のコントロールについての詳細は、Revit ヘルプの 「プロジェクト ビューの表示設定とグラフィック表示」 も参照してください。

ジオメトリ

一般に、Revit シーン内で個別に選択できる要素は、Unreal では個別のスタティック メッシュ アセットとして変換されます。いくつかの要素がレールなどの小さな部品で構成されている場合、さらに小さなスタティック メッシュに分割されることがあります。

各 Static Mesh アセットのジオメトリは、すべての場合において、ファイルをエクスポートした時点の Revit オブジェクトの寸法と一致するように設定されています。パラメトリック設定とコンストレイントは、Unreal Engine に反映されません。たとえば、Unreal Editor でフロアを上下に移動させても、Revit の場合のようにウォールの高さが新しい位置に合わせて伸び縮みしません。

インスタンス化

2 つのオブジェクトが同じファミリに属していて、それらがまったく同じパラメータ値を使用している場合、両方のオブジェクトは同一の Static Mesh アセットのインスタンスとして Datasmith シーンに表示されます。

テッセレーション

Datasmith は、Revit の組み込みテッセレーション機能を利用して、シーン ジオメトリから三角ポリゴン メッシュを生成します。ほとんどの場合、テッセレーションを使用することで Unreal Engine に最適なジオメトリを生成できます。ただし、プロジェクト内でこのようなサーフェスが問題となる場合は、Unreal Editor が提供する プロキシ ジオメトリ ツール などのツールを使用して、これらサーフェスのメッシュの複雑さを軽減することができます。

リンク モデル

Revit シーンに リンク モデル が含まれる場合 (他の Revit ファイルを参照している場合)、Datasmith は Revit ファイルに保存されたパスを使って、ご使用になっているコンピュータ上のリンク・ファイルを探そうとします。Datasmith には、Unreal Engine で Datasmith が作成した Datasmith シーンで検知できるすべてのリンク ファイルが含まれます。

マテリアルとテクスチャ

Revit のシーンに含まれる各種サーフェスに対して、Datasmith によって新規のマテリアル アセットが Unreal Engine プロジェクト内に作成され、Datasmith シーン アセットの横の 「Materials」 フォルダに配置されます。これらのマテリアルの目的は、Revit での作業で慣れ親しんだものが反映された一連のプロパティを提供しつつ、Revit で設定したサーフェスの外観を忠実に描くことにあります。

revit-material-definition.png

unreal-material-definition.png

Revit

Unreal

Datasmith は現在、Revit で生成された拡散マップとカラー、透明度、カットアウト、バンプ設定から Unreal Engine マテリアルへの変換をサポートしています。

Unreal Editor でマテリアルを変更するには、次の手順を実行します。

  1. コンテンツ ブラウザ で目的のマテリアルをダブルクリックします。または、変更するマテリアルを使用するレベルのアクタを選択し、[Details (詳細)] パネルでそのマテリアルをダブルクリックします。

  2. 上の図に示すマテリアル エディタが起動します。[Details (詳細)] パネル上部の [Parameter Groups (パラメータ グループ)] セクションでこれらのパラメータを変更できます。また、Unreal レンダラーによって公開されるその他のビルドイン パラメータを変更することもできます。

  3. プロパティのデフォルト値をオーバーライドするには、変更するプロパティ名の左にあるチェックボックスをオンにして、マテリアルでそのプロパティをアクティベートします。次に、そのプロパティで使用する値を設定します。

各アセットはマテリアル インスタンスで、その親は Datasmith プラグインに組み込まれている**RevitMaster** マテリアルです。この親マテリアルを開くと、マテリアル インスタンスで公開された各プロパティがマテリアル グラフ内でどのように関連付けられているかを確認することができます。

テクスチャと UV ラッピング

Datasmith は、Revit マテリアルで使用したテクスチャをアセットにインポートし、Datasmith シーン アセットの横にある「Textures」フォルダに配置します。

Texture アセットを使用する各マテリアルには、Revit テクスチャ エディタと同様のコントロールがあり、そのマテリアルを使用して 3D オブジェクトのサーフェスにテクスチャ マップを適用する方法をコントロールできます。

Texture mapping and UV settings

  1. Revit の [Position (位置)] > [Offset (オフセット)] の値は、各マップ タイプの UVOffsetX および UVOffsetY の設定によって決まります。

  2. Revit の [Position (位置)] > [Rotation (回転)] の値は、マップの種類ごとの UVWAngle 設定によって決まります。

  3. Revit の [Scale (スケーリング)] の値は実際の寸法に基づいており、Unreal Engine マテリアル内でスケール乗数に変換されます。これらのスケール値の絶対値を大きくすると、オブジェクトのテクスチャが小さくなります。

Datasmith では、Checker、Noise、Tiles などのプロシージャル テクスチャは変換されません。

Datasmith のシーン階層を構築する

Datasmith Exporter プラグインによって、Datasmith シーン内に親 / 子アクタの階層が生成され、Revit 内のシーンの全体的な構成が反映されます。これにより、Revit で使い慣れた考え方に従い、Unreal Engine レベルでアクタを整理がすることができ、オブジェクトの発見や操作がしやすくなります。

このシーン階層は、以下のルールに従って構成されています。

  • Revit の各レベル (1 階、レベル 1、レベル 2 など) は、Datasmith シーン階層内のアクタに個別に反映されます。

  • 各レベル内で、Revit の他のシーン要素をホスト**しているオブジェクトは、そのオブジェクトがホストしているオブジェクトの親になります。

  • Revit のレベルとホストを表す親アクタの下には、各ジオメトリック オブジェクトを表す Static Mesh アクタがあります。

    たとえば、「Level 1」という名前のアクタには、ウォールを表すアクタが含まれています。これらのアクタは、ウォールがホストするジオメトリック オブジェクト (ドア、窓、またはウォール セクション) を子に持つ別の親アクタとして順番に表されます。

    Example scene hierarchy in the Unreal Editor

  • カーテンウォールや手すりなど、「複合」Revit オブジェクトの多くの場合、複合オブジェクトを表すためにシーン階層にはアクタが 1 つだけ含まれます。このアクタに複合要素を構成しているサブオブジェクトのそれぞれにする Static Mesh コンポーネントが含まれます。

    たとえば、Revit のカーテンウォールは通常は単一のアクタとして Unreal Engine に入ってきますが、このアクタには、カーテンウォールを構成する各仕切り枠と各パネルごとに別々になった Static Mesh コンポーネントが含まれています。

ライト

Datasmith では、ライトの強度として設定した物理的なユニットを維持したまま、Revit シーンから Unreal Engine にライトをインポートします。

カメラ

Revit から 3D ビューをインポートするとき、Datasmith は Unreal Editor のレベルに単一の CineCameraActor を生成します。このカメラの視野角を Revit 3D ビュー内のカメラの位置と向きに合わせて配置します。レベル ビューポートまたは、 [World Outliner (アウトライナ)] でこの CineCameraActor を選択した場合、 「.udatasmith」 ファイルをエクスポートした時に Revit 3D ビューのクロップ領域と厳密に一致するビューポイントのプレビューが表示されます。

Datasmith では、正投影モードやチルト、シフト、クロップ領域のようなパースペクティブの補正など、Revit で使用可能な一部のカメラモードには対応していません。

最良の結果を得るためには、以下の設定を行います。

  1. 3D ビューの [Camera (カメラ)] > [Projection Mode (プロジェクション モード)] 設定を [Perspective (パースペクティブ)] に設定します。

  2. Revit で 3D ビューのクロップ領域を設定して、Unreal Engine のカメラで設定したいビューに焦点を合わせます。

  3. Revit でカメラのターゲットポイントがクロップ領域の中心にあることを確認します。これを確認するには、他に平面図と立面図でカメラを表示します。
    パースペクティブをシフトしても、Unreal Engine での結果は期待通りにはなりません。

たとえば、下の 3D ビューでは、クロップ領域を中心としたパースペクティブ カメラがあり、これは適切に変換されます。

ただし、次の 3D ビューでは、クロップ領域が手動で調整されており、パースペクティブ領域の一方のエッジがターゲットポイントに対して不均等にシフトしています。これはうまく変換されません。

カテゴリ

シーン内の少なくとも 1 つのオブジェクトを含む Revit カテゴリは、それぞれ別のレイヤとして Unreal Editor に取り込まれます。

revit_layers.png

Unreal Editor 内でこれらのレイヤを使用してカテゴリを表示または非表示にしたり、それらに割り当てられているオブジェクトの検査や選択ができます。

なお、Revit SDK からエクスポータに提供される情報は、必ずしもすべてのシーン オブジェクトをカテゴリに関連付けているわけではないことに注意してください。Revit でカテゴリが割り当てられていないオブジェクトは、Unreal Editor 内のどのレイヤーにも割り当てられません。

メタデータ

Datasmith は Revit オブジェクトに関するメタデータをインポートし、そのメタデータは Unreal Engine 内で各 Revit オブジェクトを表すアクタにアタッチされます。

Unreal Engine で作成したランタイム エクスペリエンスで使用する可能性のあるメタデータのほとんどは、Datasmith メタデータとしてインポートされます。これには、Revit で各オブジェクトに設定したインスタンス プロパティ、および空ではないタイプ プロパティが含まれます。インポートされたプロパティや、エディタ アセット準備スクリプトとランタイム ゲームプレイ スクリプトでインポートされたプロパティにアクセスする方法についての詳細は、 「Datasmith のメタデータを使用する」 を参照してください。

その他のいくつかの技術的な内部状態は、コンポーネント タグを使用して各アクタにアタッチされます。特に Unreal Editor でブループリントまたは Python スクリプトを使用してデータ準備を自動化する場合は、この情報がアクタの識別に役立つことがあります。次の例を挙げます。例:

  • Revit.Instance.Depth. - Revit シーン階層におけるオブジェクトのファミリ インスタンスまたはファミリ シンボルの深度。

  • Revit.Instance.Id. - Revit ドキュメント内のオブジェクトのファミリ インスタンスまたはファミリシンボルの ID。

  • Revit.Host.Id. - オブジェクトのファミリ インスタンスがホストされている場合、この値は Revit ドキュメント内のファミリ インスタンス ホストの ID を示します。

Metadata saved in Component Tags

RPC オブジェクト

Datasmith は Revit の Rich Photorealistic Content (RPC) オブジェクトを Unreal Engine へ取り込みます。Revit シーンの中の RPC オブジェクトの各タイプごとに、Revit で表示された見ることができるジオメトリを新しい Static Mesh アセットにインポートします。Revit シーンに配置した RPC オブジェクトのそれぞれに対して、Datasmith は 3D 空間における同じ位置と方向を使って Unreal Engine Level の中に新しい Static Mesh アクタを作成します。

RPC Actors in the World Outliner

Unreal Engine レベルでこれらの RPC オブジェクトを見つけるには、 Revit.RPC コンポーネント タグが割り当てられているアクタを検索します。

Component Tag for an RPC Actor

Revit で使用したプレースホルダーの周囲のオブジェクトを 3D リアルタイム可視化により適したものにで置き換える方法を自動化する場合に有用です。

このページで使用されたすべてのシーンとモデルは、 Turbosquid のご厚意により提供されました。

サーベイ ポイントとプロジェクト基準点

Revit シーンに 基準点またはサーベイ ポイント が含まれる場合、Datasmith はこれらの点を Unreal Engine Level にインポートし、目に見えるジオメトリを含まないプレーンなアクタでそれらを表現します。これらのアクタ上の Datasmith メタデータのサーベイ ポイントと基準点に関するデータを記録します。

Base Point metadata

Survey Point metadata

基準点

サーベイ ポイント

上記の メタデータ Datasmith メタデータを使用する も参照してください。

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