【Unity】シェーダグラフで渦巻を作ってみた!
おはようございます。おーみんです。
シェーダグラフで渦巻を作ってみた!
以前シェーダグラフを用いて流水を表現しました。
【Unity】シェーダグラフで流水を表現! - おーみんだよ。
今回はその応用として渦巻を作ってみた内容を書いていきます。
今日は以前作った流水のシェーダを応用(?)して渦巻きのシェーダを作りました。回ってる人のスピードは適当にランダムで笑
— 超おーみん2@Unity民族 (@Ooooooomin_365) 2019年4月7日
シェーダグラフもだいぶ慣れてきましたなぁ。これは使いこなせるとだいぶUnityの幅が広がるので個人的にかなり嬉しい。#unity3d #unity #shadergraph pic.twitter.com/z9coYxmgIl
シェーダグラフの解説
シェーダグラフの中身はこんな感じです。
まず水のNormal mapを2種類用意しましょう(1種類でも特に問題はありません)。Googleで「Water normal map」と画像検索すれば多数出てきます。
黄色の枠の部分はTwirlノードを用いており、渦巻の形を作っています。
僕は二つのnormal mapの渦の回転方向を逆に設定しました。これは偶然だったのですが、回転方向を逆にすると綺麗に出来ちゃったんですよね(笑)
こちらはご自身で適切に調整してみてください。使用するNormal mapによってはまた変わってくるかもしれません。
赤枠の部分はInverse Lerpノードを用いてNormal Blendした値AとBの間のTの時の補間値を算出しています。少し数学的な話になってしまうので今回は省略します。
青枠の部分はなくても良いですが、そのままだと少し暗い色だったので明るくするためにMultiplyノードを掛けています。
最後に
ということで、今回はシェーダグラフを用いて渦巻を表現しました。
シェーダグラフを作成した後は輝度や水の色をご自身で好きなように調節してみてください。