ここでは Game Development Tools の Mapbox ノードの最新改善機能を紹介する。
使用したビルド: Houdini 17.0.473、Game Development Toolkit 1.118 (下記のタイル化には 1.118 以降が必須)
1. はじめに
- Mapbox のチュートリアル
- ちょっと古くなってしまったが、以下の二つの YouTube ビデオが概要を知るのに便利。
- Houdini MapBox - Beta - Part 1 23分19秒
- Houdini MapBox - Beta - Part 2 31分43秒
- Game Development Toolkit のインストール
- 詳細はこちら。
- Mapbox への登録
- www.mapbox.com へ行き、ユーザ登録を行い、API Key を入手する。もしかするとユーザ登録してから実際に使えるようになるまで1日かかるかもしれない。
2. Mapbox ノード
マップデータのダウンロードを始める前に、シーンファイルを保存して、ファイル名と保存場所を決定しておくのが好ましい。ダウンロードされるファイルは3種類で、シーンファイル名 ($HIPNAME) とノード名 ($OS) でそれぞれのファイル名が決定される (パラメータビューの一番下にあり)。
- Color テクスチャ: $HIP/maps/${HIPNAME}_${OS}_terrain_color.jpg
- Height テクスチャ: $HIP/maps/${HIPNAME}_${OS}_terrain_height.png
- OSM マップデータ(道路などのタグ情報): $HIP/maps/${HIPNAME}_${OS}_city.osm
- Houdini 起動後、Geometry ノードを配置し、その中に Mapbox ノード を配置。
- sop_mapbox1 が出来る。
- Mapbox API Key のフィールドに mapbox.com で取得した Key をペーストする。
- 1.118 から、環境変数 MAPBOX_API でキーを指定可能になった。これにより、ノードにキー文字列をペーストすることが不要になり、また キーを共有せずに .hip ファイルのみ共有したい場合でも、キー文字列を誤って残す可能性がなくなった。環境変数は houdini.env などに指定する。環境変数を使った場合、このフィールドは空白。
- 地図データを取得するには、Look Up ボタンをクリック (要 API Key)。
- ビューを操作して、サンプルしたい位置に移動およびズーム。
- Download ボタンをクリック。 データ量は場所とズーム値により大きく異なる。Color (衛星写真)、Height (標高情報)、OSM データとあるうち、データ量の増減が最も大きいのはマップデータ。その場所にタグされた情報 (道路、ビル、河川、その他) が多ければ多いほどデータ量も増加し、またズーム値が小さければ網羅する領域が広くなり、結果的により多くのマップ情報をダウンロードすることとなり、時間がかかる。
3. Mapbox ノードのタイル化
1.114 以降、 Offsets パラメータが追加され、 Mapbox で取得した一箇所の周囲をタイル状にダウンロードするのが非常に簡単になった。なお、ここ以下は 1.118 以降を推奨する。
- 上でダウンロードした富士山山頂データのパラメータを以下のように変更する。
- Resolution Scale を 0.1
- Terrain Mode を Polygons
- Network View で sop_mapbox1 ノードを選択。Alt キーを押しながらドラッグすると複製が一つ出来る (sop_mapbox2)。
- sop_mapbox2 の Offsets を 1 0 にし、Refresh ボタンをクリック。
- ダウンロードした山頂データにぴったりと隣り合う東側のデータが取得できたことがわかるはず。
- Merge ノード (merge1) を作成し、sop_map1 と sop_mapbox2 を接続。
- Mapbox ノードをもう一つ複製 (sop_mapbox3) し、Offset を 0 1 として Refresh、merge1 に接続する。
- Mapbox ノードをもう一つ複製 (sop_mapbox4) し、Offset を 1 1 として Refresh、merge1 に接続する。
- ノードの複製、Offset の値の調整を
-1, 1 // 北西
-1, 0 // 西
-1, -1 // 南西
0, -1 // 南
1 -1 // 南東
と繰り返し、合計9つの Mapbox ノードで 3x3 のタイル状マップデータが取得可能。
ちなみにこの時点で Houdini は 6GB 強のメモリを消費している。 - カメラをズームしてみると、マップ間にギャップがあることがわかる。
これを修正するには、それぞれの Resolution Scale を 1 に戻す必要があるが、9つのノードがある場合、3,700万頂点データを描画することになり、Houdini だけで 45GB ぐらいメモリを消費する (Win7) ので注意が必要。
まとめ
今回は Mapbox データをポリゴン化した上でのタイル化を紹介したが、タイル化は Heightfield のままでは上手くいかない。 ただし、単一の Mapbbox ノードでの編集には、非常に都合が良い。それには下記のチュートリアルが非常に参考になる。
リンク集
- Labs Mapbox 3.0 ジオメトリノード(BORN DIGITAL サポート)
- Houdini MapBox - Beta - Part 1 23分19秒
- Houdini MapBox - Beta - Part 2 31分43秒
- GAME TOOLS | TERRAIN TOOLS
- GAME TOOLS | OSM IMPORTER
- terrain split export
シーンファイル
最終更新: 2023-11-26
0 件のコメント:
コメントを投稿