Shader Graph
UnityのShader Graphを使ってスプライトを点滅させるシェーダーを作成する方法を紹介します
手順1: 新しいシェーダーグラフの作成
- 新しいShader Graphを作成:
- プロジェクトビューで右クリックし、
Create
>Shader
Graph >URP
>Sprite Lit Shader Graph
を選択します。 - シェーダーグラフに「BlinkShader」と名前を付けます。
- プロジェクトビューで右クリックし、
- Shader Graphエディターを開く:
- 作成したシェーダーグラフをダブルクリックしてShader Graphエディターを開きます。
手順2: 点滅効果の設定
概要
- Timeノードの追加:
- 時間に基づいたアニメーションを作成できます。
- Sineノードの追加:
Time
ノードのTime
出力をSine
ノードの入力に接続します。これにより、時間経過に応じてサイン波が生成されます。
- Lerpノードの追加:
Sine
ノードの出力をLerp
ノードのT
入力に接続します。
このノードは、2つの値の間(A, B)を指定された割合(T)で補間するためのノードです
時間の経過に基づいて値を変化させることができるため、アニメーションの作成に役立ちます
- Colorノードの設定:
- Blackboardに戻り、
+
ボタンをクリックしてColor
プロパティを追加します。これをBase Color
と名前付けます。 Base Color
ノードを作成し、Lerp
ノードのA
入力に接続します。Lerp
ノードのB
入力に透明色
を設定します(例: RGBA(1, 1, 1, 0))。
- Blackboardに戻り、
- Fragmentノードの設定:
Lerp
ノードの出力をFragment
ノードのBaseColor(3)
入力に接続します
Timeノードの追加
背景で右クリックし、Create Nodeを選択
検索窓で、timeを入力、Input > Basic > Timeを選択
Timeノードが作成されます
Sineノードの追加
Timeノードと同様にメニューからMath
>
Trigonometry
>
Sine
ノードを追加します
Time
ノードのTime(1)
出力をSine
ノードのIn(1)入力に接続します。これにより、時間経過に応じてサイン波が生成されます
Lerpノードの追加
これまでのノードと同様に、Math
>
Interpolation
>
Lerp
ノードを追加します
Sine
ノードの出力をLerp
ノードのT
入力に接続します
Colorノードの設定
ShaderSampleの+
ボタンをクリックしてColor
プロパティを追加します。これをBase Color
と名前付けます
BaseColorはカラーピッカーでRGBA(1, 1, 1, 1)に設定します
Base Color
ノードを作成します
Lerp
ノードのA
入力に接続します
Lerp
ノードのB
入力に透明色
を設定します(例: RGBA(1, 1, 1, 0))
- Colorノードを作成します (Input > Basic > Color)
- カラーピッカーでRGBA(1, 1, 1, 0)に設定します
Fragmentノードの設定
Lerp
ノードの出力をFragment
ノードのBaseColor(3)
入力に接続します
手順3: マテリアルの適用
- マテリアルの作成:
- プロジェクトビューで右クリックし、
Create
>Material
を選択します。 - 新しいマテリアルを作成し、Shader Graphで作成した
BlinkShader
を適用します。
- プロジェクトビューで右クリックし、
- スプライトにマテリアルを適用:
- 点滅させたいスプライトに、新しく作成したマテリアルを適用します。
シェーダーをShaderGraphで作成したSampleGraphに設定します
完成
これで、時間経過に応じてスプライトが点滅するシェーダーが完成です。シェーダーのプロパティを調整することで、点滅の速度や色をカスタマイズすることができます。
この手順に従うことで、Unityの最新バージョンに対応したShader Graphを使用してスプライトを点滅させるシェーダーを作成できます。疑問があれば、いつでも質問してください。
ディスカッション
コメント一覧
まだ、コメントがありません