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 または外部テキストエディタで編集可能
デバッグ シェーダーエラーはコンソールに表示されるが、実行時トレースは難しい

使用例

  1. Sprite ノードに ShaderMaterial をアタッチ
  2. ShaderMaterial に .gdshader を割り当て
  3. GDScript から set_shader_parameter("param", value) で操作

関連概念

  • ShaderMaterial: Shader を使うための Godot の Material ノード。.gdshader を割り当てて使う。
  • uniform: GDScript から値を操作できる変数
  • hint_range: スライダー等 UI で調整可能にする

コメント

Godot.gdshader ファイルは、GLSL よりも親しみやすく、簡易な構文が特徴です。UI 組み込みも比較的簡単で、GDScript から値を tween することで柔らかい演出も可能になります。特に 2D 表現においては、ビジュアルの差別化やヒットエフェクトなどに非常に重宝します。

サイトアイコン
公開日
更新日