(補足記事)ノーマルベイクに適したUV展開とスムージングの方法の話
使用ソフト
- Lightwave2020
- 3D-COAT2022
- Blender3.3
ノーマルベイクを意図した通り綺麗に成功させるには、UV展開の方法とスムージング設定にコツがあるようです。この記事ではそれについて調べた事をまとめました。
この記事はこちらの補足記事です
■自動でスムースをかける設定にある"角度"とはどこの事か
最初にこの記事ではスムースをかける面の角度の話が出てきますので、それがどこのことかを説明しておきます。「2つの面が繋がり、連結部分が折り目を形成したときに片方の面を延長したラインともう一つの面が成す角度」下の図にあるAのことになります。
各ソフトに、自動でスムースをかけるための設定項目があります。指定した数値以下の角度にスムースがかかります。なので90°の角にスムースを掛けないようにするには"90°"より小さい数値の"89°"とかもっと細かくしたければ"89.9°"とかを設定することになります。(この角度を自分はずっとBだと思って悩んでいたのですが、ネットを検索して調べたらAの事でした。)
■ノーマルベイクに必要なポイントは主に2つ
①UV展開ではハードエッジでUVを分離する
ローポリ側で「角を立たせたいエッジ」(ハードエッジ)と「スムースを掛けて滑らかにしたいエッジ」(ソフトエッジ)を決めます。Aの角度が90°以上の鋭角の場合はハードエッジとしてUV展開のときにシームを設定してUVアイランドを分離しておきます。
②ベイクではハードエッジにスムースが掛からないようにする
各ソフトの「自動でスムースをかけるための設定項目」の値を"89.5°"などにしてAの角度が90°以上のエッジにはスムージングを掛けないようにします。
気をつけるところは以上の2つです。
■3D-COATはUV展開時にハードエッジをハイライトできる
3D-CAOTにはUV展開時にハードエッジにシームをつけるの作業を助けてくれる機能があります。※3D-COATでは"ハードエッジ"は"シャープエッジ"という名前で扱われています。
UV展開用にモデルをインポートするときに必要な設定
"UV"ルームでハードエッジをハイライトするためには、モデルのインポート時に以下の設定に注視する必要があります。
UVシーム上にシャープエッジ(法線分割)を設定
チェックを入れると、「シームが入ったエッジ」が全て「シャープエッジとしてもハイライトされる」ように設定されてインポートされます。(すでに一度UV展開済みのモデルをインポートするときや"自動マッピング"でUV展開された結果に付加されるものですが、今のところ用途は思いつきません。)
自動スムージンググループ/最大角度
次で紹介する"シャープエッジを表示"でハイライトされるエッジはこの数値を元に設定されます。"89.5"とするのが良いでしょう。
"シャープエッジを表示"(Show Sharp edges)
チェックするとビューポートでシャープエッジに該当する部分を赤くハイライトしてくれます。(今までこの機能が何のためにあるのかわからなかったのですが、今回調べたことで、ノーマルベイク向けにUV展開するときに役立つ機能だとわかりました。)
"シャープシーム"(SharpSeams)
このツールを使うと"折り目の角度"で指定した数値より大きい角度のエッジはシャープエッジと判定されて"OK"を押せば自動でシームを付けてくれます。
■参考
今回調べたことはネットで検索すればより詳しく解説してくれているサイトやツイートがヒットしますので、理解を深めたい場合はそちらを参照してください。
この記事で参考にしたサイトやツイートのリンクを置いておきます。
スムースの角度についてはこちらの動画から
代表的な理由はこちらから
Substanceのtipsですが"レイキャストに関する知識"が大変参考になりました。
4回に渡ってノーマルベイクに関するTipsをまとめてくれています。実践的なオブジェクトを使用して考察と解決方法を説明してくれています。
まじかる☆しげぽんさんのハードエッジのベイクに関するツイートは大変参考になりました。
その1
UVの分離は意味があって、まとまっていれば良いというわけではない。例えばこのような台形の形状のように形状の角度が120度になるような一定の角度を超えるような部分はハードエッジに設定し、さらにUVをあえて繋がないで展開した方が良い。 #Substancehttps://t.co/PrUp59ugMJ
— まじかる☆しげぽん@VRoid (@m_sigepon) 2020年3月15日
その2
つまり、MayaのスムージングとBlenderのスムージングの法線結果は異なる。という認識を持った方がいい。
— まじかる☆しげぽん@VRoid (@m_sigepon) 2021年8月15日
同じソフトエッジとハードエッジという言葉を使っていてもハードエッジは共通だがソフトエッジは違う結果になる。
3D-COATのフォーラムに言及されている内容で興味深い部分がありました。
※Googleで翻訳
フェース間の鋭角を避けることをお勧めします (たとえば、A と B の間のリトポ メッシュなど)。90 度を少し下回る角度であっても推奨されません。法線の計算に 3D-Coat の方法を使用している場合は問題が発生します (編集 -> 環境設定 > 法線計算)。
この場合、Maya の法線計算方法は正しく機能するため、鋭角が必要な場合は、環境設定で Maya の法線計算を使用してください。これは計算方法に関係しています。3D-Coat は法線を隣接面の加重平均として計算します。重みは面の正方形に比例します。フェース間のベベルを正しく表示できます。
しかし、大きい面と小さい面の間に鋭角がある場合、頂点の法線は小さい面の法線に対して負になり、その面でのベイク処理は失敗します。Maya の方法では、隣接面の法線の算術平均として頂点の法線を計算します。ベイクには適していますが、法線マップなしでメッシュを表示するには適していません。通常、シャープなエッジの間にベベルを追加することをお勧めします。
"環境設定"の"入力/出力"メニューの中に"法線の計算方式"という設定があります。ベイクの内容によってはここの設定を変える必要があるのかもしれません。