jaijai’s blog

Cities Skylinesアセット作成に関するメモ・考察

LoDテクスチャの自動生成

自動生成されるLoD

インポート時にLoDを用意していなかった場合、アセットエディタにより自動的にメインオブジェクトからLoDオブジェクトが生成されます。このとき生成されるLoDメッシュはお世辞にも良い出来とは言えず、少しでも複雑な形状の場合はかなり残念なメッシュが出来上がります。よってLoDメッシュの作成はほぼ必須です。その一方、テクスチャは最良ではないものの悪くない品質のテクスチャが生成されます。

LoDテクスチャ

ISUZU ERGA HYBRIDの自動生成されたLoDテクスチャです。

アセットエディタで自動生成されるテクスチャは解像度32x32固定になります。UVマップは次のようになっています。

Blenderでベイクした場合と同様に、メインメッシュの近傍の面のテクスチャから作成されます。スペキュラマップやノーマルマップなどのその他のテクスチャも同時に生成されます。

UVマップ

用意するLoDメッシュのUVマップはいくつか注意点があります。

まず、解像度32x32として外周1ピクセルはUVマップが被らないように島を配置します。外周限界まで使ってしまうと意味不明なテクスチャが生成されることがあります

私の場合は自前テクスチャ作成を考慮してほとんどの場合64x64でUVマップを作っています。自動生成においてはどのみち32x32として解釈されるので解像度に制限はありません。ちなみに、64x64の場合は1.6ピクセル以上残しておけばほぼ問題が出ることはありません。

生成されるテクスチャは非常に低解像度なので隣接する島の色がお互い侵食しやすくなります。できるだけ無駄なくテクスチャを使い切りたいところですが混ざると困る島同士は十分に離しておく必要があります。

また、潰れても構わない部分は大胆に島面積を削るなどメリハリのあるUVマップが望ましいです。

ノーマルマップ

Blenderベイクとの大きな違いとしてノーマルマップが挙げられます。LoDノーマルマップはメインメッシュとの形状の差異を補完するように作成されます。

次はLogs Prop PackのLoDの1つです。

メインメッシュの形状が現れています。ゲーム内でも確認できます。

自動生成テクスチャのデメリット

自動生成ではきちんとしたLoDメッシュを用意すれば手間いらずでそこそこのLoDが出来上がりますがデメリットもあります。

  • 解像度が32x32固定
    LoDの品質を求めたい場合やはり32x32では心許ないです(拙作LoDTex64の導入で64x64以上の解像度で自動生成可能になります)。
  • 自動生成されない場合がある
    LoDメッシュを用意してもアセットが大きすぎる場合やメインテクスチャの解像度が2の累乗ではない場合などテクスチャが自動生成されないことがあります。
  • アルファマップは苦手
    アルファマップも他のテクスチャのように投影されるためアルファマップで大きな穴を開けている場合など思ったような結果にならないことがあります。
  • Blenderベイクのほうが高品質
    ベイクではパラメータの調整も可能なため品質は上げやすくなります。ただ、自動生成されたテクスチャをもとに編集して品質を上げることもできるためそこまで大きな差はありません。

解像度の問題はLoD生成用に分割したメインメッシュを用意してそれをもとにLoD生成するという手もあるにはあります。アルファマップの問題は一度ダンプしてアルファマップだけ編集することで対応できます。