Commit Graph

325 Commits

Author SHA1 Message Date
깃 관리자 0762f3e2b8 WL #947 스킬 테스트 씬 Play 검증·수정 — 하네스 단계별 try(예외 위치를 상태 파일에) · DungeonInfo 씬 객체 · PC·더미 비활성 저장(Set 직전 켬) · InGameInfo 예열 뒤 PC 생성 · dic_MagicData 채움(HUD 없이 Q/E) · 무기 순환 종류별 1개 + O/P 키(PD 지시) · 평지 가장자리 원점 · 이동 검증 훅(MoveFor) · 빌더 Untitled 에서 Single · 원본 훅 2(InGameInfo: 테스트 씬 DataCheckMgr 제외 · 이펙트 예열 Add 중복 가드)
Play 4회 실측: ready 23.7 s(이펙트 예열 프레임 18 s) · 자동 공격 6 s 10회 · 이동 5.7 m/1.5 s(Run→Idle) · 등급 6 → Q 방패 치기 · E 돌진 베기 발동 · O/P 순환 철창→대검→마법책→대검 · 콘솔 게임 오류 0

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-20 02:57:59 +09:00
깃 관리자 dc516cc42e WL #947 독립 스킬 테스트 하네스(검증 전) — WLSkillTestHarness(MainToStatTest 상속 · 로그인·HUD 없음) · 빌더 재작성 · 원본 StatTest 분기 13줄 → WLTestScene.Active · 구 부트 제거. 씬 재조립·Play 검증은 다음 세션
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-20 01:48:59 +09:00
깃 관리자 d51fb12ed1 WL #947 스킬 테스트 씬 신설 — Assets/WL/SkillTest(WLSkillTest.unity 코드 조립 · WLSkillTestBoot 부트: 매니저 프리팹 직접 배치 → 테이블 → 개발 로그인 → 맵 노드·카메라 리그 → InGameInfo/ProjectileInfo/PCInfo → SceneInfo.CurStageData 선채움(섬 씬 미로드) → PC·HUD → 무적 더미 · WASD/[ ]/R 키 · 상태 파일) · 원본 0줄 · 테이블 0줄
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-20 01:12:04 +09:00
깃 관리자 d8f6cec099 [WL] #944 무기 lineup 9종 — 주스탯 표(힘/민첩/지능) · 오브(맹약) ×5 손 위 부유(WLOrbFloat) · 마법책 신규 9009(WLItemTableExtra·CSV·StarterKit·WLFloatingBook·summoner 모션 = 맹약·FREE 팩 시전 R2) · 창 모션 = Platform Spear 세트(매핑 10701·컨트롤러·Stab 궤적·사거리 1.50/1.50/1.47) · 2타 가림 life/minInterval 0.9 · 팩 데모 중복 스크립트 백업 이동(PD 승인) — Play 미확인(세션 종료 · 다음 세션 verify944.sh)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-19 22:23:08 +09:00
깃 관리자 294620a433 [WL] #943 8건 — 화살 굵기 절반(thickness) · 대검 도끼 층 끔 + 모으기·검 흰 발광 · 창 2타 고정 방향 + PC 회전 잠금(fixedDir) · 창 사거리 창끝 실측(1.29/1.29/1.55) + 궤적 창끝 반경 · 단검 궁극 실루엣(WLGhostStrike) · 단검 주력 캐릭터 보임 + 이펙트 0.5(WLShadowSlash)
- WLImpactFx: swingFx fixedDir/lockFacing/alignForward/alignSide · WLWeaponFollowFx 고정 방향 모드
- WLProjectileVisual: thickness(입자 크기·3D X/Y·늘림 보정·궤적 폭) · 10401/10402 = 0.5
- WLGreatWave.json glowColor [2,2,2] glowMax 1.0 glowFill 0.35 chargeFx WL_Fx_GreatChargeWhite · WL_Hit_GreatSkill 도끼 렌더러 끔
- WLHitboxFit · WLWeaponClasses · WLWeaponAttackTable · SlashTrailSettings 10701 창 길이 1.846 m 실측 반영
- WLGhostStrike.cs/.json · WLShadowSlash.cs/.json + Skill_DarkAmbush · Skill_ShadowSlash 훅 1줄

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-19 03:48:42 +09:00
깃 관리자 9202f9c8fe [WL] #939~#942 피격 이펙트 교체(검 SlashHitBlue · 활 PinkSlashHit · 박힌 화살 제거) · 창 2타 찌르기 6연타 + 기계총 가림(창 방향 추종) · 피격 이펙트 몸 앞(카메라 쪽) · 시전 뒤 이동해도 지팡이 주력·활 각성 유지(lockUntilFire)
- WLImpactFx: swingFx follow/forward/side/life/minInterval/alignWeapon/massLocal · WLWeaponFollowFx · TowardCamera(hitTowardCamera) · 풀 반환은 끄기 전 Update
- CombatAnimMapping 10701 Attack2~2f(속도 3 · 타격 3회) → pcanim_spear.controller · Spearman@Attack2_S 서브클립
- 사본 WL_Hit_Sword/SwordSkill(SlashHitBlue) · WL_Hit_Bow(PinkSlashHit) · WL_Impact_SpearBurst(FX_Machine Gun · loop 끔 · 줄기·섬광 평탄화)
- WLSkillCancel: lockUntilFire(Skill_Hurricane · Skill_ArrowRain) · noSkip += Skill_Hurricane
- 피격 카메라 쪽 당김: WLProjectileHitFx · WLSkillVfx hit · WLGreatWave · WLBladeStorm

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-19 02:27:34 +09:00
깃 관리자 c421d272fc [WL] #937-6 이력 주석 분리 나머지 — 배열형 표 파일 건너뜀 · _history 키 제거(맵형 로더 보호) · 전체 JSON 파싱 확인
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-19 00:12:13 +09:00
깃 관리자 48e04f48db [WL] #937-6 설정 JSON 이력 주석 분리 — Assets/WL/**/Resources/WL/*.json 의 _note_*·note 를 Docs/WLJsonHistory/<이름>.history.md 로 (값 파일엔 _history 경로 1줄 · 로더는 모르는 키를 무시 · PD 2026-10-19 승인)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-19 00:10:30 +09:00
깃 관리자 beb678802f [WL] #870~#936 의도 변경 묶음 — 섬 개선 · 파츠 스킬 · 무기 스킬 다듬기(검·해머·활·대검·지팡이) · 피격 이펙트 교체(#936)
- Assets/WL · Script · AgentScripts · Res_Addr(애니메이터 컨트롤러) · ExplosiveLLC(동작 매핑 도구가 구운 FBX 이벤트 메타) · ResWork/Table(SkillList) · Editor · Resources · Packages · .gitignore
- ResWork 재질·메타 자동 재직렬화(6,675) · ThirdParty · ProjectSettings · AddressableAssetsData 는 제외(자동 변경)
- 정책 = 2026-10-19 PD 결정 #937-4: 지시 묶음마다 의도 변경 파일만 로컬 커밋 · push 는 PD 「세션 공유」 지시 때만

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-19 00:09:05 +09:00
깃 관리자 64a4c38443 [WL] #821 FR 장비 시스템 이식 + #822 섬 몬스터 존·전투 아바타 (2026-10-08~09 · Lead Fable)
#821 — FR(FirstRising) 기존 장비 시스템 이식: Assets/WL/Equip (데이터 모델·FR json 로더·인벤/장착/강화/합성(본1+재료2)/강등·ActorStatInfo 가산·던전 드랍·더미 UI·인게임 런처·로컬 세이브) + 설정 SO · 원본 1줄 훅 3곳(ActorStatInfo.Reset · WLIslandBridge.OnStageCleared · DummyMenuButton) · PC 기본 공격력 5 사후 보정
#822 — 섬 몬스터 존(땅 1칸 1곳 · 동시 3 · 누적 10 → 3h 쿨타임 · 라벨 · 몹 HP 18) + 섬 기본 아바타 = 전투 PC(농부 = 투명 그림자 · 밭/낚시 때 농부) · 전투 형태 재적용(로비 맵 유형 우회) · MonsterSimpleInfo 참조 보정(처치 NRE·리젠 중단 해소) · 섬 자동 부활 · WLPcScaleCompensator 안정 값만 보정(연출 펀치 누적 확대 해소)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-09 13:28:39 +09:00
깃 관리자 b95f043696 [WL] 가격판 겹침·오류 수정 · 예고 섬광 20 % · 넉백 거리 절반 · 히트 하이라이트 매 타격
- 가격판: FI Purchaser 가 활성 씬(InGame)에 생겨 섬 씬이 내려가도 남던 옛 판(파괴된 섬에 묶임)을 섬 씬 언로드 순간 제거 + 섬 준비 때 한 번 더
  실측: 던전 입장 때 1개 제거 · 복귀 후 판 1개 · 겹침 0 · 오류 0
- 공격 예고 흰 섬광: 알베도 2.2/에미션 1.6(완전 흰색) → 캐릭터 덧그리기 패스 _HitFlash 20 %(flashOverlayOpacity) · 실측 완전 흰색 0
- 넉백 거리 배율(MobKnockbackScale · mobKnockbackDistanceScale 0.5): 새 넉백이 시작된 틱에 원본 남은 시간을 줄여 총 거리 절반
  실측 평균 0.203 m(38회) → 0.102~0.103 m(84회) · 넉백 상태 멈춤 0(최솟값을 남기면 끊긴 넉백이 영영 안 풀리던 결함은 수정 전 실측 · 멈춘 넉백 풀기 안전장치 포함)
- 히트 하이라이트: 꺼진 뒤 0.2 s 쉼 동안 다음 점멸을 막아 빠른 연타에서 첫 타만 번쩍 → 타격마다 다시 켬(retriggerEveryHit)
  실측(0.15 s 간격 6타): 종전 3/6 → 6/6 · 실제 전투 화면 캡처로 1~3타 모두 표시 확인
- 원본 0줄

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 01:34:11 +09:00
깃 관리자 1371982fec [WL] 전투 타격감 3건 — 던전 풀 자글자글(지형 그늘 최소 밝기 = 풀잎) · 몬스터 경직(피격 모션 0.25 s · 공격 끊기/막기) · 흰색 하이라이트(피격 점멸 20 % 덮기 0.07 s + 끊긴 공격의 예고 흰 섬광 즉시 종료)
- 던전 풀: 814t 대비 복제가 지형 _MinimumDarkness 만 0.12 로 낮춰 풀잎(0.20)이 그늘마다 밝은 점으로 도드라짐 → 지형을 풀잎 값으로(dungeonTerrainMatchGrassDarkness)
- 경직: 피격 모션 재생(일반 몹은 공격 취소 · 엘리트 설정 · 보스/스킬/사망 제외) → 0.1 s 뒤 굳힘 → 경직 끝까지 공격 쿨타임 붙잡기 · 일반 0.25 / 엘리트 0.18 s · 끊긴 몹은 풀리면 애니 속도 1
- 피격 점멸: 켜짐 0.07(상한 0.09) · 쉼 0.2 s · 덧그리기 패스 _HitFlash 0.2(본체가 비치는 흰색 20 %)
- 하얗게 남던 주원인(실측) = 공격 예고(Telegraph) 흰 섬광이 경직·넉백으로 끊긴 공격에 최대 2.5 s 남음 → CurAnim 이 공격 밖이면 즉시 종료 + 예정 히트 +0.3 s 안전장치
  같은 세션 A/B(던전 1 · 3판씩): 끊긴 공격에 남은 흰색 47/80 측정 → 0/41
- 원본 0줄(Assets/Script · FarmingIsland 무수정)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 00:02:13 +09:00
깃 관리자 a0634ad735 [WL] 던전 풀밭 = 섬 값 · 물가 물보라(절차적 거품 셰이더) · 등급 연출(PC 1 · 몬스터/NPC 2 · 프랍 3 — 톤 공유·세기만 차등)
- WLDungeonGrassLook: 던전 데모 인스턴서/터레인 재질/태양을 섬 설정 값으로(풀 0.22·꽃 0.26·구름 0.5/0.025·밝기 0.12·그림자 0.45) + ssaoOffScenes 에 던전 2개
- WLShoreSpray.shader + WLShoreFoam: uv2 = 물가선 거리(m) · 또렷한 물가 거품(밀려왔다 빠짐) + 밀려오는 포말 줄 · 텍스처 0장 · shoreSprayEnabled 0 = 예전 띠
- WLCharacterBacklight: 2등급(Actor 역할 스캔 1.5 s · 림/채움빛 약하게 · MK Toon 그늘색·Toon 그늘 값은 프로퍼티 블록) · 3등급(Toon 프랍 공유 재질 복사본 · 5 s 스캔 · 복원 가능) · 디졸브 픽셀 버림 · ForceScan
- 실측: 같은 프레임 끔/켬 쌍 렌더(섬·던전) · trace 0 · 콘솔 에러 0

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-17 22:45:45 +09:00
깃 관리자 b2d08cf739 [WL] 캐릭터 「밝고 화사」 기준선 — 본체 그늘 밝히기(프로퍼티 블록)·구름 그늘 제외 · 얼굴 중심 채움빛 · 림은 따뜻한 흰빛으로 약하게 (PD 승인 「이 상태를 기본으로」)
- PD 피드백 3회 반영: ① 너무 푸르다 → 림 (1,0.96,0.88) ② 얼굴 포인트 라이트 추가(_WLFaceCenter 전역 · 얼굴 렌더러 경계 중심 · 반지름 ×3 = 몸 전체 채움빛) ③ 라이팅이 과해 어두워 보인다 → 림 세기 1.0·불투명 0.5·굵기 0.003 · 본체 _MinimumDarkness 0.38·그늘색 (0.46,0.38,0.44)·_Cloud_Strength 0 을 렌더러별 MaterialPropertyBlock 으로(재질 에셋 0줄 · 끄면 원래 값 되쓰기)
- Bloom 임계 1.2·세기 0.4(화면 전체가 뿌옇게 뜨지 않게)
- 실측: 같은 프레임 끔/켬 쌍 렌더(구름 그늘 오차 제거) · 섬 5패스·던전 7패스 · trace 0 · 콘솔 에러 0

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-17 22:23:02 +09:00
깃 관리자 86acc405e4 [WL] 캐릭터 역광 — 화면 공간 깊이 림(차가운 색 · 픽셀 굵기 일정) + 라이트 랩 + 피부 투과 덧그리기 패스 · 섬 Bloom 스코프 (PD 「캐릭터가 더 돋보이게」)
- WLCharBacklight.shader: 재질 배열 뒤 덧그리기 1패스(미리 곱한 알파) · 깊이 림 + 가까울 때 프레넬 보조 · 전역 _WLBacklightDir(카메라 기준 뒤+위+옆)
- WLCharacterBacklight: WLCharacterLook.Apply 끝에서 적용(섬 교체 모델·던전 PC) · 피부 재질만 SSS · 2 s 재적용(늦게 붙는 무기) · Bloom 스코프(Level01 · 카메라 후처리/HDR 원복)
- WLCharacterBacklightSettings(.asset): 값 전부 설정 에셋 · enabled_ 0 = 원복 · bloomEnabled 0 = 카메라/볼륨 0 변경
- 본체 재질·Toon 그래프·프리팹 0줄 · Play 중 생성물 DontSave 미사용

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-17 20:00:11 +09:00
깃 관리자 c313dd88fd [WL] 가격판 = 최소제곱 평면 눕힘(경사·다리 아치 밀착) · 잠긴 칸 자리 기억(다리 위 판 고정 · OnActivated 즉시 배치) · 십자 간격(inset 1.3 · 0.45배 · 트리거 2.6 · 장식/판/소품 회피) · 글자 깊이 검사(캐릭터가 가림) · 자동 진입 단일 인스턴스 + 8 s 대기
- WLIslandFlowV2: PadSurfaceY 최소제곱 평면 + 테두리 묻힘 0 · IsGroundCollider(소품·벽·난간 제외) · 자리 기억 PlayerPrefs WL_Island_PadSpots · Watch(OnActivated 즉시 PlacePurchasers · 다음 프레임/Baked 뒤 RefitPlaced) · IsSpotBlocked(캠프 장식·던전 문·발판·다른 판·IProp 콜라이더) 가장자리 따라 ±1/±2/끝 비킴 · ApplyOverlay(textAlwaysOnTop)
- WLIslandSettings: expansionPadInset 1.3 · Scale 0.45 · TriggerSize 2.6 · Lift 0.05 · TiltMax 20 · padClearRadius 1.4 · expansionPadOverlay 1 = 스프라이트만 깊이 검사
- WLSpriteOverlay.shader: Offset -1,-1 → 0,-2
- WLIslandSave: 세이브 초기화 때 자리 기억 삭제 · WLIslandCampDecor.Made 공개
- WLLeadAutoEnter: 단일 인스턴스(Create/Exists) · 로그인 완료 뒤 EnterDelay 8 s · 재시도 90 s

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-17 01:44:09 +09:00
깃 관리자 edaadc18fa [WL] 동물 NRE = 가격판 트리거 2개 겹침 → Activate 2회(상자 1개만) · 가격판 가장자리(inset 1.0)·모래 원(풀 없음)·깊이 검사(캐릭터 아래) · 타이틀 자동 진입 WLLeadAutoEnter (#816)
- WLIslandFlowV2/GateFlow: 트리거 상자 하나만(원본 십자 2개가 같은 크기로 겹쳐 OnTriggerEnter 2회 → BeginPurchase 2개 → island.Activate() 2회 → AnimalController.CreateAgent NavMeshAgent 중복 → NRE · PD 화면 실측) · ComputePadSpot(북동남서·땅 우선 고정 순서) 를 배치와 지형이 공유 · CollectPadSpots
- WLDemoTerrain: 가격판 자리(확장 판 + 현재 단계 발판)에 모래 원 padClearRadius 1.6(풀 인스턴스 없음) — 서명에 포함 · 실측 sand@pad 1.00 · 초기 굽기에 포함(재굽기 0)
- WLSpriteOverlay: ZTest LEqual + Offset(캐릭터·소품이 가린다 · 풀은 모래 원으로 해결)
- WLLeadAutoEnter: PlayerPrefs WL_LeadAutoEnter 표식 또는 직접 생성 → DevLogin(1 s 뒤 · 8 s 재시도) → AllComplete → OnClick_Screen · 실측 Play → 섬 53 s

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-17 00:46:15 +09:00
깃 관리자 28be65ada8 [WL] 다리 생성 에러(원본 활성화 경쟁 → 해금·비활성) 3겹 방어 · 확장 가격판 0.5배·판 크기 트리거·항상 위에(WL/SpriteOverlay) · EventSystem 경고 홍수 차단 · WLErrorTrace (#816)
- WLDemoTerrain.Update: 활성화 첫 프레임에 IsUnlocked 선반영 · 활성화 중 꺼지면 재활성 · 해금·비활성 칸 5 s 스캔 복구(InitializeProps 리플렉션)
- WLIslandFlowV2: PlacePurchasers 배율 expansionPadScale 0.5 · 트리거 expansionPadTriggerSize 3.4 m(십자 겹침 제거) · ApplyOverlay(스프라이트 WL/SpriteOverlay · TMP Overlay) — 우리 발판에도
- WLIslandUi: ReconcileEventSystems(원본 EventSystem 있으면 우리 것 삭제) · WLErrorTrace: 에러·예외·Coroutine 경고 최근 40건 보관
- 실측: 같은 프레임 땅+다리 활성화 오류 0 · 가격판 scale 0.50 · 상자 3.4 m · overlayApplied 9 · 콘솔 에러 0

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-17 00:18:43 +09:00
깃 관리자 3e6b94db45 [WL] 캐릭터 1.3배·캠프 1.2배 · 다리 칸 = 물 위 원본 다리(지형 제외·재질·가드 오인 수정) · 확장 가격판 이웃 칸 가장자리 위로 · 확장 = 원본 네모 판 숨김 + 새 땅 솟아오르기 1.2 s (#816)
- WLIslandSceneSetup: islandPlayerScale 1.3(표식 1회) · 캠프 campFireScale/campTentScale 2.88 · installPushMargin 0.75
- WLIslandFlowV2/ExpansionGate: PlacePurchasers — FI 가격판을 확장 방향 이웃(열린) 칸 가장자리 안쪽 2.2 m 지면 위로(트리거 동반 · 3 s 훑기·가드에서 1회) · 다리 위면 다리 상판
- WLDemoTerrain: 다리 칸(IsBridge) 발자국 제외 · 열리는 중(scale<1) 칸 즉시 포함 + 원본 렌더러 숨김 · Co_Rise(옛 격자 → 새 격자 보간 · SetHeightsDelayLOD · 인스턴서·거품 미룸)
- WLIslandTileFenceStrip: Bridge 메시는 자르지 않음(목록 0번 유지) · WLIslandGateFlow: 울타리 가드가 「_nofence」를 울타리로 오인해 다리를 매 프레임 끄던 것 수정 · MatchTileMaterials 다리 제외 · WLIslandLook: 다리 본체 재질 원본 유지
- 실측: 플레이어 1.30 · 가격판 (0,16)→(0,0.56,9.8) · (−24,8)→다리 위 (−17.8,1.38,8) · 솟아오르기 59~64 프레임/1.2 s · 다리 mesh=Bridge mat=Palette rendOn · 물 아래 −1.66 · 콘솔 에러 0

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 23:55:11 +09:00
깃 관리자 51b0ecc01d [WL] 설치물 생성 때 맵 깜빡 제거(재굽기 0) · 플레이어 밀어내기(좌판·나무·모닥불·텐트·던전 입구 · 땅 있는 방향만) (#816)
- WLDemoTerrain: 굽은 높이·스플랫이 같으면 재대입·인스턴서 재시작 생략 · 밭 구역 0.25 m 고정 + 마지막 유효 구역 유지 · 평평 자리 0.5 m 고정 · 진단 LastInputs · 숨김 목록 중복 제거
- WLIslandFlowV2: PushPlayerOut(설치물 범위+0.6 m 안의 플레이어를 바깥·섬 안쪽·축 순으로 땅 있는 방향으로 이동 · CharacterController 껐다 켬) · 던전 입구에도 적용 · WLIslandCampDecor: 모닥불·텐트에 적용
- 실측: 상인/나무/던전 지불 3회 rebuilds 1 유지 · 좌판 1.76 m · 나무 4.39 m(섬 안쪽) · 모닥불 1.55 m · 입구 1.09 m · 확장 가격판 던전 개방 후 active·렌더러 3/3

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 23:13:15 +09:00
깃 관리자 da6854461d [WL] 섬 가장자리 각짐·경계 완화 — 거품 띠 v스크롤 제거(계단·사선 원인) · 물가선 유클리드 거리 띠 · 펄린 노이즈(값 노이즈 격자 무늬 제거) · 페이드 2 m 안쪽 30 % + 잔굽이 · SSAO 스코프 세션 표식 (#816)
- WLShoreFoam: 물가선 모드 = 높이 차 → 수평 유클리드 거리(물가선 교점 414) · 런타임 텍스처 알파 제곱 감쇠·최대 0.75 · 격자 0.25 · **v 방향 스크롤 0**(이분 실측: 이것이 「각진 부분 사이의 사선」)
- WLDemoTerrain: GradNoise(펄린 · 16방향 표) 로 굽이·경사 폭·굴곡·둔덕 전부 교체 · 물가선 ±0.05~0.4 m 굴곡 0(notch) · 바다 바닥 굴곡 0 · 페이드 안쪽 비율 · 잔굽이 옥타브 · 픽셀 오차 값(0.05 허용)
- WLSkyScope: SSAO 끔 표식을 SessionState 에 두어 Play 중 컴파일(도메인 리로드) 뒤에도 복원 · EnteredEditMode 복원
- 값: terrainBlend 2 · terrainBlendInward 0.3 · terrainEdgeNoise 0.35/1 · terrainSlopeVar 0.25/7 · terrainBumpAmp 0.18/3 · terrainSeabedBumpAmp 0 · shoreFoamUp 0.3 · shoreFoamDown 2 · shoreFoamCell 0.25 · softDirtNoise 0.6 · softDirtFeather 2

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 22:35:36 +09:00
깃 관리자 e66bb838f6 [WL] 섬 룩 폴리싱 6건+1 — 풀 얼룩 원인 = SSAO(섬 동안만 끔) · 해변 경사 5 m 굴곡 · 물가선 거품 띠 · 발판 글자 비용 제거·세움 · 태양 1.15 · 구름 0.5/밝기 0.12/둔덕 0.5(콜라이더) (#816)
- WLSkyScope: SSAO 스코프(islandSsaoOff · ssaoOffScenes) — A/B 국소 질감 0.70→0.07 · 나갈 때/Play 종료 복원 · 렌더러 에셋 0줄
- WLDemoTerrain: 경사 폭 ±35 % · 경사면 굴곡 ±0.25 · 바다 바닥 ±0.12 · 섬 윗면 둔덕 0~0.5(평평 자리 제외) + 발자국 안 MeshCollider · Baked 이벤트 · Tuned(밀도·밝기) · 복사본 파괴
- WLShoreFoam: 터레인 물가선 모드(shoreFoamUp/Down · 런타임 텍스처)
- WLIslandLook: 태양 값(그림자 강도 · 없으면 생성) · WLIslandUi: 글자 upright · 설정: flowLabelFormat "{0}"

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 21:44:59 +09:00
깃 관리자 0ce4133dc8 [WL-816w/816zj] 울타리 고아 소탕(StageBarrierVisual.SweepOrphans — HideAndDontSave 루트가 Play 종료 후 살아남던 것 · 시작 시 14개 제거) · 데모 재질 구름 강도 런타임 복사본 demoCloudStrength 0.3(원본 무수정 · 「얼룩덜룩」 A/B 실측) (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 19:59:01 +09:00
깃 관리자 e5325b3864 [WL-816w/816zc/816zj] 복귀 후 울타리(전투 장벽 그림) 3중 차단(복귀 직전 Clear+HideImmediate · 섬 진입 Clear · 재훑기 무한) · 상인 프랍 0.6 · 지형 재대입 프레임 빔 방지(바뀔 때만 대입) (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 19:55:01 +09:00
깃 관리자 141197a5f1 [WL-816zc] 확장 노드 개방 시 숨겨 둔 원본 가격판을 즉시 되살림(Unlock → Restore · 던전 개방 실측: 가격판 표시 1) (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 18:36:39 +09:00
깃 관리자 b8aaf091aa [WL-816zj/816zc] PD 4건 — 지형 굽기 851→62 ms(링 0.5 m · s 격자 재사용 = 상인 설치 시 끊김 해소) · 설치물 스냅이 자기 콜라이더를 맞혀 뜨던 것(상인 y 3.0) 차단(platformSnapMaxRise 0.6 · 설치물 제외) · 상인 프랍 0.5 · 던전 노드 개방 시 원본 확장 가격판 개방(expansionUnlockOnDungeonOpen) · 데모 풀 0.22/꽃 0.26 (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 18:33:36 +09:00
깃 관리자 c40e8a4248 [WL-816zj] WLDemoTerrain.cs meta (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 14:49:47 +09:00
깃 관리자 461960168b [WL-816zj] 섬 바닥 = 데모 터레인 조립(Terrain + Terrain.mat + TerrainInstancesBehaviour) (#816)
- 새 WLDemoTerrain.cs: 섬 씬 로드 시 런타임 TerrainData+Terrain(자식 오브젝트 · 콜라이더 없음)
  · 범위 = 열린 타일 발자국 + terrainMargin 8(최대 128) · 높이맵 129² (안 = 윗면 y0 → 둥글린·굽이친 경계에서
  3 m smoothstep → −1.8 평평) · 스플랫 256² 2층(데모 Demo_Grass/Demo_Dirt · 잔디 경계 blend 1.0 · 밭 구역 =
  WLSoftDirt 와 같은 둥근+노이즈 식) · materialTemplate = 데모 Terrain.mat 그대로 · drawInstanced 0
- 풀 = 데모 TerrainInstancesBehaviour AddComponent(Demo.unity 1281~1309 값: 1층 2.5 [풀 100/0.35/0.04 · 꽃 1/0.35/0.04]
  · 2층 0.05 [자갈 1/0.7/0.1] · 3·4층 빈 배열 · 분산 0.5/0.2) · 메시 = scatter[] · 재질 = 데모 원본(§0-d 필드)
- WLIslandLook.Apply: demoTerrainEnabled 1 이면 SoftDirt·Seabed·ShoreSkirt·WLIslandGrass 생략(값 배타) ·
  재훑기·확장 훅에서 높이맵/스플랫만 재굽기(멱등) + 인스턴서 enabled 토글 · 타일 윗면 렌더러 숨김(콜라이더 유지)
- WLSoftDirt: Active 에 데모 모드 포함(흙 타일 숨김 배타 유지) · ShapeDist 정적 분리(같은 식 공유)
- WLIslandLookSettings §0-d + 에셋 값(데모 에셋 guid 참조 6종 · 값 그대로) · 되돌리기 demoTerrainEnabled 0

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-16 14:45:47 +09:00
깃 관리자 55c17ba871 [WL-816ze] 풀잎 0.22 · 꽃 0.26 (PD 지시) (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 14:22:52 +09:00
깃 관리자 341ed90101 [WL-816ze] 풀 도드라짐 완화(PD) — 풀잎 0.28 · 꽃 0.3 · 밑동 그라데이션 _VerticalDifference 0.5 (라이브 A/B 4종 중 채택) (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 11:18:52 +09:00
깃 관리자 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
깃 관리자 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
깃 관리자 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
깃 관리자 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
깃 관리자 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
깃 관리자 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
깃 관리자 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