Commit Graph

1296 Commits

Author SHA1 Message Date
깃 관리자 bd862b70d7 Merge branch 'wl/gameplay/WL-816w-island-fixes' 2026-09-15 15:01:14 +09:00
깃 관리자 91fbe5ba9f [WL-816w] 이동 깜빡임 실측 · 섬 울타리 제거 · 밭 자리 흙 (#816)
① 깜빡임: PD 경로(InGame+Level01 Additive)에서 걸으며 프레임별 실측 — 재현 0
   (화면차 중앙값 2.61 · 중앙값×3 초과 0/119 · 렌더러 증감 0/89 · dt 16.7ms 일정).
   viewCull ON/OFF 대조도 1154~1155 · 튐 0 → 값 변경 없음.
② 울타리: IslandManager/Island (0)/Fence01·(1)·(2) = FI 섬 타일 장식(Farm 자식 아님).
   hideIslandFences 로 렌더러만 끈다(원본 0줄 · 확장 타일도 Co_ReHide 에서).
③ 밭 자리 흙: showFarmSoil 로 Soil 렌더러는 남기고(콜라이더는 계속 off)
   soilTargetColor 를 화면 실측으로 재수렴 (164,168,138) vs 데모 흙 (164,168,139).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 14:59:53 +09:00
깃 관리자 86aeccb952 [WL] PD 에셋 임포트 — Low Poly Fantasy Forest (Assets/FantasyForest · 537 파일 · 137 MB · 컴파일 error 0) (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 14:57:36 +09:00
깃 관리자 2ede177aa9 [WL-816p] 사거리 원 노출 유예 3→2 s (graceSeconds · PD 2026-09-15 · #816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 14:47:37 +09:00
깃 관리자 b3a4819226 [WL-816q] 가시 범위 풀 재선정 끔(viewCullEnabled 1→0) — PD 「이동 시 화면 깜빡임」 1차 조치 · 4타일 섬은 컬링 이득 0 (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 14:40:13 +09:00
깃 관리자 4e909a5381 Merge branch 'wl/gameplay/WL-816v-slash-hit1' 2026-09-15 13:55:00 +09:00
깃 관리자 37d231b26f [WL-816v] 1타 LookAtTarget 런타임 주입 (이슈 ① · Lead 결정 b) (#816)
실측: Attack1_S_10101 은 ShowEffect/Move/Projectile 3개뿐이고 LookAtTarget 이 없다.
Attack2/3_S_10101 만 LookAtTarget@0.0000s(int=0, str='') 를 갖는다 → 1타만 대상 방향으로
돌지 않은 채 나간다.

- Hit1LookAtTarget 신설(원본 훅 0 · FBX/meta 0줄) — RuntimeInitializeOnLoadMethod
  숨김 러너가 PC 등장·클래스 변경을 폴링하고, 같은 컨트롤러의 2·3타 클립에서
  LookAtTarget 이벤트를 템플릿으로 읽어(함수명·시간·파라미터 복사 · 코드 상수 0개 C45)
  1타 클립에 AddEvent 로 클래스당 1회 주입 + Animator.Rebind()
- SO 신설 WLCombatCoreSettings.hit1LookAtTarget(1) · hit1ClipNamePattern(Attack1_S_{CID})
  · hit1EventFunctionName(LookAtTarget) · hit1PollSeconds(0.5) — 0 이면 러너 자체가 안 뜬다
- 검증(에디트 모드 · 같은 Inject 코드 경로): 1타 이벤트 3→4개, LookAtTarget@0.0000s(int=0,
  str='') 로 2·3타와 동일. 2·3타 4개 무변경. transform.LookAt 정렬 각 오차 8방향
  37.00° → 0.00°. FBX/meta git status 0줄(에셋 무오염 실측) · 검증 뒤 재임포트로 원복

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 13:54:17 +09:00
깃 관리자 1d11d8470d Merge branch 'wl/systems/WL-816u-pad-and-retry' 2026-09-15 13:52:19 +09:00
깃 관리자 b0e601ca02 [WL-816u] 열림 발판 중앙·50 % + 던전 「다음」 = 재입장 + 액티브 스킬 OFF (#816)
① 발판 = 열림 구역(숨긴 밭 전부) XZ 정중앙 + 인스턴스 스케일 50 %
   - WLIslandSettings: platformScale 0.5 / platformCenterOnZone 1 / platformCenterVisibleOnly 1
   - 트리거는 스케일 역보정으로 월드 3.40 m 유지 · FI 프리팹 0줄
② 던전 결과창 왼쪽 버튼 = 같은 스테이지 재입장(StageDirector.Retry)
   - WLStageUiSettings: dungeonPrimaryRetry 1 / dungeonPrimaryText 「다시 도전」
   - 스테이지 모드(#815)는 Current==null 이라 한 줄도 지나가지 않음
③ 액티브 스킬 사용 OFF (PD 「우선 엑티브 스킬은 사용 Off 해줘」)
   - 새 파일 ActiveSkillLock.cs · WLCombatCoreSettings.activeSkillsEnabled 0
   - 자동 스킬 캐시(arr_magicData) 비움 + 패드 스킬 슬롯 0 · 기본 공격 불변

게이트 PASS(resident · errors[] · 콘솔 error 0) · ProjectSettings/Packages dirty 0
Assets/Script/** · Assets/FarmingIsland/** 0줄

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 13:49:33 +09:00
깃 관리자 316b304439 Merge branch 'wl/gameplay/WL-816v-slash-hit1' 2026-09-15 13:43:26 +09:00
깃 관리자 4d7fae1e6f [WL-816v] 검기 1타 정합 — 감아올리기 트림 (#816)
원인(실측): Attack1_S_* 클립은 ShowEffect 직후 4~5 프레임만 실제 타격 호이고
그 뒤 칼끝이 한 바퀴 넘게 감긴다. 속도 트림(정지 꼬리만 자름)은 그 감김을
남겨 칼끝 원 피팅이 깨지고(편차비 0.27 > 임계 0.25) 손잡이 중심 폴백으로
떨어져 피벗이 머리 높이·몸 왼쪽으로 0.39 m 밀렸다. 12행 중 1타 4행만 폴백이었고
2·3타 8행은 전부 칼끝원(편차비 0.14/0.17)이라 정상이었다.

- SlashArcMeasure.TrimWindupWrap 신설 — 편차비가 기준 이하가 되는 가장 긴 창 선택
- WeaponTrailDriver.MeasureSwingCalibration · WL816t_Bake 양쪽에서 같은 헬퍼 사용
- SO 신설 arcTrimWindupWrap(true) · arcFitMaxDeviation(0.25 · 기존 하드코딩 이관 C45)
- 캘리브레이션 1타 4행 재베이크 — 2·3타 8행은 수치 무변경(Δ 0.000 m · 0.0°)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 13:41:59 +09:00
깃 관리자 fad1270c48 Merge branch 'wl/gameplay/WL-816r-dirt-look' 2026-09-15 09:51:56 +09:00
깃 관리자 75f1333583 [WL-816r] 풀 없는 지형(길·밭·흙띠) = 데모 흙 톤 (#816)
- 데모 실측: 흙 = 툰 단색(고유색 21 · 에지 1.11% · 질감/노이즈 0) · 화면색 #A4A88B vs 풀 #97C284
- 섬 윗면 텍스처 모래/흙 사분면 #CCCBB5/#807057 → #AEC4AC/#88A086 (초록 #A0E4A2 바이트 무변경)
- 같은 프레임 띠/초록 비 = 1.0740,0.8479,1.0487 (데모 1.0861,0.8660,1.0530 · 채널당 ≤5)
- 길 Farm_Road01_ToonTex _DiffuseColor #DDC89D → #ADC3AB · 그림자비 = 데모 흙 비(0.3596,0.2741,0.2051)
- 밭 soilTargetEnabled/soilTargetColor 신설 — 칸 구분·마름/젖음 밝기비 보존한 채 목표 흙색으로 이동
- 되돌리기 = SO 참조 1개(islandTopMaterial/remap → Arena2) + soilTargetEnabled 0

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 09:49:32 +09:00
깃 관리자 26abaff65d Merge branch 'wl/systems/WL-816t-slash-fit' 2026-09-15 09:41:39 +09:00
깃 관리자 7212f2a713 [WL-816t] 8방향·3타 전/후 캡처 도구 (에디트 모드 렌더 · #816)
PlaceArc 와 같은 수식으로 실제 Effect_WLSwingArc 를 배치하고 ParticleSystem.Simulate 로 구워
카메라 RenderTexture 로 저장한다(Play 없음). 산출 = Screenshots_WL/WL816t_{before,after}_{8dir,combo}.png

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 09:40:09 +09:00
깃 관리자 f35dab8542 [WL-816t] 검기 크기 = 공격 범위 · 무기 위치 정합 (#816)
원인(실측): 검기 캘리브레이션 8행이 교체 전 캐릭터 Ai01(root scale 1 · 무기 원본 크기) 기준으로
구워져 있고, 런타임 캐릭터는 814n/814p 로 LH_M05(root scale 1.0527 = f_Scale 0.70 x heightComp 1.5038)
+ 무기 x0.54~0.66 로 바뀌었다. 로컬 프레임이 달라 호 중심이 0.36~0.88 m, 평면 법선이 6.9~61.0 deg
어긋난 채 고정돼 있었고, 이 오차 벡터가 캐릭터와 함께 돌아 화면에서는 가로 -0.50~+0.59 m /
세로 -0.46~+0.86 m 로 방향마다 다르게 보였다.

- WL816t_Bake: 런타임과 같은 PC(swap resolve) x 같은 스케일 x 같은 무기 보정(WLWeaponFitter.Fit)으로
  1/2/3 타 클립을 60 Hz 샘플 -> 런타임 ToLocalPos 규약(회전만)으로 12행 재베이크 (구 8행 대체)
- SlashTrailSettings: arcFitAttackRange / arcRangeScale 신설 (기본 off = 무동작 · C8 롤백)
- WeaponTrailDriver.PlaceArc: 스위치 on 이면 호 바깥 반지름 = 공격 범위
  (stoppingDistance 양수 최솟값 + AttackRange_Up + immediateAttackMargin · WLRangeRing 과 같은 SOT · 상수 0개)
- 8방향 x 3타 편차 0.525/0.361/0.864 m -> 0.000 m · 법선 61.0/20.5/23.5 deg -> 0.0 deg

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 09:37:12 +09:00
깃 관리자 ddf0e12655 [WL-816p] 사거리 원 = 채움 없이 얇은 테두리만(ringOnly 1 · ringWidth 0.06) (PD 2026-09-15 · #816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 09:22:25 +09:00
깃 관리자 32ec4ea192 Merge branch 'wl/gameplay/WL-816q-grass-demo-exact' 2026-09-15 08:39:51 +09:00
깃 관리자 dd5a47bab2 [WL-816q] 가시 범위 — 첫 배치 때 카메라가 없었으면 생긴 뒤 다시 고르게 (#816)
ViewMovedEnough 가 _viewOn=false 에서 곧장 false 를 돌려줘, 카메라가 씬보다 늦게 생기는 경우
가시 범위가 영영 안 켜지고 섬 전체에 인스턴스가 남았다(그림은 정상 · 최적화만 무효).
카메라가 생겼는데 아직 범위를 못 잡았으면 true 를 돌려 한 번 다시 고르게 한다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 08:38:58 +09:00
깃 관리자 c1eb8742d1 [WL-816q] 4·5회차 실측 — 구름 세기·밝기·구조적 색비 전부 기각, 데모 원값 유지 확정 (#816)
- 4회차(구조적 색비): 풀 그림자비를 바닥과 같은 0.3248/0.3416/0.3936 으로 맞추고 알베도만 찾으면
  구름 세기가 바뀌어도 안 깨질 것으로 봤으나 실측 최저가 k=1.15 에서 2.3%(S1.0)·4.3%(S1.8) 로
  현행 2점 일치(0.43%)보다 나빴다 → 기각. 풀(빌보드)의 램프 입력이 바닥과 상수만큼 다르다는 뜻.
- 5회차(세기 재수렴): 세기마다 k 를 0.90~1.30 에서 0.01 씩 다시 찾아 비교.
  S1.0 단계4 밝기180.2 보이는 풀 1.94% / S1.2 단계5 밝기172.6 3.52% / S1.4 단계5 4.89% / S1.6 단계6 3.94%.
  띠를 한 단 얻으면 풀이 1.8~2.5 배 더 드러난다 → **데모 원값 S1.0 유지**.
- 3회차(세기×밝기 16점): 어느 조합도 보이는 풀을 1.4% 아래로 못 내렸다(최악 73.8%). 기록만 남긴다.
- 스윕 스크립트는 끝에 원값 복구를 넣었다(2회차에 복제본이 씬에 남아 측정이 통째로 오염된 사고).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 08:36:54 +09:00
깃 관리자 cdb324a57d [WL-816q] 풀 높이 0.35→0.7(띠 가장자리 톱니 폭) · 가시 범위를 바닥 사다리꼴로 교정 (#816)
- 톱니 윤곽 폭 = 풀 높이 × cot(태양고도). scale 스윕 실측(같은 카메라·같은 구름 위상):
  0.35 에지% 1.05 / 0.50 1.20 / 0.70 1.39 / 0.90 1.43 (데모 참고 1.22) · 인스턴스·삼각형·드로우콜 불변.
  0.70 = 데모의 띠 가장자리 밀도(≈4개/m)와 같은 폭 → 채택.
- 가시 범위: 절두체 평면을 그대로 밀면 위쪽 평면이 바닥과 15° 라 8 m 가 바닥에서 31 m 로 벌어졌다
  (실측 618 → 3,731 ㎡). **바닥 사다리꼴을 2 차원으로** 미는 방식으로 교정 → 여유 4 m 에서 643 → 1,151 ㎡.
  viewMargin 8→4 · viewRebuildStep 2.5→1.5 · viewMaxDistance 40 · viewRebuildAngle 3 신설.
- 팝 0 실측: 보폭 1.5 m 이동 후 [다시 고르기 전] vs [고른 뒤] 화면 차이 **0 픽셀**.
  0/2/4 s 좌표 지문 동일(75934715234309) = 생성·소멸·이동 0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 08:31:20 +09:00
깃 관리자 7e0733307e [WL-816q] 범인 = 풀이 바닥보다 늘 어둡다 · 풀을 바닥과 같은 톤으로 맞춰 띠 복원 + 가시 범위 배치 (#816)
- 실측: 바닥만 렌더하면 띠세기LF 7.31 / 포기잡음HF 0.39 (매끈한 띠). 풀을 켜면 HF 4.22(10.8배)
  에지% 0.86 → 14.06(16.3배). 풀이 바닥 대비 0.943/0.900/0.882 배로 「항상 더 어두워」 띠를 덮었다.
- 수렴 실측: 풀 색 × (1.0737, 1.1189, 1.1365) 에서 보이는 풀 31.0% → 0.6%
  (구름 위상 3곳 전부 0.56~0.68%). 띠 안쪽에서 바닥과 같은 픽셀 = 데모와 같은 원리.
- _Cloud_Change 0.001→0.005 · _Cloud_Movement (0.2,0.2)→(1,1) = 데모 원값 복귀(풀·바닥 동일).
- 가시 범위 배치(816q §3): 월드 고정 격자는 그대로 두고 카메라 시야 사각형 + 여유 8 m 안만 남긴다.
  여유(8) > 재선정 보폭(2.5) 이라 늘고 주는 것은 화면 밖에서만 — 좌표는 불변(순간이동 0).
  되돌리기 = viewCullEnabled 0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 08:13:25 +09:00
깃 관리자 433540dcb9 [WL-816o] 구름 경계 배치 끔(cloudEdgeEnabled 0 = 816n 균일 배치로 복귀) — PD 「풀이 순간이동하는 것처럼 보임 · 데모 느낌 아님」 (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 07:45:24 +09:00
깃 관리자 323630badc Merge branch 'wl/gameplay/WL-816o-grass-cloud-edge' 2026-09-15 02:10:56 +09:00
깃 관리자 b23489def9 [WL-816o] 섬 풀밭 = 구름 경계 기준 최적화 배치 (#816)
PD 「데모와 같은 비주얼 · 잔디를 많이 심지 않는 최적화 로직(구름 그림자 기준 배치)」

- WLCloudShadow.cs(신규) — 데모 Toon 셰이더의 구름 그림자를 CPU 에서 같은 식으로 재현.
  CloudShadows/ToonLighting/ToonRamp 서브그래프 + CloudNoise.hlsl(6 옥타브 FBM) +
  SimplexNoise3D.hlsl(Ashima snoise) 1:1 이식. 값은 전부 머티리얼에서 읽는다(C45).
  노이즈는 성긴 격자(1 m)에서만 계산하고 판정 격자(0.3 m)는 겹선형 보간 → 굽기 2.2 ms.
- WLIslandGrass.cs — 후보를 캐시하고, 띠 밖 후보를 잘라 낸다. 구름이 흐르면
  RefreshCloudEdges() 로 「고르기」만 다시 한다(타일·제외 사각형 재수집 없음).
- WLIslandLookSettings.cs — §2 값 9개(되돌리기 스위치 cloudEdgeEnabled=0 → 816n 상태).
- WLIslandLook.cs — 기존 확장 감시 코루틴에 주기 갱신 1줄 추가.

실측(4타일 · PD 구도 12 m/45°/fov 60): 인스턴스 1,155 → 382(33.1%) ·
삼각형 10,380 → 3,435(33.1%) · 드로우콜 +2 유지 · 띠 면적 16.8%(데모 실측 15.7%).
원본(3DPixelArtEnvironment · FarmingIsland · Script · Packages · ProjectSettings) 0줄.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 02:09:26 +09:00
깃 관리자 3402dd7101 Merge branch 'wl/systems/WL-816p-range-ring' 2026-09-15 01:56:44 +09:00
깃 관리자 eed09cd18e [WL-816p] 플레이어 사거리 원 표시/소멸 (#816)
적(MobActor·보스)이 공격 사거리 안에 들어오면 플레이어 발밑에 반투명 흰색 원을 띄우고,
사거리 안에 적이 3초 이상 없으면 소멸시킨다(PD #816 원문).

- 반지름 = 게임이 실제 공격 판정에 쓰는 값. MyActor.cs:44/47/222 의 reach 식을 그대로 재현하고,
  런타임 NavMeshAgent.stoppingDistance(= PCActor.cs:381 m_ClassData.f_AttackRange) 의 양수 최솟값 +
  eStat.AttackRange_Up + WLTargetingSettings.immediateAttackMargin(0.2) 로 잡는다. 코드 상수 0(C45).
- 그리기 = 815f 예고 판과 같은 URP Unlit 반투명 + 런타임 생성 원판 메시(새 셰이더·에셋 0, 드로우콜 +1).
- 값 전부 SO: Assets/WL/Combat/Settings/Resources/WL/WLRangeRingSettings.asset
- 원본 Assets/Script/** 0줄 · 설치는 RuntimeInitializeOnLoadMethod(AfterSceneLoad) 1점.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 01:55:37 +09:00
깃 관리자 2fb0b8489e Merge branch 'wl/gameplay/WL-816n-ground-match-arena' 2026-09-15 01:38:55 +09:00
깃 관리자 6ff9df92a9 [WL-816n] 섬 풀밭 = 데모 배치 규칙(밀도 2.5) + 구름 그림자 5배 감속 (#816)
- 실측: 데모 바닥의 「등고선 띠」 = 구름 그림자 (고유색 99→59 · 색경계% 0.13→0.02 · _Cloud_Strength=0 격리 렌더)
- 실측: 데모 풀 배치 = 균일 격자(TerrainInstancesBehaviour · Density 2.5 · PositionVariance 0.5) — 경계 마스크 아님
- 실측: 데모 풀/바닥 밝기비 0.933 · 보이는 풀의 88%가 경계대(면적 15.7%)에 몰림 = 5.6배 집중
- 적용: scatter 밀도 1.8→2.5 · Farm_IslandTop_Arena/Farm_Grass_Arena 신규(구름 _Cloud_Change 0.005→0.001 · _Cloud_Movement (1,1)→(0.2,0.2)) · 풀색 x0.93

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 01:36:47 +09:00
깃 관리자 d32399fa0b [WL-816] 게임 시작마다 섬 세이브 초기화(resetSaveEveryStart 1) + 몬스터 공격 예고 바닥 판 off(decalEnabled 0) (PD 2026-09-15 · #816)
- WLIslandSave.Prepare: resetSaveEveryStart 면 실행 1회당 1번 세이브 삭제·던전 해금 0·보류 보상 0(던전→섬 복귀 시엔 아님). 되돌리기 = 0.
- WLTelegraphSettings.asset decalEnabled 1→0 (값만).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 01:18:59 +09:00
깃 관리자 546ea28b43 Merge branch 'wl/gameplay/WL-816k-demo-water' 2026-09-15 01:08:48 +09:00
깃 관리자 7fc9c10619 [WL-816k] 섬 바다 = 얕은 물 그라데이션 · 둘레 흰 띠 제거 (#816)
PD 2026-09-15: ① 흰 거품띠가 안개 같다 ② 물이 섬을 통과하는 느낌.

데모(Critter) 물 셰이더는 우리 카메라/URP 에서 **돌긴 한다**(복사본 Farm_Water_Demo.mat ·
깨짐 0 · queue 3000 · URP-Balanced 깊이·불투명 텍스처 둘 다 on 실측). 다만
ⓐ 무늬가 UV 기반이라 섬 물 평면(1000 m)이 데모 평면(10 m)의 100배 → 무늬가 사라지고
ⓑ 색 6안을 돌려도 814t 톤(#5C96C2)에 못 닿는다(최선 #2EBCF3 · 거리 77.2 · 쨍한 원색)
ⓒ 물가Δ 가 음수(-0.02) = 섬에 반응하지 않는다.
→ 채택하지 않고 대안 ⓑ 로 갔다(증거용으로 복사본은 남긴다).

채택 = Farm_Water_WL_F.mat (= E 복사본 · ToonWaterU · 814t 톤 그대로)
  FoamColor (0.62,0.82,0.90) · FoamDistance 2.2 · FoamEdge 3
  816j2 가 꺼 둔 깊이 거품을 **흰 거품이 아니라 물색을 밝힌 색**으로 되살려
  섬과 만나는 선에 얕은 물이 생기게 했다 → 물가Δ 0.0736 → 0.1129,
  밝은(흰) 픽셀 0.00 % · R-B 0(중립) = 안개로 읽힐 흰 덩어리가 없다.
SO: waterTo = Farm_Water_WL_F · shoreFoamEnabled 0 (둘레 띠 끔).

게이트 PASS(resident · up_to_date · console error 0) · ProjectSettings/ Packages/ 0줄
걷기 6.00 m · grounded=True.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 01:01:59 +09:00
깃 관리자 9c0852a92b [WL-816] 카메라 한 단계 더 당김 — 섬 15→12 m · 던전 13→11 m (PD 「둘 다 조금 더 확대」 · #816)
값 2칸(WLIslandSettings.asset). 되돌리기 = 15 / 13.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 01:01:27 +09:00
깃 관리자 858f31a930 Merge branch 'wl/systems/WL-816l-dungeon-entry' 2026-09-15 00:58:10 +09:00
깃 관리자 9c62123291 [WL-816l] 던전 입장 카메라 안정 + 더미 캐릭터 제거 (#816)
더미 = 던전 씬 2개의 별도 루트 PC_LH_M05(전시용 치비) + ArenaWalkerRig(이 리그가 body 로 치비를 걷게 한다).
FixDuplicates 는 ArenaWalker 가 붙은 오브젝트만 꺼서 치비가 그대로 남았다 → 두 씬에서 제거(루트 10→8).
카메라 = 입장 프레임에 위치만 순간이동하고 회전은 4%/프레임만 도는 원본 CamStatus 0 가지(RealCamera.cs:199·208)와
StageDirector.Enter 의 PC 워프가 원인. WLDungeonCameraRig 를 실행순서 -100 으로 당겨 LateUpdate 에서
최종 구도로 즉시 앉히고, 던전 로딩 화면은 정착·입장 뒤에 닫게 했다. 원본 0줄 · 되돌리기 SO 스위치 4개.

실측(프레임별 · 전→후): 회전 튐 0.46°+6.89° → 0.00°+0.00° · 워프 뒤 2 m 추적 지연 → 0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 00:55:38 +09:00
깃 관리자 9ae58d10ac Merge branch 'wl/ui/WL-816m-dungeon-result' 2026-09-15 00:54:18 +09:00
깃 관리자 87fdb49648 [WL-816m] 던전 결과창 = 던전 번호 + 획득 골드 (#816)
PD 원문(2026-09-15) 「클리어 던전은 무조건 11로 나오고 획득한 재화 정보를 알 수 없어」.

- 결과창 제목 = 「던전 N 클리어!」 (WLDungeonDef.displayName) · 행에 「획득 골드 +96」 추가
- HUD 단계 라벨 = 「던전 N」
- 판정 = WLDungeonSceneSetup.Current 하나 · 골드 = WLIslandBridge.ComputeGold 재사용(식 1곳)
- 문구·형식 전부 SO(WLStageUiSettings 던전 절 7필드 · C45) · C8 롤백 = dungeonModeEnabled 0
- #815 스테이지 모드 무변경(구 4인자 경로와 캡처 MD5 동일) · Assets/WL/Island/** 0줄
- 게이트 PASS(resident · console errors 0) · 프로브 28/28 PASS

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 00:50:14 +09:00
깃 관리자 ed4c305b20 [WL-816] 섬 카메라 거리 SO 화 — FI PlayerVirtualCamera(FramingTransposer) 22→15 m 를 섬 로드 때 덮음 (PD 「섬도 더 가까이」 · #816)
- WLIslandSceneSetup.ApplyIslandCameraDistance: 섬 씬의 Cinemachine 가상 카메라(islandVcamName)의 m_CameraDistance 를 islandCamDistance 로. FI 씬·코드 0줄.
- WLIslandSettings: islandCamDistance 15 · islandVcamName PlayerVirtualCamera 신설 · camDistance 는 기준 기록값 22 로 복원(던전은 dungeonCamDistance 13).
- 되돌리기 = islandCamDistance 0.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 00:46:35 +09:00
깃 관리자 aae6aa8fbd [WL-816] 카메라 거리 당김 — 섬 22→15 m · 던전 18→13 m (PD 「둘 다 더 가까이」 · #816)
값 2칸만(WLIslandSettings.asset). 되돌리기 = 22 / 18.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 00:32:22 +09:00
깃 관리자 57b4865c5f Merge branch 'wl/systems/WL-816i2-dungeon-cam' 2026-09-13 18:44:01 +09:00
깃 관리자 0087a6cab5 Merge branch 'wl/gameplay/WL-816j2-water-fix' 2026-09-13 18:21:02 +09:00
깃 관리자 2e941b31fd [WL-816j2] PD 화면에서 물 다시 맞춤 + 섬 둘레 흰 거품 띠 (#816)
PD 지적 3가지를 PD 구도(FOV 60 · 45° · 22 m · 1280×720)에서 다시 맞췄다.
① 분홍 얼룩 = 깊이 기반 Foam 이 과했다 → **끈다**(FoamColor = 물색).
   화면 실측 물가 거품 38.36 % → 2.08 %.
② 거품이 분홍 = 후처리가 밝은 곳을 분홍으로 민다 → 화면에서 R−B 를 재서
   중립으로(R−B +23 → −1). 띠는 URP Unlit 흰색.
③ 「금 간 유리」 = 보로노이 칸 2.5 m 가 판유리처럼 읽혔다 → 1.0 m 로 잘게 +
   LightColor 0.42/0.72/0.845 · FoamShadowColor 흰색. 잔무늬 대비 0.074 → 0.037.
   바다 평균색은 #5C96C2 → #5794C1 로 그대로(816h 톤 유지).

둘레 띠(PD 선택 ⓑ) = 새 `WLShoreFoam` 이 섬 윗면 footprint 의 거리장을 따라
메시 띠 1장을 만든다. 사방 전부 · 드로우콜 +1 · 삼각형 1,280(타일 4칸).
확장은 816e 훅(`RequestGrassRebuild`)에 얹어 새 가장자리도 자동.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 18:10:55 +09:00
깃 관리자 6cb9f40944 [WL-816i2] 던전 재입장 시 전투가 시작되지 않던 것 수정 (#816)
- 원인(실측): 전투 시작 신호는 RealCamera 의 카메라 연출이 끝날 때 나온다 —
  PCActor.StartCam → Set_Target(pc, CamRot_Portal) → CamStatus=0 + list_tfCamactionTarget.Add(pc)
  → LateUpdate 가 목록을 다 비우면 Start_Game() → ActorInfo.All_Stop(false) + DungeonInfo.Start_Dungeon.
  그런데 원본에 그 목록을 비우는 곳이 없어 맵을 바꾸면 **죽은 Transform** 이 남고,
  재입장 때 `camTarget.position`(RealCamera.cs:199)이 MissingReferenceException 을 던져
  LateUpdate 가 매 프레임 끊긴다 → Start_Game() 이 영영 안 불려 전투가 멈춘 채로 남는다.
  (816i 가 Get_PortalPos 콜백을 되살리기 전에는 이 경로 자체가 안 돌아 드러나지 않았다.)
  → 죽은 항목만 걷어내고, 비면 지금 대상을 한 개 채운다(원본 0줄 · SO 로 끔).
- 같은 씬을 쓰는 던전(1·3 = WL_Dungeon01, 2·4 = WL_Dungeon02)에서 씬 이름으로만 찾느라
  **언제나 앞 줄**의 스테이지가 돌던 것 수정 — 입장 요청(Pending)을 우선한다.
  실측: 던전 3 입장 시 stageIndex 12·보상 192(전에는 10·96).
- 던전 전용 카메라 거리(dungeonCamDistance)를 SO 에 분리(섬 값은 그대로).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 18:06:38 +09:00
깃 관리자 30c73321e9 Merge branch 'wl/gameplay/WL-816j-water-detail' 2026-09-13 17:37:20 +09:00
깃 관리자 f9b831ddc0 Merge branch 'wl/systems/WL-816i-dungeon-enter' 2026-09-13 17:35:56 +09:00
깃 관리자 9103c7442e [WL-816j] 실측 스크립트·로그 (PD 경로 확인 · 데모 비교 · 되돌리기) (#816)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 17:33:18 +09:00
깃 관리자 84ade4b619 [WL-816i] 던전 진입 에러 제거 + 카메라 구도 고정 (#816)
- "Screen position out of view frustum" 의 진짜 원인을 실측으로 확정: 좌표가 화면 밖이라서가 아니라
  **카메라 투영이 깨졌을 때**만 난다(near==far · 직교 size ≤ 0 · aspect ≤ 0). 꺼진 카메라는 무관.
  → 깨진 투영을 찾아 되살리는 감시(0.5초 주기 · SO 로 끔) 추가.
- 섬 카메라 실측값(각 45° · 거리 22 m · FOV 60 · 원근 · 고정 방향)을 SO 에 담아 던전에 적용.
  RealCamera 의 (cameraHeight, DistanceAway, DistanceUp, rotateAround) 로 역산해 넣는다.
- 이동 방향 리드(#755) 배율을 SO 로 노출(기본 1 = 지금 그대로 · 0 이면 섬과 완전히 같은 고정 구도).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 17:29:40 +09:00
깃 관리자 89540cab17 [WL-816j] 바닷물 무늬 간격 + 섬 가장자리 물보라 (#816)
무늬가 넓어 보이던 원인(실측) = 물 평면이 1000×1000 m 인데 UV 는 0~1 뿐이라
Size 7.83 로는 보로노이 무늬 1칸이 21.3 m (섬 타일 8 m · 캐릭터 1.19 m).
Size 66.67 로 올려 1칸 2.5 m. 흐름 0.8 m/s(실측 1.16). 무늬 줄 밝기만 낮춤.
물보라 = 셰이더에 이미 있는 깊이 기반 Foam 의 값만 조정(FoamDistance 6 ·
FoamEdge 1 · 거품알 0.75 m) — 새 시스템·새 렌더러 0.
색(WaterColor·DarkColor)·DeepDistance·Height·WaweSpeed 는 816h 채택값 그대로.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 17:26:48 +09:00
깃 관리자 f2e89653ed [WL-816i] 던전 진입 MissingReference 제거(맵 노드 1개로 상주) + 섬 구도 카메라 (#816)
- LoadMapMgr 파생 노드를 씬마다 새로 만들지 않고 DontDestroyOnLoad 하나로 상주시킨다.
  씬 전환에서 파괴된 노드를 정적 Ins 가 계속 가리켜 Get_PortalPos 의 StartCoroutine 이
  MissingReferenceException 을 내던 것을 없앤다(원본 LoadMapMgr.cs 0줄 · 파생 + private 필드 주입).
- 맵 프리팹이 없어 m_MapData 가 영원히 null 이라 Co_Get_PortalPos 가 끝나지 않던 것도 함께 해결 —
  꺼진 오브젝트에 런타임 MapData 를 만들어 넣는다(MapData.Awake/Start 미실행 = RenderSettings 무변경).
- 던전 씬의 아레나 룩 카메라(직교 · MainCamera 태그)가 전투 화면을 차지하던 것을 끄고
  전투 카메라(RealCamera)만 남긴다.
- WLDungeonCameraRig — 섬(FI Cinemachine) 실측 구도(각 45° · 거리 22 m · FOV 60 · 원근)를
  던전 카메라에 그대로 적용한다. 값은 WLIslandSettings SO.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 17:14:48 +09:00
깃 관리자 9aaddae676 [WL-816] 세이브 단일화가 실제로는 동작하지 않던 것 수정 (#816)
816g 가 실측으로 지목: WLIslandSaveSettings.asset 의 m_Script 가 {fileID: 0}
이라 Resources.Load 가 null → 세이브가 여전히 Level01.dat / InGame.dat 로
갈리고 있었다(33afe0b8d 는 코드만 들어가고 설정이 안 붙은 상태였다).

원인: 유니티는 ScriptableObject 를 **클래스 이름과 같은 이름의 .cs 파일**
에서만 MonoScript 로 인식한다. 그 클래스가 WLIslandSave.cs 안에 있어
m_Script 를 바인딩할 수 없었다.

조치: WLIslandSaveSettings.cs 로 분리 + .asset 의 m_Script 를 새 GUID 로.
검증: ResolveSaveName("InGame") = "WL_Island" (런타임 실측) · 컴파일 오류 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 16:50:45 +09:00