最終確認日
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 表現においては、ビジュアルの差別化やヒットエフェクトなどに非常に重宝します。
公開日
更新日