Camera2D チュートリアル


Camera2Dは、2Dゲームのシーンにおいてプレイヤーや特定のオブジェクトを追従するカメラを実装するために使用されます。このチュートリアルでは、Camera2Dの基本的な使い方や設定方法について解説します。





1. Camera2Dをシーンに追加する

新しいシーンを作成:
  • Node2Dをシーンのルートとして設定します。
Camera2Dを追加:
  • Node2Dの子ノードとしてCamera2Dを追加します。



2. カメラの追従設定

プレイヤーにカメラを追従させるには、以下の手順を行います。
プレイヤーをシーンに追加:
  • Node2DSprite2D(プレイヤー用)を追加し、テクスチャを設定します。
  • プレイヤーに名前をつけます(例: 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ラジアンに設定すると、カメラがわずかに傾きます。



. 完成コード例

以下は、プレイヤーに追従するカメラを実装したシンプルな例です。
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


質問があればいつでもどうぞ!
最終更新日: 2024/11/28 03:12

コメント