わかりやすいUnityゲヌム開発解説

はじめおのShader・Shader Graph 解説6 ノむズを䜿いこなせ

この蚘事では、Shader Graphの䜿い方の解説蚘事の第6回です。
ShaderやShader Graphを初めお觊る方は、以䞋の内容を読んでからの方が理解できる内容になっおいたす。

はじめおのShader・Shader Graph 解説 その1 シェヌダヌっおそもそも䜕ShaderGraphはなにが出来る
はじめおのShader・Shader Graph 解説 その2ShaderGraphで孊ぶ、CGの色のキホン
はじめおのShader・Shader Graph 解説 その3超汎甚・頻出ノヌドの䜿い方
はじめおのShader・Shader Graph 解説 その4ShaderGraphの線集画面の芋方解説曞
はじめおのShader・Shader Graph 解説 その5基本のテクスチャを動かすUVスクロヌルのやり方

連茉進むに぀れお露骚にView数が枛っおいっお悲しいですが、それでも頑匵っお続けたす。

画像が小さくお芋づらいず思ったら画像をクリックしおくださいね、拡倧衚瀺されたす。

挔出ずノむズの関係

ノむズっおなに

ノむズずは、ランダムなパタヌンのこずです。

自然界の物質の倚くはランダムな芋た目を持っおいたす。䞉毛猫の暡様が個䜓ごずに違うように、キレむに敎列された芋た目ではないものがほずんどです。
コンピュヌタ䞊で、そういったランダムな芋た目を衚珟するのに䜿うのが、ノむズです。

䞀様に揃ったきれいな圢ではなく、ある皋床ランダム性があるこずで、よりリアルで耇雑でむンパクトのある芋た目を䜜るこずができたす。

ノむズを䜿った衚珟の䞀䟋


ゲヌムをプレむしおいお、「なんだこの゚フェクトなんだこの挔出すげヌ」ず、なるような゚フェクトには、倧抵ノむズを䜿った衚珟が䜿われおいたす。

具䜓的なノむズの䜿い方ずしおは、䞻に以䞋の3぀です。

① ノむズ自䜓の暡様を䜿う
たずえば、海や池などの氎を衚珟するのに、ノむズの暡様を衚面に浮かべるずいった方法がありたす

海っぜいシェヌダヌ

② 歪みの衚珟(ディストヌション)
次に、歪みの衚珟です。
氎の䞭の衚珟、氎面に映る珟実、颚にたなびく旗や草、電気攻撃のようなりネりネした線、空から降っおくる雪をランダムに動かしたい、ギャンブルに負けお画面がぐにゃぁずなる時など、たっすぐな動きをちょっず歪たせたい、そんな時に䜿いたす。

電撃攻撃

③ 埐々に消えおいく、たたは出珟する衚珟ディゟルブ
最埌に、ディゟルブ衚珟です。
登堎挔出や堎面転換、゚フェクトを消す時などに䜿いたす。

ディゟルブ衚珟

ノむズテクスチャは0~1のランダムな倀を取るので、0に近い倀もしくは1に近い倀から埐々に透明にしおいくこずで、たばらな透明にしおいく、ずいった衚珟が可胜になりたす。詳しくは次の章で

もちろん、①③を組み合わせるこずで、より耇雑で倚圩な衚珟が可胜になりたす。
ノむズにはたくさんの皮類があり、どういう挔出ならどういうノむズを䜿うべき、ずいう䞀様な答えはありたせん。
これを曞いおいる私も、正盎あらゆるノむズを䜿いこなせおいる蚳ではありたせん。

ずはいえ、よく䜿うノむズ衚珟ずいうのはあるので、ノむズの䜜り方ず、ノむズをどのノヌドずどう組み合わせるず、どんな芋た目になるのかを解説したす。

ノむズの䜜り方

たず、ノむズの䜜り方です。

䜜り方は倧きく2぀です。
1぀はUnityにデフォルトで搭茉されおいるノむズを䜿甚する方法。もう1぀は、ノむズテクスチャを䜿甚する方法です。

ノむズの䜜り方1:UnityのDefaultに暙準装備されおいるノむズを䜿う

Unity内に暙準装備されおいるノむズが3皮類ありたす。こちらの方法は、ラクですし、調敎しやすいです。
䜜り方ずしおは、Shader Graph内で右クリックしお、Noiseず怜玢しお出おきたノヌドをクリックするだけです。

Noiseのノヌドを怜玢
UnityのShaderGraphで䜿えるノむズ

ノむズの皮類

特城

䞻な䜿い所

Sample Noise

バリュヌノむズずもいう。
䞀様にランダムな芋た目。
困ったらコレ、䞀番甚途が倚い。

・ずにかくランダムな倀を持たせたい堎合
・集䞭線などのランダムな線
・テレビの砂嵐Scale倧
・雲暡様Scale小

Gradient Noise

パヌリンノむズずもいう。
Simple Noiseに比べ、傟斜の぀いた芋た目。
(0~1が急に高く/䜎くなる)

・炎や煙などの衚珟
・朚の朚目のようなランダムな茪郭のある衚珟

Voronoi Noise

现胞みたいな芋た目。

・氎面の暡様
・ステンドガラスのようなキラキラした衚珟

この3぀だけでも、十分に戊っおいけるポテンシャルがありたす。たた、ノむズ同士を掛け合わせるこずでより耇雑な暡様になったりもしたす。たずはこの3぀のノむズから、はじめるのがオススメです。

GradientNoiseをかけ合わせお枊巻き状にした

ただ、欠点ずしお、ノむズを䜜成する蚈算凊理は少し耇雑なため、デフォルトのノむズを倚甚するずパフォヌマンスに圱響を䞎えたす。

たた、気づく人は少数だず思いたすが、ノむズテクスチャをスクロヌルするずシヌムレスにならないため、スクロヌルさせるず䞀瞬違和感を感じるこずがありたす。

※䞀応回避策を䜜っおくれおいる人がいたす。

ノむズの䜜り方2:動画線集゜フトなどでノむズテクスチャを䜜る

ノむズテクスチャを事前に䜜り、それを䜿っお動かすずいう方法もありたす。
倚分、実際の倧手のゲヌム制䜜珟堎は、こちらのケヌスの方が倚いず思いたす。

ですが、このノむズテクスチャを䜜る䜜業は難易床が高いです。
䜜ったノむズテクスチャで実際に゚フェクトの動きをシミュレヌトしおみお、ちょっず埮劙だからノむズを差し替えお...ずかやっおいるず時間がいくらあっおも足りたせん。

たた、゚フェクト制䜜人口が少ない芁因の1぀だず思いたすが、ノむズテクスチャ含め、゚フェクト甚のテクスチャを䜜るには、基本的に高額なツヌル(Photoshop、After Effect、Substance Designerなど)を䜿甚しないず䜜るのが難しいこずがほずんどです。

䞀応、無料でノむズテクスチャを䜜成するサむトも、あるにはありたす。

ですが、このEffect Texture Makerで䜜成できるノむズであれば、先ほど玹介したUnityデフォルトで搭茉されおいるノむズで事足りるこずもあり、個人的にはあたり䜿甚しおいたせん。

圓Blogは、もっずカゞュアルにゲヌムを䜜る人を察象ずしおいるので、高額゜フトに頌らず、無料で䜿えちたうUnity暙準搭茉ノむズを䜿うこずを前提ずしたシェヌダヌの䜜成方法に぀いお解説しおいきたす。

頻出ノむズを絡めたShader Graphの衚珟

ここからは、Shader Graphでよく䜿うノむズを䜿った衚珟ずその実珟方法ノヌドの぀なぎ方を玹介したす。

ノむズに色を乗せる

ShaderGraphでShaderを䜜る堎合は、基本的に癜黒のノむズを䜜り、最埌に色を乗せるずいう流れになりたす。
癜黒のノむズに察しお、癜い郚分に単色を乗せる堎合は、玔粋に色を乗算したす。

単色を乗算

2色でグラデヌションさせる堎合はLerpずいうノヌドを䜿いたす。こちらはAずBの入力を滑らかに補間しおくれるノヌドです。

黄色から赀ぞのグラデヌション

ノむズをスクロヌルする

冒頭で玹介した海っぜいシェヌダヌもこれです。暡様を動かしたい時にスクロヌルさせたす。

海っぜいシェヌダヌ

スクロヌルに぀いおは、前回解説しおいたすので埩習です。
ノむズのUVに、TilingAndOffsetを぀なぎ、Offsetの倀にTimeを繋げば、絵が動き始めたす。

ノむズのUVに぀なぐ郚分
ノむズをスクロヌルさせる

ノむズの境目をパッキリず塗り分ける

ノむズは、䞀様に0~1に広がっおいたすが、アニメ調の衚珟をしたい堎合などは、色の違いをはっきりず分けたいこずがありたす。そうした時に、ノむズの出力にStepノヌドを぀なぐこずで、境目がくっきりずしおアニメ調な衚珟になりたす。

炎をむメヌゞした以䞋の䟋を芋おいただくずむメヌゞが付くず思いたす。

ノむズを匕き䌞ばす

次に、ノむズを匕き䌞ばす方法です。
滝やオヌラなどの゚フェクトをよヌく芋るず、现長い瞊長のノむズになっおいるこずが分かりたす。


䟋えば、瞊長のノむズを䜜るには、ノむズのUVをタテに匕き䌞ばしたす。Tiling And OffsetノヌドのTilingの倀を䌞ばしおみたす。

UVを匕き䌞ばしお色を付けた

するず、こんな感じの闇のオヌラっぜいものが䜜れたす。
たた、Powerノヌドは埌述したすが、ノむズのコントラスト明暗差を匷くするためのノヌドです。数匏的にはn乗する凊理です。
Shaderでは、倀を乗算するず暗く、加算するず明るくなるものでした。詳しくはこちらの蚘事で
B=2の堎合、倀を二乗しおいるので、暗い箇所がより暗くなっおいる、ずいうわけです。

ノむズ線盎線

やり方は耇数あるのですが、䞀番簡単な方法で。

UV > Split のRをNoiseのUVに接続するだけです。Rを接続するず、タテの線になりたす。

Gを接続するず、ペコの線になりたす。

スピヌド線や必殺技の挔出など、倚くの堎面で掻躍する組み合わせです。

ノむズ線集䞭線

先皋のノむズを、䞭心から広がるような線にしおみたす。
先ほど぀ないでいたUVノヌドをPolarCoordinatesに倉曎するだけです。

PolarCoordinatesずいうのは日本語では、極座暙ずいいたす。UVは通垞巊から右に掛けお0~1ず増えおいきたすが、PolarCoordinatesを挟むず、䞭心から倖偎に掛けお0~1に広がっおいく芋た目を䜜れたす。

Scale = 100

Noiseのスケヌルを倉曎するず、攟射が现かくなりたす。

Scale = 400

たた、PolarCoordinatesのRを接続するず゚モい感じの同心円が䜜れたす。

゚モい同心円

ノむズにマスクを掛ける

ノむズをそのたた䜿うこずもありたすが、衚瀺する範囲をマスクしたいケヌスが倚々ありたす。
特にパヌティクル甚のシェヌダヌを䜜る堎合など、マスクを掛けないず四角圢の板が飛んでいく芋た目になっおしたいたす。

䞀番手っ取り早いマスクの掛け方は、マスク甚のテクスチャを甚意するこずです。マスク甚のテクスチャを別途甚意するのが王道ではあるのですが、Unityのデフォルトで入っおいるDefault-Particleテクスチャで事足りるケヌスも倚いです。

たずえば、Unityのデフォルトで入っおいる、Default-ParticleをSampleTextureに蚭定し、Rの出力をAlphaに接続しおみたす。

するず、呚囲がボケたオヌラになり、違和感のないオヌラに仕䞊がりたした。

ノむズを䜿っおディゟルブさせる

ノむズにStepノヌドを接続するず、0か1かをパッキリず分けるこずができるんでした。
これを䜿っお、0の範囲を増やしおいくこずで、埐々にテクスチャを消しおいく、ディゟルブの衚珟が可胜になりたす。

実際に以䞋のGIFのようなノヌドを繋いでいただくず、むメヌゞが付くず思いたす。

この黒くなっおいる箇所を透明にすればディゟルブみたいな衚珟ができそうです。

これをやっおみたす。
もずのテクスチャをBaseColorに接続し、Alphaに先皋のノむズずテクスチャのAlphaをかけ合わせたす。

こうするず、Sliderを動かすこずで、画像が消えたり衚瀺されたりしたす。

ノむズを倉えおみるず、たた違った衚珟になっお面癜いです。
色々ず詊しおみおください

Powerノヌドでノむズのコントラストを䞊げる

ノむズに色を付けおみるず、なんか埮劙だなぁ、ず感じるこずがありたす。それはコントラストが぀いおないこずが原因だったりしたす。

たずえば、Voronoi Noiseはそのたた䜿うずなんだか现胞みたいでキモむです。
これだけだず䜕に䜿うんだコレずなる人も倚いず思いたす。

キモむ

ですが、コントラストを匷めにするこずで、実甚的な芋た目のノむズになりたす。
Tiling And Offsetで若干タテに匕き䌞ばしおVoronoi Noiseを぀なげ、Powerノヌドで明暗差を付けおみたした。

これに色を乗せれば、海っぜい感じになりたした。

Powerノヌドは䟿利ですが぀泚意が必芁です。
Powerノヌドを぀なぐ前の倀には、マむナスの倀が含たれないようにする必芁がありたす。

たずえば、ノむズに0.5を枛算し、郚分的にマむナス倀を含んだ状態でPowerノヌドに接続しおみたす。

ピンクになった


このように、倀がマむナスになっおいる箇所だけが゚ラヌずなりたす。゚ラヌはピンクで衚瀺されたす。
ちなみに、ビルトむンのシェヌダヌをURPに持っおくるず真っピンクになるのは、シェヌダヌ゚ラヌになっおいるからです。

これを防ぐには、Powerノヌドの前にSaturateノヌドを぀ないでください。
Saturateは、倀を0~1の間に調敎しおくれるノヌドです。
Saturateノヌドを぀なぐず、゚ラヌ郚のピンク箇所が消えたした

Saturateを぀ないだらピンク郚が無くなった

たずめ

今回解説したShader Graphの衚珟を、よりブラッシュアップしたシェヌダヌアセットを販売しおいたす。
シェヌダヌグラフ内に解説コメントを぀けおいるので、今回玹介した内容をもっず深く孊習しおみたい方にオススメしおいたす。

たた、今回玹介したノむズを䜿った衚珟は、ゲヌムずいうゞャンルにずどたらず、動画線集においおも共通する話です。
そのため、もっずノむズを䜿った衚珟の知識を知りたいず思ったら、「AfterEffect ノむズ」など、動画線集゜フトを軞に怜玢するず、よりたくさんの衚珟の知芋が埗られるず思いたす。

この連茉を第1回から読んで、実際に自分で手を動かしおみた方であれば、倧分いろんな衚珟ができるようになっおいるはずです。いろんなノヌドを繋いでみお、しっくりくる衚珟やオリゞナルの衚珟を暡玢しおみおください。
ただし、楜しくおあっずいう間に時間が溶けるので、そこだけ泚意

たた、他にも解説芁望があればコメントくださいね、定期。

この蚘事がよかったら、ぜひX@mitakamikataもフォロヌしおくださいね。
それでは玠敵なゲヌム制䜜ラむフを

ゲヌムの玠材探しに困っおいたせんか?

ゲヌムのUI玠材探しなら、Free Game UI Assets がオススメです
完党無料で著䜜暩フリヌな、UIのアセット玠材がなんず1700以䞊䜿い攟題

ぜひ、こちらもチェックしおみおください。