第7回:Revit にも対応!Unreal Studio4.21検証

こんにちは、初めまして。スタジオ・デジタルプラスの大橋ユキコです。
今回、初めての投稿となります。今更の登場ではありますが(笑。

これまでUnreal Studioを利用したワークフロー解説については、磯野が頑張ってくれておりますので、今回はちょっと脱線した番外編として、Autodesk Revitのインポートに触れたいと思います。
Revitを使用されていない方も、この機会にぜひRevit 2019の体験版をダウンロードしてみてください。
コラムを書き始めた時は、Datasmithが3ds Max 2019に対応しておりませんでしたが、現在は3ds Max 2016~2019に対応しています。 3ds Max 2019も体験版 がダウンロードできます!

また、今回のコラムは、新しい4.21の便利なテンプレートについての学習になればと思います。

プラグインダウンロード

これまでは、RevitやSketchUpのデータをUE4へ移行するには、FBXを使っていたのですが、ライトマップ用のUV展開ができないことから、3ds Max等のDCCツールを介さないとうまくいきませんでした。
4.21からはDatasmithプラグインを使うことによって、RevitのモデルをUE4にインポートすることができるようになりました。
エクスポーターのダウンロードは以下の公式からお願いいたします。
https://www.unrealengine.com/ja/studio/downloads

エクスポーターのダウンロード

公式ドキュメントはこちらです
https://docs.unrealengine.com/en-US/Studio/Datasmith/SoftwareInteropGuides/Revit

Revitの対応バージョンは2018.3から2019となっております。
プラグインをインストールすると、「アドイン」メニューにアイコンが追加されています

「アドイン」メニューに追加されたExport 3D View アイコン

3Dビューからの書き出し

書き出す時は、FBX同様、プロジェクトブラウザの3Dビューを開いた状態で書き出します。
同じRevitプロジェクトでも、以下のように、書き出すビューの状態で、Datasmithが生成されます。

断面アイソメ図の例

Revitの3Dビュー
Revitの3Dビュー
UE4でImport後
UE4でImport後

内観パースの例

Revitの3Dビュー
Revitの3Dビュー
UE4でImport後
UE4でImport後

今回の検証は、Revit 2019を使用して、以下のマンションプロジェクトを書き出しました。
Revitデータは配布することができませんので、お持ちのプロジェクトで、検証してみてください。

*ご協力:施主 東海住宅販売様 設計 住工房様

Revit 2019で開いたマンションプロジェクト

3Dビューに切り替えて、「アドイン」メニューからDatasmithに書き出します。

3Dビューに切り替えて、「アドイン」メニューからDatasmithに書き出します。

UE4インポート~新しいテンプレートを使おう

では、早速UE4へインポートしてみましょう。
テンプレートは新しい「マルチユーザービューアー」を使ってみましょう。

マルチユーザービューアー

マルチユーザービューアテンプレートとは

同時に複数のユーザーで、空間に入ることができます。マウス、キーボードも使えますが、HMDがあればVRモードでPlayできます。
ひとりでも使用できますし、レーザーポインターのような光線が左クリックで出ますので、他の人と同じ空間に入って設計を協議することができます。
あらかじめ4つのカメラ(Bookmarks)が設定してありますので、カーソルキー(→←)で切り替えます。

インポートの準備

このレベルには、Datasmithのサンプル建築がありますので、フォルダ「collision」「Trees」に入っているメッシュと、「SampleBuilding」アクタの子になっているメッシュを削除します。

フォルダ「collision」「Trees」に入っているメッシュと、「SampleBuilding」アクタの子になっているメッシュを削除

レイヤもすべて消してしまっていいでしょう。
建築が空っぽになりました。

空っぽ

コンテンツフォルダで、新規にインポート用のフォルダを作成し、Datasmithファイルをインポートします。

コンテンツフォルダで、新規にインポート用のフォルダを作成し、Datasmithファイルをインポート

インポートオプションはすべてチェックを入れ、ライトマップは必要に応じて解像度を上げてください。

インポートオプションはすべてチェックを入れ、ライトマップは必要に応じて解像度を上げる

インポート結果

レイヤを見ると、Revitのカテゴリーごとにレイヤ変換されていて助かりますね。

Revitのカテゴリーごとにレイヤ変換されている

アウトライナでは、Revitの基準レベルごとにアクタが配置されていますので、メッシュの管理がしやすいです。

アウトライナでは、Revitの基準レベルごとにアクタが配置されています

Revitマテリアル

マテリアルを見ると、すべてマテリアルインスタンスで来ていましたので3ds Maxの時と同様ですね。
パラメータを調整するか、他のPBRマテリアルサンプルなどを利用するのも良いでしょう。

Revitマテリアル

Revitマテリアルでは手続型のタイル目地等を使って、石やタイル表現ができますが、それらの設定はUE4マテリアルに継承されません。

UE4
UE4
継承されないマテリアル例
継承されないマテリアル例

一方、Revitの一般マテリアル内のイメージファイルで指定したTextureはUE4側でDiffuseColorとしてインポートしてくれますので、出来るだけTextureで作成しておいたほうが良さそうです。
また、Revitに用意されている物理アセットの中のメタルタイプなどは、UE4へメタリックが継承されませんでしたので、金属を作る時は一般マテリアルで「ハイライト」を「メタリック」にして作成したほうがよさそうです。

Revitの一般マテリアル
Revitの一般マテリアル

Revitファミリ

次にファミリの情報を見てみましょう。下の窓のように、同じファミリで、パラメータの値が全く一緒のものは、一つのスタティックメッシュアセットとしてインポートされ、インスタンス化されて配置してくれています。

Revit ファミリ

メタデータ

DatasmithはRevitの属性を引き継ぎます。
窓を選択して詳細パネルで「AssetUserData」を確認するとメタデータが継承され、ファミリのパラメータと値が表示されています。これらはインポート時、インポート後もBPから値を拾うことができますので、今後いろいろと応用できそうです。

メタデータの例
メタデータの例

インポート結果まとめ

あくまでも現時点ですので、これから改良されるかもしれませんが、気づいた点をまとめます。

– Revitカテゴリがレイヤ名になる
– 同一ファミリで値がすべて同じものは、インスタンス化される
– メタデータを継承できる
– ライト、カメラも継承されるが、正投影モードは継承されない
– Revitにある車や植栽などのRPC点景は継承できない
– Revitマテリアルは今のところ一般マテリアルアセットを使用しよう

床コリジョンをいれて、プレイしてみる

このままプレイしても、もともとあった地面も消してしまいましたので、プレイヤーが落ちてしまいます。歩き回るためには、衝突判定するための「コリジョン」を設定する必要があります。
コリジョンの作り方は以下の動画を参考にしてください。

地面としてのメッシュが無い場合は、このテンプレートにあった床を使用する方法でもいいと思います。大きさが合わないので拡大して配置しました。

地面のメッシュ

コリジョンが設定できましたら、PLAYしてみてください。
こんなに手軽にBIMデータをVRモードで見れるのは素晴らしいですね!

しかしながら、ドアが自動的に開くとか、そのような仕掛けをするには、このままでは使えそうにないです。そのような場合は3ds Maxを介してパーツを調整しましょう。

3ds Maxを介したワークフロー

Revitファミリは、UE4側でひとつのアセットとしてインポートされてしまいます。

一つのアセットとしてインポートされたRevitファミリ

例えばこの自動ドアが開くようにするには、ドア部分と、枠部分は、もともと別のファミリとして、作成しておく必要があります。そこまで戻るのも面倒ですし、ファミリをバラバラにしたとしても、もし回転ドアの場合、吊元にPivotPointを置かなければいけませんから、Revitだけでは現状は難しいです。
ということなら、この部分だけ3ds Maxを介して作ってみましょう。
まずはRevitから、エントランスのドアをFBXに書き出して3ds Maxへ移行します。

Revitからファミリを書き出す

RVTデータは、3ds Maxでそのまま開きますが、ファミリだけ読み込みたい場合、RFAデータは開きません。今回のようなケースではFBXで書き出します。

3ds Maxで編集

Revitから書き出したファミリ編集、書き出しについては動画を参考にしてください。

UE4へインポート

ではUE4でドア部分だけのDatasmithをインポートします。

UE4でドアを開けるギミックについては、とても長くなってしまいますので、今回、省略いたします。
書籍や公式ドキュメントなどで、簡単に出来る解説がたくさんありますので、ぜひ挑戦してみてください!
http://api.unrealengine.com/JPN/Engine/Matinee/HowTo/MHT_1/

パッケージング

このマルチユーザービューアーは、パッケージングして使用すると他者と共有できます。
同じネットワーク内にいれば特に難しい設定などはありません。

1.ビルドする

ビルドする

2.パッケージング

パッケージングに失敗しないことを祈るのみ・・・。

3.起動する

成功したらデスクトップで起動してみます。
保存したexeファイルを起動し、任意の名前を入れます。自分の名前など入力します。
この画面のUMGもカスタムできますので、ちょっとデザインするとグンとテンション上がりそうです。

UE4 起動画面

次に、Host a sessionかどうか聞いてきますので、このまま→ボタンで進みます

UE4 起動画面

空間に入れました!

4.別のPCで起動する

パッケージングしたものを、他の人にも配布します。
同じネットワークにいれば、すぐに使用できます。起動画面で任意の名前を入れ今度は「Join a session」を選択します。

UE4 起動画面

その後ネットワーク上でHostを自動で見つけられたら、成功です!

違うネットワーク間では、ルータの設定などが必要ですので、会社のシステムを調べてみなければいけませんね。
マルチユーザービューアーテンプレートについては、公式ドキュメントも参考にしてください。
https://docs.unrealengine.com/en-us/Studio/UnrealStudioProjectTemplates/MultiUserViewer

おまけツール

スクリプト紹介その1

ずいぶん前ですが、fieldjam林田さまがコラムにて配布していた、Revitからのデータをレイヤ分けするMaxスクリプトがとても便利でしたので、ご紹介させていただきます。今でもとても助かります。
「fieldjamのDesignVizエッセンス」

スクリプト紹介その2

弊社では3ds MaxのレイヤごとにDatasmithを複数書き出せるスクリプトを作成しました。
ダイアログで選択したレイヤをDatasmithかFBXへ書き出すことができます。
ダウンロードについては以下の弊社ブログからお願いします。
http://digitalplus.hatenablog.com/entry/2019/01/09/145157

長文にもかかわらず、最後までお読みいただきありがとうございました。
またチャンスがあれば登場しますので、引き続きコラムの後半をよろしくお願いいたします。