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

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

Shader Graphの超入門レシピ その4~タイリングとオフセット~

前回までの内容

Shader Graphの超入門レシピ その1~準備編~ - さわぐちFMオキーステーション

Shader Graphの超入門レシピ その2~エディタ画面と基本操作~ - さわぐちFMオキーステーション

Shader Graphの超入門レシピ その3~テクスチャブレンド~ - さわぐちFMオキーステーション

タイリングとオフセットノードを使ってみる

張り付けたテクスチャをタイリング(並べる)したり、オフセットを操作してUVスクロールしたり...ということができるノードです。まぁ実際に触りながら覚えていきましょう!

前回同様にUnlit Graphを作成します。名前は「TilingAndOffset」とかにしておきましょう。 f:id:amidaMangrove:20200305001412p:plain

テクスチャをタイリングをしてみよう

とりあえず「Sample Texture 2Dノード」を配置します。 f:id:amidaMangrove:20200305001549p:plain

次にSample Texture 2Dの左隣くらいに「Tiling And Offsetノード」を配置し「Out(2)」をSample Texture 2Dの「UV(2)」に繋げ、「Tiling」の数字を変えてみましょう。 f:id:amidaMangrove:20200305002013p:plain 入力した値の分だけテクスチャの描画が繰り返されます。

オフセット値を変更してスクロールしてみよう

スクロールするには値を何かしらで変え続けなければいけません。そこで、これからも頻繁に使用する「Timeノード」を使用します。

f:id:amidaMangrove:20200305002540p:plain

各出力値を見ていきます

名前 出力値
Time 経過時間、_Time.yと同等
Sine Time 時間の正弦、_SinTime.wと同等
Cosine Time 時間の余弦、_CosTime.wと同等
DeltaTime 前フレームからの経過時間、unity_DeltaTime.xと同等
Smooth Delta 平滑化されたDeltaTime 、unity_DeltaTime.zと同等

「Timeノード」はアニメーションをする際によく使われます。「とりあえず動かしたかったらTime使っておけ」くらいの感覚で覚えてもらって良いかなーと思います。 それでは「Vector2のノード」を作成し、y成分にTimeを繋げてみましょう。

f:id:amidaMangrove:20200305003736p:plain

Vector2のY値を時間で更新し続けるノードができました。試しに「Tiling And Offsetノード」のOffsetに繋げてみましょう。 f:id:amidaMangrove:20200305004021p:plain

無事スクロールを確認できました。

その他もろもろ

スクロールの速度を変更する

Timeノードの出力値に「Multiply(乗算)ノード」を繋げましょう。値を変えることでスクロール速度が変わります。 f:id:amidaMangrove:20200305004807p:plain

円を描くように動かす

Sine TimeとCosine TimeをVector2のxyにそれぞれ設定します。 f:id:amidaMangrove:20200305005329p:plain

これらに前回のテクスチャブレンドを組み合わせてみると.....こんな感じでしょうか。 f:id:amidaMangrove:20200305005859p:plain

ブラックボードを使用して外からタイリング数やスクロール速度を変えるのも面白そうです。

というわけで本日はここまで!また次回!