ZENRINCityAssetSeriesの建物をパステルカラーにする

ゼンリン様が、ZENRIN City Asset Seriesとして提供している 3D地図アセットは、 Oculus Rift用アプリを作るに当たって非常に便利。神。
ただ、欲を言うと、遠景では大丈夫なものの近距離ではテクスチャがいまいちに感じる。
いっそのことテクスチャを削除してパステルカラーにしてみたらどうかということで、そのようにするUnityエディタ拡張を作成してみました。
Japanese Otaku Cityアセット、 Japanese Naniwa Cityアセット、 Japanese Matsuri Cityアセットに対応しています。
city_asset_painter_20150509.zip
使用方法
使用方法は次の通り。
- CityAssetPainter.unitypackageをインポートする。
- [Window]>[City Asset Painter with pastel colors]とクリックする。
- "Target City Asset"欄に対象となるアセットを指定する。
- "Process"ボタンをクリックする。
好みに応じて"Color"欄の値を調整してください。
仕組み
仕組みは次の通り。
- サブメッシュを1つのメッシュにマージする。 (Mesh.GetTriangles()して取得したサブメッシュ(三角形リスト)を、新たなサブメッシュにArray.CopyTo()でコピーしていき、統合する)
- パステルカラーのマテリアルを作成する。
- マージしたメッシュに適用する。
- マージしたサブメッシュから新たなメッシュを生成する。
- 古いメッシュを新たなメッシュと入れ替える。
なお、次のものはマージの対象外になります。
- 透明部分のある(可能性のある)シェーダーを使っているメッシュ。
- 道路や川など。(メリハリのため)