Commit Graph

245 Commits

Author SHA1 Message Date
깃 관리자 c896b684b0 [WL-816ze/zg] 데모 동일 카메라 대조로 확정 — 풀 = 데모 규칙(0.35 · 6.25/㎡ · 균일 · 구름띠/경계띠 off · 밑동 어둡게 · 잎 윗면 diffuse ×1.167 로 타일과 동일 → 잎 윤곽 소멸 sd 11→2.8) · 해변 = 풀/모래 경계 등고선 절단(마칭 트라이앵글) + 굽이 노이즈 0.8 m + 모서리 필렛 R3(keep ≥ R) (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 09:49:01 +09:00
깃 관리자 53bba8b5bd [WL-816zg/zh] 풀 구역 모서리 둥글림(스커트 열기 연산 R3 · 타일 위 +1 cm 모래) · 풀잎 띠 = 보이는 색 계단선(ContourWeight · cloudBandMode 1) · grassEdgeBand 0 (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 09:11:22 +09:00
깃 관리자 1362c01540 Merge branch 'wl/gameplay/WL-816zh-cloud-band-grass' 2026-09-16 00:19:49 +09:00
깃 관리자 efa7a066ee [WL-816zg] 스커트 Toon 2재질(풀=타일 재질 · 모래=복사본 · 구름·조명 동일 → 이음새 0) · 풀/모래 경계 칸별 흔들림 0.6 · 풀 띠 0.4 (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 00:19:47 +09:00
깃 관리자 3713a67c30 [WL-816zh] 풀잎 = 구름 그림자 경계 띠(부드러운 성장) (#816)
PD 2026-09-16 「경계 1.2 m 가 아니라 그림자(그라데이션)를 기준으로」.
- WLCloudShadowField: 구름 「높이」(강도를 걷어 낸 cover + 0.5·noise) 성긴 표본 격자 BakeLevels/LevelAt + 띠 가중치 BandWeight
  = smoothstep(1 − |높이 − cover| / cloudBandWidth). 강도 0.5 재질에서 |c − cover| 로 재면 띠가 없어 강도를 걷어 낸 값으로 판정.
- WLIslandGrass: edgeOnly_ 후보를 들판 전체에 두고(band=0) 인스턴스 배율 × w. cloudBandRefreshSeconds 마다 목표 재계산,
  현재값은 cloudBandLerp 로 따라감(자라고 줄어듦 · 팝핑 0). w < cloudBandMinScale 는 버퍼에서 압축. 물리 띠(grassEdgeBand) 안은 항상 1.
  갱신 토글은 프레임 끝(WaitForEndOfFrame)에 — 드로우에 넘긴 버퍼를 렌더 전에 해제해 생기는 깜빡임 방지. 띠가 켜지면 816o 하드 컷은 무시.
- WLIslandLookSettings §1-816zh: cloudBandEnabled 1 · cloudBandWidth 0.12 · cloudBandRefreshSeconds 0.2 · cloudBandLerp 0.15 ·
  cloudBandMinScale 0.02 · grassEdgeBand 1.2 → 0.6. 되돌리기 = cloudBandEnabled 0.
- Farm_Grass_Demo3.mat _ShadowDiffuseColor 0.62/0.82/0.485 → 0.55/0.75/0.47 (경계 실루엣 대비).
유니티 미실행(컴파일·검증은 Lead).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-16 00:17:31 +09:00
깃 관리자 b8d839fbb1 [WL-816zg] 스커트 실측 정합 — 타일 가장자리 홈(r 3.6~3.85 · 깊이 0.2)이 물을 비쳐 「붕 뜬 경계」 → skirtInnerKeep 0.5·skirtTopDrop 0.01 로 덮음 · 풀띠 0(모래부터) · 구름 강도 0.3 · 바닥판 0.6 m·밝은 모래(물 청록 더 밝게) (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 00:16:23 +09:00
깃 관리자 3ebd352b5b Merge branch 'wl/systems/WL-816zg-shore-skirt' 2026-09-16 00:05:01 +09:00
깃 관리자 112eca1b72 [WL-816zg] 섬 물가 스커트(완만한 모래 경사) (#816)
PD 결정(2026-09-15 「물은 진행」): 데모 연못처럼 섬 가장자리가 완만한 모래 경사로 물에 잠기게.

- 신규 WLShoreSkirt.cs — 열린 타일(FI Island IsUnlocked · 한 변 IslandManager.IslandSize) 발자국의
  바깥 테두리 선분까지의 유클리드 거리장(부호: 안 −/밖 +)으로 격자(셀 0.5 m) 띠 메시 1장 생성.
  y = smoothstep(d / skirtWidth) 로 윗면(0 − skirtTopDrop 0.04) → skirtBottomY −1.8 ·
  안쪽 d < −0.3 은 만들지 않음 · 격자 원점을 타일 가장자리에 맞춰 틈 0 · 볼록 모서리는 자동으로 둥긂.
  정점색 = d 0~0.6 풀색(islandTopMaterial _DiffuseColor) → 모래색(softDirtColor) · 물 아래 ×0.85.
  멱등(발자국·값 서명) · 드로우콜 +1 · 삼각형 수 로그.
- 신규 Shaders/WLShoreSkirt.shader `WL/Shore Skirt` — URP 언릿 정점색 · 불투명 · 그림자 off ·
  DepthOnly/DepthNormals 패스 포함(물 셰이더가 깊이로 물가 띠를 만들므로 깊이 프리패스 모드에서도 보이게) ·
  SRP Batcher 호환 · target 2.0 · 텍스처 0.
- WLIslandLookSettings §0-c: shoreSkirtEnabled 1 · skirtWidth 3.0 · skirtBottomY −1.8 · skirtGrassBand 0.6 ·
  skirtSandBlend 0.6 · skirtCell 0.5 · skirtInnerKeep 0.3 · skirtTopDrop 0.04 · skirtTopMode 1(고정 skirtTopY 0) ·
  skirtUnderwaterMul 0.85 · skirtGrassFallback · skirtMaxGridNodes 400000 · shoreSkirtMaterial(선택).
  되돌리기 = shoreSkirtEnabled 0.
- WLIslandLook.Apply: SpawnSeabed 다음에 SpawnShoreSkirt · 재훑기·RequestGrassRebuild(확장) 같은 훅에서 재생성 · 로그 항목.
- 원본(FarmingIsland/3DPixelArtEnvironment/Script) 0줄 · ProjectSettings 0줄 · 유니티 미실행(컴파일은 Lead).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-16 00:01:24 +09:00
깃 관리자 d8a4d9fbe8 [WL-816ze] 섬 카메라 각도 islandCamPitch 50 · 경계 전용 풀잎(edgeOnly_ · grassEdgeBand 1.2 — 들판 안쪽 얼룩 제거) (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 23:56:12 +09:00
깃 관리자 3752b0484c [WL-816ze] 바다 바닥판(SpawnSeabed) — 데모 물 셰이더는 깊이로 색·거품을 정하는데 바닥이 없어 배경색이 비쳐 진파랑이던 것 → 물 아래 0.8 m 모래색 판 1장(삼각형 2 · 되돌리기 seabedEnabled 0) (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 23:39:35 +09:00
깃 관리자 8c49c4ef16 [WL-816ze] 가장자리 무늬·그라데이션 — 풀 물 위 넘침 0(떠 있던 풀 제거) · 풀 0.1·밀도 5 · 구름 무늬 40 m(0.025)·강도 0.5 (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 23:30:48 +09:00
깃 관리자 cd426eff9b [WL-816ze] 색감 데모 실측 정합 — 들판 0.62/0.82/0.485(렌더 156/207/122 = 데모) · 구름 강도 0.4 · 흙 데칼 sRGB 0.71/0.706/0.549(렌더 178/177/138 = 데모 모래) (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 23:24:40 +09:00
깃 관리자 642e6c07e0 [WL-816w/816ze] 울타리 정체 = 전투 장벽 그림(WL815c) 잔존 → 섬 진입 시 즉시 정리(StageBarrierVisual.HideImmediate) · 확장 발판 활성 씬 허용 · 풀 비율(0.15·밀도 4·자갈 0.35) · 풀잎=땅색(형상 숨김) · 구름 그림자 섬 크기(0.06/0.7) · 타일 텍스처 제거 (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 23:15:50 +09:00
깃 관리자 c88d0fa7e2 [WL-816w] 울타리 원천 차단 — IslandManager.islandMeshes 목록 항목을 난간 제거 복제본으로 교체(ConfigureIsland 가 확장·재구성마다 원본 메시를 다시 물려 되살아나던 것) · 신규 .cs meta 2건 (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 21:07:33 +09:00
깃 관리자 6b3040366d Merge branch 'wl/systems/WL-816zf-soft-dirt' 2026-09-15 19:11:37 +09:00
깃 관리자 6d7ae4f916 [WL-816ze] 물·풀·바닥 = 데모 값 전사 (#816)
물 — 데모 Water.mat 전사본 Farm_Water_Demo3.mat (색·톤 0 변경).
  UV 밀도만 스케일비 보정: 우리 물 = Level01.unity Water scale 100 x 빌트인 Plane 10 m = 1000 m,
  데모 = Demo.unity:4651 Water_Plane scale 4.39/4.18 x 10 m = 43.9/41.8 m (양쪽 부모 scale 1).
  비 = sqrt((1000/43.9)*(1000/41.8)) = 23.3442.
  _DistortionTiling 1 -> 23.3442 (RawDistortion: DistortionTiling -> TilingAndOffset.Tiling)
  _FoamScale 50 -> 1167.212      (Foam: FoamScale -> GradientNoise.Scale)
  _FoamSpeed 0.01 -> 0.00042837  (Offset 는 Tiling 뒤가 아니라 앞이라 비로 나눠야 월드 속도가 같다)
  _DistortionSpeed 0.06 유지 — Tiling 이 나누므로 월드 속도 2.63 -> 2.57 m/s 로 자동 일치.
  URP-Balanced m_RequireDepthTexture/m_RequireOpaqueTexture 둘 다 1 = 깊이 거품 동작 (차단 없음).

풀 — 데모 Instanced_Grass.mat 전사본 Farm_Grass_Demo3.mat (값 0 변경).
  scatter[0].material Farm_Grass_Arena -> Farm_Grass_Demo3 · scale 0.7 -> 0.35 (Demo.unity:1287).
  816q 가 _ShadowDiffuseColor 를 0.25/0.33/0.24 -> 0.58/0.83/0.59 로 올려 음영이 사라졌던 것이 원복된다.
  꽃·자갈은 메시·머티리얼·확률·스케일·오프셋이 데모와 이미 동일 = 무변경. variance 0.5/0.2 도 동일.

바닥 — Farm_IslandTop_Demo3.mat (셰이더 유지 · 데모 Terrain.mat 값 전사).
  _Shades 7 · _Brightness 0.25 · _MinimumDarkness 0.2 는 이미 동일.
  _DiffuseColor -> _RedHighlight 0.7752982/0.9528302/0.5977661
  _ShadowDiffuseColor -> _RedShadow 0.2517783/0.3254902/0.23529412
  (데모 잔디 지면 = Red 채널. _GreenHighlight 0.84/0.83/0.65 는 모래·흙 채널이다 —
   _RedHighlight 가 Instanced_Grass._DiffuseColor 와 소수 4자리까지 일치하는 것이 근거.)
  _OUTLINESENABLED 1 -> 0 + m_ValidKeywords 에서 제거 (데모 Terrain.mat 에 외곽선 프로퍼티 없음).

스위치 — applyReferenceLook 1 -> 0 (814t 대비 보정 + WL/HullOutline inverted hull. 기존 필드라 신설 없음),
  islandOutlineEnabled 0 신설 (1 일 때만 타일 셰이더 외곽선을 런타임 복구 = 기본 경로 무동작).
  shoreFoamEnabled 0 유지. materialRemap 2행 to 도 같은 전사본으로 (islandTopMaterial 과 동일 유지).

되돌리기: waterTo -> 3979675f9f9bd5d4b9191aad8f2091e1 · islandTopMaterial/remap 2행 -> eba171966111423bbabd5fc93575b339
  · scatter[0] -> dc21f047088dee14f9b080798ebe8560 / scale 0.7 · applyReferenceLook 1.
원본 0줄: Assets/3DPixelArtEnvironment/** · Assets/FarmingIsland/** 무변경(복사본만).
유니티 사용 0회 (파일 읽기·쓰기 + git 만).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 19:06:52 +09:00
깃 관리자 78088e8559 [WL-816zf] 흙 자리 부드러운 데칼 (#816)
밭 구역(WLIslandGateFlow.ZoneBounds)을 덮는 평면 메시 1장 + 런타임 마스크
텍스처(모서리 라운드 + 셀 노이즈 경계 + 가장자리 페이드)로 흙을 그린다.
각진 1×1 흙 타일(Soil) 렌더러는 데칼과 배타로 숨긴다(showFarmSoil 무효화).
816za 풀 제외는 같은 마스크(WLSoftDirt.SignedDist)를 읽어, 풀 톱니가 데칼
가장자리 안쪽 softDirtGrassBite(0.3 m)까지 파고든다 — 경계 정의는 한 곳뿐.

- WLSoftDirt.cs 신규 — 메시·텍스처·머티리얼 전부 런타임 생성(에셋 0줄 · 드로우콜 +1)
- WLIslandLookSettings — §816zf 값 14개(softDirtEnabled 0 이면 100 % 복귀)
- WLIslandLook — 데칼을 풀보다 먼저 생성 · 재훑기/확장 훅에서 재생성 후 풀 재배치
- WLIslandGateFlow — 데칼 활성 시 Soil 렌더러 숨김 · 구역 바운즈를 꺼 둔 렌더러까지
  세도록 수정(재훑기 2회차부터 구역을 통째로 잃던 문제)

🔴 미확인 — 유니티 미실행(발주 조건). 컴파일·화면 확인은 Lead 담당.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 19:06:15 +09:00
깃 관리자 98887e2249 [WL-816w] 울타리 최후 수단 — 카메라 그리기 직전마다 fence 렌더러(이름·메시명) 차단 + 정체 로그(FenceGuardLog) · 캠프 장식 지면 스냅 off(모닥불 공중 1.71 m 실측) (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 18:50:16 +09:00
깃 관리자 405fdcb781 [WL-816w] 타일 난간 제거 2차 — FI Island.fbx 임포트 Read/Write 켬(정점 접근 · 원본 메시 데이터 무변경 · 임포트 설정 1값) + 비가독 메시 접근 시 에러 팝업 방지(isReadable 검사) (PD 「에러 발생」 실측 · #816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 18:27:41 +09:00
깃 관리자 1dccc30861 [WL-816] 섬 콘솔 에러 2종 제거 — ① CameraMoveLead: 섬에서 PC 스탯 키(MOVSPD_Up) 없을 때 KeyNotFound → try/catch(기준 속도 0) ② 원본 일꾼(WorkerActor · Goblin_Baby) 섬 스폰 시 DropItemInfo 없어 매 프레임 NRE → 즉시 비활성 (PD 지시 · #816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 18:22:10 +09:00
깃 관리자 70a3eb380f [WL-816w] 울타리 진범 = FI 타일 메시에 구워진 난간 — 타일 메시 복제 후 윗면 위 삼각형 제거(WLIslandTileFenceStrip · stripBakedFences 1) · 섬 윤곽 풀 라운드 R 3 m·넘침 0.6 (PD 실측 지시 · #816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 18:17:03 +09:00
깃 관리자 b55c69821b [WL-816zc] PD 조정 — 흙 자리 모서리 둥글림(soilCornerRadius 1.6 · 모서리 흙칸 숨김) · 던전 입구·발판 = 섬 우하단 (10,0,-2) (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 18:03:31 +09:00
깃 관리자 74a08191b6 [WL-816zd] 섬 윤곽 둥근 풀 배치 (#816)
땅(타일 메시)은 각진 그대로 두고, 풀 카펫의 **바깥 윤곽만** 둥글게 읽히도록
배치 넓이를 바꾼다. PD 원문 「땅은 각지게 만든 상태로, 풀을 라운딩 느낌이 나게
배치해서 만들어도 되잖아」.

- WLIslandGrass: 윗면 마스크 + edgeInset 네 방향 검사 대신, 섬 footprint 를
  반지름 R 로 **열고**(침식 후 팽창 = 볼록 모서리가 R 로 둥글어짐) 바깥으로
  overhang 만큼 팽창한 거리장으로 자른다. 침식·팽창 모두 결합적이라
  「(inset+R) 침식 → (R+overhang) 팽창」 거리장 두 장이면 끝난다.
  기준선이 edgeInset 이라 overhang = edgeInset 이면 바깥선이 지금과 같고
  (모서리만 둥글어짐), 그보다 크면 차이만큼 절벽 위로 넘친다.
- 거리 변환은 816j2 WLShoreFoam.Chamfer 를 그대로 쓴다(public 승격 · 정의 SOT 1곳).
- 넓힌 칸 범위가 이웃 타일과 겹치므로 OwnerTile(체비쇼프 최근접)로 칸 하나를
  한 타일만 만들게 해 중복 0.
- 길·밭·소품 제외와 816za 밭 라운드는 무변경. 인스턴싱 bounds 에 overhang 반영.
- SO: outlineRoundEnabled 1 · outlineRoundRadius 1.5 · outlineOverhang 0.3
  · outlineRoundCell 0.25 (0 이면 현행 배치 그대로 = 되돌리기 1값).
- FI 원본 0줄 · 씬 0줄.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 17:18:08 +09:00
깃 관리자 4175874c51 [WL-816zc] PD 조정 — 울타리 콜라이더도 끔(투명 벽) + 3 s 상시 재숨김 · 상인/사과나무 자리 교환 · 던전 발판 = 입구 자리(0,0,3) · 좌판·사과나무 콜라이더 유지(판매·수확 트리거) (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 17:05:42 +09:00
깃 관리자 4d5aa6f546 Merge branch 'wl/ui/WL-816zc-island-flow' 2026-09-15 16:04:42 +09:00
깃 관리자 39fcbe5d44 [WL-816zc] 섬 초기 플로우 v2 (#816)
캠프파이어 설치(10) → 상인 설치(30) → 사과나무 설치(60) → 던전 생성(100).
한 번에 발판 1개 · 단계는 PlayerPrefs 1키(WL_Island_FlowStep · 시작마다 초기화).
원본 섬 확장 가격판(FI Purchaser)은 첫 던전 승리 전까지 렌더러·콜라이더만 끄고,
승리(OnStageCleared) 시 WL_Island_ExpansionUnlocked=1 → 그대로 다시 켠다
(이후 확장 순서는 FI 원본 Island.Constraint 그대로 · 우리 코드는 켜고 끄기만).
밭은 시작 시 생성 보류 유지(hideFarms 1) · 던전 2~4 행 enabled_ 0.
되돌리기 = flowV2Enabled 0.

원본(Assets/FarmingIsland/** · Assets/Script/**) 0줄.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 16:04:08 +09:00
깃 관리자 e438652860 Merge branch 'wl/systems/WL-816zb-stagger-flash' 2026-09-15 15:57:55 +09:00
깃 관리자 e692c53ea0 [WL-816zb] 피격 경직 + 흰색 하이라이트 단축 (#816)
경직 = MobStagger(신규 · HitConfirmed/Killed/Spawned 구독 · 원본 0줄) · NavMeshAgent.speed 0 + velocity 0 + Animator.speed 0
       일반 0.18 / 엘리트 0.12 / 보스 0.08 s · 넉백 중에는 종료를 미뤄 넉백 직후부터 다시 셈(상한 1 s) · 스턴·빙결이면 즉시 해제
       값 = WLHitFeelSettings(mobStaggerEnabled·초 3개) + 에셋

흰색 = MobHitFlash 점멸 상한 blinkMaxSeconds 0.06 s (연장·티어 시간 배수 2.4 포함해 첫 점멸 시작 기준으로 절단)
       세기 blinkColor 2.2→3.0 · blinkEmission 0.6→0.9 (짧게, 대신 세게) · 값 = WLHitBlinkSettings + 에셋

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 15:57:19 +09:00
깃 관리자 dd5757bc4b [WL-816za] 밭 자리 풀 경계 라운드 (#816)
밭(흙) 제외 사각형을 반듯한 사각형 대신 「모서리 반지름 + 경계 노이즈」로 판정해
풀이 흙 가장자리로 불규칙하게 파고들게 한다. 길·건물·소품 제외 규칙은 무변경.

- WLIslandLookSettings: farmEdgeRoundEnabled 1 / farmEdgeRadius 1.0 / farmEdgeNoise 0.4 / farmEdgeNoiseCell 0.5
- WLIslandGrass: 밭 rect 를 _farmRounds 로 분리 + InRoundedFarm(둥근 모서리 + 값 노이즈) 판정
- 라운드 모드에서 밭 안에 든 Soil 1x1 사각형은 빼서 깎아낸 모서리를 도로 메우지 않게 함
- farmEdgeRoundEnabled 0 이면 기존 동작 그대로

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 15:55:02 +09:00
깃 관리자 2799b311b6 [WL-816w] 울타리 숨김 = 섬 타일 전 하위·이름 포함 검색 + 시작 후 8회 재숨김 · 밭 체크무늬 off(soilCheckerContrast 0) (PD 2026-09-15 · #816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 15:47:34 +09:00
깃 관리자 b185d3bf9b [WL-816y] PD 조정 — 시작 시 울타리 재숨김 3회 · 텐트 1개(우상단 유지) · 모닥불 2.4× · 텐트 2.4× · 던전 입구 4곳 섬 안쪽으로 (#816)
- WLIslandGateFlow: Co_ReHideFences(3 s 간격 3회) — FI 타일 활성화가 울타리 렌더러를 다시 켜는 것 보정.
- WLIslandSettings.asset: campTentCount 2→1 · campFireScale 1.2→2.4 · campTentScale 1.6→2.4 · gatePosition (-3,3)→(0,3) · (10.5,-3)→(8,-1) · (2.5,11)→(2.5,8.5) · (10.5,10.5)→(10,10).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 15:34:10 +09:00
깃 관리자 b289d896b3 Merge branch 'wl/ui/WL-816y-camp-portal' 2026-09-15 15:29:00 +09:00
깃 관리자 2ca0b84519 [WL-816y] 캠프파이어 설치 자리 장식 + Arch_01 던전 포탈 (#816)
- 첫 개방 발판 문구 = 「캠프파이어 설치」 · 지불·세이브 복원 시 그 구역에 캠프 장식 스폰
  (WLIslandCampDecor: Fireplace 중앙 1 + Tent 가장자리 2 · 불 쪽 향함 · 콜라이더 off · 바닥 스냅)
- 던전 입구 = WL_DungeonGate_Arch(Arch_01 + 아치 중앙 마법 포털 루프) · gatePrefabPath 4행 · 안내 문구 「던전으로 이동하기」
- FantasyForest 원본은 Built-in 셰이더(URP 분홍) — 원본 0줄 수정, WL 쪽 URP 사본 머티리얼 2개로 래핑
- 되돌리기 = campDecorEnabled 0 + gatePrefabPath 비우기

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 15:12:29 +09:00
깃 관리자 a2880d1a94 [WL-816x] 몹 확대 시 원본 보스 판정 경계(scale>2) 안 넘게 가드 on (mobBodyScaleKeepUnderBossThreshold 1 · Lead 결정 · #816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 15:06:25 +09:00
깃 관리자 036d5fcbf8 Merge branch 'wl/systems/WL-816x-hitfx-mobscale-nodash' 2026-09-15 15:05:39 +09:00
깃 관리자 1624e4c95e [WL-816x] 대시 억제 게이트에 WL_CanDash 조건 추가 — 조이스틱 조작 중 제자리 공격 강제 방지 (#816)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 15:03:59 +09:00
깃 관리자 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
깃 관리자 8ec0ee8eb2 [WL-816x] 피격 이펙트 상단·150 % · 몬스터 150 % · 사거리 안 적 있으면 대시 억제 (#816)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 14:59:32 +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
깃 관리자 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
깃 관리자 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
깃 관리자 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
깃 관리자 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
깃 관리자 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
깃 관리자 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