From a7eab8b599bc8f93081de100bcc080b6751d7ecf Mon Sep 17 00:00:00 2001 From: metamuffin Date: Fri, 6 Jun 2025 19:11:48 +0200 Subject: smoother camera when autozoom spectator --- client/player/follow_camera.gd | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'client/player') diff --git a/client/player/follow_camera.gd b/client/player/follow_camera.gd index f7a00c64..447540f3 100644 --- a/client/player/follow_camera.gd +++ b/client/player/follow_camera.gd @@ -27,6 +27,7 @@ const ANGLE_UP_MIN: float = 0.5 const ANGLE_UP_MAX: float = 0.4999 * PI const LOOK_WEIGHT: float = 8.0 const MOVE_WEIGHT: float = 2.0 +const ZOOM_WEIGHT_AUTO: float = 0.5 const ZOOM_SPEED: float = 1.0 const DISCRETE_DURATION: float = 0.3 const ZOOM_WEIGHT: float = 10.0 @@ -36,6 +37,7 @@ const ZOOM_CURRENT_TO_MAX_RATIO: float = 1.35 @export var target: Node3D +var autozoom: bool = false var angle_target: float = 0 var angle: float = 0 var angle_up_target: float = 1 @@ -113,7 +115,7 @@ func follow(delta): camera_distance_target *= exp(zoom_dist * ZOOM_SPEED) camera_distance_target = clamp(camera_distance_target, MIN_ZOOM, MAX_ZOOM) - camera_distance = G.interpolate(camera_distance, camera_distance_target, delta * ZOOM_WEIGHT) + camera_distance = G.interpolate(camera_distance, camera_distance_target, delta * (ZOOM_WEIGHT_AUTO if autozoom else ZOOM_WEIGHT)) position = ground + offset if target.get_parent() is ControllablePlayer: -- cgit v1.2.3-70-g09d2