ACTION GAME MAKER では、専用のカメラノード ZoomCamera2D を使用して、さまざまなカメラ動作を設定できます。
オブジェクトの追従
\u003e ZoomCamera2D は、カメラ設定で指定された target_id と一致する target_id を持つオブジェクトを追従します。
- カメラに追従させたいオブジェクトの子ノードとして CameraTargetSettings ノードを追加します。
- CameraTargetSettings ノードの target_id に任意の文字列を設定します。
- ZoomCamera2D ノードで、カメラに追従させたい同じ target_id を指定します。
複数のターゲットの追従
複数のターゲットが指定されている場合(複数のオブジェクトが同じ target_id を持つ、または複数の target_id が割り当てられている場合):
- カメラは自動的に移動し、すべてのターゲットを画面内に表示するように調整されます。
- 自動ズームが有効になっている場合、カメラは定義された範囲内でズームレベルを自動的に調整し、すべてのターゲットが表示されたままになるようにします。
CameraTargetSettings の設定
- Target ID: カメラの追従ターゲットと一致させるために使用するカスタマイズ可能な文字列。
- Enable: このオプションを無効にすると、カメラはこのターゲットを追従しなくなります。
- Size: オブジェクトの原点からの周囲の領域を定義し、カメラが常にその領域を含めるようにします。これにより、複数のターゲットが存在する場合でも、ターゲットが切り取られるのを防ぎます。
これらのプロパティはすべて、Change Object Property アクションを使用して動的に変更できます。
\u003e
カメラは、メインの GameObject 自体ではなく、CameraTargetSettings の位置を追従することに注意してください。したがって、CameraTargetSettings の位置を変更すると、追従ターゲットの位置もそれに応じて移動します。
ただし、横方向(左または右)にオフセットする場合は注意してください。キャラクターの向きが変わった際にカメラが移動してしまうためです。
カメラ移動の制限
カメラの移動は、ZoomCamera2D \u003e Camera2D の Limit プロパティを使用して制限できます。
- リミットは、カメラが移動できるシーン原点からの範囲を定義します。
- 例えば、Top/Bottom = 0 に設定すると、垂直方向の移動はロックされ、水平方向の移動のみが可能になります。
これをビジュアルスクリプトの Offscreen 条件と組み合わせることで、「プレイヤーが画面外に落ちるとゲームオーバーになる」といったメカニクスを作成できます。
複数のカメラ間の切り替え
InitialCamera に加えて、同じシーン内に複数の ZoomCamera2D ノードを追加できます。
ただし、これらの追加カメラを Visual Script で使用するには、いくつかの設定が必要です。
手順:
- GameScene ノードを選択します。
- Inspector パネルで
CameraListプロパティを展開します。 - + Add Element ボタンをクリックして、新しいカメラスロットを追加します。
- Assign ボタンをクリックし、登録したい
ZoomCamera2Dノードを選択します。
登録が完了すると、ビジュアルスクリプトの “Change Camera” アクションを使用して、ゲームプレイ中にカメラを切り替えることができます。
