ゲーム開発

Godotでシェーダーを使ってみる

shaderは今までちゃんと使ってこなかったけど、もう少しビジュアルをよくしないといけないと思って、導入してみた。

set方法

GodotエディタのInspectorで、
CanvasItem > Material > Material > New Shader Material
Materialがセットされたら、Shader > New Shader
で、shaderファイルが作成される。デフォルトではsceneと同じディレクトリになるけど、個人的にはshader専用ディレクトリを用意したほうが管理しやすい。

ファイル作成したら、下のパネルのShader Editorでshaderのコードを書いていく。

shaderのコード

shaderのコードはよくわからないし、理解する気もない。Godot Shadersのサイトからコードは持ってこれる。

https://godotshaders.com/

コードに shader_type spatial; の記述があるものは3D用、 shader_type canvas_item; の記述があるものは2D用。

コードを書かなくても、以下のサイトで、生成できるっぽい。使ったことはないので、詳細は不明。
https://www.shadertoy.com/

2D用のshaderの使い方

Sprite2D、TextureRect、ColorRectあたりにセットする感じ?

セットするだけで動くものもあれば、追加でimageファイルを追加しないといけないのもある。その辺りは、各shaderのページに説明がある場合がある。なければ、パラメータを適当にいじってみるしかない。

ほとんどのShaderは、Nodeの種類によっては効果が薄かったりする。たとえば以下のbalatro shaderは、TextureRectにセットしても、ほとんど変化がない。ColorRectにセットすると、効果が出る。

https://godotshaders.com/shader/balatro-background-shader/

実際に使ってみて

制作中ゲーム Greedy Darts の背景にセットしてみた。

導入前

Screenshot

導入後

パッと見、違いに気づかず自己満足かもしれない。でもこういう積み重ねがゲームのクオリティ向上に繋がると思って、今後もちょいちょい使っていこうと思っている。


現在制作中のゲーム Greedy Darts
https://store.steampowered.com/app/3212590/Greedy_Darts

前作 Drop麻雀牌
https://store.steampowered.com/app/2809920/Drop/?l=japanese