- 같은 PD 구도·같은 구름 위상·풀 인스턴스 1155 동일에서 816q(원본 mat/텍스처) vs 816r(Arena2) A/B
- 보이는 풀 12.44% -> 10.69% · 에지% 1.65 -> 1.69(노이즈) · HF 1.58 -> 1.43 · 바닥초록 #89B074 -> #89B375
- 원인 후보 전부 실측 기각: 머티리얼 값 차이 0건 · 텍스처 임포트 동일(8x8/RGB24/Point/mip1) · 풀 인스턴스 동일
- 기존 a_demo_vs_island.png 이 서로 다른 프레임(구름 위상)을 나란히 붙여 불공정했던 것 -> 같은 프레임쌍으로 재작성
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>
- 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>
- 실측: 바닥만 렌더하면 띠세기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>
적(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>
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>
더미 = 던전 씬 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>
- 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>
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>
- 원인(실측): 전투 시작 신호는 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>
- "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>
무늬가 넓어 보이던 원인(실측) = 물 평면이 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>
- 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>
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>
PD 추가 지시 2건.
① 「던전 열기는 한 번만 · 이후 같은 자리에 또 등장하면 안 된다」
던전 한 줄 = 발판 한 자리(`WLDungeonDef.platformUseFarm`·`platformPosition`).
값을 치르면 그 자리는 영영 비고 다음 발판은 표가 지정한 **다른 자리**에 선다.
해금 수는 PlayerPrefs 에 남겨 껐다 켜도 유지된다(실측: Play 재시작 후에도
던전 1 그대로 · 밭 자리 발판 없음 · 다음 발판만 (-2,0,-2) 가격 30).
FI `RefreshIsland` 의 가격표 재생성이 우리 발판을 되살리지 않는 것도 실측
(섬 확장 4→5칸 후 발판 수 1 유지 · 자리 그대로).
덤으로, 골드가 많을 때 가만히 서서 던전이 연달아 팔리던 것도 막았다.
② 던전 진입 멈춤
던전 씬에는 `MobControlMgrList` 가 0개다(실측: WL_Dungeon01·02·ArenaProto 전부 0).
섬과 같은 이유로 로딩 칸 0 이 안 찬다 → 던전 표의 씬 이름을 로딩 보정 대상에 포함.
③ §1 남은 몫 — 새로 연 타일이 `WL/HullOutline` 패스를 못 받아(슬롯 1 vs 2)
경계에서 테두리 유무가 갈렸다. 열린 직후 기존 타일의 머티리얼 배열을 그대로
물려준다(새 머티리얼 0개). 실측: 8칸 전부 재질 조합 1가지.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PD 지시 3건 중 §2·§3.
- 초기 상태: 밭(Farm·Soil) 렌더러·콜라이더만 끄고(오브젝트는 살려 둔다 —
끄면 섬 확장 때 FI 가 꺼진 오브젝트에서 코루틴을 시작해 콘솔 에러가 난다),
던전 입구는 해금한 수만큼만 세운다. 처음에는 0개.
- 발판 = FI 가 섬 확장에 쓰는 **가격판 프리팹 그대로**(PD 정정: 새 모델 금지).
실측으로 프리팹 렌더 범위를 재서 밭 한가운데·바닥 바로 위로 맞춘다
(원본은 물 위 y≈-0.5 에 눕도록 돼 있어 섬 위에 그냥 놓으면 지면 아래로 들어간다).
- 지불도 FI `Purchaser` 그대로 — 보이지 않는 더미 `Island` 를 대상으로 물리고
그 `OnActivated`(public event)를 받아 던전 표의 한 행을 켠다. FI 코드·프리팹 0줄.
- 시작 골드 500 → 10. `IslandManager.Awake` 안에 이미 있던 1줄 훅(세이브 이름)
시점에서 `startingMoney` 를 바꾼다 = FI 새 줄 0.
- 던전 하나 = 발판 한 자리. 값을 치르면 그 자리는 영영 비고 다음 발판은 다른 자리.
- 던전 씬도 `MobControlMgrList` 가 0개라 로딩 칸 0 이 안 찬다 → 던전 표의
씬 이름을 로딩 보정 대상에 포함.
되돌리기: `WLIslandSettings.gateFlowEnabled = 0` 하나로 지금 상태 100 %.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- 물 채택 = Farm_Water_WL_C (ToonWaterU · WaterColor(0.36,0.69,0.82) ·
DarkColor(0.17,0.42,0.57) · Foam 2.2/28/0.4 · Height 0.09 · WaweSpeed 0.4).
A/B/C 3단을 같은 카메라로 찍어 고름 — 쨍한 원색을 뺀 값.
- 하늘 격리 실측: 섬 == 던전(픽셀 동일) · 전투 맵은 글자 하나까지 원래대로.
- 성능(같은 카메라 60프레임 × 2회 교대): 전 0.855/0.889 → 후 0.901/0.886 ms/frame.
- 걷기 6.00 m · 확장 타일 5→4→5 · 물 MeshCollider 무변경.
- 되돌리기: waterMode=0 → FarmingIsland 물 100 % · enabled_=0 → 전체 off (둘 다 실측).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- 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>
PD 「섬의 특정 지역(캐릭터가 선 지역)의 지면이 안 보인다」 → 「여전히 투명」
진짜 원인(실측): 전투용 카메라 기능 OccluderFade 가 카메라와 플레이어
사이를 가리는 물체를 ShadowsOnly 로 내려 숨긴다. 섬 타일은 8m 두께
블록이라 그 판정에 걸려, **플레이어가 선 타일만** 안 보였다.
Island (1) shadow=ShadowsOnly / 나머지 4개 shadow=Off ← 결정적 실측
물 렌더러를 꺼 보니 그 자리에 배경색이 비쳐 「바닥이 없다」를 확인했다.
앞선 추정(런타임 재질 복제 _814t)은 원인이 아니었다. 다만 그 수정도
타일 간 색차를 없애므로 그대로 둔다.
조치: OccluderFade 제외 목록에 island,bridge,dock 추가(데이터 1줄).
terrain/ground/water 등과 같은 성격이다.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PD 「섬의 특정 지역(캐릭터가 선 지역)의 지면이 안 보인다」.
실측: 그 타일의 재질은 런타임 복제본 Farm_IslandTop_Demo_814t 였고,
같은 프레임에서 나중에 열려 원본 재질을 쓴 타일 Island (4) 만 정상
렌더됐다. 복제본으로 바꾸면 하늘색이 비치고 원본으로 되돌리면 즉시
정상 렌더되는 것을 화면으로 확인했다(교체 테스트).
바닥은 넓은 평면이라 대비 복제의 이득이 없으므로 제외 목록에 넣는다.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PD 「title 씬에서 시작하면 로딩 90%에서 더이상 진행이 안된다」
→ 그래서 _MainMenu 로 우회했고, 그 탓에 우리 섬에 도달한 적이 없어
「풀밭이 전혀 안 바뀐다」로 이어졌다. 두 증상의 뿌리가 하나였다.
원인(PD 의 멈춘 화면에서 Lead 직접 실측):
list_loadingComplete = [False, True]
칸 1 = UI 준비(NewGameUI.cs:88) → True
칸 0 = 몬스터 프리팹 로드(MobControlMgrList.cs:28) → False
섬(Level01·맵 900)은 전투 맵이 아니라 MobControlMgrList 가 아예 없다
(실측 인스턴스 0) → 칸 0 이 영원히 False → 로딩창이 안 닫힌다.
씬·풀·게이트·룩·PC 는 전부 정상 생성돼 있었고 화면만 가려져 있었다.
조치: 섬 씬이 붙은 뒤 MobControlMgrList 가 없으면 칸 0 을 우리가 채운다.
전투 맵은 건드리지 않는다(그쪽은 원본이 채운다). 원본 파일 0줄 수정.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PD 「세이브가 경로마다 갈리면 안돼. 그냥 기존 세이브를 초기화하고
단일 경로로 맞춰」.
원인(816f 실측): IslandManager.Awake 가 saveFileName 을 활성 씬 이름으로
잡아, 섬 단독 Play 는 Level01.dat · 게임 정식 경로(Additive)는 InGame.dat
로 갈렸다. 섬을 키워 놔도 다른 경로로 들어가면 초기 상태가 나왔다.
조치:
- IslandManager.cs:119 **1줄** 훅 → WLIslandSave.ResolveSaveName()
- 새 파일 WLIslandSave.cs + SO(WL_Island · enabled_=1)
- 기존 세이브 4개(InGame/Level01/Level02/WL_FarmLook.dat) 백업 후 삭제
→ Temp/claude/island_save_backup_143818
- enabled_=0 이면 원래 동작(씬 이름)으로 복귀
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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>
PD 보고: 'OnStep' on animation 'Run' has no receiver!
원인(실측): WLIslandPcRig 가 FI 플레이어의 컨트롤러를 우리 치비 비주얼의
Animator 에 복사해 같은 클립을 함께 돌린다(816d). FI 의 Run 클립이 쏘는
OnStep 의 수신자 PlayerController(FarmingIsland/Scripts/Core/PlayerController.cs:243)
는 부모에 있는데, 유니티는 애니메이션 이벤트를 Animator 와 같은 GameObject
에만 보낸다 → 비주얼 자식에서 수신자 없음.
부모 Animator 가 이미 같은 이벤트를 PlayerController 로 보내 발소리는 정상
재생된다. 비주얼 쪽은 중복이므로 수신자를 만들면 발소리가 두 번 난다
→ 비주얼 Animator 의 fireEvents 만 끈다. 기존 파일 0줄 수정(자가 부착).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>