2Dゲームを作っていて、「敵を倒したときに一瞬だけ白く光らせたい」「水面をゆらゆら流したい」「敵をじわっと溶けるように消したい」——そんな表現を作ろうとして、modulate やアニメーションだけでは手が届かず悩んだことはないでしょうか。
こうした「ピクセル単位のこだわった見た目」を実現するのが シェーダー (Shader) です。シェーダーは GPU(グラフィックス処理ユニット)の上で動く小さなプログラム で、画面に映る1ピクセル1ピクセルの色を、あなたのコードで直接決められます。この記事では、その中でも色を担当する Fragment Shader(フラグメントシェーダー) に絞って、「最初の一歩」を踏み出せるところまで解説します。
この記事でわかること
- シェーダーとは何か ——なぜGPUだと重い見た目でも軽く動くのか
- Godotシェーダーの 基本構造(
shader_typeとvertex/fragment/light)fragment関数でCOLOR・UV・TEXTUREを使い、色を操作するUVとTIMEで作る 動的エフェクト(円形マスク・スクロール・ディゾルブ)if文を避けるなど、 パフォーマンスの勘どころ
目次
Sponsored
シェーダーとは? CPUとGPUの絵の描き方の違い
シェーダーを理解する第一歩は、 「絵を描いているのは誰か」 を知ることです。ゲームの画面は、毎フレーム何十万個ものピクセルに色を塗って作られています。この塗り作業を担当するのが GPU です。
普段GDScriptで書くゲームのロジック(移動・当たり判定・スコア計算など)は CPU が処理します。CPUは1つの仕事を順番にこなすのが得意です。一方GPUは、 たくさんの単純な作業を一斉に片付ける のが得意——だからこそ、何十万ピクセルもの塗り作業を一瞬で終わらせられます。
