トレンドコラム

性能検証

【前編】NVIDIA Omniverse™にPLATEAUデータを取り込んでみた

2022.09.28

サービスクリエーション本部 GPUエンジニア 岡本 朋之

サービスクリエーション本部
GPUエンジニア
岡本 朋之

【前編】NVIDIA Omniverse™にPLATEAUデータを取り込んでみた

はじめに

当社の検証環境Innovation LABでは、GPUサーバー上に「NVIDIA Omniverse™ (エヌビディア オムニバース) Enterprise」の検証環境を構築しております。 (Omniverseの説明や用途については以前の記事をご確認ください)

そこで今回は、当社が行った検証の1つである、3D都市モデル「PLATEAU(プラトー)」をOmniverseに取り込む方法について紹介します。スマートシティ内で交通渋滞のシミュレーションを行ったり、大規模災害の影響を予測する際など、デジタルツイン空間上で都市モデルがプロットされていると非常に有用です。このPLATEAU環境は主にお客さまが使っていますが、当社自身のOmniverse技術検証にも活用しています。

PLATEAUとは?

まずはPLATEAUについて簡単に紹介いたします。PLATEAUとは国土交通省が推進する3D都市モデル整備・活用・オープンデータ化のリーディングプロジェクトです。

このプロジェクトの目的は
「都市活動のプラットフォームデータとして 3D都市モデルを整備し、 そのユースケースを創出。さらにこれをオープンデータとして公開することで、誰もが自由に都市のデータを引き出し、活用できるようになる。」引用元:PLATEAU公式サイト
と明記されており、利用者によるユースケース創出及び活用を意図しています。

このため、PLATEAUでは様々な種類・形式のデータを対象都市毎にまとめてあり、G空間情報センターから誰でも無償で取得できるなど、データの提供環境がしっかりと整備されています。

PLATEAUで提供される都市3Dモデルは、CityGMLと呼ばれる地理空間情報の標準フォーマットで構成されています。このCityGMLでは建物の属性や座標、位相などが定義されているため、グローバル環境でも互換性の高い都市データが構築できます。

なお、CityGML形式のままでは3Dソフトウェアに取り込めないため、G空間情報センターではFBXやOBJに変換したデータもダウンロード可能です。

PLATEAU都市データをOmniverse上に展開する

1. PLATEAUのデータについて

本項から、実際にOmniverseへ都市データを取り込む方法を紹介します。
例として東京23区のデータを手動で展開してみます。

PLATEAU都市データをOmniverse上に取り込むために、Omniverse標準のソフトウェアである「Create」を用いて、データの読み込みや3Dモデルの簡単な編集を行います。
Createに対応しているデータはFBX,OBJ形式となりますので、まずは取り込みたい都市のページから該当データをダウンロードします。

東京23区都市データダウンロードページ:
https://www.geospatial.jp/ckan/dataset/plateau-tokyo23ku

※ 本例ではOBJ形式を選択します。

ダウンロードしたZipファイルを展開すると5つのフォルダーが見えてきます。
各データは以下の分類に基づいてこの5フォルダーへ格納されています。

- bldg:ビルなど建物のデータ。LOD1とLOD2の2種類が存在
 - lod1:建物の高さ情報や3D形状のLOD1モデルを格納
 - lod2:LOD1に屋根形状やテクスチャデータを追加したLOD2モデルを格納
- brid:橋梁のモデル
- dem:地形のモデル
- tran:道路や線路など交通路のモデル
- Metadata:データの説明や仕様を記したメタデータ

また、同じフォルダーに「13100_indexmap_op.pdf」というファイルがあります。これはどのデータがどのエリアに属しているかの索引図です。
例えば、bldg→lod2と辿っていくと、53392633_bldg_6677_objというフォルダーが見えます。

フォルダー先頭の「53392633」という数値を13100_indexmap_op.pdf上で検索すると、モデルが属している3次メッシュのエリア(1辺1km)が分かるという仕組みです。
(ちなみにこの例では羽田空港の先っぽの方になります)

なお数値の頭6桁は、より広い2次メッシュのエリア(1辺10km)を表しています。

2. PLATEAUデータのCreate取り込み

ダウンロードしたデータをCreateへ取り込む前に、Omniverse上で扱えるデータ形式について補足します。

Omniverseは共通フォーマットとしてUSD形式を指定しています。
これはピクサー社が開発したシーングラフ形式であり、Omniverse上に展開させるファイルは、この形式であることが条件となっています。

先程取得したファイルはOBJ形式ですので、Createにデータを取り込むタイミングでUSD形式に変換する必要がありますので、こちらの手順から紹介いたします。
(FBX形式も同様の手順で変換可能です)

※注意※
先程ダウンロードしたデータは、nucleus上の共有フォルダーへ保存して作業を進めることをおすすめします。もしローカル環境で以降の手順を進めた場合、完成物のnucleus保存後もローカルパス指定がアセット側に残り続けるため、Omniverseの共有作業等に支障をきたす恐れがあります。

まずはdemデータを1つ選択します。右クリックを選択し「Convert to USD」メニューからUSD変換を行います。(変更時のステータスウィンドウは特に変更不要です)

USD変換完了後、カレントディレクトリに変換したファイル名のフォルダーが作成されます。この配下に変換後のUSDファイルが生成されます。

USDファイルの取り込み方法は複数ありますが、本記事では右側のStageにファイルをドラッグアンドドロップで取り込む方法を紹介します。この方法であればTranslateのXYZ値が0で取り込まれますので、3Dモデルの位置調整などが不要になります。

また、Scaleの初期値1はCreateで扱いづらい値のため、取り込んだタイミングで100に変更をしております。設定箇所は以下画像をご確認ください。

取り込み後にdemの地形モデルがViewport上で見つからない場合は、Viewport選択状態でFキーを押してみてください。先程取り込んだ地形モデルが中心に表示されるかと思います。
ただし、視点に相当するViewportのXYZ軸はモデルの向きに合わせて補正はされないので、上記画像のXYZ軸を参考としつつマウスで向きを調整ください。
(左ボタンを押しながらマウスを動かすと軸の調整ができます。また、センターボタンを押しながらマウスを動かすと軸を動かさずに上下左右へ視点を動かせます。)

demデータを取り込んだら、次にbldgデータを取り込んでみましょう。
先程取り込んだdemデータのファイル名冒頭8桁から、そのエリアに対応するbldgデータを絞り込みます。
※LOD2の対象エリアは限られているため、LOD2で見つからない場合はLOD1を探してください。

先程と同じようにUSD変換を行い、Stageへドラッグアンドドロップで取り込み、Scaleを100に変更すると・・・

このように、地形モデル上に建物モデルがマッピングされた状態で取り込まれます。これは、配置情報や高さ情報がモデルデータ内に含まれているため、取り込む際のTranslateやScaleを合わせれば正確にマッピングされる仕様のためです。

サンプルは都心部を選択したので、LOD2のテクスチャー付き3Dモデルが表示されています。

なお、テクスチャーがうまく表示されない場合は、テクスチャーファイルの拡張子をご確認ください。例えば古いバージョンのPLATEAUデータではテクスチャーが.tiff形式で提供されておりましたが、この形式ではCreateは読み込みエラーとなります。
また、LOD2はメインメモリーを大量に消費しますので、途中でCreateが落ちる場合などはLOD1にてお試しください。

同じような作業を繰り返してエリアを拡張し、橋梁(blgd)や道路(tran)も追加してみました。なお、モデル数が多くなると管理が複雑になりがちなので、demファイルの一階層下へ建物データと橋梁データを移動させています。
(道路データは2次メッシュ単位なので、今回作成したエリア以上に展開されました)

前編のまとめ

ここまで比較的シンプルな手順で都市3Dモデルの取得から配置ができました。
ここから追加の設定や拡張機能の導入、他ソフトウェアとの連携等を行うことで、Omniverse上の様々なシミュレーションに繋がっていくものと考えています。

ただし、この手順では1km四方のエリア毎に作成していくので、より広範囲なエリア作成の場合は手間や時間が大きくかかってきます。(スペックによっては読み込みにも時間がかかります・・)加えて、地面モデルのテクスチャーが設定されず白いままの状態など、見た目としても改善の余地があると思われます。

これらを解消するには、手作業ではなくスクリプト機能を活用します。 後編では実際に配布されているスクリプトを活用したPLATEAUデータの取り込み事例を紹介いたします。