はじめに
ゲームを作るうえで、キャラクターや敵、背景などの画像を画面に表示する必要があります。Sprite2D(スプライト)はそうした2D画像を扱うための、Godotの基本的なノードです。
Sprite2Dとは?
Sprite2Dは、2D画像をシーンに配置して表示するためのノードです。CanvasItem を継承した Node2D 系のノードで、画像ファイル(PNG、JPGなど)を読み込んで画面に描画します。
たとえると、紙にプリントされた絵をゲーム画面という額縁に貼り付けるようなものです。その絵の位置や大きさ、回転などを自由に変えることができます。
Sprite2D は CanvasItem → Node2D を継承しており、2次元空間での位置・回転・スケール操作をすべてサポートしています。
このノードを使うべき場面
- キャラクターや敵のビジュアルを表示したいとき
- 背景や環境オブジェクト(木、岩など)を配置するとき
- アイテムやアイコンを画面に描画するとき
- 2Dゲームのメインビジュアル表現に
- UI以外の、ゲーム世界に存在するオブジェクトを表示するとき
使わない・別のノードが適切な場合:
- ボタンやメニューなどのUI要素 → TextureButton、Control系ノードを使う
- 複雑なアニメーション制御が必要 → AnimatedSprite2D を使う
- 複数のスプライトを効率的に描画 → TileMap を使う
主なプロパティと機能
Sprite2Dの代表的なプロパティとメソッドを以下にまとめました。
| プロパティ/メソッド | 役割 | 型 |
|---|---|---|
texture |
表示する画像ファイルを指定 | Texture2D |
position |
画面上での位置(X, Y座標) | Vector2 |
scale |
画像の拡大・縮小率 | Vector2 |
rotation |
画像の回転角度(ラジアン) | float |
modulate |
色合い・透明度の調整 | Color |
centered |
画像の中心点を中央に設定するか左上にするか | bool |
flip_h / flip_v |
画像を水平・垂直に反転 | bool |
get_rect() |
スプライトの矩形領域を取得 | Rect2 |
以下は、Sprite2Dの基本的な使い方のコード例です。
extends Node2D
func _ready() -> void:
# スプライトノードを取得
var sprite = $Sprite2D
# 画像をリソースから読み込む
sprite.texture = load("res://assets/player.png")
# 位置を設定
sprite.position = Vector2(100, 200)
# 2倍の大きさに拡大
sprite.scale = Vector2(2.0, 2.0)
# 透明度を50%にする
sprite.modulate = Color(1.0, 1.0, 1.0, 0.5)
もっと使いこなす:カスタマイズできるパラメータ
まずは基本を動かしてみてから、余裕が出たら試してみてください。
1. centered プロパティ — 原点の位置を変える
centered を true にすると、スプライトの中心が position の座標になります。false のままだと、左上が原点になり、回転やスケール変更の挙動が変わります。
var sprite = $Sprite2D
# 中心を中央に設定(回転時に便利)
sprite.centered = true
# 回転させるとき、中心を基準に回転する
sprite.rotation = PI / 4 # 45度回転
2. offset プロパティ — 描画位置をずらす
position を変えずに、スプライト内での描画オフセットを調整したいときに使います。キャラクターのアニメーション時に、フレームごとに若干のずれを補正するのに便利です。
sprite.offset = Vector2(10, -5) # X軸に10、Y軸に-5ずれた位置から描画
3. modulate プロパティ — 色と透明度を操る
RGB値と透明度(Alpha)をまとめて制御します。ダメージ時に赤くする、フェードイン・アウト効果、ゴースト表現など、ビジュアル効果に活躍します。
# 赤くする
sprite.modulate = Color.RED
# 半透明
sprite.modulate = Color(1.0, 1.0, 1.0, 0.5)
# ホワイトアウト(まぶしい効果)
sprite.modulate = Color.WHITE
# カスタムカラー
sprite.modulate = Color(1.0, 0.5, 0.2, 1.0) # オレンジ色、完全不透明
4. self_modulate — 子ノードの色に影響しない調整
通常の modulate は子ノード全体に影響しますが、self_modulate はこのスプライト自身の色だけを変えます。子ノードを持つ複雑なキャラクター表現で活躍します。
5. flip_h / flip_v — 画像を反転させる
キャラクターが左右を向きなおすときなど、画像全体を反転表示します。新しい画像を用意するより、こちらの方が効率的です。
# 左を向いている
sprite.flip_h = false
# 右を向くとき、画像を左右反転
sprite.flip_h = true
6. region_enabled と region_rect — テクスチャのトリミング
大きな画像から一部だけを切り出して表示します。スプライトシート(複数のキャラが1枚の画像に詰め込まれたもの)を扱うのに最適です。
sprite.region_enabled = true
# 画像の (0, 0) から幅64、高さ64のエリアだけを表示
sprite.region_rect = Rect2(0, 0, 64, 64)
まとめ
Sprite2D は、2Dゲームの画像表示を担う最も基本的なノードです。
- キャラクター、敵、背景、アイテムなど、ゲーム世界のビジュアルはほぼこれで表現できます
- position、scale、rotation、modulate など、変更頻度が高いプロパティから優先して学びましょう
- texture を切り替えたり、色・透明度をアニメーションさせることで、豊かな表現が可能になります
次の記事では、複数フレームの画像を順番に再生して動きを付ける AnimatedSprite2D を解説します。
シリーズ:Godot 4 ノード解説
- 001 Godot入門:Node
- 002 Godot入門:Node2D
- 003 Godot入門:Sprite2D
- 004 Godot入門:AnimatedSprite2D(準備中)
- 005 Godot入門:CharacterBody2D(準備中)
- 006 Godot入門:CollisionShape2D(準備中)
- 007 Godot入門:Control(準備中)
この記事はGodot 4.xをもとに執筆しています。



コメント