ACTION GAME MAKERでは専用のカメラノード ZoomCamera2Dを使って様々な設定をすることができます。
オブジェクトの追従方法
ZoomCamera2Dは、自身で設定したtarget_idと同じ名称のtarget_idを持つオブジェクトを追従します。
- CameraTargetSettingsノードを追従させたいオブジェクトの子として追加します。
- CameraTargetSettingsノードのtarget_idに任意の名称を指定します。
- ZoomCamera2Dノードで追従したいtarget_idの名称を指定します。
複数のターゲットの追従
ターゲットIDで複数のターゲットを指定した場合(同じ名称のターゲットIDを持つオブジェクトが複数ある場合や、ターゲットIDを複数指定した場合)
全てのターゲットを画面内に収めるようにカメラは移動します。
この際、ズームを有効化オプションが有効であれば、その指定の範囲内で自動で拡縮を行います。
CameraTargetSettingsの設定内容
- ターゲットID: 任意の文字列で指定できます。
- 有効設定: 無効にすると、カメラから追従されなくなります。
- サイズ: 複数のターゲットを設定した際の際見切れを防止する設定です、原点から指定のサイズの範囲内が必ずカメラ内に収まるように移動します。
これらのプロパティはプロパティを変更アクションで変更可能です。
なお、カメラはオブジェクト本体ではなく「CameraTargetSettingsの座標」を追従します。そのため、CameraTargetSettingsをずらすと追従座標もずれます。この際、左右にずらしてしまうと反転時にカメラも動いてしまうのでご注意ください。
カメラの移動範囲の制限
Cameraの移動範囲はZoomCamera2DのCamera2D>Limitプロパティで設定することができます。
シーンの原点から、指定の値までの範囲をカメラが移動できるようになります。
例えば、Top/Bottomの値を0とすると、左右には移動できるが、上下には移動できないカメラになります。
ヴィジュアルスクリプトのカメラの範囲外(Offscreen)等を合わせれば、落下してカメラの外に出るとゲームオーバー、といった設定が可能です。
複数のカメラの切り替え
InitialCameraに加えて新しくZoomCamera2Dノードを追加することで、同一シーン内に複数のカメラを用意することができますが、ヴィジュアルスクリプトで利用するためには事前設定が必要です。
- GameSceneノードを選択してください。
- インスペクター画面のCameraListを展開してください。
- +要素を追加でカメラ枠を追加できますので、割り当てボタンを押して追加したZoomCamera2Dノードを指定してください。
- ヴィジュアルスクリプトのカメラを変更アクションでカメラを切り替えることができるようになります。