ぼかしのシェーダーを作ってみよう
- game_sceneタブのSprite2Dを選択してください。
- インスペクター画面のCanvasItem>Material>empty>New ShaderMaterialより新しいシェーダーマテリアルを作ってください。
- 再度選択して展開し、新しいシェーダーを作ります。
- ぼかしなので、名前をblur.gdshaderに変更して作成しましょう。
- blur.gdshaderをクリックするとパネルがシェーダーコードを記入する画面になります。シェーダーはスクリプトで作成する必要があります。
- 以下のコードをコピーして丸ごと上書きしてください。
shader_type canvas_item;
uniform float blur_radius : hint_range(0.0, 10.0); // blur strength
void fragment() {
vec2 size = vec2(textureSize(TEXTURE, 0));
vec2 uv = UV;
vec4 sum = vec4(0.0);
int blur_size = int(blur_radius);
for (int x = -blur_size; x <= blur_size; x++) {
for (int y = -blur_size; y <= blur_size; y++) {
vec2 offset = vec2(float(x), float(y)) / size;
sum += texture(TEXTURE, uv + offset);
}
}
float samples = pow(float(blur_size * 2 + 1), 2.0);
COLOR = sum / samples;
}
- MaterialのShader ParametersにBlur Radiusという新しい項目がでているので動かしてみましょう、遠景にぼかしが入るはずです。
スクリプトなんて書けないよという人へ
GodotのシェーダーはGDSLという独自言語で作成されており、スクリプトが必須です。
しかし、たくさんの先人たちが既に沢山のシェーダーを作成してくれています。以下のサイトやウェブ等を検索してみれば自分の作りたいシェーダーが見つかるかもしれません。
アニメーションプレイヤーとの連携
このシェーダーパラメータもアニメーションのキーとして利用することができます。そのためシェーダーを使ったアニメーションを非常に簡単に実装できますので、ワープや戦闘突入演出等様々なシーンで活用できます。
表現強化コースは以上です。
他のコースの受講はこちら
1. グラフィックコース
自分が描いたキャラクターを動かしたい!という人向けのコースです。
2. スクリプトコース
デフォルトキャラでいいからいろんな動きやシステムを作りたい!という人向けのコースです。