【ShaderGraphレシピ】初心者向け!!ずぼら水面シェーダー

ver.2018.3あたりからUnityが独自に提供を始めたシェーダーグラフ(Shader Graph)を使うことで、シェーダー言語を知らなくてもシェーダーを組むことが容易になりました。

以前は、HLSLを勉強するか有料アドオンを導入する必要があり、割とコストがかかるものでしたが、シェーダーグラフの登場によってシェーダー作りも取っつきやすくなりました。

今回は、初心者でも簡単に作れるずぼら水面シェーダーを紹介します。

完成予想

今回作成するシェーダーを実際に使ってみた作品例です。なかなか水面っぽく仕上がってませんか?

ShaderGraphを導入

プラグインの導入方法はこちら

水面シェーダーの設計方針

水を水たらしめているものは、水面の波模様です。これをできるだけ簡素に実装します。

水面の波は白く光って見えますが、これは揺れる水面が光を乱反射するためです。

なので、マテリアルの反射率を高くし、ノーマルマップで反射光を揺らすことにします。

また、波の動きはノーマルマップをスクロールさせることで再現します。以上のことをまとめると、

  • スムーズネスを高く
  • 波っぽいノーマルマップ
  • 動くノーマルマップ
  • 水なので透過処理

必要な要素がたった4つだけ。ね、ずぼらでしょ?

ノードレシピ

ノード全体は以下のように組みました。特別凝ったことは一切していません。

UVに時間変数を入れることによって、マテリアルが揺れ動く様子を表現しています。

UVを動かすテクニックはシェーダーでよく見かけるので参考にしてください。

また、シェーダーに透過処理をさせるには、Blendモードをアルファやカットオフに設定しなければなりません。お忘れなく。

ずぼらにノーマルマップを作る

ネットに落ちてるフリーのものを使ってもいいのですが、ノーマルマップの作成もたいしたコストにならないので紹介します。

今回使った水面ノーマルマップはphotoshopでノイズマップを作成し、ノーマルマップに変換しただけのものです。シームレス化してもいいのですが、テクスチャに動きを付けるのであまり気にならなかったりします。

まとめ

物理的には全く正しくないし、よく見るとすぐにCGとわかってしまうシェーダーですが、ルックはかなり良くなります。

かなりずぼらな作りなので、シェーダーグラフの勉強もかねて改良してみてください。

また、このシェーダーを使った作例はアセットとして販売中です。興味があれば、ぜひストアを覗いてみてください。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です