Camera2D チュートリアル
Camera2Dは、2Dゲームのシーンにおいてプレイヤーや特定のオブジェクトを追従するカメラを実装するために使用されます。このチュートリアルでは、Camera2Dの基本的な使い方や設定方法について解説します。
1. Camera2Dをシーンに追加する
新しいシーンを作成:
Node2D
をシーンのルートとして設定します。
Camera2Dを追加:
Node2D
の子ノードとしてCamera2D
を追加します。
2. カメラの追従設定
プレイヤーにカメラを追従させるには、以下の手順を行います。
プレイヤーをシーンに追加:
Node2D
にSprite2D
(プレイヤー用)を追加し、テクスチャを設定します。
- プレイヤーに名前をつけます(例:
Player
)。
Camera2Dをプレイヤーの子ノードにする:
Camera2D
をドラッグしてPlayer
の子ノードにします。
3. カメラの設定
Camera2Dには、さまざまな設定オプションがあります。
オフセット (Offset):
- カメラが追従するオブジェクトからの位置を調整します。
- 例:
Offset
を(100, 50)に設定すると、カメラの視点が右に100ピクセル、下に50ピクセルずれます。
リミット (Limit):
- カメラの移動範囲を制限します。
- プロパティの
Limit
に値を設定して、シーンの端を越えないようにします。
スムージング (Smoothing):
カメラの動きを滑らかにします。
Position Smoothing
を有効にし、Speed
を調整します。
- 高速で移動するオブジェクトを追従するときに便利です。
4. ズームと回転
ズーム:
Zoom
プロパティを調整してカメラのズームを変更します。例:
Zoom
を(0.5, 0.5)にすると、シーンが2倍に拡大されます。回転:
Rotation
プロパティでカメラを回転できます。例:
Rotation
を0.1ラジアンに設定すると、カメラがわずかに傾きます。
5. 完成コード例
以下は、プレイヤーに追従するカメラを実装したシンプルな例です。
Player.gd
extends Sprite2D
@export var move_speed = 200
func _process(delta): var velocity = Vector2.ZERO if Input.is_action_pressed("up"): velocity.y -= 1 if Input.is_action_pressed("down"): velocity.y += 1 if Input.is_action_pressed("left"): velocity.x -= 1 if Input.is_action_pressed("right"): velocity.x += 1 position += velocity.normalized() * move_speed * delta
質問があればいつでもどうぞ!