さわぐちFMオキーステーション

幸せの鐘が鳴り響き僕はただ嬉しいふりをする

Shader Graphの超入門レシピ その8~ノイズで遊ぼうーディゾルブエフェクトとか頂点アニメーションとか~

前回の記事

amidamangrove.hatenablog.com

Simple Noiseノード

Simple Noiseノードは入力されたUV値とScale値に基づいてノイズを発生させます。今回はこのノードを使用してディゾルブエフェクトや頂点のアニメーションを作ってみようと思います。

f:id:amidaMangrove:20200322100400p:plain

f:id:amidaMangrove:20200322234437p:plain

f:id:amidaMangrove:20200322215429p:plain

ノイズをアルファ値に使用してみる

Alpha値とAlphaClipThreshold値にノイズを使用することで古地図のような表現ができます。作成したShader Graphがこちら。 f:id:amidaMangrove:20200322212116p:plain

Simple NoiseをAlpha値に接続しています。次にTimeノードをFractionノードに接続しています。「Factionノードは入力された値の小数点部分を返すノード」で、出力される値は0以上~1未満となります。

接続先の「Alpha Clip Threshold」「そこに入力された値よりもアルファ値が下回っていたら描画しない」というもので0~1に変化する過程でNoiseの暗い部分から徐々に描画がスキップされていきます。

f:id:amidaMangrove:20200322212832g:plain

ノイズのUV値を変更する

UV値を変更するとノイズの出力結果も変わります。デフォルトではUV0が指定されていますが、その値を「Polar Cordinateノード」に変えます。このノードは入力されたUV値を極座標に変換してくれるノードです。 f:id:amidaMangrove:20200322231921p:plain

f:id:amidaMangrove:20200322232625g:plain

ディゾルブエフェクトを加える

ディゾルブエフェクトの作り方はkeijiroさんのサンプル「例2:ノイズを使ったディゾルブエフェクト」を見て頂くとわかりやすいのでこちらを紹介します。(手抜きとか言わないで・・・

Shader Graph Examples インストラクション · GitHub

ちなみに先ほどのノードにエフェクトを加えてパラメータをいじるとこんな感じになります。 f:id:amidaMangrove:20200322233510p:plain f:id:amidaMangrove:20200322233627g:plain

同じエフェクトでもUVの値を変更するだけでも多少変化をつけられるようになりますね。

f:id:amidaMangrove:20200322234627g:plain

おまけ:頂点のアニメーションにノイズを加えてみる

頂点座標にノイズを加算することで少し変わった効果を作れます。前回の記事でも実は使用していました。 ノイズを発生させ、法線の方向に乗算した結果を座標に加算する・・・という内容です。実際のShader Graphは以下 f:id:amidaMangrove:20200322215131p:plain

作成したシェーダーをスフィアに適用すると以下のようにちょっとぐにゃぐにゃした感じに。 f:id:amidaMangrove:20200322215429p:plain

Noiseのスケールを下げUV値をアニメーションさせてみます。 f:id:amidaMangrove:20200322220136p:plain

シャボン玉っぽいような面白いアニメーションが作れました。 f:id:amidaMangrove:20200322220631g:plain

ノイズを使うことで表現の幅は結構増えそうですね!特にディゾルブエフェクトは単純かつ見た目も派手なのでとても使い勝手が良さそうです。 ということでまた次回!