Shader Graph
UnityのShader Graphを使ってスプライトを点滅させるシェーダーを作成する方法を紹介します
手順1: 新しいシェーダーグラフの作成
- 新しいShader Graphを作成:
- プロジェクトビューで右クリックし、
Create
>Shader
Graph >URP
>Sprite Lit Shader Graph
を選択します。 - シェーダーグラフに「BlinkShader」と名前を付けます。
- プロジェクトビューで右クリックし、
- Shader Graphエディターを開く:
- 作成したシェーダーグラフをダブルクリックしてShader Graphエディターを開きます。
![](https://soft-rime.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-20-8.30.14-1024x559.png)
手順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を選択
![](https://soft-rime.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-20-8.37.00-1024x756.png)
検索窓で、timeを入力、Input > Basic > Timeを選択
![](https://soft-rime.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-20-8.37.15-1024x756.png)
Timeノードが作成されます
![](https://soft-rime.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-20-8.39.53-1-1024x756.png)
Sineノードの追加
Timeノードと同様にメニューからMath
>
Trigonometry
>
Sine
ノードを追加します
![](https://soft-rime.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-20-8.42.52-1024x756.png)
Time
ノードのTime(1)
出力をSine
ノードのIn(1)入力に接続します。これにより、時間経過に応じてサイン波が生成されます
Lerpノードの追加
これまでのノードと同様に、Math
>
Interpolation
>
Lerp
ノードを追加します
![](https://soft-rime.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-20-8.49.33-982x1024.png)
Sine
ノードの出力をLerp
ノードのT
入力に接続します
Colorノードの設定
ShaderSampleの+
ボタンをクリックしてColor
プロパティを追加します。これをBase Color
と名前付けます
![](https://soft-rime.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-20-8.59.12-905x1024.png)
![](https://soft-rime.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-20-9.01.10-905x1024.png)
BaseColorはカラーピッカーでRGBA(1, 1, 1, 1)に設定します
![](https://soft-rime.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-20-9.24.03-894x1024.png)
Base Color
ノードを作成します
![](https://soft-rime.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-20-9.03.21.png)
Lerp
ノードのA
入力に接続します
![](https://soft-rime.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-20-9.04.12-1024x603.png)
Lerp
ノードのB
入力に透明色
を設定します(例: RGBA(1, 1, 1, 0))
- Colorノードを作成します (Input > Basic > Color)
- カラーピッカーでRGBA(1, 1, 1, 0)に設定します
![](https://soft-rime.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-20-9.06.22.png)
![](https://soft-rime.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-20-9.06.55-760x1024.png)
![](https://soft-rime.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-20-9.10.29-1024x534.png)
Fragmentノードの設定
Lerp
ノードの出力をFragment
ノードのBaseColor(3)
入力に接続します
手順3: マテリアルの適用
- マテリアルの作成:
- プロジェクトビューで右クリックし、
Create
>Material
を選択します。 - 新しいマテリアルを作成し、Shader Graphで作成した
BlinkShader
を適用します。
- プロジェクトビューで右クリックし、
- スプライトにマテリアルを適用:
- 点滅させたいスプライトに、新しく作成したマテリアルを適用します。
![](https://soft-rime.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-20-9.33.55-1024x720.png)
シェーダーをShaderGraphで作成したSampleGraphに設定します
![](https://soft-rime.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-20-9.35.17-1024x720.png)
完成
これで、時間経過に応じてスプライトが点滅するシェーダーが完成です。シェーダーのプロパティを調整することで、点滅の速度や色をカスタマイズすることができます。
この手順に従うことで、Unityの最新バージョンに対応したShader Graphを使用してスプライトを点滅させるシェーダーを作成できます。疑問があれば、いつでも質問してください。
ディスカッション
コメント一覧
まだ、コメントがありません