UV展開
気をつけること
Unity Japan Oficce メイキング第2弾 ~モデリング~
Unityのモデルインポートオプションには自動的にライトマップ用UVを生成する機能があります。
しかし、これを使用してしまうと求めるクオリティに到達しないので必ず手動で展開します。
キレイなライトマップを生成するためには以下の事に気を付けて展開すると良いと思います。
① UVをオーバーラップさせない
基本です。ライトマップを正しく生成できません。
② 0~1空間内に収める
基本です。ライトマップ解像度はUnity側で設定します。
③ シェルの感覚を詰めすぎない
基本です。別の場所の陰影が漏れてしまいます。
④ UVの切れ目は見えにくい場所にする
どうしても切れ目に陰影のシミができてしまうので、できるだけ目立たないところに配置します。
⑤ 整列された四角形ポリゴンの場合はUVを斜めに配置しない
単純にライトマップ面積が無駄になるのもそうですが、
立体的な形状の場合は、ダイヤモンド型に陰影がついて目立ってしまいます。
⑥ UVシェルを繋げることが良いとは限らない
UVの切れ目を減らしてシミを抑えるメリットはありますが、
解像度が十分でない場合、テクセルがポリゴンを横断するので、
正しい陰影にならないデメリットもあります。
特に建築物はキレイな平面ばかりなのでデメリットが目立ちがちです。
⑦ 面の角度が大きく変わる角の部分にテクセルを密集させる
ベベル処理されたエッジを持つ場合、テクセルのポリゴン横断を避けるために、
1方向にだけUVを拡大し、テクセルが密集するようにします。
⑦についてもう少し詳しく。
上述しましたがこのプロジェクトのモデルは、オフィス・家具・設備・小物すべて、
目立つ場所の角はほとんどにベベル処理を施しています。
CG的ハードエッジな見た目を避けるのもそうですが、
ライトマップテクセルのポリゴン横断を抑え、陰影を正しく生成するためでもあります。
まず、ベベル処理せずにシェルを離してUV展開した場合。
陰影はキレイですが、ハードエッジすぎます。
https://gyazo.com/695b34213fe4b7f11524e76896b577b3
最後に、ベベル処理してエッジにテクセルが密集するようにUV展開した場合。
美しい。陰影は正しく強烈なハードエッジでもありません。
https://gyazo.com/b6d16767c5a32e2d57aead79c54c149b
import設定
https://gyazo.com/773770c7d2b8a7ee0dee949050d6bdd7
拡張子は .obj にする
"UVを保持" にチェックを入れる
1. "UV" タブに移動する
2. "AutoMap" ボタンを押す
3. "PackUV2" で padding調整
4. "Apply UV-set" で適用する
これをマテリアルごとに繰り返す
複雑なモデルをパツパツに詰め込んだ状態で "PackUV2" を押すとたいてい固まる
"Apply UV-set" をまとめてやろうとするとメモリが足りなくなるので注意
BlenderでUVをコピー
オブジェクトを選択
Ctrl+L
Mode(モード)
Object Mode(オブジェクトモード)
Menu(メニュー)
Object(オブジェクト) ‣ Link/Transfer Data(データのリンク/転送) ‣ Copy UV Maps(UVマップをコピー)
選択したオブジェクトのアクティブなUVマップは、アクティブなオブジェクトのアクティブなUVマップのコピーに置き換えられます。選択したオブジェクトにUVマップがない場合は、作成されます。オブジェクトはメッシュタイプである必要があり、一致するトポロジを持っている必要があります。