PLATEAUを使って名古屋にF1を走らせる

国土交通省が主導する、日本全国の3D都市モデルの整備・オープンデータ化プロジェクト「PLATEAU」をご存知でしょうか。都市の高精度の3Dモデルを誰でも使えるようにするというもので、商用利用も可能です。

これまで3D都市を作成するには莫大な労力がかかっていましたが、PLATEAUのおかげでテクスチャつきの都市モデルを簡単にプロジェクトに組み込むことができるようになりました。今回はこれを利用して、ドライビングシミュレーター「Assetto Corsa」のコースにしていきます。

コースの計画

まずはPLATEAUのデータを参照しながら、コースとして最適な経路を検討します。PLATEAUは全てのエリアを網羅していわけではなく、現時点では限られた場所だけがテクスチャ付きモデルを持っています。そのため、PLATEAUにあるエリアかつレーシングカーが走行できそうなルートを選択する必要があります。

PLATEAUのダウンロードと最適化

続いてPLATEAUのサイトから名古屋の都市モデル(OBJ形式)をダウンロードしてBlenderにインポートします。しかし、これだけだとAssetto Corsaには重すぎるので、ルートに沿ってドライバーの視界に入りそうな建物だけを残して整理していきます。その後、メッシュの統合などをして100万ポリゴンを目安にさらに軽量化。

また、PLATEAUのテクスチャは数百枚もあるので、4096✕4096pxのテクスチャ4枚程度にベイクし直して軽量化します。

しかし、もとのテクスチャが高精細でないことに加えて、テクスチャをまとめることでさらに解像度が低くなってしまうので、近くで見るとかなり荒くなってしまいます‥。また、マテリアルが別れているわけではないため、コンクリートもガラスも全てのっぺりした質感になってしまいます。

さらに、LOD3の高精細なモデルといえども、建物側面の凹凸まで再現されているわけではないため、のっぺりした見た目にもなっています。これを手動で修正するのは大変すぎるので、今回はこのまま活用します。

手作業でモデル制作

名古屋のモデルは建物とざっくりとした地形しか含まれていないため、道路や信号、そして白線などはすべて手作業で制作していきます。

完成

3Dモデルを制作したら、Assetto CorsaのSDKに入れてマテリアル設定をして完成。最低限PLATEAUを読み込んで走らせるだけなら1時間もかかりませんが、最適化やモデル作成にはかなり労力を使います。

アイキャッチ画像:https://x.com/Rotari_acd