ANTNEST BLOG

主にモデリングとかVRC関連

【アバター首接合】4. 法線の調整

 Algo_Ayugonです。

 この記事は、「Blenderアバターの首を綺麗に接合する」ための6つの記事のうちの4つ目です。

 目次記事↓

(公開したらリンク張る)

 

「4. 法線の調整」目次

 

4-0. はじめに

    人によっては気にならないかもしれませんが、頭部と首の接合部も6.をする前と同じように、繋がっていない感じに見えてしまっています。3Dビューシェーディングの設定のカラーをマテリアル等の表示にするとわかりやすいです。

f:id:antnestin:20210925143622p:plain

接合部の頂点の場所は同じだが、シェーディング(影の入り方)が繋がっていない

 

 これをここでは「法線」転写で対処していきます。

 

 が、以下のいずれかに当てはまる人は別にやらなくても構いません

  • 頭部と素体のオブジェクト統合&頂点マージをするつもりである/もうマージした
  • そもそもそんなに気にならない(Unity等の最終出力環境でトゥーンシェーダー等を割り当てて確認してみてください)

 

 頭部と素体のオブジェクト・メッシュは分かれたままにしておきたいが、接合部のシェーディングも綺麗にしたい場合この記事の手順が非常に参考になるはずです。

 

EX. 「法線」ってなんぞ

 本題に入る前に、「法線」について軽く説明しておきます(本質とかに興味がない、とにかく首継ぎだけしたい人は飛ばしてください)。

 「法線」は英語だと「Normal(ノーマル)」と書きます。どちらかは馴染みがあるかもしれませんね。「法線」は、数学だと”ある直線や平面と垂直な直線”を指したりするのでそこで聞いた人もいるかもしれません。まさにアレです。

 大雑把に言うと、CGの世界の「法線(ノーマル)」はある面が”どこを向いているか”についての情報です。

 ↓の記事がわかりやすくまとまっているのでまずは読んでみてください。

flmt.jp

 ここで問題となるのは「頂点法線」の方です。とりあえず、今弄っているモデルの「頂点法線」の様子を見てみましょう!

 「編集モード」に入り、「オーバーレイ」の設定を変えます。

f:id:antnestin:20210925151418p:plain

「オーバーレイ」設定の「ノーマル」欄の一番左のアイコンを有効にします。多分デフォルトだと表示の線が長すぎて見づらいので、サイズも下げます。

 

 すると、オブジェクトの全ての頂点から色のついた線がにょきにょき生えてきて、ウニとかハリネズミみたいになったと思います。この生えてきた色のついた線が全部「法線」です。

 頭部モデルと素体モデルを両方選択した状態で「編集モード」に入ってさらによく見てみましょう。接合部の頂点のどちらかを【G】で掴んでちょっと動かしてみると分かりやすいです。

f:id:antnestin:20210925152443p:plain

接合部の「頂点法線」の向きが一致していない。

 普通、(「スムーズシェード」であれば)1頂点につき1つの「頂点法線」があります。その状態だと、滑らかに見えるのです。ですが、接合部の重なった二つの頂点の「法線」はそれぞれが別の方向を向いてしまっています。そのせいで途切れたように見えるんですね。

 つまり、接合部の頂点の「法線」を何らかの方法で一致させてやれば、メッシュが繋がっていなくても滑らかに見えるということになります。

 

 実はこの「法線」を直接手で弄ったりコピペしたりすることもできるのですが、めんどうなので慣れてないと難しいかもしれないので、今回は「データ転送モディファイアー」を利用します。

 

4-1. 「法線転写」する頂点を指定する

 「データ転送モディファイアー」を使う前に、軽く下準備をします。

 今回は頭部側の「法線」を素体側に転写(コピペ)するので、これからは基本的に素体オブジェクトを触っていきます。

 素体オブジェクトを選択して「編集モード」に入ったら、接合部の頂点を全て選択します。そして「オブジェクトデータプロパティ(三角のアイコン)」→「頂点グループ」タブで+を押して新しい「頂点グループ」を作成し、1.000を割り当てます。名前は適宜わかりやすいように変えておきましょう。ここでは”Normal”としました。

f:id:antnestin:20210925153957p:plain

「頂点グループ」を新しく作って、接合部の頂点に1.000を割り当てる。

 

4-2. 「データ転送モディファイアー」を使う

 「データ転送モディファイアー」を追加します。「モディファイアープロパティ」(画像では隠れてしまってますが、スパナ・工具のようなアイコン)から「モディファイアーを追加」→「データ転送」を選び、追加します。

f:id:antnestin:20210925154542p:plain

 

 「データ転送モディファイアー」の設定を以下のようにします。元オブジェクトには頭部オブジェクトを指定し、右下のタブには先ほど作った「頂点グループ」を指定します。すると、指定した「頂点グループ」のところだけに諸データ(今回は「法線」)が転送されます。

f:id:antnestin:20210925155047p:plain

「データ転送モディファイアー」設定例

 

 設定欄の一番下のメッセージでBlenderくんの方からちゃんと怒ってくれていますが、「オブジェクトデータプロパティ」(三角形のやつ)→「ノーマル」欄の「自動スムーズ」のチェック欄をONにしないと「カスタム法線」は反映されないので、忘れずチェックを入れます(モデルによっては既にチェックが入っているかも)。すると…

f:id:antnestin:20210925155532p:plain

「自動スムーズ」にチェックを入れると、「カスタム法線」が反映された。

 

 接合部がめっちゃ綺麗になりましたね!やったぜ。

 この「法線転写」や「データ転送モディファイアー」ですが、非常に多くの用途に使えるので、興味を持った方は色々調べてみてくださいね(布教)。

 

 「4. 法線の調整」はこれで終わりです。次はテクスチャの境界をこちょこちょして馴染ませます。

antnestin.hatenablog.com