【UnrealEngine4】天使の輪が作れるトゥーンなヘアマテリアル

目的

次の機能がある髪の毛用のマテリアルを作る

  • 髪の毛に現れる円状のハイライト、通称「天使の輪」がある
  • 天使の輪は見る角度によってちゃんと位置が変わる
  • 独自シャドウマップなしでシャドウが落ちる
  • 金属っぽくなったりするのは避けたい
  • ノーマルマップやグラディエントマップもできれば不要にしたい

できたもの


キャラクタは私が所属するインディーチームのものです。
(デモ動画だとポストエフェクトかかっていますし、髪の毛は目立ってないですが…) 試したい方はこちらで配布していますのでご自由にダウンロードしてください。
Download

参考

参考、というよりこのフォーラムのマテリアルが元になっています。
UnrealEngine4 Forum
元のマテリアルも配布されています。(私は初め気づかず画像見ながら全部手で作りました…)
違う点はおおよそ…

  • ちょっとシンプルにしてある(いらないスイッチ機能とかを消してある)
  • トゥーンっぽく影の中でもある程度明るくなるようにエミッシブが少し足されている
  • ベースカラーをテクスチャで指定するようにしてある

LightVectorについて

ノードの中にこういう部分があります。


名前のごとく、ライト(太陽)の方向なのですが…
正直一方向、例えば(0, -1, 0)で大体うまくいきます。
「マップに合わせて更新したいよ」という方は以下あたりを参考に、パラメタコレクションを更新するといいと思います。
UnrealEngine4 Forum

モデル側での工夫

頂点情報の法線がそのままだとキレイに円状にならなかったので、
法線転写を使って球と円柱をくっつけたような形の法線を転写してあります。
これをやらないと特にウェーブ上の髪の毛などはきれいに輪がでません。

謝辞

素晴らしいマテリアルを共有してくださったフォーラムのMizuGamesさんに感謝です。