shaderは今までちゃんと使ってこなかったけど、もう少しビジュアルをよくしないといけないと思って、導入してみた。
set方法
GodotエディタのInspectorで、
CanvasItem > Material > Material > New Shader Material
Materialがセットされたら、Shader > New Shader
で、shaderファイルが作成される。デフォルトではsceneと同じディレクトリになるけど、個人的にはshader専用ディレクトリを用意したほうが管理しやすい。
ファイル作成したら、下のパネルのShader Editorでshaderのコードを書いていく。
shaderのコード
shaderのコードはよくわからないし、理解する気もない。Godot Shadersのサイトからコードは持ってこれる。
コードに 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にセットすると、効果が出る。
実際に使ってみて
制作中ゲーム Greedy Darts の背景にセットしてみた。
導入前

導入後
パッと見、違いに気づかず自己満足かもしれない。でもこういう積み重ねがゲームのクオリティ向上に繋がると思って、今後もちょいちょい使っていこうと思っている。
現在制作中のゲーム Greedy Darts
https://store.steampowered.com/app/3212590/Greedy_Darts
前作 Drop麻雀牌
https://store.steampowered.com/app/2809920/Drop/?l=japanese