extends Spatial onready var camera = get_node("Camera") const DISTANCE_MOD = 0.2 const FOV_MOD = 0.2 var _look_at_vec = Vector3(0, 0, -1) var _x_axis = Vector3(1, 0, 0) func _ready(): var cam_rot = camera.rotation_degrees _look_at_vec = _look_at_vec.rotated(Vector3(0, 1, 0), cam_rot.y * PI/180) _x_axis = _x_axis.rotated(Vector3(0, 1, 0), cam_rot.y * PI/180) _look_at_vec = _look_at_vec.rotated(_x_axis, cam_rot.x * PI/180) func _process(delta: float) -> void: var player1 = get_parent().get_child(3) var player2 = get_parent().get_child(4) if not player1 and player2: return var center = player2.transform.origin + (player1.transform.origin - player2.transform.origin) / 2.0 var distance = (player1.transform.origin - player2.transform.origin).length() camera.fov = distance * FOV_MOD + 60.0 transform.origin = center - _look_at_vec * distance * DISTANCE_MOD