Commit Graph

13 Commits

Author SHA1 Message Date
깃 관리자 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
깃 관리자 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
깃 관리자 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
깃 관리자 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
깃 관리자 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
깃 관리자 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
깃 관리자 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
깃 관리자 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
깃 관리자 b7d26d2bb7 [WL-816h] 하늘을 「활성 씬」에서 빌려 쓰고 나갈 때 돌려준다 + 섬 물을 WL 워터 셰이더로 (#816)
- WLSkyScope 신설 — RenderSettings 는 활성 씬(InGame) 소유라 섬이 쓴 하늘이
  전투 맵까지 남는다. 섬·던전에 들어갈 때만 빌리고 나가면 스냅샷 그대로 복원.
  스냅샷은 활성 씬마다 한 번만 뜬다(재획득 때 다시 뜨면 던전 씬의 WL_ReferenceLook
  이 이미 바꾼 값을 「원래 값」으로 잘못 기억한다 — 실측으로 발견).
  앰비언트는 WLReferenceLook 이 이미 걸려 있으면 건드리지 않는다(던전 무드 보존).
- 섬 바다(1000×1000 평면)를 ToonWaterU(WL_Water_Ocean 복사본)로 교체. 3단 A/B/C.
- Assets/FarmingIsland/** 0줄 · ProjectSettings 0줄 · 전역 URP/품질 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 16:04:28 +09:00
깃 관리자 0b649230d8 [WL-816f] 바닥을 데모와 일치 — 잔디 단색 + 풀 대비↓ + 밀도 2.5→1.8 + 밭 칸 표시 톤↓ (#816)
PD 「내가 실행할 때는 전혀 풀밭이 아니야 · 바닥이 완전히 같은 느낌이 나도록」

■ ① PD 실행 경로 실측 = 훅은 실제로 돈다(버그 아님)
  InGame 활성 + Level01 Additive 재현: 머티리얼 1,575 렌더러 교체 · 풀 생성 ·
  ReferenceLook on · 콘솔 error 0. 「안 나온다」가 아니라 「데모와 전혀 다르게 보인다」였다.
  다만 이 경로에서만 생기는 실측 차이 2가지를 찾아 보고에 적었다
  (세이브 파일이 활성 씬 이름으로 갈린다 · RenderSettings 가 InGame 소유).

■ ② 바닥 3요소 (같은 화각·같은 거리 캡처로 판정)
  체크무늬 : 잔디 타일 텍스처는 단색(#A0E4A2) — 격자 0. 밭(Soil)의 칸 표시는
             게임 기능이라 남기고 **색만** 데모 톤으로(soilTint·soilCheckerContrast).
  바닥 색   : #AFEDAE → #A0E4A2 (화면색 평균 데모 #94BE81 ↔ 우리 #9AC37E)
  풀 색     : 새 복사본 Farm_Grass_Demo.mat (_DiffuseColor #A6E39F · _ShadowDiffuseColor #95CC8F)
             → 풀이 바닥과 같은 색으로 깔려 「카펫」이 사라진다(에지% 8.09 → 1.96 · 데모 1.79)
  밀도      : 2.5 → 1.8 (6.25 → 3.24 개/㎡)

  🔴 Assets/FarmingIsland/** 0줄 · Assets/Script/** 0줄 · 3DPixelArtEnvironment 0줄 ·
     ProjectSettings 0줄 · 전역 URP/품질 0. 되돌리기 = enabled_ = 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 14:21:45 +09:00
깃 관리자 1921884672 [WL-816e] 실게임 섬(Level01)에 데모 룩 런타임 적용 + 타일 위에 데모 풀밭 인스턴싱 (#816)
- WLIslandLook: RuntimeInitializeOnLoadMethod + sceneLoaded 로 Level01 에 머티리얼·조명·ReferenceLook 을 얹는다(씬 파일 무변경)
- WLIslandGrass: 데모 InstancesBehaviour 를 상속해 섬 타일 윗면에 풀·꽃·자갈을 GPU 인스턴싱(콜라이더 0 · NavMesh 영향 0)
- 윗면/길 마스크는 에디터에서 구워 SO 에 저장(FI 메시 isReadable=0 · FarmingIsland 임포트 설정 무변경)
- 섬 타일 텍스처를 데모 지면색 실측값으로 재생성(체크무늬 두 초록 → 한 색)

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