jaijai’s blog

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

【Blender】重み付き法線のすゝめ

重み付き法線モディファイアーを使うと面の重みによって法線が調整されます。この重み付き法線はBlender 2.8以降で使用できます。

重み付き法線モディファイアーの効果

f:id:jaijai_lt:20211006235159p:plain

この立方体をベベル機能で面取りしてスムーズ面にします。

f:id:jaijai_lt:20211006235341p:plain

さらに重み付き法線を使った場合。

f:id:jaijai_lt:20211007000135p:plain

3つ並べて比較してみます。
f:id:jaijai_lt:20211007000448p:plain

使い方

自動スムーズを有効にします。
f:id:jaijai_lt:20211007002901p:plain

シャープを維持面の影響をチェックします。 f:id:jaijai_lt:20211007005341p:plain

編集モードで面を選択し、ノーマルメニュー(Alt+N)から面の強さを設定を選択し強度を指定します。
f:id:jaijai_lt:20211007003509p:plain

FBXに出力する前にモディファイアーを適用することを忘れないでください。

削除するには

モディファイアーを適用したあとに重み付き法線の効果を消したい場合は、オブジェクトデータプロパティからカスタム分割法線データをクリアしてください。
f:id:jaijai_lt:20211007210150p:plain

面の強さ

から選択します。デフォルト値(未指定の面)はです。強い面ほどその面の本来の法線が維持されやすくなります。

先程の例では面取りした部分をにしました。
f:id:jaijai_lt:20211007004521p:plain

重み付けモード

f:id:jaijai_lt:20211009164727p:plain

重み付けモードの比較です。面の強さはいずれも未指定です。
f:id:jaijai_lt:20211007020311p:plain

  • 面積
    大きな面ほど強い面として扱われます。

  • コーナー角度
    隣接する面との角度により重みが決まります。重み付き法線を使わない場合と同じ結果です。

  • 面積と角度
    面積に加えて角度も加味されて重みが決定されます。

モード面積(デフォルト値)では見た目がかなり変わります。これまでの見た目を維持したい場合はコーナー角度を選択し適時面の強さを指定します。

重み付けモードと面の強さ

f:id:jaijai_lt:20211007032059p:plain

ぱっと見、両者は全く同じに見えますが、モードのみでは面に若干のグラデーションがかかっています。

法線を表示して確認してみると違いがわかります。
f:id:jaijai_lt:20211007032616p:plainf:id:jaijai_lt:20211007033050p:plain

この例では面の強さを指定することで実質的にフラット面になっています。

セグメント数の多いベベルとの比較

ベベルセグメント数5にした場合と比較してみます。

f:id:jaijai_lt:20211007204609p:plain
f:id:jaijai_lt:20211007205640p:plain

セグメント数を増やすことで重み付き法線を使った表現に近づけますが大きな面のグラデーションは若干残ります。もちろん、セグメント数の多いベベルのほうがメッシュ形状はきれいになります。グラデーションを残したい場合もあるでしょうから意図を持った使い分けが必要です。

面取りだけならばベベルモディファイアーでも法線のハード化を有効にするとほぼ同じことができます。 f:id:jaijai_lt:20211009154733g:plain

使用例

上記の例で使ったような面取りしたオブジェクトでは大きな効果があります。フラット面とスムーズ面が混在するようなモデルでも威力を発揮します。

f:id:jaijai_lt:20211008163758g:plain

f:id:jaijai_lt:20211009163643g:plain

f:id:jaijai_lt:20211008170850g:plain