LumionからVRコンテンツをつくりWebで見る

Google VR View

せっかくLumionを持っていたら、ぜひVRコンテンツを作成したい。もちろんGearVRやOculusなどのゴーグル用のコンテンツも作成できるが、ゴーグルを持って無くても見ることのできる便利なメディアが  Google VR View である。java scriptを埋め込むだけで、Lumionで作成した360°パノラマイメージをwebページ上で体験することができる。

SketchUpからLumionへ

それではLumionからコンテンツを作ってみよう。今回は下のSketchUpモデルを使う[Fig01]。

[Fig01] Lumionと同期させるSketchUPのモデル

LumionではSketchUpのファイル.skpをネイティブに開くことができるようになっている。前回のRevitからLumionへと同様、SketchUpでもLiveSyncを使うこともできるが、今回はLumionに.skpファイルを直接開く(インポートする)やり方でデモ。直接取り込むのとLiveSyncを使用して取り込むのも何も変わらない。(結局の所、筆者の遅いPCではLiveSyncを付けたまま作業できないし。。)取り込みには緑のインポートボタンを押す。

[Fig02] IMPORT

インポートはSketchUpのレイヤや表示などの設定がそのまま反映される。すなわち、SketchUpで例えば「レイヤ1」を非表示の状態でインポートするとLumionに「レイヤ1」は取り込まれない。Revit+LiveSyncと同様、SketchUpのマテリアルはLumionでそのまま有効。ガラスが不透明でインポートされるかもしれないが、その場合はLumionでまとめてアサインできるので問題ない(Revit+LiveSyncの時と同じ)。SketchUpの場合は、面で作成した木や人の要素や、ガラス以外のマテリアルやからマッピングテクスチャもすべてSketchUpと同じように取り込まれる[Fig03]。「ネイティブ」なので。

[Fig03] LumionではSketchUpモデル(.skpファイル)を直接インポートすることができる。

木や人はLumionで新たに入れ直し、SketchUpの不必要なレイヤは消して、.skpファイルを同期し直す。先の緑のIMPORTボタンを押すと、もう一つ同じモデルがインポートされてしまう。同期するには以下の手順で行う。まずモデルを選択すると、下のモデルの情報パネルが出てくるので[Fig04]、

[Fig04] インポートモデルの情報パネル

左の同期ボタンを押す[Fig05]。 モデルが大きいと同期に少し時間がかかる。少し待つとSketchUpの平面の木や人が消える。同期なのでLumionでアサインしたガラスなどの設定は変わらないので安心ください。これでモデルの準備が完了です。

[Fig05] 同期ボタン

Lumion 360°パノラマビュー

いよいよVRコンテンツの書き出し。360°パノラマビューを使う。設定は、カメラや動画と同じ。

[Fig06] 360°パノラマビュー

[Fig07] パノラマビューモード

モノラルモード

レンダリングボタンを押すと、保存するファイル形式の設定画面となる。Target DeviceはGeneric(汎用デバイス)。Stereo(立体的)はOn/Offの設定があるが、まずはOffでレンダリングすると

[Fig08] レンダリング設定画面、モノラルモード(立体的オフ)

モノラルモードでは以下のようなレンダリング結果。

[Fig09] 360°パノラマビュー、モノラルモードでのレンダリング

ステレオモード

一方、ステレオモード(立体的)オンでレンダリングすると

[Fig10] レンダリング設定画面、ステレオモード(立体的オン)

左目と右目用の画像が上下にレンダリングさる。

[Fig11] 360°パノラマビュー、ステレオモードでのレンダリング

モノでもステレオでもどちらのレンダリングでもGoogleVRで見ることができるが、もちろんより臨調感のあるVRコンテンツはステレオです。これでコンテンツを書き出し完了。静止画(jpg)ですが、360°パノラマ画像はレンダリングに非常に時間がかかる。ちなみに著者の遅いPCでは上のレンダリングで半日かかる。おそらく5分程度の動画なら2~3時間でレンダリングできるはずです。

htmlの設定

ここからはサーバーにアップするためのhtmlのページの設定。以下の手順はGoogleVRの公式ページの通り。まずは、VRViewのjavaコードの埋め込み。htmlの中にGoogleのサーバのリンクを貼る。

<script src="https://storage.googleapis.com/vrview/2.0/build/vrview.min.js"></script>

次にBodyの中にvrviewを貼る。

<div id='vrview'></div>

最後にVRコンテンツのロード。

window.addEventListener('load', onVrViewLoad);

function onVrViewLoad() {
  // Selector '#vrview' finds element with id 'vrview'.
  var vrView = new VRView.Player('#vrview', {
    video: '/url/to/video.mp4',
    is_stereo: true
  });
}

上の例ではvideo:を読み込むことなになっているが、上のデモのような静止画(jpg)の場合は、「video: ‘/url/to/video.mp4’, 」の部分を 「image: ‘ファイル名.jpg’,」

に変えるだけ。以下はhtmlの例。幅と高さは適宜設定してください。

==============================================

<html>

<HTML>
<HEAD>
<TITLE>タイトル</TITLE>

<script src=”https://storage.googleapis.com/vrview/2.0/build/vrview.min.js”></script>

<script>
window.addEventListener(‘load’, onVrViewLoad);

function onVrViewLoad() {
var vrView = new VRView.Player(‘#vrview’, {
image: ‘ファイル名.jpg’,
is_stereo: true,
width: ‘100%’,
height: 500
});
}
</script>
</head>

<body>
<div id=”vrview”></div>
</body>

</html>

==============================================

サーバへのアップロード

htmlファイルをPC上で直接開くが、読み込むことがでない[Fig12]。

[Fig12] PC上(ローカル環境)ではGoogleVRが読み込めません。

PCのローカル環境ではGoogleVRが読み込めないようです。筆者はここでつまずく。サーバにアップして確認する。

[Fig13] GoogleVR

サーバにアップロードしたら無事に見れるようになりました。

簡単でしょ。試してみてください。

2020.11.22 HN

※動画(3分:1,280 x 720)のレンダリング時間は、360°パノラマイメージ(4,096 x 4,096)の半分。

RevitからLumionへ

昨年Lumionを購入した。それまではプレゼン用のレンダリングも含めRevit内ですべて作業していたが、重宝していたMental rayが使えなくなり、Vrayを入れたりしたが、ようやくLumionに行き着いた。BIMを始めた時点で早々にLumionを導入していれば良かったというのが率直な感想である。国内外を問わず、建築設計事務所での採用率が高いのもうなずける。

Lumionは「リアルタイムレンダリング」と言って、ゲーム開発やVRコンテンツなどの作成のプラットフォームとして使用されるUnityやUNREALなどと同様のシステムのソフトである。リアルタイムというくらいなのでレンダリング時間がとても早く、したがって動画も手軽に作成できる。一昔前は、建築の世界ではほぼレイトレーシングレンダリングだけに頼っており、アーキテクトは施主やプロポーザル等へのプレゼンでリアルな勝負パースを作成したいときは、「CG家さん」に外注せざるを得なかった。フォトリアルなレンダリングを作成することができるソフトの代表格に3dsMaxがあるが、アーキテクトが直観的に使えるような簡単なソフトではなく、たとえマスターしたとしても入力に時間がとられるので、建築家が設計をしながら3dsMaxで絵を描くのはなかなかハードルが高い。また、3dsMaxのレイトレーシングはとてもきれいだが(映画などCGのプロが使うソフト)、その分レンダリングに時間がかかる。筆者が20年程前働いていたNYのヴィニョーリ事務所では、Maxを使いこなすインハウスの若いレンダリングチームがいて、コンペの前になると、事務所中の40~50台のコンピューターを稼働させネットワークレンダリングをかけて動画を作成していた。もはやBIMやVRが標準になった若い世代には想像つかない話である。さて今日のBIM時代のアーキテクトは、最初からリアルタイムレンダリングを使えば、プレゼン作業がかなり効率化できる。特にLumionは建築用のレンダリングや動画作成のみに特化してる。基本的にモデリング機能は付加せずに、Revit、ArchiCAD、Sketchup、Rhinocerosなどアーキテクトに広く使用されているBIMや3DCADとのすべてのソフトとの互換性の高さで勝負しているソフトである。もちろんVRソフトなのでゲームコントローラーやゴーグルで内覧会ができるわけである。

[Fig01] Lumionと同期させるRevitのモデル

さて、そんなLumionを買っては見たものの、最初のうちはデータのやり取りのやり方が分からず、半年くらいは「宝の持ち腐れ」だった。もったいないのでネットで勉強した所、データのやり取りはとても簡易で、その互換性もほぼ完璧であり、RevitとLumionを「インタラクティブ」に使用できるということが分かった。えらく前置きが長くなってしまったが、ここで「インタラクティブ」であるとことをさっそくデモしたい。

[Fig02] Lumion LiveSyncのアドインの画面

まず、RevitとLumionを連携させるためには、Revitに「Lumion LiveSync」というアドインをインストールする[Fig02]。アドインはAutodeskのAppStoreから無料でダウンロードできる。軽いのですぐダウンロードでき簡単に組み込める。

[Fig03] Lumion とRevitの画面

次にLumionを開く。上のようにダブルスクリーンで左右で表示させると便利である[Fig03]。

[Fig04] Lumion LiveSyncの同期操作

RevitのLiveSyncの操作は極めてシンプルである。[Fig04] ライブシンクというくらいなので、Revitの3DビューとLumionを同期させることができる。再生ボタンを押すと、LiveSyncがON(緑色)になる。すると、Lumionの中にRevitモデルが表れる

[Fig05] Lumion に何も出てこない!

はずなのだが、何も出てこない![Fig05]  よく見ると地面が暗くなっている。実はRevitで地面の高さを標高通りに作成しているため、Lumion上で約100Mの高さにモデルが浮いており、大きな影が落ちているのである。※特に何も設定しなければRevitの基準点(0,0,0)がLumionの基準点(0,0,0)に対応している

[Fig06] ようやく宙に浮いているモデルが表れた!

実はそのことに気づくまで相当時間がかかったのだが、我慢強く視点を後ろにグーっと引いていき、宙に浮いているモデルをようやく発見することができた[Fig06] 。宙に浮いたまま作業するのも気持ち悪いので、Lumionの地面の近くに移動させると、Lumionの地面にRevitのモデルが表れる。※Lumionで数値入力で移動させると手っ取り早い[Fig07]

[Fig07] Lumionの地盤面近くにモデルを移動

Revitのモデルと比較すると、下図[Fig08] のような結果となる。Revitの木や人は同期してない。(そもそも木や人などの点景はLumionに良いライブラリーが揃っているので必要ない。)Revitのテクスチャーは基本的にすべて入る。ここではガラスも透明な状態で入っているし、水もしっかり表現されている。ガラスなどがうまく入っていない時は、Lumion上でRevitのマテリアルごとにテクスチャーを一括で変更できるようになっているので、ガラスを透明度や反射度を上げたり、色をつけたり、すりガラスにしたりなどインスタントに入力できる。Lumionで一度マテリアルなどを変更すると、その設定は保存される。※注意点を後に示す

[Fig08] 同期結果(Revitの木と人は同期されない)

さて屋根が真っ白だが、Revitのテクスチャーマップを外部参照していたりすると、こういう事態が発生する。Revitに戻ってテクスチャーイメージを再設定するとLumionにすぐに同期する。このようにRevitで作業するとLumionに自動的に同期されるのである。もちろん、テクスチャーだけでなくRevitで窓を大きくしたりすれば、Lumionに不整合なく反映される。繰り返すと、RevitとLumionで「インタラクティブ」に設計できるということである。

※PCのスペックが低いとLiveSyncをかけたままでRevitとLumionを同時作業すると、動作が非常に遅くなるので、そういう場合はRevitでの最新の状態を確認したいとき以外はLiveSyncを切っておくと良い。

[Fig09] Revitでマテリアルを割り当てると、その修正が自動的にLumionに同期する

ここで注意したいのは、Revitのすべての3Dモデルと同期するので、例えば[Fig10] のような断面パースのビューがアクティブな時に、意図的にせよそうでないにせよ、LiveSyncの再生ボタンを押すと、Lumionに断面パースのビューが同期するということである。Lumionの中で表示させたくないRevitの家具や車などはRevitの3Dビュー内で非表示にして同期させるのだが、同期させる3Dビューを間違えるとその設定がすべて元に戻ってしまうので注意ということである。この点も最初のうちは、知らずに作業し何度と失敗したことか。。

[Fig10] Revitモデルとの同期はすべての3Dビュー対して有効

[Fig11] Lumionで3Dの木と人を入れたもの

上はLumionで3Dの木と人を入れたもの。さまざまなアセットが用意されているので、選ぶのも大変である。地面の芝なども3Dの草むらの表現ができるのだが、筆者のPCでは重たくなりすぎるのであきらめている。この画面はあくまでLumionの基本画面で、ここからレンダリングをかけるとよりリアリティのあるレンダリングが出力できる。事務所のミドルスペックのPCでも、2Dのパースは大きいものでも1分程度(レイトレーシングでは2~3時間)で、Youtubeにアップロードするような1,280 x 720ピクセル3分程度の動画なら1.5時間くらいで出力できる。おかげで夜中にレンダリングを始め、朝にミスに気付いて提出に間に合わなくなるなんて悪夢から解放された。リアルタイムレンダリングさまさまである。

2020.10.21 HN

レイトレーシング系のレンダリングエンジンはもう不要ということではありません。例えばVrayはRevitのエクステンションとして直接組み込むことができ、さらにVray Nextにバージョンアップされたので、Revitの中でさらにきれいな絵が出力できるようになってきている。3dsMax, Vrayなどのレイトレーシング系のソフトで、とことんフォトリアルなレンダリングを追及するか、Lumionのようなリアルタイムレンダラーで手早く効率的なプレゼンを追及するか、プレゼンのオプションが増えたということです。

2020.11.11 HN