UnrealEngine4を使った、建築の動的なビジュアライゼーション
前回作成したSketcuUpのサンプル建物を使って、建築設計の視点から、UnrealEngine4の活用方法を探ってみます。
UnrealEngine4とは
UnrealEngine4は、EpicGames社のゲームエンジンおよび、そのエンジンを使ったゲームの製作環境です。VR、ARの分野ではUnityと人気を二分するような状況にあり、近年は建築のビジュアライゼーションにも使われ始めています。
UnrealEngine4は、作ったゲームを販売するのでなければ、基本的に無料で使うことができます。
建物3Dモデルの準備
UnrealEngine4のセットアップについてはここでは触れません。編集作業の際には「UnrealEditor」というツールを使います。
今回はSketchUpからUnrealEditorに3Dモデルを取り込みます。新しいバージョンであれば、DataSmithという付属のプラグインを使って簡単に取り込めるのですが、使っているのはバージョン8なので、Collada形式(.dae)で保存してから、無料3DモデリングソフトのBlenderで開き、改めて.fbx形式で書き出します。
UnrealEngine4プロジェクトの新規作成
通常は「サードパーソン」(一人称視点・キャラクターが目で見た映像が画面に映る)か「ファーストパーソン」(三人称視点・キャラクターの背後からの映像が画面に映る)のテンプレートを使うことになると思います。どちらも、基本的な手順や、キャラクターの操作方法は変わりません。"自分自身"が見えるか見えないかの違いだけ、と考えていいと思います。
こでは自分自身がどこにいるのかわかりやすいように「サードパーソン」のテンプレートを使用しました。
データのインポート
UnrealEditorの「インポート」から.fbx形式のデータを読み込むことができます。読み込んだアセットは下部のコンテンツブラウザに表示されるので、スタティックメッシュ(水色)だけを全て選んで、シーン内にドラッグします。
まとめて配置しても、それぞれの形状は共通の原点を基準にしているので、位置関係を保ったまますべての形状が配置されます。
配置したものは右側のアウトライナで全て選択された状態になっているので、そのまま新しいフォルダを作成し、グルーピングしておくと便利です。
DataSmithが使える場合は、取り込んだ形状がグルーピングされた状態でシーンに配置されるので、もっと手順は楽です。
データの加工
ここでは、設計途中の確認や打ち合わせ等に使うことを想定して、最小限の加工で済むようにしています。
取り込んだ形状には、「コリジョン」(衝突判定)が設定されていません。つまり、キャラクターがすり抜けてしまいます。取り込んだ分(最初から配置されていない分)の地面もすり抜けてしまうので、下に向かって永遠に落ち続けてしまいます。
個々の形状に対して設定するのは面倒なので、「編集」メニューの「プロジェクト設定」を開き、「エンジン」のところにある「Physics」から「Default Shape Complexity」を探して「Use Complex Collision As Simple」に変更します。こうすることで、個々の3D形状がそのままコリジョンの形状になります。
今回は開口のままにしてあるので不要ですが、開口をちゃんと建具でふさいでいた場合は、建具の部分のみコリジョンをオフにしておく必要があります。そうしないと、建物に出入りできなくなってしまいます。
さらに、ファーストパーソンの場合は、デフォルトで設定されている銃の発射機能を削除するなど、ブループリントの修正が必要になりますが、ここでは説明は割愛します。
実行
サードパーソンのテンプレートを選択したので、シーン内にはマネキンの形状が配置されています。ファーストパーソンの場合はカメラの形状が表示されているはずです。何もしなければ、この位置がスタート地点になるので、必要があれば修正します。
上部メニューの「プレイ」を選択すると、キャラクタを操作できるモードになります。"ビルドが必要です"というエラーメッセージが出ていますが、ここでは問題ないので無視しておきます。
画面上をマウスでクリックすると、"ゲーム"が始まります。キーボードの十字キーでマネキンのキャラクタを動かし、スペースでジャンプ、マウスで注視点を移動、だけ把握していれば十分でしょう。
階段の上り下りも普通にできます。このまましばらく遊んでいられそうです。
書き出し
完成したプロジェクトは、ファイルメニューの「プロジェクトをパッケージ化」から、単体で実行可能なファイル(Windows用の場合は.exe)として書き出すことができます。ダブルクリックですぐに実行が始まり、先ほどのプレイモード(キャラクタ操作モード)と同じ状態になります。
建築設計では、設計内容をいかにクライアントへわかりやすく伝えるかが課題となります。書き出したデータを例えばクライアントに送付し、建物の中をしばらく歩き回って遊んでもらえば、図面を見せるよりもずっと設計意図が伝わりやすいのではないかと思います。
注意1:このままでは「終了」ができないので、ブループリントでEscキーと終了操作を関連づけるなどの処理が必要です。そうしていない場合は、タスクマネージャを開いて無理やり終了させる必要があります。(ブループリントの説明はまた別の機会にしたいと思います。)
注意2:実行するにはUnrealランタイムのインストールを求められることがあるようで、会社のPCなどではすぐに実行できないかもしれません。(一般ユーザーでは権限がなかったり。実際私の会社ではそうでした。)
積み残し
(1)ライティング・・・ここまでの操作だけで、建物内を自由に歩き回ることができます。しかしライティングを設定していないので薄暗い空間になってしまっています。
(2)インタラクティブな演出のためのプログラミング・・・また、ゲームエンジンの機能をフルに活かすのであれば、クリックで壁紙やプランを変更したり、ドアの開け閉めの動きをつけたりといったインタラクティブな仕掛けを作ることができます。
ただそのためにはブループリントによるプログラミングが必要となりますが、通常の設計者にそこまでのスキルを求めるのは難しいかと思います。
おわりに
BIMで設計をすることが増えてきていますが、例えばBIMソフトのRevitにDataSmithプラグインが入っていれば、Revit側とUnrealEditor側、たった二つの操作で、そっくり建物形状を取り込めてしまいます。コリジョンの設定なども、テンプレートとして使うプロジェクトをあらかじめ作成しておけば、毎度の操作は不要になります。
ゲームエンジンを建築設計の業務に取り入れるハードルは、劇的に低くなっています。今後クライアントに対しての設計説明は、図面や3Dの静止画、映像を"一方的に"見せる方法から、クライアントに操作してもらって設計建物の中を見て回るような、クライアントが主体にもなれる方法に、移り変わっていくのかもしれません。