今回はノードを使ってアニメ眉の表現ができるかテストしてみました

前髪を透過するまゆ毛のことですね

過去に前髪の先端部分だけ薄く透過させて、まゆ毛が見えるようなものをやってみました

それでも良かったのですが、どうせならもっとハッキリとまゆ毛を透過させたいと思ったのが事の始まりです

当時は全くやり方が分かりませんでした

まあ とにかく情報が無い

記事を探しても動画を探しても、それらしきものが無い

Blender の方は当然のように出てくる

でも、参考にならない

まゆ毛の色を判別するノードがあればよかったのですが、残念ながらLightWave には無いようです

そこで濃淡でまゆ毛か否かを判別できないかどうかテストしてみたところ、ある程度うまくいったので今回その結果を残すことにしました

もっと良い方法があれば良いですが、せっかくなので現状の状態を記録することにしました

ちなみに使用した LightWave のバージョンは 2024.2 です

準備

始めに準備をします

過去記事とダブるので省略

簡単に説明すると、こんな感じ

  • ペイントソフトで色画像を用意する
  • 各パーツにサーフェイスを設定する
  • マテリアルを Standard に設定する
  • パーツを一つのレイヤーにまとめる
  • レイトレースシャドウをオフにする

色画像は慣れているペイントソフトで作成

髪の毛やまゆ毛などに色画像を設定して、一つのレイヤーにまとめます

まとめたらレイアウトにポイ

あとはレイアウトのレンダープロパティを開いて「レイトレースシャドウ」をオフ

余計な影が入らないようにします

これで準備完了

手順

ここからテストをやってみます

流れはざっくり書くとこんな感じです

前髪にノードを繋げていく

STEP1
必要なノードを追加する

前髪を透過させて、まゆ毛を見えるようにしたいので、前髪にノードを組み込んでいきます

使うノードはこちら

使うノードと簡単な機能説明
  • Invert:入力値を反転
  • Logic:if 文で 0 か 1 で出力
  • Switch:マテリアルの切替え
  • RayTrace:光情報を受け取る
  • Color Scalar:色をスカラ変換

新たに追加した image と Standard は、まゆ毛用に出力するものになります

STEP2
ノードを接続していく

ノードを画像のように接続

Switch は整数を受け取って、その数値によって出力を切り替えるノードだそうです

じゃっく

0 なら False 1 なら True

なので

  • 白を受け取ったらまゆ毛色
  • 黒を受け取ったら髪の毛色

を出力するようにしました

ノードの中身を設定していく

ノードの中身は以下に調整

  • Color Scalar:平均
  • Logic:
    B を 0.95
    操作を A は B よりも大きい、または等しい

特に Logic 内の調整する値は、まゆ毛の色によって結構変わるみたいです

今回は B の数値を 0.95 にすることで良い結果が出ましたが、別のまゆ毛の色だともう少し調整が必要になることが分かりました

自己発光度と拡散レベルを調整する

一旦ここで見た目を確認

まゆ毛はまだ一部しか見えません

この状態までは何とかいけることが多かった

問題はここから先

どうしても先に進むことができなかったので、チャッピーに相談したところ

チャッピー

自己発光度を上げて、拡散レベルを下げると良いカモ?

と返ってきたので、数値を以下の状態に変更

  • 拡散レベル:0 %
  • 自己発光度:100 %

すると、まゆ毛が正しく透過するようになりました

じゃっく

まゆ毛がハッキリ見えるようになった

結果

全てのパーツの自己発光度と拡散レベルに変更を加えるとこんな感じ

真後ろから見ても、まゆ毛が見えてしまうなどのトラブルもなかったです

じゃっく

目的の表現になったぞ

ついでにエッジも追加

エッジの設定はこんな感じ

ノード編集を有効にしてウェイトマップを当てることで、ある程度エッジ見え方をコントロールできますが、まだまだ調整が必要な感じ

じゃっく

特に頭頂部あたりがおかしいから、ここをもう少し何とかしたい

不完全な気はしますが、ある程度はできることが分かりました

まとめ

それでは軽くまとめてみます

まとめ
  • Logic 内の数値調整が重要
  • Switch で表示色を切り替える
  • RayTrace で跳ね返ってきた色を判別
  • 自己発光度と拡散レベルの調整は必須

今回はノードを使ってアニメ眉(透過するまゆ毛)ができるか実験してみました

ふう・・・なんとかここまでできました

とにかく全然情報が無いので苦労しましたが、参考資料に近い内容があったおかげである程度の再現に成功しました

ありがとうございます

それでも、まだまだ改善点がある感じ

特にエッジ追加時に頭頂部の表現がおかしくなるのが、う~んってな感じ

ノードを見直した方が良いのか、それともエッジの出し方をコントロールできるウェイトマップを見直した方が良いのか、もうちょっと何とかした方が良い気がします

また別の機会に改善をしたいところです

とりあえずノードを使ってアニメ眉を表現するテストの大部分は成功した、ということでテストを終えます

今回もお疲れさまでした~

おまけ

色の濃淡で判別するようにした

今回の結果に至るまでの流れを、おまけとして書いていこうと思います

STEP1
RayTrace の色から出ている色を確認

まずは過去記事にならって、RayTrace ノードを使いました

この RayTrace ノードは、跳ね返ってきた色の情報を自身に反映させるものです

どのように見えるか確認したかったので、まずは一時的に Surface の Color に接続して状態を確認

まゆ毛と肌に当たって跳ね返ってきた色情報がそのまま前髪に反映されているので、透明な見た目になっています

髪の毛が交差している部分は黒くなっています

これについては直し方がよく分からなかったので、今回はそのまま進めました

STEP2
Color Scalar に繋いで色を確認

次に Color Scalar を繋いで色からスカラー値に変換

濃淡を見るようにしました

LightWave には色を直接見比べるようなノードが存在しないっぽいので、濃淡でどこがまゆ毛かを判別できるようにしてみました

  • 前髪:真っ白に近い白
  • 横髪:グレー
  • まゆ毛:黒に近いグレー

みたいな感じに色が別れましたが、この状態でクリップマップで切り抜いても髪の毛だけが切り抜かれちゃいます

STEP3
Invert を繋いで反転させて色を確認

なので、反転できるノードを挟んでみることにしました

Invert ノードを使って反転させてみたのがこちら

まゆ毛のところは結構はっきりと白になりましたが、他の部位の濃淡の種類が多いです

STEP4
Logic を繋いで 0 か 1 かで判定させた

これを二色に絞るため、Logic ノードを使用

これでまゆ毛と髪の毛をある程度分離できました

じゃっく

BoxStepF でも調整次第では同じようなことができる

STEP5
クリップマップで切り抜き

ほぼ髪の毛とまゆ毛を分けることができたので、クリップマップに接続

そして自己発光と拡散レベルの調整したあたりが、こちら

一見するとできたように見えますが、よく見ると変な見切れ方をしている部分があります

ここは何とかしないといけません

STEP6
Switch を使って表示切替

そこで Switch ノードを使ってみました

認識が合っているかは不明ですが、 Switch ノードを使うとよりはっきりと区別できるようになるみたいです

実際に使うと変な切れ目が無くなって、より理想に近い見た目になりました

こんな流れで今回はやってみました

ver2025 以降だと ToonFilter という機能があるようで、こちらを使うともっと簡単にアニメ眉が表現できそうなイメージがあります

バージョンアップしたら試してみたいですね

ウェイトマップを調整したら多少マシになった

ウェイトを見直してみたところ、いくらかマシになりました

画像は3rdPowers さんの Paint Weights でグラデーション状にウェイトを塗り直したもの

結構融通が利かせられそうなことが分かりました

今後もいろいろ試してみます

参考資料

使用ツール

3DCG
  • LightWave3D
動画
  • Bandicam
  • ScreenToGif