tpc08-1

TOPIC 8|Blenderで活用する[1/2]|3D都市モデルのBlenderでの読み込み方

Blenderは3DCG製作のほか、2Dアニメーション、デジタル合成、動画編集も行える統合型のオープンソースのツールです。BlenderでPLATEAUの3D都市モデルを活用する方法を、基本的な読み込み方から説明します。

Share

TOPIC8:Blenderで活用する

Blenderは、オープンソースの3DCG制作ツールです。このトピックでは、BlenderでPLATEAUを活用する方法を説明します。

【目次】

8.1  Blenderとは

 8.1.1  Blenderのダウンロード

 8.1.2  Blenderの起動とセットアップ

 8.1.3  プロジェクトの新規作成

8.2  3D都市モデルの基本的な読み込み方

 8.2.1  OBJ形式ファイルの入手

 8.2.2  OBJファイルをBlenderにインポートする

 8.2.3  視点の調整

8.3  別のデータを重ねる

8.1 _ Blenderとは

Blenderは3DCG製作のほか、2Dアニメーション、デジタル合成、動画編集も行える統合型のオープンソースのツールです。Blenderを使うと、3D都市モデルをインポートして、必要な建物だけを取り出したり、複数の3D都市モデルをインポートしてマージしたりするなど、3Dモデルとしてさまざまな加工ができます。

8.1.1 _ Blenderのダウンロード

Blenderは、Blenderの公式サイトのダウンロードページから入手できます。このトピックでは、2022年10月時点の最新版である3.3.1を扱います。

ダウンロードしたインストーラを起動し、画面の指示通りに進めていけば、インストールできます。

【Blenderの公式ページ】

https://www.blender.org/

図 8-1 Blenderのダウンロード
図 8-2 Blenderのインストール

8.1.2 _ Blenderの起動とセットアップ

初めて起動すると、クイックセットアップの画面が開きます。ここでは言語を[日本語(Japanese)]にして他の設定はデフォルトのまま、[次]をクリックし、これを以降用いる設定として保存して進めます。

図 8-3 Blenderのセットアップ

8.1.3 _ プロジェクトの新規作成

Blenderは、3DCG製作以外に、2Dアニメーションや動画編集にも使えるソフトです。起動すると、図 8-4に示すスプラッシュ画面が表示され、どのようなファイルを新規作成するのかが尋ねられます。

以下では、PLATEAUの3D都市モデルをBlenderで開いて3DCG製作をしていきます。そのようなときは、[全般]からプロジェクトを新規作成します。

図 8-4 [全般]として新規作成する

初期画面では大きな透視図が表示されます。このエディター画面を「3Dビューポート」と呼びます。ここに3Dのオブジェクトを配置していきます。

配置先は「シーン」と呼びます。シーンに配置されているオブジェクトの一覧は、右上の「アウトライナー」と呼ばれるエディターに表示されています。最初の状態では、カメラ(Camera)とキューブ(Cube)、ライト(Light)の3つのオブジェクトが配置されています。これらは、シーンコレクションと呼ばれるグループ化機能で、ひとまとめにされています。

図 8-5 起動直後の画面
コラム:操作ウィンドウを切り替える

起動直後、右上にはアウトライナーが表示されています。[エディタータイプ]をクリックすると、別のエディターに切り替えることもできます。左側の3Dビューポートについても同様に、ほかのエディターに切り替えられます。

図 8-6 別の操作ウィンドウに切り替える

以降、PLATEAUの3D都市モデルをダウンロードするにあたって、最初に表示されている中央のキューブが邪魔になるので、あらかじめ削除しておきます。

削除するには、3Dビューポートでキューブ自体をマウスでクリックして選択、もしくは、アウトライナー上で[Cube]をクリックして選択し、[Delete]キーを押します。

8.2 _ 3D都市モデルの基本的な読み込み方

Blenderでは、OBJ形式やFBX形式のファイルをインポートできます。ここではOBJ形式の3D都市モデルを読み込んで、表示する方法を説明します。

8.2.1 _ OBJ形式ファイルの入手

次のいずれかの方法で、OBJ形式の3D都市モデルを準備します。

----------------
①G空間情報センターから、利用したい3D都市モデルのOBJ形式ファイルをダウンロードする

G空間情報センターでは、一部の都市で、CityGML形式以外に、OBJ形式やFBX形式に変換したファイルを提供しています。
2022年11月現在、提供されている都市は、下記のとおりです。

都市提供形式URL
東京都23区OBJ、FBXhttps://www.geospatial.jp/ckan/dataset/plateau-tokyo23ku
北海道札幌市OBJ、FBXhttps://www.geospatial.jp/ckan/dataset/plateau-01100-sapporo-shi-2020
神奈川県横浜市OBJhttps://www.geospatial.jp/ckan/dataset/plateau-14100-yokohama-city-2020
愛知県名古屋市OBJhttps://www.geospatial.jp/ckan/dataset/plateau-23100-nagoya-shi-2020
大阪府大阪市OBJhttps://www.geospatial.jp/ckan/dataset/plateau-27100-osaka-shi-2020

PLATEAU SDK【TOPIC 17】やFME Form【TOPIC 4などを使って、CityGMLから変換する

CityGMLから変換する工程を工夫することで、必要な建築物だけを取り出すなどのカスタマイズが可能です(FME Form等での変換は【TOPIC 3 3D都市モデルデータの基本】「3.5 座標と高さの取り扱い」、【TOPIC 4 CityGMLから各種データ形式へのコンバート】参照)。
----------------

ここでは①の方法で、東京都23区の3D都市モデルをダウンロードしたものを使います。

G空間情報センターの東京都23区の3D都市モデルのページを開き、[OBJ]の部分からダウンロードします(図8-7)。

図 8-7 G空間情報センターからダウンロードする

東京都庁周辺のデータ

G空間情報センターからダウンロードした東京都23区のOBJ形式ファイルでは、3次メッシュの単位でファイルが分割されています。

以下では、新宿の東京都庁付近の3D都市モデルを例として扱います。この建築物は、3次メッシュの「53394525」に存在します。

【メモ】

2次メッシュは約10km四方、3次メッシュは約1km四方、4次メッシュは約500m四方です(4次メッシュは、2分の1地域メッシュとも呼ばれます)。メッシュについては、【3D都市モデルデータの基本】(https://www.mlit.go.jp/plateau/learning/?topic=basics-of-3dcitymodal)を参照してください。

ファイル構造

ファイルは、次の構造で格納されています。

13100_tokyo23-ku_2020_obj_3_op
├─bldg
│  ├─lod1
│  │  ├─53392546_bldg_6677_obj
│  │  │      53392546_bldg_6677.obj
│  │  │  …略…
│  └─lod2
│      ├─53392633_bldg_6677_obj
│      │  │  53392633_bldg_6677.obj
│      │  │  materials.mtl
│      │  │  
│      │  └─materials_textures
│      │          hnap0664.jpg
│      │  …略…
├─brid
│  ├─53392641_brid_6677_obj
│  │  │  53392641_brid_6677.obj
│  │  │  materials.mtl
│  │  │  
│  │  └─materials_textures
│  │          hnap0339.png
│  │  …略…
├─dem
│      53392545_dem_6677.obj
│      53392546_dem_6677.obj
│      …略…
├─metadata
│      obj_13100_2020_metadata_op.xml
└─tran
        533925_tran_6677.obj
                …略…

都庁を含む53394525というメッシュコードの3D都市モデルは、LOD1、LOD2それぞれで、次のファイルが相当します。

LOD1の場合:bldg/lod1/53394525_bldg_6677_obj/53394525_bldg_6677.obj

LOD2の場合:bldg/lod2/53394525_bldg_6677_obj/53394525_bldg_6677.obj

座標系とスケール

G空間情報センターからダウンロードできるOBJ形式ファイルは、平面直角座標に変換されたものであり、その座標軸に合わせて、北方向がX軸、東方向がY軸、高さ方向がZ軸に設定されています(図3-27を参照)。単位はメートル単位です。

3Dソフトによって軸の向きや縮尺が異なるので、それに合わせて読み込む必要があります。

コラム:4次メッシュ

都市によっては、3次メッシュをさらに4分割した「4次メッシュ」で分割されることもあります。4次メッシュは、4分割した左下を「1」とし、反時計回りに連番が付けられています(図8-8)。

図 8-8 4次メッシュの番号

8.2.2 _ OBJファイルをBlenderにインポートする

3D都市モデルのOBJファイルをダウンロードしたら、Blenderにインポートして配置します。ここでは、LOD1の53394525_bldg_6677.objファイルを配置してみます。

[1]OBJファイルをインポートする

Blenderの[ファイル]メニューから[インポート]―[Wavefront(obj)]を選択します。

図 8-9 インポートする

[2]OBJ形式ファイルを開く

フォルダをたどって、LOD1の53394525_bldg_6677.objファイルを選択します。

このとき[トランスフォーム]で、軸の向きを設定します。[前方の軸]を「Y」、[上向きの軸]を「Z」に設定し、[Wavefront OBJをインポート]をクリックして読み込みます。

Blenderのシーンのデフォルトの寸法単位は「メートル」であり、PLATEAUのOBJ形式ファイルもメートル単位であるため、原寸で読み込めます。

図 8-10 OBJファイルを選択する
コラム:トランスフォームを間違えた場合

トランスフォームの軸が正しくないと、間違った向きでインポートされてしまいます。

図 8-11 トランスフォームを間違えた場合の結果例

[3]読み込んだ3D都市モデルを表示する

右上の[アウトライナー]を見ると、インポートによってデータが登録されたことがわかります。インポートされたデータは、原点に配置されますが、この段階では3Dビュー上に見えません。

図 8-12 インポートしたOBJファイルが登録された
コラム:FBX形式ファイルを読み込む

同様に[ファイル]メニューから[インポート]―[FBX(.fbx)]を選択すると、FBX形式ファイルを読み込めます。

FBX形式ファイルを読み込むときも、[トランスフォーム]のオプションで[方向を手動で設定]を選択し、それぞれの軸の向きを設定します。[前方]で[Yが前方]、[上]で[Zが上]を選択します。

そして[スケール]には「100.0」を設定します。これはBlenderのFBX形式のインポートでは、センチメートルを単位とするためです。

図8-13 FBX形式ファイルを読み込む

8.2.3 _ 視点の調整

データはインポートされていますが、視点の関係で、3Dビュー上では見えません。視点を調整して見えるようにします。

[1]視点を向ける

まずは視点を3D都市モデルに向けます。アウトライナー上で読み込んだ3D都市モデルをクリックして選択してから、テンキーの[.]キーを押します(もしくは[ビュー]メニューの[選択をフレームイン]を選択します)。この操作で、オブジェクト全体が見えるように視点が移動します。

図 8-14 視点を向ける

[2]遠くまで見られるようにする

既定のビューの設定では、1000m先までしか映しません。OBJ形式の3D都市モデルは、メートルを単位とした平面直角座標系でとても大きく、この設定では、全域が入るように視点を合わせたとき、遠くにありすぎて見えません。

そこで、より遠くまで見えるようにビューの設定を変更します。左側の3Dビューポートをクリックしてアクティブにしておき、[N]キーを押すと、右側にアイテムやツール、ビューを選択できる画面が表示されます。この画面で[ビュー]タブを開き、「終了」を「10000m」に設定します。これは10000m先まで表示されるようにする、という設定です。このように変更すると、3D都市モデルが表示されます。

【メモ】

表示されたウィンドウは、もう一度[N]キーを押すと消えます。

図 8-15 ビューを設定すると表示されるようになる

8.3 _ 別のデータを重ねる

同じ平面直角座標系であれば、同様の方法でインポートすると、それらはピッタリ重なります。

例えば、隣接する代々木周辺の3次メッシュ「53394515」(53394515_bldg_6677.obj)を追加すれば、図 8-16のように、その横に表示されます。

図 8-16 隣接地域にLOD1をさらに追加したところ

もちろん、LOD1とLOD2とを重ねて表示することもできます。同じく隣接する新宿駅周辺の3次メッシュ「53394526」のLOD2モデルを追加した例を図 8-17に示します。

図 8-17 隣接地域のLOD2を追加したところ

なお、LOD2であるのにテクスチャが表示されていないのは、3Dビューの既定の表示が「ソリッド」になっているためです。右上のボタン群で[マテリアルプレビュー]や[レンダープレビュー]に切り替えれば、テクスチャも表示されます。

図 8-18 ビュー切り替えのボタン
図 8-19 マテリアルプレビューに切り替えたところ

重ねられるのは建築物だけではありません。地形や橋梁を重ねることもできます。同じメッシュコードの地形データであるdem/53394525_dem_6677.objを重ねた例を図 8-21に示します。マテリアルプレビューだとややわかりにくいですが、ワイヤーフレームに切り替えて少し拡大すると、地面の起伏が表現されていることがわかります。

【メモ】

拡大・縮小の操作は、マウスのホイールで行えます。手のアイコン部分をドラッグすることで上下左右に動かせます。

図 8-20 マウスでの操作
図 8-21 地形を重ねたところ
図 8-22 ワイヤーフレームで表示したところ
コラム:道路の高さを表現する

PLATEAUの3D都市モデルに含まれるLOD1及びLOD2道路モデル(tranモジュール)は、高さを持ちません(ただしLOD3には高さ情報があり、立体交差が表現されています)。他方、建築物モデルなど他のデータと組み合わせて道路モデルを3次元的に利用したい場合には、道路モデルの疑似的な高さを付与する方法が便利です。ここでは、地形(dem)のデータを利用して、道路モデルに高さを付与する方法を紹介します。

考え方としては、図8-23のように道路データを押し出して立方体を作り、それを地形データでブーリアン処理して切り出すことで生成します。

図8-23 地形データとブーリアン処理して道路を持ち上げる

実際の操作としては、次のようにします。

[1]道路と地形のデータを読み込む

Blenderで、道路と地形のデータを読み込みます。

図8-24 道路と地形のデータを読み込む

[2]道路を押し出す

道路の任意のオブジェクトを選択し、[Tab]キーを押して[編集モード]に切り替え、[選択]―[すべて(A)]、[面(Ctrl+F)]―[面を押し出し]の操作をして、地形と交差する立方体を作ります。

図8-25 道路を押し出して地形と交差する状態にする

[3]ブーリアンを追加する

手順[2]の押し出した道路オブジェクトを選択し、[プロパティ]エディターの[モディファイアープロパティ]から[モディファイアーを追加]を選択し、[ブーリアン]を追加します。

図8-26 ブーリアンを追加する

[4]地形とブーリアン処理する

ブーリアンの設定でスポイトアイコンを使って、演算対象として、地形のオブジェクトを選択します。

[交差]を選択し、[下向きの矢印]ボタンから[適用]を選択します。

図8-27 地形とブーリアン処理する

この処理によって、地形と同じ高さで道路を押し上げた立方体が切り取られます。

図8-28 道路の上面ができた

[5]同様の処理を繰り返す

同様の処理を繰り返します。

ひとつずつ編集するのは煩雑なので、複数まとめて処理することもできます。まとめて処理するときは、対象オブジェクトを選択して、[Ctrl]+[J]キーでオブジェクトを結合しておきます。

図8-29 オブジェクトを結合する

結合したオブジェクトに対して、同じ処理をすると、図8-30のようにスパイク状の形状が作成されることがあります。その場合は、図8-27において[モディファイアー設定]から「自分自身」にチェックを付けると改善されます。

図8-30 スパイク状の形状が作成されたとき

こうした処理によって道路を地形と組み合わせて処理すると、図8-31のように道路に高さを設定できます。

図8-31 道路に高さが加わった

【文】

大澤文孝

【監修】

西尾悟(株式会社MIERUNE)
林久純(ベースドラム株式会社)