TOPIC 8|Blenderで活用する[2/2]|Blenderでの3D都市モデルの編集とエクスポート
Blenderで読み込んだ3D都市モデルは、3Dオブジェクトとして個々の建築物データを編集できます。オブジェクトの編集、ゲームエンジンなど他のソフトで利用するためのエクスポート方法のほか、応用として、行政界のGISデータと重ね合わせる方法を紹介します。

【目次】
8.4 オブジェクトを編集する
8.6 Blender GISを使って東京都の行政界と重ねる
8.6.1 Blender GISのインストール
8.6.2 行政界ポリゴンを重ねる
8.6.3 Blenderに読み込む
8.7 参考情報
8.4 _ オブジェクトを編集する
Blenderに取り込んだあとは、他の3Dオブジェクトと同様に、オブジェクトの編集ができます。
左上のメニューから[編集モード]を選択すると、ポリゴンひとつずつを選択して編集できるようになるので、必要な建物以外を消すなどの操作ができます。


コラム:データを軽量化する
データの軽量化には、2通りの考え方があります。
①変換時の軽量化
まず、OBJ形式やFBX形式に変換する時点で、テクスチャを整理することで軽量化します。
LOD2のテクスチャ付き建築物モデルの場合は、FME FormでCityGMLからOBJ形式やFBX形式に変換する際、merge_bldg_surface.fmwfを使うと、建築物ごとに、サーフェスとテクスチャがグループされて軽量化されるので、パフォーマンスの向上を期待できます(「4.3.5 _ 建築物データのテクスチャを再構成した軽量FBX/OBJを作る」)。
②変換後の軽量化
PLATEAUの3D都市モデルは精細な一方、データ量が多いため、高速に扱えないことがあります。そのようなときは、データの軽量化を検討してください。
軽量化には、OBJ形式やFBX形式のファイルを読み込んだあと、Blenderで整理してポリゴンや点の数を減らす方法があります。例えば、Blenderのデシメートモディファイアーを利用できます。デシメートモディファイアーを適用するには、オブジェクトを選択して、モディファイアーのプロパティから[モディファイアーを追加]―[デシメート]を追加します。[束ねる]タブの[比率]で、適用の具合を設定します。ポリゴン数の比率を、0~1の範囲で指定します。例えば、0.5なら半分、0.3なら30%に、それぞれポリゴン数を削減します。ポリゴン数は、左下の[面数]に表示されます(図8-34、図8-35)。あまり多くポリゴンを削減すると崩れてくるので、試行錯誤してプレビューしながら調整します(https://docs.blender.org/manual/ja/dev/modeling/modifiers/generate/decimate.html)。


8.5 _ エクスポートしてゲームなどで用いる
ここまで説明してきたように、Blenderは、複数ファイルからなる3D都市モデルを読み込んで統合したり、編集モードで必要な建物だけを取り出したりするなどの編集作業に利用できます。
編集したあと、UnityやUnreal Engineなど別のソフトウェアで利用するには、FBX形式にエクスポートするとよいでしょう。[ファイル]メニューから[エクスポート]―[FBX(fbx)]でエクスポートできます。

UnityやUnreal Engineなど、ソフトウェアによって軸の向きが異なるので、注意してください。
Blender、Unity、Unreal Engineの、それぞれの軸の向き、デフォルトの単位を、図8-37に示します。エクスポートする際は、[トランスフォーム]の「スケール」「前方」「上」の設定で、軸を合わせるようにします(エクスポート前に、あらかじめオブジェクトをその方向に回転し、軸を合わせておく必要もあります)。
また、すべてのオブジェクトをエクスポートすると、カメラやライトも含まれてしまうため、エクスポートしたいオブジェクトだけを選択し、エクスポートの設定画面で[Limit to]の設定にある[選択したオブジェクト]にチェックして、そのオブジェクトだけをエクスポートするとよいでしょう。
【メモ】
軸の調整をエクスポート時に調整するのではなく、インポートの際に合わせるという考え方もあります。


8.6 _ Blender GISを使って東京都の行政界と重ねる
応用例として、Blender上で、GIS情報を重ねる例を示します。ここでは地図上に、都道府県や市区町村、町・丁目などの区切りとなる行政界を重ねて表示する例を示します。
8.6.1 _ Blender GISのインストール
Blender GISというアドオンを利用すると、シェープファイル(Shapefile)、ラスターイメージ、GeoTIFF形式のDEMファイル、OpenStreetMapのXMLファイルを読み込むことができます。
Blender GISは、オープンソースのソフトウェアです。下記から入手できます。
【Blender GIS】
https://github.com/domlysz/BlenderGIS
インストール方法は、「Install and usage」に記載されているので、それに従ってインストールします。
【Blender GIS Install and usage】
https://github.com/domlysz/BlenderGIS/wiki/Install-and-usage
[1]ソースコードをダウンロードする
Blender GISのページを開きます。右側に[Releases]があるので、最新版をクリックします。
するとダウンロードページに遷移するので、[Source code(ZIP)]を選択してダウンロードします。


[2]プリファレンスを開く
Blenderの[編集]メニューから[プリファレンス]を開きます。

[3]アドオンを追加する
[アドオン]タブをクリックし、[インストール]をクリックします。先ほどダウンロードしたアドオンを選択してインストールします。

[4]有効化する
チェックを付けて有効化します。

[5]GISメニューが追加された
有効化すると[GIS]メニューが追加されます。このメニューから、各種操作します。

8.6.2 _ 行政界ポリゴンを重ねる
GISデータをインポートする例として、行政界ポリゴンを重ねる例を示します。行政界ポリゴンは、e-Statからダウンロードできます。
【e-Stat(政府統計の総合窓口)】

■ 行政界データのダウンロード
東京都の行政界データをe-Statからダウンロードします。下記のURLで検索できます。いくつかのデータがありますが、ここでは新宿区のデータをダウンロードします。
【行政界データ】

■ 空間参照系を変換する
ダウンロードしたファイルを展開します。Shape File形式として提供されているので、Blender GISを使って読み込めますが、そのまま読み込むと場所がズレます。これは空間参照系が異なるからです。ダウンロードした行政界のデータは、EPSG4612です。対してPLATEAUの3D都市モデルのOBJ形式ファイルは、東京都の場合はEPSG6677(平面直角座標系の9系)です。そこで、EPSG6677に変換してから読み込みます。
【メモ】
EPSG4612は、JGD2000という2011年(東日本大震災よりも前)よりも前に使われていた測地系です。
EPSG6677に変換する方法は、いくつかありますが、ここでは、オープンソースのGISであるQGISを使います(QGISについては、【GISで活用する】を参照してください)。
次のようにして変換します。
[1]QGISでSharpe File形式のファイルを開く
QGISを起動し、ダウンロードしたZIP形式ファイルに含まれるShape File形式のファイル(拡張子.shpのファイル)をQGISにドラッグ&ドロップして開きます。ドラッグ&ドロップすると、行政界が表示されます。

[2]再投影する
[ベクタ]メニューから[データ管理ツール]―[ベクタレイヤを再投影]を選択します。
パラメータの入力欄が表示されたら、次の2つを設定し、[実行]をクリックします。
① ラスタのCRS(3.28.2バージョンでは「変換先CRS」)
[EPSG:6677 - JGD2011]を選択します。
② 再投影したラスタファイル
保存先のラスタファイルを選択します。右側から[ファイルに保存]を選択し、適当なShape Fileとして保存したいファイルの名称を入力します。
【メモ】
上記②および図8-49の[再投影したラスタファイル]は、[出力レイヤ]の誤りです。すでにGitHub上のソースコードでは修正されており、次の版で修正される見込みです。


8.6.3 _ Blenderに読み込む
準備ができたら、変換したShape FileをBlenderに読み込みます。
GISメニューから読み込むときの座標と、これまで説明してきた座標系が異なるので、一度、新規にプロジェクトを作成し、まっさらな状態にしてから、まず、行政界を読み込み、それから改めてPLATEAUの都市モデルを読み込むことにします。
■ 行政界を読み込む
[GIS]メニューから[インポート]―[Shapefile(.shp)]を選択して、先ほど保存したShape Fileをインポートします。
インポートする際、メッセージが表示されたら、次のように設定して読み込んでください。
[CRS]は[Web Mercator]を選択
[Origin]は[Proj]を設定し、X、Yともに「0.00」を設定する


インポートしたら、全体がわかりやすくなるようワイヤーフレーム表示にして、テンキーの[7]を押し([ビュー]メニューの[視点]―[トップ(上)])、トップビューに切り替えて確認します。全体が表示されないときは、テンキーの[.]キーを押してください([ビュー]メニューの[選択をフレームイン])。すると、図 8-52のように行政界が構成されているのがわかります。

ここにPLATEAUの3D都市モデルを読み込みます。読み込む際には、次のようにします。
[前方の軸]を[+Y]
[上向きの軸]を[+Z]
これはBlenderが右手系の座標を採用しているため、Blender GISで読み込むと、奥行き(前方)が「+Y」、高さ(上向き)が「+Z]の方向となるためです。このようにして読み込むと、同じ位置に3D都市モデルが重なります。


ここで例示したように、空間参照系が合っているデータであれば、さまざまなものを重ね合わせてひとつにして扱えます。
8.7 _ 参考情報
■ PLATEAUで学ぶBlenderの基本操作と3D都市モデルの活用方法
株式会社MIERUNE西尾悟氏によるBlenderのハンズオン時の動画です。

■ PLATEAUは高精度な都市素材となる。 フォトリアルな3D都市モデル実現へ ~クリエイターの開発事例~【後編】
テクニカルディレクター集団BASSDRUMに所属する林久純氏のインタビュー記事です。
【文】
大澤文孝
【監修】
西尾悟(株式会社MIERUNE)
林久純(ベースドラム株式会社)