Godotの.gdshaderファイルについて調査する
作成日
更新日
#ChatGPTより引用
概要
.gdshader
は、Godot における 2D / 3D 描画を制御する シェーダースクリプトファイル。Godot 独自の高水準シェーディング言語で記述されており、画面上のピクセルや頂点の見た目(色、明るさ、形状)を制御するために使用される。
使用される言語
Godot Shading Language(GDSL)
- GLSL(OpenGL Shading Language)風の構文だが、Godot 独自に簡略化・統合された記法
shader_type
,uniform
,void fragment()
,void vertex()
などの構文が使える- サポートされる型:
vec2
,vec3
,vec4
,sampler2D
,mat4
,bool
,int
,float
など - 型は静的に記述する必要がある(var不可)
- GDScriptとは全く異なるので注意
主な構造
2Dシェーダーの例
shader_type canvas_item;
uniform float intensity : hint_range(0.0, 1.0);
void fragment() {
vec4 tex_color = texture(TEXTURE, UV);
COLOR = mix(tex_color, vec4(1.0, 1.0, 1.0, tex_color.a), intensity);
}
セクション | 説明 |
---|---|
shader_type |
シェーダーの適用対象を指定。例:canvas_item (2D)・spatial (3D)・particles (パーティクル) |
uniform |
外部(GDScriptやエディタ)から制御可能な変数。素材や値の調整が可能 |
fragment() |
テクスチャの各ピクセルに対して色などを指定する |
vertex() |
頂点情報を操作(3D用途で主に使用) |
.gdshaderの特徴
項目 | 内容 |
---|---|
拡張子 | .gdshader (Godot 4以前は .shader ) |
読み込み方法 | ShaderMaterial → Shader を作成 → .gdshader をアタッチ |
編集 | Godot 内蔵の Shader Editor または外部テキストエディタで編集可能 |
デバッグ | シェーダーエラーはコンソールに表示されるが、実行時トレースは難しい |
使用例
- Sprite ノードに ShaderMaterial をアタッチ
- ShaderMaterial に
.gdshader
を割り当て - GDScript から
set_shader_parameter("param", value)
で操作
関連概念
ShaderMaterial
: Shader を使うための Godot の Material ノード。.gdshader
を割り当てて使う。uniform
: GDScript から値を操作できる変数hint_range
: スライダー等 UI で調整可能にする
コメント
Godot の .gdshader
ファイルは、GLSL よりも親しみやすく、簡易な構文が特徴です。UI 組み込みも比較的簡単で、GDScript から値を tween することで柔らかい演出も可能になります。特に 2D 表現においては、ビジュアルの差別化やヒットエフェクトなどに非常に重宝します。

公開日
更新日