Shader Graph 技術資料: テクスチャのパンニングシェーダー

2024年11月21日


1. 概要

Shader Graph を使用すると、ノードベースのビジュアルエディタでシェーダーを作成できます。ここでは、最新の Shader Graph パッケージを使用し、時間とともにテクスチャが移動する「パンニングテクスチャシェーダー」を作成します。このシェーダーは Universal Render Pipeline (URP) に対応しています。


2. 必要な環境

  • Unity バージョン: 2022 LTS 以降
  • Shader Graph パッケージ: 最新版
  • Pipeline: Universal Render Pipeline (URP)

3. 手順

3.1 プロジェクトの準備
  1. Unity Hub で新しいプロジェクトを作成します。テンプレートとして 3D (URP) を選択します。
  2. Unity Editor で Window > Package Manager を開き、Shader Graph パッケージがインストールされていることを確認します。
3.2 Shader Graph の作成
  1. Assets フォルダ内で右クリックし、Create > Shader Graph > URP > Unlit Shader Graph を選択します。
  2. 作成したシェーダーに名前を付け、ダブルクリックして Shader Graph エディタを開きます。
3.3 ノードの構築
  1. Blackboard+ ボタンをクリックし、Texture2D を追加します。これをシェーダーで使用するテクスチャとして設定します。
  2. Texture2D プロパティをグラフ上にドラッグ&ドロップします。
  3. Sample Texture 2D ノード を作成し、Texture2D プロパティをその Texture 入力に接続します。
3.4 時間による移動の設定
  1. Time ノード を作成し、Sine Time 出力を使用します。
  2. Vector2 ノード を作成し、速度値を設定します。(例: X = 0.1, Y = 0
  3. Multiply ノード を作成し、Sine TimeVector2 を掛け合わせてオフセット値を生成します。
3.5 UV 座標の調整
  1. Tiling And Offset ノード を作成し、Offset 入力に Multiply ノードの出力を接続します。
  2. Tiling And Offset ノードの出力Sample Texture 2D ノードの UV 入力に接続します。
3.6 最終出力の設定
  1. Sample Texture 2D ノードの RGBA 出力を、Fragment 出力 (Base Color) の入力に接続します。

4. 保存と適用

  1. Shader Graph エディタの左上にある Save Asset ボタンをクリックします。
  2. 新しいマテリアルを作成し、このシェーダーを適用します。
  3. シーン内のオブジェクトにマテリアルをドラッグして適用します。

5. 動作確認

シーンを再生し、テクスチャが指定した速度でパンニングするのを確認します。


6. 応用

このシェーダーは、複雑な水の流れや背景のスクロールエフェクトなどにも応用できます。ノードを追加することで、さらに多彩な効果を作成することが可能です。


この技術資料を参考にして、Shader Graph でのシェーダー作成に挑戦してみてください!

C#,Shader,Unity

Posted by hidepon