- 던전 풀: 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>
- 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>
- 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>
- 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>
- 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>
- 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>
물 — 데모 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>
땅(타일 메시)은 각진 그대로 두고, 풀 카펫의 **바깥 윤곽만** 둥글게 읽히도록
배치 넓이를 바꾼다. 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>
밭(흙) 제외 사각형을 반듯한 사각형 대신 「모서리 반지름 + 경계 노이즈」로 판정해
풀이 흙 가장자리로 불규칙하게 파고들게 한다. 길·건물·소품 제외 규칙은 무변경.
- 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>
ViewMovedEnough 가 _viewOn=false 에서 곧장 false 를 돌려줘, 카메라가 씬보다 늦게 생기는 경우
가시 범위가 영영 안 켜지고 섬 전체에 인스턴스가 남았다(그림은 정상 · 최적화만 무효).
카메라가 생겼는데 아직 범위를 못 잡았으면 true 를 돌려 한 번 다시 고르게 한다.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- 실측: 바닥만 렌더하면 띠세기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>
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>
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>