
Plateau Unity SDKの交通シミュレーションを試してみる
3D都市モデルプラットフォームPlateauのUnity SDKとtoolkitがバージョンアップされたベータ版が公開され、道路ネットワーク生成と交通シミュレーションが使えるようになりました。


ただ、実際に使おうとするとハマりどころが多かったので、KYOTO PLATEAU HACK 2024 (https://asciistartup.connpass.com/event/328896/)で得た知見をまとめておきます
Plateau Unity SDKとtoolkitの導入
まず、Unityプロジェクトを作ってください。Unityのバージョンは2022.3.56(LTS)で、Universal Render Pipelineを選択してください(build inだと後で困る)。
package managerを使ってSDKとtoolkitを導入してください。ハッカソンで使うときはgit urlで導入するのが良いです。urlは以下の通り
SDK: https://github.com/Project-PLATEAU/PLATEAU-SDK-for-Unity.git#v3.2.0-beta
toolkit:https://github.com/Project-PLATEAU/PLATEAU-SDK-Toolkits-for-Unity.git#v2.1.0-beta
バージョンを示すハッシュタグがないと失敗するので注意
都市モデルを読み込む
SDKのインポート機能を使って都市モデルとマップ範囲を選択します。

このとき、道路のLODが3以上である必要があります。条件に該当する領域を選択して「決定」をクリックしてください。原因は不明ですが、選択する領域が狭すぎるとLOD3の道路が読み込まれないようです。4領域(2x2)以上は選択するようにしましょう。

選択決定後に出てくるインポート設定で、「道路」のLOD描画設定が「3」まで選択できることを確認してください。交通シミュレーションを行うには、最低でも「建物」と「道路」をインポートする必要があります。ただし、建物のLODは3より下でも大丈夫です。

インポートが終了したら、ヒエラルキーを確認してください。道路(~trans~というgameobject)にLOD3が含まれていないときは失敗です。領域を広く取るなどしてやり直してください。

次に、道路の位置を確認してください。場合によっては道路が上下にズレてしまっていることがあるので、そのときはSDKの「モデル調整」機能を使って高さを修正してください(地形モデルをインポートしていないなら不要なはずです)。

道路ネットワークを作る
SDKの「道路調整」を使って、道路を作ります。デフォルト設定で大丈夫なはずです。「生成」をクリックしてください。

LOD3道路がちゃんと存在すれば、道路ネットワークが作られるはずです。RoadNetworkとかReproducedRoadが生成されています。

交通シミュレータを配置する
ここからは、PLATEAU ToolkitのSandbox Toolkitを使います。

ここの「トラック」の「交通シミュレータ配置」を使います。シミュレータに車両アセットが必要なので、「ビルトインアセットをインポート」をクリックしてインポートしてください。ここで失敗する人は、多分 Render pipelineがURPになってません。

時間がかかりますが、正常に終了すれば、以下のようにアセットが表示されるはずです。

もし、自分の3Dモデルを使いたいならプレハブを用意して「ユーザー」タブからアセットを作成してください。
車両アセットの準備ができたら、車両を選択して「実行」を押してください。

成功したら、下のようなポップアップが出るので、OKを押せばヒエラルキーにTrafficManagerが追加されます


あとは、Playでプロジェクトを実行すれば交通シミュレーションを走らせられるはずです。

(オプション)プロジェクトを軽量化する
都市モデルはデータ量が大きいので、クリーンナップしたうえでFBX形式に変換するのをおすすめします。まず、ヒエラルキーの都市モデル中の道路(~trans~)は道路ネットワークを作ったあとは不要なので削除してよいです(ただし、後で道路ネットワークなどを修正するときには必要になるので、もう修正しないと決めているときのみ行うこと)。次に、SDKの「モデル調整」の「Assetsに保存」を選びます。その画面で”元オブジェクト"に都市モデル(~citygml~)を選んでください。次に保存先を選び(注: Assetsではダメで、その下に空フォルダを作って、それを選択する)、「Assetsに保存」ボタンをクリックしてください。これで、都市モデルをFBXにできました。

一度FBXにしてしまえば、StreamingAssets/.PLATEAUフォルダ(隠しフォルダなので注意)に保存されている都市データ(サイズがデカいので困る)は無くても動作します。