04« 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.»06

* category: スポンサー広告

スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Comment -- | Trackback -- |  * 記事編集 *  go page top
* tag: CityEngine  OpenStreetMap 

* category: Unity3D

CityEngine + OpenStreetMap + Unity3D 

バトロイドに変形するなら地上戦もやりたいので街を作りました。
17.jpg

マップ中央付近を建物で埋め尽くしています。
建物の生成にはCityEngineを使用。スクリプトを使って建物や道路などを自動生成するツールです。

木や街灯・窓枠などのパーツや車・歩行者まで配置できるようですが、今回はバトロイド視点で眺めるので
細かいパーツや複雑な形状はなくし、街の密度感を再現できるようスクリプトをカスタマイズしています。


道路はOpenStreetMapからCityEngineにインポートしています。
OpenStreetMapは地図情報をベクトル形式で出力できるため扱いが容易であり
3Dデータに使うには非常に有用です。
ただ、取り込んだ範囲のデータには道路の幅や建物の高さ情報が含まれていなかったので、
スクリプトで建物や道路を自動生成した後に、道路幅を調整したり、
大きな建物は高さを調べてパラメータを入力するなど手動で修正が必要でした。
今後はこの辺りのデータも取り込めるようになって欲しいところです。


Unityに取り込んだ後で、LightMapを生成しましたがこれだけで400MBにもなってしまいました...。
また、全てのオブジェクトを一度に表示すると非常に負荷が高くなるので、
Camera.layerCullDistancesを使用して、建物とカメラの距離に応じてを表示するオブジェクトを
を制限しています。レイヤーは建物の高さ毎に設定しています。
しかし、水面の反射にはこれが働かないようで、表示されていないオブジェクトまで
水面に映ってしまい、負荷が下がらなかったため一時的に水面反射をやめました。

容量はともかくFPSはそこそこ現実的な値が出るようです。

18.jpg

20.jpg


スポンサーサイト
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。