측정 지점을 알베도가 아니라 **Play 화면 픽셀**로 옮겨 다시 쟀다(편집 모드 렌더는 무의미).
아레나 근접(직교 0.95) · 캐릭터 격리 마스크 · 덩어리(팔레트 칸) 지도 기준.
원인(실측 · 추정 아님)
ⓐ 소스 텍스처 = 무죄. *_WL.png 는 Suriyun 원본과 MD5 동일.
ⓑ 그림자색(_ShadowDiffuseColor) = 영향 0.2° 미만 — 중성/따뜻/어둡게 4종 비교.
ⓒ 포스트 그레이딩 Volume = 영향 0.1° 미만 — weight 0 으로 꺼도 색이 그대로.
🔴 진범 = 무드의 **조명**(키라이트 (1,0.78,0.46)x1.45 + 보라 앰비언트).
평면 색은 디테일이 없어 빛의 색조가 그대로 드러난다.
mood 0.30 -> 0 이면 금발·흰옷이 돌아오지만 고유색 132 -> 906(평탄함이 깨진다).
이번 조치 = 캐릭터 전용 휘도보존 역이득 _DiffuseColor (0.994, 1.024, 0.894)
씬·조명·814t 설정·ProjectSettings 는 하나도 안 건드린다.
유채색 가중 dHue 25.1° -> 17.0° · 머리칼 -16.9° -> -7.0° · 흰 튜닉 -74.1° -> -10.4°
붉은 바지 -7.7° -> +0.7° · 게임 크기 고유색 132 -> 121 (4.1 %)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
814x 실측: 림을 켜면 캐릭터 영역 고유색이 52 -> 261 로 되돌아간다
(림이 표면마다 새 밝기를 만들어 「넓은 면 = 한 색」을 깬다).
PD 도 「흰색으로 빛이 반사된 느낌」을 지적했다. 두 이유가 같은 곳을 가리킨다.
rimStrength 값(0.6)은 남겨 두어 켜면 그대로 복귀한다.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
메시 UV 를 「색 하나를 가리키는 좌표」로 새로 굽는다. 삼각형 안에서 UV 가 상수라
화면에서 아무리 축소돼도 그 덩어리는 항상 단색 — 평균 날 디테일이 애초에 없다.
실측(WL_ArenaProto · 직교 10 · 1080x1920 · 캐릭터 2,996 px · 814u/814v 와 같은 축)
서로 다른 색 비율 89.3 % -> 1.7 % (합격선 <= 25 %)
캐릭터 영역 고유색 2,676 -> 52 (합격선 <= 60)
덩어리당 색 단계 - -> 평균 2.79 (14칸 중 13칸이 2~3 · 합격선 <= 4)
눈 진한 점 10 px -> 36 px (눈 1개 7x5 px)
색상(Hue) 오차 - -> 몸통 2.4° 피부 3.7° 머리칼 3.5°
삼각형 수 무변경 · 정점 2,520 -> 2,776 (+10 %)
원본 수정 0 — FBX/원본 png/프리팹/씬 전부 무변경. 메시는 복사본(.asset)에 UV 만 새로 굽고
런타임에 갈아끼운다. 되돌리기 = 새 SO 의 enabled_ = 0 이면 814s+814t 상태 100 %.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PD 「② 기존 텍스처를 이 화풍으로 변환으로 해보자」.
로컬 ComfyUI(127.0.0.1:8000) HTTP API 를 직접 호출 — MCP 불필요.
- 체크포인트 noobaiXLNAIXL_epsilonPred05Version(LoRA 학습 베이스 · PD 안내)
- LoRA ElinSpriteNoobLocon_byKonan 0.9
- img2img denoise 0.40 (0.30~0.50 비교 후 채택 · 0.50 은 배치가 틀어진다)
- 원본 알파 복원 + 팔레트 32/48/64 색 양자화
UV 무변경 확인: 갑옷/튜닉/바지/부츠가 전부 제자리에 찍힘(인게임 렌더 실측).
아직 머티리얼/프리팹에 꽂지 않음 — 후보 파일만.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PD 「왜 흰색으로 빛이 반사된 느낌이 나는거지?」
원인 = 림라이트(rimStrength 1.6) 가 밝은 면에서 흰색으로 포화.
색은 금색(1, 0.82, 0.5)이지만 세기가 높아 흰색으로 탄다.
외곽선 두께는 PD 승인값(캐릭터 1 / 배경 2.5) 유지.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- §1 실측: 부위별 텍셀→화면픽셀 밀도(앞면 삼각형 · 화면면적 가중) · 올리브 원인 규명
- 얼굴 face02_V1..V4 · 머리칼 Hair05_V1..V4 (원본 복사 → 제자리 가공 · UV/메시 무변경)
- 올리브 차단: HSV 의 V 만 조절(RGB 배율 금지 → 채널 포화 0) + 단별 Hue 를 기준색 ±cap 로 제한
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- ArenaWalker.body 가 비어 있어 스크립트가 자기 자신(빈 오브젝트)을 움직이고 있었다
→ body = PC_LH_M05 로 연결(PD 실측 보고 「캐릭터 움직임이 없어」의 직접 원인)
- body 가 비어 있던 탓에 Start() 의 Animator.fireEvents=false 도 캐릭터에 적용되지 않아
'Event_Idle' has no receiver! 가 33건 발생 → 빈 수신자 ArenaAnimEventSink 를 붙여
에디트/플레이 양쪽에서 차단(fireEvents 는 런타임 전용이라 에디트 모드를 못 막는다)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- Animator.fireEvents=false: 클립 Idle 이 쏘는 Event_Idle 의 수신자(WizardActor)를
§1 에서 떼어 내 "AnimationEvent … has no receiver!" 가 2초마다 났다(실측 6회/12초).
빈 수신자 컴포넌트를 붙이는 대신 이벤트 발사를 끈다 → Play 콘솔 error 0.
- autoWalk 프로브(기본 off): 중앙→14 m 소요 시간을 실측하기 위한 씬 전용 스위치.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- PC_LH_M05 씬 인스턴스에서 게임 컴포넌트 7종 제거(WizardActor·NavMeshAgent·
Rigidbody·CapsuleCollider·SkinnedMeshAfterImage·WLPcScaleCompensator·
WLWeaponFitter) → 게임 초기화 없이 Update 가 돌며 터지던
KeyNotFoundException: 'Freeze'(Actor.cs:1065) 제거. 프리팹 수정 0.
루트 스케일 1.05266 · 몸 높이 1.21651 m 는 제거 전후 델타 0 실측.
- Main Camera 를 Demo.unity 실측값으로 이식: 직교 size 10 · euler(30,60,0)
· near 0.3 / far 500 · clear Skybox · depth -1 · HDR/MSAA on
+ UniversalAdditionalCameraData(post off · AA none · rendererIndex -1).
- 씬 라이트 3개에 UniversalAdditionalLightData 추가(데모와 동일 구성).
- Terrain.drawTreesAndFoliage false→true(데모와 동일).
- ArenaWalker.cs(신규 · 씬 전용): WASD 이동 + 방향 회전 + idle/run 상태 재생
+ 카메라 추적 + Terrain.SampleHeight 접지. 속도 3.9 / 회전 300 은
LH_M05.prefab NavMeshAgent 실측값.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- 새 씬 Assets/WL/Look/Arena/Scenes/WL_ArenaProto.unity (기존 씬·빌드 씬 목록 수정 0)
- 바닥 = Unity Terrain 80x12x80 + Demo_Grass/Demo_Dirt 레이어 + Demo Terrain.mat(ToonTerrain) — 데모 실측 방식 그대로
- 경계 = 반경 14 m 에 Stone_1/2 + Tree + Arch_Large/Small · 연못 Water_Plane · 배경 Windmill/House
- 캐릭터 LH_M05 중앙(스케일 1.05266 = f_Scale 0.7 x 보정 1.5038) · 프리팹 수정 0
- 조명/ambient/fog/스카이박스 = 데모 실측값 그대로
- 머티리얼 14종(+Terrain.mat) · 삼각형 29,875 (목표 15종/5만 이내)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PD 결정 「1. 바꿔. 2. 붉은 기사 M05로 해」 · 조사서 §C① ⓒ안.
- 새 프리팹 Assets/Res_Addr/PC/LH_M05.prefab — M05 모델 + Ai01 컴포넌트 구성 이식
(WizardActor·NavMeshAgent·Rigidbody·CapsuleCollider·SkinnedMeshAfterImage · Layer 3 · rootMotion 0)
무기 소켓 7/7 을 Ai01 과 **같은 본 경로**에 같은 로컬 TRS 로 재생성 → ClassConfig 무기 인덱스 무변경
Animator 아바타 = M05 자신의 Humanoid → 기존 pcanim_* 12개 + 이벤트 250개가 그대로 리타깃
- 되돌리기 스위치 WLCharacterSwapSettings(SO) — enabled/pcPrefabName/verboseLog · off 면 원본 100 %
- 크기 보정 WLPcScaleCompensator — 원 높이 1.1316 × 1.5038 = 1.7017 m(= Ai01)
→ 인게임 1.1912 m · 로비 1.7017 m 로 Ai01 과 동일. **테이블 ClassConfig 수정 0**
(f_Scale 을 고치면 스위치를 껐을 때 Ai01 이 1.79 m 가 되어 되돌리기가 깨진다)
- CapsuleCollider 는 루트 스케일을 받으므로 로컬 값을 1.5038 로 나눠 월드 크기를 Ai01 과 동일하게
- 원본 수정 = PCInfo.cs 1줄(상한) · Addressables 0 · Assets/Suriyun/** 수정 0(참조만)
실측: 머리:키 5.49 → 2.55 · 도트A 머리 픽셀 7.6 → 16.5 px (+115.5 %)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Assets/Suriyun/Scripts/MouseOrbitImproved.cs 와 기존
Assets/ResWork/Suriyun/Scripts/MouseOrbitImproved.cs 가 둘 다 전역 네임스페이스의
같은 클래스라 중복 정의로 프로젝트 전체가 컴파일되지 않았다(58cc4f663 소행).
둘 다 우리 게임 씬/맵에서는 쓰이지 않는 벤더 데모용 궤도 카메라라,
이번에 들어온 쪽만 지워 임포트 전 상태로 되돌린다.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PD 「해상도만 저하된 느낌」 실측 진단:
캐릭터가 차지하는 픽셀이 84/62/47 px 로 도트 게임(16~48 px)보다 촘촘했다.
ortho 는 유지하고 픽셀 높이만 낮춰 42/31/23 px 로 맞춘다.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PixelCameraManager.viewCamera/upscaledCanvas 는 [SerializeField] 가 아니라
프리팹에 저장되지 않아 인스턴스마다 항상 null → Initialize() 가 항상
FindAnyObjectByType 로 찾는다. Object.Destroy 는 프레임 끝 처리이므로
모드 전환(Teardown→Assemble 동일 프레임)에서 새 매니저가 아직 살아 있는
이전 리그의 뷰 카메라를 잡았고, 프레임 끝에 그것이 파괴되며
CanvasViewCamera.get_Aspect 에서 매 프레임 예외가 났다(PD 실측 200건).
FindAnyObjectByType 는 비활성 오브젝트를 제외하므로 파괴 전에 SetActive(false).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PD 실측: [카메라] 모드를 바꾸면 UpscaledCanvas.SetCanvasRenderTexture 에서
'Material has been destroyed' 예외가 매 프레임(콘솔 978건).
원인 = Object.Destroy 가 프레임 끝 처리라, 머티리얼 인스턴스를 지운 뒤에도
같은 프레임에 PixelCameraManager.LateUpdate 가 돌아 targetTexture==null 을 보고
RT 를 새로 만들고 이미 지운 머티리얼에 SetTexture 했다.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
몹 처치마다 MobActor.Set_Die()(MobActor.cs:444)에서 NullReferenceException 이 났다.
원인 = 프리팹 저장 상태가 비활성인 IngameUIs 가지 아래의 MonsterSimpleInfo 를
스테이지 진입 때 SetActive(false) 해 버려서, 가지가 켜져도 그 노드만 꺼진 채 남아
Awake 가 영영 안 돌고 MonoBehaviourSingletonTemplate.Ins 가 null 로 남은 것.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- Assets/WL/Combat/Stage/Barrier/ 신규 3파일 + Resources SO
- 워프백 = 813w3/813t2 와 같은 원본 Actor.Set_Warp · NavMesh 스냅 · 카메라 리드 스냅
- 보이기 3스타일: ⓐ Hovl Marker 3 Zone Loop 스케일 ⓑ 울타리·바위 프롭 링 ⓒ 불꽃 링(총량 상한)
- 캡처는 다음 커밋
- ResetForProbe 가 「스왑할 것 없음」 캐시를 안 비워 다음 ApplyNow 가 전부 건너뛰던 문제
- 물 스왑을 맵 스윕보다 먼저 — 맵 스윕이 물 렌더러를 캐시에 넣어 물이 안 바뀌던 문제
- 프로브 H(ApplyNow/RestoreNow 왕복) 추가 → RESULT PASS 46/46
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- 실측: Toon 셰이더에 _CLOUDSENABLED 키워드는 없다(구버전 잔재) → 구름 on/off 는 _Cloud_Strength
- 지면 판정에 평평함·면적비 추가(나무 수관·배경 산 제외) · 잔디 높이를 m 단위 SO 로
- 캐릭터 외곽선 기본 off(스킨드 메시는 270px 에서 노이즈) · SO characterOutlines
- 캡처 6장(270×480 → 1080×1920 Point 확대 · 직교) · 프로브 PASS 38/38
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>