おーみんブログ

C#, ASP.NET Core, Unityが大好きです。

【Unity】シェーダグラフでディゾルブ表現してみた。

f:id:bookreadkun:20190405071412p:plain

おはようございます。おーみんです。

 

 

シェーダグラフでディゾルブ効果

最近はシェーダに手を出し始めていますが、今回作ったのは光を出しながらディゾルブ(溶解)効果で消えていくアニメーションです。

 

ディゾルブ効果はよくシェーダ導入の例として紹介されるので参考文献も多くて取り組みやすかったです。

 

僕が参考にしたのは以下の動画。

youtu.be

 

シェーダグラフの解説

シェーダグラフの中身はこんな感じです。

f:id:bookreadkun:20190405072718p:plain

 

赤枠の部分ではオブジェクトに凹凸を出すためにNormal mapを設定しています。凹凸には興味ない方はDefault mapでも大丈夫です。

 

黄色の枠はSimple Noiseを設定しています。

今回物体自身は溶けるように消えていきますが、そのパターンをこのSimple Noiseで決定しています。Xの値を上げるとより細かに、下げるとより大胆になっていきますので自身で好きなように調整してみてください。

他のパターンのNoiseを使いたい場合はGradient Noiseというのもあるのでそちらを使うのが好ましいでしょう。

 

青色の枠では、物体の消えていく部分を微妙に光らせる設定を行っています。物体をよく見てみると、黄色く光って溶けていっているのが分かると思いますが、ここでそれを設定しているんですね。

言葉で説明するのが難しいんですが、Step部分によって消える部分+その前のAddで設定した値(今回は0.08)以上の部分を光るようにします。しかしながら僕らが光るようにしたいのは消える部分+その前のAddで設定した値までの間ですので、Invert Colorで反転させているわけですな。

 

詳しくは上動画の20分頃から見ると分かりやすいと思います。図なども用いており、僕の説明よりもピンと来やすいでしょう。

 

最後に

光のはじけていく様子はパーティクルで設定しています。組み合わせるとなんか良い感じに見えますね(笑)

 

ディゾルブ効果はシェーダの基本であり、多くの方が手法を公開しているのでぜひシェーダを始めたばかりの方は挑戦してみましょう!