はじめに
Unityのシェーダーグラフを使ってスクロール表現を実装する手法を解説します。必要なノードの使い方やスクロール表現の実装方法を詳しく解説します。
ゲーム開発において、グラフィック表現は非常に重要な要素です。本記事で学んだ知識を実際のゲーム制作に活かすことができるようになり、より魅力的なゲーム制作が可能になります。
シェーダーグラフとは
シェーダーグラフとは、グラフィカルユーザーインターフェイスを使用してシェーダーコードを作成することができるUnityの機能です。コードを書けない人でも扱えるのが特徴です。
シェーダーグラフの基本的な使い方について解説しているのでご覧ください
スクロールに使う主要なノード
Tiling And Offsetノード
テクスチャを繰り返し表示させたり、移動させるためのノードです。
- tiling・・・テクスチャを何回繰り返すかを指定することで、テクスチャを敷き詰めたり拡大縮小したりできます。
- offset・・・テクスチャを移動するための値を指定することで、テクスチャをスクロールできます。

Time ノード
現在の時刻を表すノードで、アニメーションやエフェクトなどに使用されます。スクロールには、Timeノードを使用して時間的な変化を表現する必要があります。

ノイズノード
テクスチャにランダムなノイズを加える時に使います。また、スクロールさせる画像を用意する代わりに、ノイズノードを使用して水面や雲のような自然現象を表現することができます。

スクロールの実装方法
基本的なスクロールの実装方法は、UV 座標を時間に応じて変化させることです。テクスチャの座標を変更することで、スクロール効果を実現します。
Tiling And Offsetノードを使用する方法
TimeノードとVector2ノードを乗算させて、Tiling And OffsetノードのOffsetをVector2ノードの方向に移動させています。
以下のようにノードを作成してつなぎましょう。
Sampler StateノードのWrapをRepeatに設定することで、スクロールがループします。

スクロール方向や速度はVector2ノードで指定できます。x軸方向(横方向)のみ動くようにしています。


スクロールによるエフェクトの実装例
スクロールを応用して、雲が流れるような表現や、水面や火のようなエフェクトなどを実装することができます。スクロールの活用例を紹介します。
流れる雲
ノイズノードを作成し、スクロールさせることで実現します。
水面
水面や火のようなエフェクトでもノイズノードを使用して作成した画像をスクロールさせれば実現できます。
おわりに
スクロールを活用することで、より美しい表現や効果的な演出を実現することができます。
より高度なスクロールの表現や、スクロールを利用したゲームの開発などにも挑戦してみましょう!