Blender 東京の都市を3DCGにする project plateau
代々木第一体育館をCG化していたら、渋谷原宿周辺の建物や地形を取り込みたくなりました。
「渋谷 3Dデータ」などのワードで検索してみたら、Project Plateauを見つけました。プラトーと読むそうです。
Project Plateauのデータを使うと、Blenderで簡単に都市の3DCGを作成できるので、方法をシェアします。
Project Plateauとは…?
Project Plateauは、日本の国土交通省が主導するプロジェクトです。日本各地の地形や建物、交通に関する3Dデータを提供し、研究や分析、新しいアプリケーションの導出などを目指しているようです。
このProject Plateauが提供する3Dデータは、Blenderでも活用できるので早速試してみました。

UnityやUnreal Engineでも活用できます。
そっちも楽しそう…。
BlenderでのProject Plateauデータの取り込み方
Project Plateauの解説ページでも、Blenderへの取り込み方は詳しく説明されていて、その通りにやってみたらすぐできました。
ファイルのダウンロード
東京のデータはG空間情報センターから一括してダウンロードできます。
目的の地域のファイルを探す
データのファイルは地域ごとにバラバラになっていて、ファイル名は番号になっています。
新宿とか、品川とかでラベリングされているのではないので、ちょっと面倒ですが、機械処理するには番号のほうが都合いいんですかね。
仕方ないので、目的の街の番号は、ファイル群にある 13100_indexmap_op.pdf を見て探しましょう…。
例えば、渋谷駅周辺は、53393595、53393596、53393585、53393586の周辺になります。
これに、建物(.bldg)、地形(.dem)、交通網(.tran)の拡張子を付ければファイル名ができます。
データのインポート
次に、Blenderのインポート機能で、Wavefront(obj)ファイルを指定して取り込みます。
トランスフォーム(軸の設定)が必要なので、気を付けましょう。前方の軸を”Y”、上向きの軸を”Z”に指定します。
ビューの対象範囲を広げる
扱う対象が10Km規模のデータになるので、一般的なプロジェクトよりもスケールが大きいです。なので、Blenderのビューの設定を変えないと全容を見ることができません。
対策として、3Dビューポートのビュー設定で、「終了」を10000mにするとよいです。
データが存在する位置に移動する
インポートしたオブジェクトは、ワールド原点からはるか遠くに存在する可能性があります。
アウトライナー上でオブジェクトを指定してから、3Dビューポートで テンキーの “.”を押すとオブジェクトを見ることができます。
取り込んだデータをレンダリングしてみる
早速レンダリングしてみましょう。
準備
ライティング設定で、太陽光を追加します。
都市が見えるアングルで、Ctrl + Alt + テンキーの”0″を押して、カメラの位置を同期します。
カメラ設定も、レンズ設定で範囲の終了を10000mに変更しておきましょう。
レンダリング
F12を押すと、読み込んだデータのレンダリングができます。
全部白なのも味気ないので、地形データには緑色、建物データには灰色のマテリアルを与えてレンダリングしてみました。

使用したデータは、詳細レベルが一番低いもの(LOD1)なのですが、それでも雰囲気出てますね。
よりリアルなLOD2データ
なお、ごく限られたエリアには、建物の形状やマテリアルもしっかり用意されたデータ(LOD2)も用意されています。スクランブル交差点のあたりをもっとリアルに再現したい場合などに使えますね。

地面が緑のままですが、建物だけLOD2にしてみました。広告などもそのまま入っていますね。

Project Plateauのデータは商用利用も可能ということですが、
肖像権とか大丈夫なのかな…。
おまけ:建物をカラフルにしてみる
建物のテクスチャデータが存在しないLOD1のデータですが、ちょっとでも楽しく見せるために各建物を適当に色分けしてみます。
- 建物オブジェクトの分離
- 色分けシェーディングのノード構成
建物オブジェクトを分離する
各建物に異なる色を塗るために、建物オブジェクトをバラバラに分離します。
建物のデータである *_bldg_* オブジェクトを選択して、編集モードに入り、「構造的に分離したパーツで」「分離」を実行します。
これで、建物をそれぞれ別の色で塗り分けることができるようになりました。

1000個単位でオブジェクトができるのでそこそこ処理は重いです。
色分けシェーディングをノードで構成
建物ごとに、ランダムな色を設定するシェーディングを構成します。
建物を選択した状態で、オブジェクトに新しいマテリアルを設定します。
メニューからシェーディングに切り替えて、先ほど設定したマテリアルのノードを編集します。
設定するのは「プリンシプルBSDF」ノードの「ベースカラー」です。
条件によって色を変化させるために「カラーランプ」ノードを追加します。「カラーランプ」ノード内に、お好みの色のグラデーションを設定しておきます。
「オブジェクト情報」ノードを追加し、「ランダム」を「カラーランプ」ノードの「係数」にリンクしておきます。これで、オブジェクト毎にランダムに色が選ばれます。
最後に、「カラーランプ」ノードの「カラー」を「プリンシプルBSDF」ノードの「ベースカラー」につなげます。

レンダリングする
レンダリングしてみましょう。

グラデーションを変えれば、LEGOっぽい原色の世界にもできます。

まとめ
Project Plateauから得られるデータを使って、リアルな都市を3DCG化する手順について共有しました。
- Project Plateauから、目的の都市のデータを取得する
- Blenderにデータをインポートする。方向指定に注意すること。
- ワールド原点から離れている場合があるので、アウトライナーから選んでフォーカスする。
- モデルのスケールが大きいので、カメラ設定などの距離上限を変更すること。
- 建物ごとに色を変える小技を紹介
簡単なので、ぜひ試してみてください。

ご自分が住んでいた町を3D CG化してみるのも楽しいと思います。
コメント