feat(lobby): 로비 카메라를 플레이어 추종(follow)으로 — 전투맵은 고정 유지

로비 루트에서 script.MapCamera 제거(고정 framing 억제 해제) + LobbyMobility가 진입 시
ConfineCameraArea=false·ScreenOffset(0.5,0.5)·Zoom 90으로 플레이어 추종 카메라 설정.
MSW 카메라는 기본 follow이고 ConfineCameraArea=true가 그걸 억제하므로 false가 핵심.
검증: 로비 우측 이동 시 플레이어 중앙 유지+배경 스크롤, 런 시작→map01 Confine=true 고정, 복귀→follow 복원(누설 없음).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-15 08:05:22 +09:00
parent 1fce0b284a
commit 9cb5e1abff
4 changed files with 19 additions and 13 deletions

View File

@@ -12,6 +12,9 @@ const WALK_ACCEL = 0.7;
const WALK_SPEED = 1.4;
const JUMP_FORCE = 1.23;
const PROX = 1.2; // 근접 임계(맵 NPC 간격 2.5와 분리)
// 로비 카메라는 전투맵의 고정 framing(ConfineCameraArea=true)과 달리 플레이어를 추종(follow).
// MSW 카메라는 기본이 follow이고 ConfineCameraArea=true가 그걸 억제하므로, false로 풀고 ScreenOffset을 중앙에 둔다.
const LOBBY_ZOOM = 90; // 전투맵과 동일 줌(전환 시 위화감 최소). 플레이테스트로 조정 가능.
function prop(Type, Name, DefaultValue = 'nil') {
return { Type, DefaultValue, SyncDirection: 0, Attributes: [], Name };
@@ -91,6 +94,14 @@ local function apply()
mv.InputSpeed = ${WALK_SPEED}
mv.JumpForce = ${JUMP_FORCE}
end
local cam = lp.CameraComponent
if cam == nil then cam = _CameraService:GetCurrentCameraComponent() end
if cam ~= nil then
cam.ZoomRatio = ${LOBBY_ZOOM}
cam.ConfineCameraArea = false
cam.ScreenOffset = Vector2(0.5, 0.5)
cam.CameraOffset = Vector2(0, 0)
end
_TimerService:ClearTimer(eventId)
elseif self.Tries > 50 then
_TimerService:ClearTimer(eventId)