チュートリアル / 3ds Max & UnrealEngine4で建築ビジュアライゼーション ~データフォーマットDatasmithを使ったワークフロー~
第7回:Revit にも対応!Unreal Studio4.21検証
- 3ds Max
- VR
- コラム
- チュートリアル
- 中級者
- 学生・初心者
- 建築・製造・広告
こんにちは、初めまして。スタジオ・デジタルプラスの大橋ユキコです。
今回、初めての投稿となります。今更の登場ではありますが(笑。
これまで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となっております。
プラグインをインストールすると、「アドイン」メニューにアイコンが追加されています
3Dビューからの書き出し
書き出す時は、FBX同様、プロジェクトブラウザの3Dビューを開いた状態で書き出します。
同じRevitプロジェクトでも、以下のように、書き出すビューの状態で、Datasmithが生成されます。
断面アイソメ図の例
内観パースの例
今回の検証は、Revit 2019を使用して、以下のマンションプロジェクトを書き出しました。
Revitデータは配布することができませんので、お持ちのプロジェクトで、検証してみてください。
*ご協力:施主 東海住宅販売様 設計 住工房様
3Dビューに切り替えて、「アドイン」メニューからDatasmithに書き出します。
UE4インポート~新しいテンプレートを使おう
では、早速UE4へインポートしてみましょう。
テンプレートは新しい「マルチユーザービューアー」を使ってみましょう。
マルチユーザービューアテンプレートとは
同時に複数のユーザーで、空間に入ることができます。マウス、キーボードも使えますが、HMDがあればVRモードでPlayできます。
ひとりでも使用できますし、レーザーポインターのような光線が左クリックで出ますので、他の人と同じ空間に入って設計を協議することができます。
あらかじめ4つのカメラ(Bookmarks)が設定してありますので、カーソルキー(→←)で切り替えます。
インポートの準備
このレベルには、Datasmithのサンプル建築がありますので、フォルダ「collision」「Trees」に入っているメッシュと、「SampleBuilding」アクタの子になっているメッシュを削除します。
レイヤもすべて消してしまっていいでしょう。
建築が空っぽになりました。
コンテンツフォルダで、新規にインポート用のフォルダを作成し、Datasmithファイルをインポートします。
インポートオプションはすべてチェックを入れ、ライトマップは必要に応じて解像度を上げてください。
インポート結果
レイヤを見ると、Revitのカテゴリーごとにレイヤ変換されていて助かりますね。
アウトライナでは、Revitの基準レベルごとにアクタが配置されていますので、メッシュの管理がしやすいです。
Revitマテリアル
マテリアルを見ると、すべてマテリアルインスタンスで来ていましたので3ds Maxの時と同様ですね。
パラメータを調整するか、他のPBRマテリアルサンプルなどを利用するのも良いでしょう。
Revitマテリアルでは手続型のタイル目地等を使って、石やタイル表現ができますが、それらの設定はUE4マテリアルに継承されません。
一方、Revitの一般マテリアル内のイメージファイルで指定したTextureはUE4側でDiffuseColorとしてインポートしてくれますので、出来るだけTextureで作成しておいたほうが良さそうです。
また、Revitに用意されている物理アセットの中のメタルタイプなどは、UE4へメタリックが継承されませんでしたので、金属を作る時は一般マテリアルで「ハイライト」を「メタリック」にして作成したほうがよさそうです。
Revitファミリ
次にファミリの情報を見てみましょう。下の窓のように、同じファミリで、パラメータの値が全く一緒のものは、一つのスタティックメッシュアセットとしてインポートされ、インスタンス化されて配置してくれています。
メタデータ
DatasmithはRevitの属性を引き継ぎます。
窓を選択して詳細パネルで「AssetUserData」を確認するとメタデータが継承され、ファミリのパラメータと値が表示されています。これらはインポート時、インポート後もBPから値を拾うことができますので、今後いろいろと応用できそうです。
インポート結果まとめ
あくまでも現時点ですので、これから改良されるかもしれませんが、気づいた点をまとめます。
- Revitカテゴリがレイヤ名になる
- 同一ファミリで値がすべて同じものは、インスタンス化される
- メタデータを継承できる
- ライト、カメラも継承されるが、正投影モードは継承されない
- Revitにある車や植栽などのRPC点景は継承できない
- Revitマテリアルは今のところ一般マテリアルアセットを使用しよう
床コリジョンをいれて、プレイしてみる
このままプレイしても、もともとあった地面も消してしまいましたので、プレイヤーが落ちてしまいます。歩き回るためには、衝突判定するための「コリジョン」を設定する必要があります。
コリジョンの作り方は以下の動画を参考にしてください。
地面としてのメッシュが無い場合は、このテンプレートにあった床を使用する方法でもいいと思います。大きさが合わないので拡大して配置しました。
コリジョンが設定できましたら、PLAYしてみてください。
こんなに手軽にBIMデータをVRモードで見れるのは素晴らしいですね!
しかしながら、ドアが自動的に開くとか、そのような仕掛けをするには、このままでは使えそうにないです。そのような場合は3ds Maxを介してパーツを調整しましょう。
3ds Maxを介したワークフロー
Revitファミリは、UE4側でひとつのアセットとしてインポートされてしまいます。
例えばこの自動ドアが開くようにするには、ドア部分と、枠部分は、もともと別のファミリとして、作成しておく必要があります。そこまで戻るのも面倒ですし、ファミリをバラバラにしたとしても、もし回転ドアの場合、吊元に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もカスタムできますので、ちょっとデザインするとグンとテンション上がりそうです。
次に、Host a sessionかどうか聞いてきますので、このまま→ボタンで進みます
空間に入れました!
4.別のPCで起動する
パッケージングしたものを、他の人にも配布します。
同じネットワークにいれば、すぐに使用できます。起動画面で任意の名前を入れ今度は「Join a session」を選択します。
その後ネットワーク上で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
長文にもかかわらず、最後までお読みいただきありがとうございました。
またチャンスがあれば登場しますので、引き続きコラムの後半をよろしくお願いいたします。