5
2

More than 3 years have passed since last update.

マテリアルとブループリントで球状の法線を作る

Last updated at Posted at 2021-02-19

セルルックなどのノンフォトリアル表現では、法線をそのまま出すよりも球状ののっぺりとした法線にしたほうがきれいに見える場合があります。
主にキャラクターの顔周りや、植物などでよく使われる表現です。
今回はUE4のマテリアルとブループリントを使って球状の法線を作る方法をご紹介します。

マテリアル

シンプルに球状の法線を作るとなると以下のような構成になると思います。
2021-02-19_18h03_55.png
マテリアルのDetailからTangent Space Normalのチェックを切っておきます。
2021-02-19_18h07_02.png

これで立方体でもなめらかな法線に変えることができます。
2021-02-19_18h05_45.png

オブジェクトの一部にだけ適用する

全体的に法線を丸くしたい場合は上記の方法で十分ですが、キャラクターの顔部分だけなめらかにしたい場合などもあるかと思います。
その場合はブループリントを使うことになります。
こちらのヒストリア様のブログ記事を参考に実装してみました。
[UE4] 動的法線転写について
https://historia.co.jp/archives/11921/

記事にもある通り、頭の位置に置いたコリジョンから位置を取得し、小さいSphereと大きいSphereの間で元の法線とブレンドするというものになります。
2021-02-19_18h23_56.png

まずはキャラクターのブループリントからコリジョンを頭の位置に固定します。
頭の位置はアニメーションによって常に動いているので、コリジョンをボーンに追従させる必要があります。
2021-02-19_18h25_17.png
SphereコリジョンをMeshに親子付けしたら、Parent Socketの虫眼鏡マークからHeadボーンを探してアタッチします。
2021-02-19_18h24_54.png
これでアニメーションで動いても正確に頭の位置に追従するようになりました。

あとはコリジョンの位置とRadiusを取得し、マテリアル側に渡すだけです。
ヒストリア様の記事とほとんど同じですが、ノードグラフはこんな感じです。
キャラクターBP
2021-02-19_18h24_16.png
マテリアル
2021-02-19_18h38_35.png

キャラクター以外にも、植物などに適用するとポリゴン感が軽減されてより馴染みやすくできる場合があります。
元の法線
2021-02-19_17h36_59.png
球状法線
2021-02-19_17h37_07.png

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2