kazuki’s blog

新人エンジニアのブログ

Amplify Shader Editor触ってみた

こんにちは〜 かずきです。

去年のブラックフライデーセールで買ったのに使っていなかった...
今回少しだけ触ってみた(というかサンプル見てみた)ので備忘録的なもの書いてみます!

Amplify Shader Editorとは

Surface ShaderをノードベースのGUIエディタで作成する事の出来るUnity向けアセットです。

サンプルシェーダAnimatedFireを見てみた

f:id:tc_kazuki:20180324221917g:plain
炎が燃えながら動くシェーダです。

f:id:tc_kazuki:20180318010801p:plain シェーダをノードエディタ画面開いたらこのようになっています。

シェーダの各処理を見てみた

UVスクロール

f:id:tc_kazuki:20180318010842p:plain
全体で見た場合、左下の方にある処理です。
UVスクロールとは時間などの変動する値を利用し、テクスチャの描画位置を移動させていくものの事を指します。
ここでは経過時間を20分の1にしたものと、インスペクターから設定したTileSpeedを元にUVスクロールさせています。

f:id:tc_kazuki:20180324223446g:plain
なのでTileSpeedの値を上げると炎の動きが速くなり、 f:id:tc_kazuki:20180324223631g:plain
0にすると炎は止まります。

テクスチャのアルファ値変化

f:id:tc_kazuki:20180324221708j:plain
経過時間を基準値としたSinカーブ(-1 〜 1)の値を加算していったものと、インスペクターから設定したFireIntensityの値を元にアルファ値を変化させています。

f:id:tc_kazuki:20180325000759g:plain FireIntensityの値を上げると炎が強くなり、
f:id:tc_kazuki:20180325000939g:plain 低くすると炎が弱くなります。

テクスチャ合成

f:id:tc_kazuki:20180324235237j:plain
Multiplyノードでテクスチャの合成をしています。
UVスクロール処理を加えたTileableFireテクスチャと処理を加えてないMaskテクスチャを合成したのちに、
アルファ値だけ変化させている白色テクスチャを合成する事で炎の強弱を変化させています。

f:id:tc_kazuki:20180325001528g:plain
なので、FireIntensityを0にすると炎が完全に消え、
f:id:tc_kazuki:20180325001732g:plain
TileableFireのテクスチャ画像を真っ白なものにすると動きがなくなります。

まとめ

ノードベースのGUIエディターでシェーダーが組みやすいとはいえシェーダーの基礎知識が無いと、
作りたいシェーダーを作るのは難しいなと思いました。
とりあえず勉強します!