今までハードサーフェースのノーマルマップを作成する時に、いつも手動で何とか修正していましたが、先日は最初からもう少し綺麗に出るように色々な方法を試してみました。

実験の為にローポリを2パターンを用意しました。1つはデフォルトのUV(繋がっているUV)、そしてもう一つは手動でUV展開した物(角の所を切って、Unfoldで展開)。
今回は横のエッジだけに丸みを付けたいからエッジにベベルを掛けて、ハイポリバージョンも用意しました。

オーガニックモデルの場合は大体ソフトエッジにしてベイクすると一番綺麗なノーマルマップが出来るので、今回もそのやり方で試してみます。結果は以下の通りです。

エッジの丸みは綺麗に出来ていますが、平らな部分に変な影が出てしまいました。法線のベイクは上手くいっていないですね。

ハードエッジで綺麗に作れたことがないから、勝手にハードエッジはNGだと思っていましたが、平らな部分を綺麗にしたいから、次に試したのは角のエッジをハードエッジにしてからベイクする事です。

今度は平らな部分は予想通りに綺麗に出来ましたが、角に線が出てしまいました。

これならケージで直りそうかと思い、ケージを作ってもう一度ベイク:

これでUVが切れている方はかなり綺麗に出来たけど、UVが繋がっている方はもうちょっとマシになったぐらいですね。

ケージの作り方は、ローポリを複製して、法線の方向で頂点を移動して大きくするだけです。
OBJとして書き出して、xNormalでローポリのCageオプションにチェックを入れて、右クリックして「Browse external cage file」、書き出したOBJを選ぶだけでCage設定完了。

ハードサーフェースの場合は、角の部分でUVを切って、ハードエッジにした方が綺麗に出ます。

オーガニックの場合は今まで通り、全体的にソフトエッジにする事が一番無難かもしれません。