[WL-816b] 무기·코스튬 팔레트 UV 도트화 (#816)
무기용 값 = 덩어리 16 · 팔레트 12칸 (캐릭터 40/16 은 과하다 — 무기는 화면이 1/10) - 6칸은 육안 기각: 08 방패 문양이 뭉치고 05_Bow_004 노란 장식이 초록으로 돈다(dHue 30.3°→0.03°) - 채도 복원을 min(평균색 채도, 복원값)으로 제한 — 금속이 갈색으로 뜨던 1차 육안 기각 원인 제거 - Hue 는 ±8° 하드 클램프 · 전역 채널 이득 0 인게임 Play 실측(포스트 포함 · 게임 크기): 서로다른색 11종 전부 25% 이하 (Elven_Sword 82.6→7.7 · Wand 38.1→8.6 · Dagger2 65.6→15.0) · 고유색 최대 70(≤200) 캐릭터 기존 수치 악화 0 (167 · 5.64% → 167 · 5.64%) · 되돌리기 11/11 동일 코스튬 = 해당 없음(46종 전부 어른 Ai01 계열 · 스왑 대상은 110001 하나뿐 = 이미 도트화된 M05) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
|
@ -1,26 +1,26 @@
|
||||||
=== WL-816b 최종 굽기 (덩어리 6 · 팔레트 6칸 · 32×32 · Point · 밉 OFF · 무압축) ===
|
=== WL-816b 최종 굽기 (덩어리 16 · 팔레트 12칸 · 32×32 · Point · 밉 OFF · 무압축) ===
|
||||||
기준 머티리얼 M05_ToonP shader=Shader Graphs/Toon _Shades=3 _DiffuseColor=RGBA(0.993, 1.028, 0.874, 1.000)
|
기준 머티리얼 M05_ToonP shader=Shader Graphs/Toon _Shades=3 _DiffuseColor=RGBA(0.993, 1.028, 0.874, 1.000)
|
||||||
PP_Theme_10_Mace_003 c6 p6 → 덩어리 26 칸 6 verts 7719→7719 tris 3848 dHue mean 2.96 max 3.92
|
PP_Theme_10_Mace_003 c16 p12 → 덩어리 26 칸 12 verts 7719→7719 tris 3848 dHue mean 2.96 max 3.91
|
||||||
→ mesh Assets/WL/Look/Character/Meshes/PP_Theme_10_Mace_003_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_PP_Theme_10_Mace_003.png · mat Assets/WL/Look/Character/Materials/PP_Theme_10_Mace_003_ToonP.mat
|
→ mesh Assets/WL/Look/Character/Meshes/PP_Theme_10_Mace_003_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_PP_Theme_10_Mace_003.png · mat Assets/WL/Look/Character/Materials/PP_Theme_10_Mace_003_ToonP.mat
|
||||||
PP_Theme_10_Shield_003 c6 p6 → 덩어리 64 칸 6 verts 7671→7671 tris 4230 dHue mean 0.00 max 0.00
|
PP_Theme_10_Shield_003 c16 p12 → 덩어리 64 칸 12 verts 7671→7671 tris 4230 dHue mean 0.00 max 0.00
|
||||||
→ mesh Assets/WL/Look/Character/Meshes/PP_Theme_10_Shield_003_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_PP_Theme_10_Shield_003.png · mat Assets/WL/Look/Character/Materials/PP_Theme_10_Shield_003_ToonP.mat
|
→ mesh Assets/WL/Look/Character/Meshes/PP_Theme_10_Shield_003_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_PP_Theme_10_Shield_003.png · mat Assets/WL/Look/Character/Materials/PP_Theme_10_Shield_003_ToonP.mat
|
||||||
Elven_Sword_01 c6 p6 → 덩어리 6 칸 6 verts 444→464 tris 404 dHue mean 1.36 max 5.95
|
Elven_Sword_01 c16 p12 → 덩어리 16 칸 12 verts 444→500 tris 404 dHue mean 1.35 max 5.95
|
||||||
→ mesh Assets/WL/Look/Character/Meshes/Elven_Sword_01_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_Elven_Sword_01.png · mat Assets/WL/Look/Character/Materials/Elven_Sword_01_ToonP.mat
|
→ mesh Assets/WL/Look/Character/Meshes/Elven_Sword_01_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_Elven_Sword_01.png · mat Assets/WL/Look/Character/Materials/Elven_Sword_01_ToonP.mat
|
||||||
PP_Theme_08_Mace_003 c6 p6 → 덩어리 106 칸 6 verts 18852→18852 tris 6688 dHue mean 0.35 max 7.29
|
PP_Theme_08_Mace_003 c16 p12 → 덩어리 106 칸 12 verts 18852→18852 tris 6688 dHue mean 0.07 max 0.47
|
||||||
→ mesh Assets/WL/Look/Character/Meshes/PP_Theme_08_Mace_003_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_PP_Theme_08_Mace_003.png · mat Assets/WL/Look/Character/Materials/PP_Theme_08_Mace_003_ToonP.mat
|
→ mesh Assets/WL/Look/Character/Meshes/PP_Theme_08_Mace_003_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_PP_Theme_08_Mace_003.png · mat Assets/WL/Look/Character/Materials/PP_Theme_08_Mace_003_ToonP.mat
|
||||||
PP_Theme_08_Shield_003 c6 p6 → 덩어리 28 칸 6 verts 9168→9168 tris 4586 dHue mean 0.02 max 0.28
|
PP_Theme_08_Shield_003 c16 p12 → 덩어리 28 칸 12 verts 9168→9168 tris 4586 dHue mean 0.02 max 0.28
|
||||||
→ mesh Assets/WL/Look/Character/Meshes/PP_Theme_08_Shield_003_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_PP_Theme_08_Shield_003.png · mat Assets/WL/Look/Character/Materials/PP_Theme_08_Shield_003_ToonP.mat
|
→ mesh Assets/WL/Look/Character/Meshes/PP_Theme_08_Shield_003_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_PP_Theme_08_Shield_003.png · mat Assets/WL/Look/Character/Materials/PP_Theme_08_Shield_003_ToonP.mat
|
||||||
PP_Theme_05_Bow_003 c6 p6 → 덩어리 54 칸 6 verts 12070→12070 tris 5780 dHue mean 0.01 max 0.02
|
PP_Theme_05_Bow_003 c16 p12 → 덩어리 54 칸 12 verts 12070→12070 tris 5780 dHue mean 0.00 max 0.00
|
||||||
→ mesh Assets/WL/Look/Character/Meshes/PP_Theme_05_Bow_003_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_PP_Theme_05_Bow_003.png · mat Assets/WL/Look/Character/Materials/PP_Theme_05_Bow_003_ToonP.mat
|
→ mesh Assets/WL/Look/Character/Meshes/PP_Theme_05_Bow_003_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_PP_Theme_05_Bow_003.png · mat Assets/WL/Look/Character/Materials/PP_Theme_05_Bow_003_ToonP.mat
|
||||||
PP_Theme_05_Bow_004 c6 p6 → 덩어리 100 칸 6 verts 9682→9682 tris 4586 dHue mean 3.69 max 30.32
|
PP_Theme_05_Bow_004 c16 p12 → 덩어리 100 칸 12 verts 9682→9682 tris 4586 dHue mean 0.01 max 0.03
|
||||||
→ mesh Assets/WL/Look/Character/Meshes/PP_Theme_05_Bow_004_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_PP_Theme_05_Bow_004.png · mat Assets/WL/Look/Character/Materials/PP_Theme_05_Bow_004_ToonP.mat
|
→ mesh Assets/WL/Look/Character/Meshes/PP_Theme_05_Bow_004_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_PP_Theme_05_Bow_004.png · mat Assets/WL/Look/Character/Materials/PP_Theme_05_Bow_004_ToonP.mat
|
||||||
PP_Theme_03_Scepter_001 c6 p6 → 덩어리 49 칸 6 verts 8464→8464 tris 4184 dHue mean 0.00 max 0.00
|
PP_Theme_03_Scepter_001 c16 p12 → 덩어리 49 칸 12 verts 8464→8464 tris 4184 dHue mean 0.00 max 0.00
|
||||||
→ mesh Assets/WL/Look/Character/Meshes/PP_Theme_03_Scepter_001_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_PP_Theme_03_Scepter_001.png · mat Assets/WL/Look/Character/Materials/PP_Theme_03_Scepter_001_ToonP.mat
|
→ mesh Assets/WL/Look/Character/Meshes/PP_Theme_03_Scepter_001_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_PP_Theme_03_Scepter_001.png · mat Assets/WL/Look/Character/Materials/PP_Theme_03_Scepter_001_ToonP.mat
|
||||||
PP_Theme_03_Wand_001 c6 p6 → 덩어리 32 칸 6 verts 4749→4749 tris 2296 dHue mean 0.13 max 0.60
|
PP_Theme_03_Wand_001 c16 p12 → 덩어리 32 칸 12 verts 4749→4749 tris 2296 dHue mean 0.13 max 0.60
|
||||||
→ mesh Assets/WL/Look/Character/Meshes/PP_Theme_03_Wand_001_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_PP_Theme_03_Wand_001.png · mat Assets/WL/Look/Character/Materials/PP_Theme_03_Wand_001_ToonP.mat
|
→ mesh Assets/WL/Look/Character/Meshes/PP_Theme_03_Wand_001_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_PP_Theme_03_Wand_001.png · mat Assets/WL/Look/Character/Materials/PP_Theme_03_Wand_001_ToonP.mat
|
||||||
Dagger1 c6 p6 → 덩어리 6 칸 6 verts 91→109 tris 76 dHue mean 0.01 max 0.02
|
Dagger1 c16 p12 → 덩어리 16 칸 12 verts 91→131 tris 76 dHue mean 0.01 max 0.02
|
||||||
→ mesh Assets/WL/Look/Character/Meshes/Dagger1_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_Dagger1.png · mat Assets/WL/Look/Character/Materials/Dagger1_ToonP.mat
|
→ mesh Assets/WL/Look/Character/Meshes/Dagger1_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_Dagger1.png · mat Assets/WL/Look/Character/Materials/Dagger1_ToonP.mat
|
||||||
Dagger2 c6 p6 → 덩어리 6 칸 6 verts 91→109 tris 76 dHue mean 0.01 max 0.02
|
Dagger2 c16 p12 → 덩어리 16 칸 12 verts 91→131 tris 76 dHue mean 0.01 max 0.02
|
||||||
→ mesh Assets/WL/Look/Character/Meshes/Dagger2_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_Dagger2.png · mat Assets/WL/Look/Character/Materials/Dagger2_ToonP.mat
|
→ mesh Assets/WL/Look/Character/Meshes/Dagger2_PAL.asset · pal Assets/WL/Look/Character/Textures/WLPaletteW_Dagger2.png · mat Assets/WL/Look/Character/Materials/Dagger2_ToonP.mat
|
||||||
|
|
||||||
SO 배선: 무기 11종 · weaponEnabled_=1 · 캐릭터 행 6 무변경
|
SO 배선: 무기 11종 · weaponEnabled_=1 · 캐릭터 행 6 무변경
|
||||||
|
|
|
||||||
|
|
@ -340,7 +340,11 @@ public static class WL816bBake
|
||||||
float hue = sw > 1e-6 ? (float)((Math.Atan2(hy, hx) * 180.0 / Math.PI + 360.0) % 360.0) : ph;
|
float hue = sw > 1e-6 ? (float)((Math.Atan2(hy, hx) * 180.0 / Math.PI + 360.0) % 360.0) : ph;
|
||||||
float d8 = DHue(ph, hue);
|
float d8 = DHue(ph, hue);
|
||||||
if (Mathf.Abs(d8) > HUE_LIMIT) hue = ph + Mathf.Sign(d8) * HUE_LIMIT; // 🔴 ±8° 하드 클램프
|
if (Mathf.Abs(d8) > HUE_LIMIT) hue = ph + Mathf.Sign(d8) * HUE_LIMIT; // 🔴 ±8° 하드 클램프
|
||||||
float sat = aw > 1e-6 ? (float)(ssum / aw) : ps;
|
// 🔴 채도는 **되돌리지 않는다** — 칸 평균 채도(ssum/aw)를 쓰면 은·강철처럼 「평균은 회색인데
|
||||||
|
// texel 마다 채도가 있는」 면에서 채도가 부풀어 **금속이 갈색으로 뜬다**(816b 1차 육안 기각의 원인).
|
||||||
|
// ps = 면적가중 평균색 자체의 채도 = 정직한 값. (814x 는 부위별 SGain 으로 이 부풀림을 눌렀다)
|
||||||
|
float satRestored = aw > 1e-6 ? (float)(ssum / aw) : ps;
|
||||||
|
float sat = Mathf.Min(ps, satRestored);
|
||||||
palS[j] = HsvToRgb(hue, sat, pv);
|
palS[j] = HsvToRgb(hue, sat, pv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -451,8 +455,14 @@ public static class WL816bBake
|
||||||
}
|
}
|
||||||
|
|
||||||
// ───────────────────────────── 최종 굽기 + 배선
|
// ───────────────────────────── 최종 굽기 + 배선
|
||||||
// 🔴 무기용 값 = 덩어리 6 · 팔레트 6칸 (인게임 Play 실측으로 결정 · WL816b_ITER.txt)
|
// 🔴 무기용 값 = **덩어리 16 · 팔레트 12칸** (인게임 Play 실측 + 육안으로 결정 · WL816b_ITER.txt)
|
||||||
public const int FINAL_CHUNKS = 6, FINAL_PALETTE = 6;
|
// · 캐릭터(40/16)를 그대로 쓰면 과하다 — 무기는 화면이 캐릭터의 1/10(90~1,309 px)이라
|
||||||
|
// 덩어리 40 은 검에서 서로다른색 9.94 %, 16 은 8.33 % 로 **적은 쪽이 낫다**.
|
||||||
|
// · 그렇다고 6칸까지 줄이면 🔴 육안이 깨진다 — 08 방패의 말 문양이 배경과 한 색으로 뭉치고
|
||||||
|
// 05_Bow_004 의 노란 장식이 **초록으로 돈다**(굽기 dHue 최대 30.3° → 12칸에서 0.03°).
|
||||||
|
// · PurePoly 9종은 메시가 **분리된 껍질** 묶음이라 병합이 26~106 에서 바닥을 친다 = 목표값이 그 아래면
|
||||||
|
// 껍질 수가 곧 덩어리 수다(그래서 실제 조절 손잡이는 칸 수뿐이다).
|
||||||
|
public const int FINAL_CHUNKS = 16, FINAL_PALETTE = 12;
|
||||||
public static readonly string[] FINAL_WEAPONS = {
|
public static readonly string[] FINAL_WEAPONS = {
|
||||||
"PP_Theme_10_Mace_003", "PP_Theme_10_Shield_003", "Elven_Sword_01",
|
"PP_Theme_10_Mace_003", "PP_Theme_10_Shield_003", "Elven_Sword_01",
|
||||||
"PP_Theme_08_Mace_003", "PP_Theme_08_Shield_003",
|
"PP_Theme_08_Mace_003", "PP_Theme_08_Shield_003",
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
root=PC_LH_M05 키 1.2200 m · center (-0.01, 0.57, 0.00) · rootLossy (1.0527, 1.0527, 1.0527)
|
||||||
|
socket[0] w_shield = w_shield lossy (0.6316, 0.6316, 0.6316)
|
||||||
|
socket[1] w_righthand = w_righthand lossy (1.0527, 0.7369, 1.0527)
|
||||||
|
socket[2] w_onehand = w_onehand lossy (0.8421, 0.8421, 0.8421)
|
||||||
|
socket[3] w_bladedancer_l = w_bladedancer_l lossy (1.0527, 1.0527, 1.0527)
|
||||||
|
socket[4] w_bladedancer_r = w_bladedancer_r lossy (0.8421, 0.8421, 0.8421)
|
||||||
|
socket[5] w_orb = w_orb lossy (0.1053, 0.1053, 0.1053)
|
||||||
|
socket[6] w_archer_l = w_archer_l lossy (1.3685, 1.3685, 1.3685)
|
||||||
|
renderers Arm_m05,Body_m05,Face,Hair05,Head,Leg_M05
|
||||||
|
palette SO enabled=1 rows=6
|
||||||
|
=== 대조군: 무기 0 · ReLook/측정만 12회 반복 ===
|
||||||
|
0회 : 2959 px · 고유색 168 · 비율 5.68 %
|
||||||
|
4회 : 2959 px · 고유색 168 · 비율 5.68 %
|
||||||
|
8회 : 2959 px · 고유색 168 · 비율 5.68 %
|
||||||
|
12회 : 2959 px · 고유색 168 · 비율 5.68 %
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
root=PC_LH_M05 키 1.2200 m · center (-0.07, 0.57, -0.04) · rootLossy (1.0527, 1.0527, 1.0527)
|
root=PC_LH_M05 키 1.2200 m · center (-0.01, 0.57, 0.00) · rootLossy (1.0527, 1.0527, 1.0527)
|
||||||
socket[0] w_shield = w_shield lossy (0.6316, 0.6316, 0.6316)
|
socket[0] w_shield = w_shield lossy (0.6316, 0.6316, 0.6316)
|
||||||
socket[1] w_righthand = w_righthand lossy (1.0527, 0.7369, 1.0527)
|
socket[1] w_righthand = w_righthand lossy (1.0527, 0.7369, 1.0527)
|
||||||
socket[2] w_onehand = w_onehand lossy (0.8421, 0.8421, 0.8421)
|
socket[2] w_onehand = w_onehand lossy (0.8421, 0.8421, 0.8421)
|
||||||
|
|
@ -10,64 +10,44 @@
|
||||||
palette SO enabled=1 rows=6
|
palette SO enabled=1 rows=6
|
||||||
|
|
||||||
=== 무기 팔레트 후보 비교 (인게임 Play · 포스트 포함 · 1080x1920 · ortho 10) ===
|
=== 무기 팔레트 후보 비교 (인게임 Play · 포스트 포함 · 1080x1920 · ortho 10) ===
|
||||||
캐릭터 기준(무기 없음) : 2961 px · 고유색 166 · 비율 5.61 % · 단계 20
|
캐릭터 기준(무기 없음) : 2962 px · 고유색 166 · 비율 5.60 % · 단계 21
|
||||||
|
|
||||||
| 무기 | 안 | 덩어리 | 칸 | verts | 화면 px | 고유색 | 서로다른색 % | 단계 | 굽기 dHue평균/최대 |
|
| 무기 | 안 | 덩어리 | 칸 | verts | 화면 px | 고유색 | 서로다른색 % | 단계 | 굽기 dHue평균/최대 |
|
||||||
|---|---|---|---|---|---|---|---|---|---|
|
|---|---|---|---|---|---|---|---|---|---|
|
||||||
| Elven_Sword_01 | **지금** | — | — | — | 304 | 252 | 82.89 | 3 | — |
|
| Elven_Sword_01 | **지금** | — | — | — | 304 | 253 | 83.22 | 3 | — |
|
||||||
| Elven_Sword_01 | c6p6 | 6 | 6 | 444→464 | 312 | 16 | 5.13 | 4 | 1.36/5.95 | 칸단계 1.40/2 | 캐릭 176·5.95% |
|
| Elven_Sword_01 | c6p6 | 6 | 6 | 444→464 | 312 | 16 | 5.13 | 4 | 1.36/5.95 | 칸단계 1.40/2 | 캐릭 174·5.88% |
|
||||||
칸 5개 측정 · 평균 1.40 · 최대 2 · 0:178px/2단 1:26px/1단 2:62px/1단 3:36px/2단 4:10px/1단
|
칸 5개 측정 · 평균 1.40 · 최대 2 · 0:178px/2단 1:26px/1단 2:62px/1단 3:36px/2단 4:10px/1단
|
||||||
| Elven_Sword_01 | c10p8 | 10 | 8 | 444→476 | 312 | 22 | 7.05 | 4 | 1.32/5.95 | 칸단계 1.38/2 | 캐릭 177·5.98% |
|
| Elven_Sword_01 | c16p12 | 16 | 12 | 444→500 | 312 | 26 | 8.33 | 4 | 1.35/5.95 | 칸단계 1.36/2 | 캐릭 174·5.88% |
|
||||||
칸 8개 측정 · 평균 1.38 · 최대 2 · 0:122px/1단 1:26px/1단 2:62px/1단 3:36px/2단 4:34px/2단 5:10px/1단 6:8px/1단 7:14px/2단
|
칸 11개 측정 · 평균 1.36 · 최대 2 · 0:104px/1단 1:26px/1단 2:62px/1단 3:36px/2단 4:14px/2단 5:9px/1단 6:10px/1단 7:9px/1단 8:14px/2단 9:8px/2단 10:20px/1단
|
||||||
| Elven_Sword_01 | c16p8 | 16 | 8 | 444→496 | 312 | 20 | 6.41 | 4 | 1.54/5.95 | 칸단계 1.38/2 | 캐릭 175·5.91% |
|
| Elven_Sword_01 | c24p16 | 24 | 16 | 444→532 | 312 | 31 | 9.94 | 5 | 0.72/3.24 | 칸단계 1.29/2 | 캐릭 175·5.91% |
|
||||||
칸 8개 측정 · 평균 1.38 · 최대 2 · 0:138px/2단 1:26px/1단 2:62px/1단 3:36px/2단 4:22px/2단 5:9px/1단 6:10px/1단 7:9px/1단
|
칸 14개 측정 · 평균 1.29 · 최대 2 · 0:97px/1단 1:26px/1단 2:21px/1단 3:13px/2단 4:41px/1단 5:23px/1단 6:9px/1단 7:7px/1단 8:8px/1단 9:8px/2단 10:9px/1단 11:14px/2단 13:14px/2단 14:20px/1단
|
||||||
| Elven_Sword_01 | c24p12 | 24 | 12 | 444→532 | 312 | 28 | 8.97 | 6 | 3.08/73.23 | 칸단계 1.25/2 | 캐릭 177·5.98% |
|
|
||||||
칸 12개 측정 · 평균 1.25 · 최대 2 · 0:97px/1단 1:26px/1단 2:21px/1단 3:13px/2단 4:43px/1단 5:23px/1단 6:9px/1단 7:7px/1단 8:8px/1단 9:22px/2단 10:9px/1단 11:34px/2단
|
|
||||||
| Elven_Sword_01 | c40p16 | 40 | 16 | 444→601 | 312 | 29 | 9.29 | 6 | 3.26/73.23 | 칸단계 1.19/2 | 캐릭 177·5.98% |
|
|
||||||
칸 16개 측정 · 평균 1.19 · 최대 2 · 0:63px/1단 1:21px/1단 2:15px/1단 3:4px/1단 4:22px/2단 5:8px/1단 6:13px/2단 7:43px/1단 8:10px/1단 9:23px/1단 10:9px/1단 11:9px/1단 12:34px/2단 13:25px/1단 14:4px/1단 15:9px/1단
|
|
||||||
| PP_Theme_10_Mace_003 | **지금** | — | — | — | 263 | 72 | 27.38 | 5 | — |
|
| PP_Theme_10_Mace_003 | **지금** | — | — | — | 263 | 72 | 27.38 | 5 | — |
|
||||||
| PP_Theme_10_Mace_003 | c6p6 | 26 | 6 | 7719→7719 | 265 | 28 | 10.57 | 4 | 2.96/3.92 | 칸단계 2.33/5 | 캐릭 180·6.08% |
|
| PP_Theme_10_Mace_003 | c6p6 | 26 | 6 | 7719→7719 | 265 | 25 | 9.43 | 4 | 2.96/3.92 | 칸단계 2.17/5 | 캐릭 180·6.08% |
|
||||||
칸 6개 측정 · 평균 2.33 · 최대 5 · 0:165px/2단 1:8px/5단 2:12px/2단 3:75px/1단 4:12px/1단 5:5px/3단
|
칸 6개 측정 · 평균 2.17 · 최대 5 · 0:165px/2단 1:8px/5단 2:12px/2단 3:75px/1단 4:12px/1단 5:5px/2단
|
||||||
| PP_Theme_10_Mace_003 | c10p8 | 26 | 8 | 7719→7719 | 265 | 32 | 12.08 | 4 | 2.96/3.91 | 칸단계 2.29/5 | 캐릭 180·6.08% |
|
| PP_Theme_10_Mace_003 | c16p12 | 26 | 12 | 7719→7719 | 265 | 32 | 12.08 | 4 | 2.96/3.91 | 칸단계 1.90/4 | 캐릭 180·6.08% |
|
||||||
칸 7개 측정 · 평균 2.29 · 최대 5 · 0:45px/2단 1:8px/5단 2:12px/2단 3:75px/1단 4:10px/1단 5:5px/3단 6:120px/2단
|
칸 10개 측정 · 평균 1.90 · 최대 4 · 0:45px/2단 1:5px/4단 2:12px/2단 3:75px/1단 4:3px/1단 5:5px/2단 6:67px/2단 8:53px/2단 9:3px/2단 11:7px/1단
|
||||||
| PP_Theme_10_Mace_003 | c16p8 | 26 | 8 | 7719→7719 | 265 | 32 | 12.08 | 4 | 2.96/3.91 | 칸단계 2.29/5 | 캐릭 180·6.08% |
|
| PP_Theme_10_Mace_003 | c24p16 | 26 | 16 | 7719→7719 | 265 | 31 | 11.70 | 4 | 2.96/3.91 | 칸단계 1.90/4 | 캐릭 180·6.08% |
|
||||||
칸 7개 측정 · 평균 2.29 · 최대 5 · 0:45px/2단 1:8px/5단 2:12px/2단 3:75px/1단 4:10px/1단 5:5px/3단 6:120px/2단
|
칸 10개 측정 · 평균 1.90 · 최대 4 · 0:45px/2단 1:5px/4단 2:12px/2단 3:75px/1단 4:3px/1단 5:5px/2단 6:67px/2단 8:53px/2단 9:3px/2단 11:7px/1단
|
||||||
| PP_Theme_10_Mace_003 | c24p12 | 26 | 12 | 7719→7719 | 265 | 34 | 12.83 | 4 | 2.96/3.91 | 칸단계 2.00/4 | 캐릭 181·6.12% |
|
| PP_Theme_10_Shield_003 | **지금** | — | — | — | 1309 | 86 | 6.57 | 9 | — |
|
||||||
칸 10개 측정 · 평균 2.00 · 최대 4 · 0:45px/2단 1:5px/4단 2:12px/2단 3:75px/1단 4:3px/1단 5:5px/3단 6:67px/2단 8:53px/2단 9:3px/2단 11:7px/1단
|
| PP_Theme_10_Shield_003 | c6p6 | 64 | 6 | 7671→7671 | 1306 | 73 | 5.59 | 9 | 0.00/0.00 | 칸단계 6.00/9 | 캐릭 188·6.35% |
|
||||||
| PP_Theme_10_Mace_003 | c40p16 | 40 | 16 | 7719→7719 | 264 | 27 | 10.23 | 5 | 0.00/0.00 | 칸단계 1.78/3 | 캐릭 180·6.08% |
|
칸 3개 측정 · 평균 6.00 · 최대 9 · 0:1157px/7단 1:139px/9단 3:13px/2단
|
||||||
칸 9개 측정 · 평균 1.78 · 최대 3 · 0:74px/1단 1:58px/3단 2:7px/1단 3:4px/3단 6:4px/1단 7:35px/2단 11:78px/2단 12:3px/1단 13:12px/2단
|
| PP_Theme_10_Shield_003 | c16p12 | 64 | 12 | 7671→7671 | 1306 | 73 | 5.59 | 9 | 0.00/0.00 | 칸단계 6.00/9 | 캐릭 188·6.35% |
|
||||||
| PP_Theme_10_Shield_003 | **지금** | — | — | — | 1309 | 81 | 6.19 | 8 | — |
|
칸 3개 측정 · 평균 6.00 · 최대 9 · 0:1157px/7단 1:139px/9단 3:13px/2단
|
||||||
| PP_Theme_10_Shield_003 | c6p6 | 64 | 6 | 7671→7671 | 1306 | 69 | 5.28 | 8 | 0.00/0.00 | 칸단계 6.00/7 | 캐릭 176·5.95% |
|
| PP_Theme_10_Shield_003 | c24p16 | 64 | 16 | 7671→7671 | 1306 | 73 | 5.59 | 9 | 0.00/0.00 | 칸단계 6.00/9 | 캐릭 188·6.35% |
|
||||||
칸 3개 측정 · 평균 6.00 · 최대 7 · 0:1157px/7단 1:139px/7단 3:13px/4단
|
칸 3개 측정 · 평균 6.00 · 최대 9 · 0:1157px/7단 1:139px/9단 3:13px/2단
|
||||||
| PP_Theme_10_Shield_003 | c10p8 | 64 | 8 | 7671→7671 | 1306 | 69 | 5.28 | 8 | 0.00/0.00 | 칸단계 6.00/7 | 캐릭 176·5.95% |
|
| PP_Theme_08_Shield_003 | **지금** | — | — | — | 1008 | 119 | 11.81 | 9 | — |
|
||||||
칸 3개 측정 · 평균 6.00 · 최대 7 · 0:1157px/7단 1:139px/7단 3:13px/4단
|
| PP_Theme_08_Shield_003 | c6p6 | 28 | 6 | 9168→9168 | 1007 | 60 | 5.96 | 9 | 0.02/0.28 | 칸단계 4.67/8 | 캐릭 175·5.91% |
|
||||||
| PP_Theme_10_Shield_003 | c16p8 | 64 | 8 | 7671→7671 | 1306 | 69 | 5.28 | 8 | 0.00/0.00 | 칸단계 6.00/7 | 캐릭 176·5.95% |
|
칸 3개 측정 · 평균 4.67 · 최대 8 · 0:962px/8단 3:37px/3단 4:9px/3단
|
||||||
칸 3개 측정 · 평균 6.00 · 최대 7 · 0:1157px/7단 1:139px/7단 3:13px/4단
|
| PP_Theme_08_Shield_003 | c16p12 | 28 | 12 | 9168→9168 | 1007 | 60 | 5.96 | 9 | 0.02/0.28 | 칸단계 4.67/8 | 캐릭 175·5.91% |
|
||||||
| PP_Theme_10_Shield_003 | c24p12 | 64 | 12 | 7671→7671 | 1306 | 68 | 5.21 | 8 | 0.00/0.00 | 칸단계 6.33/8 | 캐릭 177·5.98% |
|
칸 3개 측정 · 평균 4.67 · 최대 8 · 0:962px/8단 3:37px/3단 4:9px/3단
|
||||||
칸 3개 측정 · 평균 6.33 · 최대 8 · 0:1157px/7단 1:139px/8단 3:13px/4단
|
| PP_Theme_08_Shield_003 | c24p16 | 28 | 16 | 9168→9168 | 1007 | 60 | 5.96 | 9 | 0.02/0.28 | 칸단계 4.67/8 | 캐릭 175·5.91% |
|
||||||
| PP_Theme_10_Shield_003 | c40p16 | 64 | 16 | 7671→7671 | 1306 | 68 | 5.21 | 8 | 0.00/0.00 | 칸단계 6.33/8 | 캐릭 177·5.98% |
|
칸 3개 측정 · 평균 4.67 · 최대 8 · 0:962px/8단 3:37px/3단 4:9px/3단
|
||||||
칸 3개 측정 · 평균 6.33 · 최대 8 · 0:1157px/7단 1:139px/8단 3:13px/4단
|
| PP_Theme_05_Bow_004 | **지금** | — | — | — | 225 | 65 | 28.89 | 9 | — |
|
||||||
| Dagger1 | **지금** | — | — | — | 126 | 46 | 36.51 | 10 | — |
|
| PP_Theme_05_Bow_004 | c6p6 | 100 | 6 | 9682→9682 | 194 | 34 | 17.53 | 7 | 3.69/30.32 | 칸단계 4.00/7 | 캐릭 181·6.12% |
|
||||||
| Dagger1 | c6p6 | 6 | 6 | 91→109 | 126 | 22 | 17.46 | 6 | 0.01/0.02 | 칸단계 3.00/4 | 캐릭 176·5.95% |
|
칸 4개 측정 · 평균 4.00 · 최대 7 · 0:182px/7단 1:10px/2단 2:21px/4단 3:11px/3단
|
||||||
칸 4개 측정 · 평균 3.00 · 최대 4 · 0:51px/4단 1:3px/1단 2:67px/4단 3:9px/3단
|
| PP_Theme_05_Bow_004 | c16p12 | 100 | 12 | 9682→9682 | 194 | 35 | 18.04 | 7 | 0.01/0.03 | 칸단계 3.40/5 | 캐릭 182·6.15% |
|
||||||
| Dagger1 | c10p8 | 10 | 8 | 91→123 | 126 | 24 | 19.05 | 6 | 0.01/0.02 | 칸단계 2.33/4 | 캐릭 176·5.95% |
|
칸 5개 측정 · 평균 3.40 · 최대 5 · 0:98px/3단 1:10px/2단 3:11px/3단 6:21px/4단 8:84px/5단
|
||||||
칸 6개 측정 · 평균 2.33 · 최대 4 · 0:51px/4단 1:3px/1단 2:55px/4단 4:3px/3단 5:12px/1단 7:6px/1단
|
| PP_Theme_05_Bow_004 | c24p16 | 100 | 16 | 9682→9682 | 194 | 35 | 18.04 | 7 | 0.01/0.03 | 칸단계 3.14/5 | 캐릭 182·6.15% |
|
||||||
| Dagger1 | c16p8 | 16 | 8 | 91→130 | 126 | 24 | 19.05 | 6 | 0.02/0.43 | 칸단계 2.80/4 | 캐릭 176·5.95% |
|
칸 7개 측정 · 평균 3.14 · 최대 5 · 0:98px/3단 1:10px/2단 3:3px/2단 6:12px/4단 8:84px/5단 12:8px/3단 13:9px/3단
|
||||||
칸 5개 측정 · 평균 2.80 · 최대 4 · 0:51px/4단 1:3px/1단 2:43px/4단 3:7px/2단 5:24px/3단
|
|
||||||
| Dagger1 | c24p12 | 24 | 12 | 91→141 | 126 | 24 | 19.05 | 6 | 0.01/0.02 | 칸단계 2.71/4 | 캐릭 176·5.95% |
|
|
||||||
칸 7개 측정 · 평균 2.71 · 최대 4 · 0:51px/4단 1:3px/1단 2:5px/2단 3:38px/4단 4:5px/3단 6:24px/3단 8:3px/2단
|
|
||||||
| Dagger1 | c40p16 | 40 | 16 | 91→163 | 126 | 23 | 18.25 | 6 | 0.04/2.17 | 칸단계 3.00/4 | 캐릭 176·5.95% |
|
|
||||||
칸 7개 측정 · 평균 3.00 · 최대 4 · 0:51px/4단 3:15px/3단 4:4px/1단 6:23px/4단 8:5px/3단 9:5px/3단 10:24px/3단
|
|
||||||
| PP_Theme_05_Bow_003 | **지금** | — | — | — | 131 | 51 | 38.93 | 10 | — |
|
|
||||||
| PP_Theme_05_Bow_003 | c6p6 | 54 | 6 | 12070→12070 | 152 | 31 | 20.39 | 8 | 0.01/0.02 | 칸단계 5.00/6 | 캐릭 182·6.15% |
|
|
||||||
칸 3개 측정 · 평균 5.00 · 최대 6 · 0:147px/6단 2:18px/4단 3:18px/5단
|
|
||||||
| PP_Theme_05_Bow_003 | c10p8 | 54 | 8 | 12070→12070 | 150 | 33 | 22.00 | 8 | 0.00/0.00 | 칸단계 3.80/6 | 캐릭 185·6.25% |
|
|
||||||
칸 5개 측정 · 평균 3.80 · 최대 6 · 0:136px/6단 2:18px/4단 3:9px/4단 6:9px/3단 7:11px/2단
|
|
||||||
| PP_Theme_05_Bow_003 | c16p8 | 54 | 8 | 12070→12070 | 150 | 33 | 22.00 | 8 | 0.00/0.00 | 칸단계 3.80/6 | 캐릭 185·6.25% |
|
|
||||||
칸 5개 측정 · 평균 3.80 · 최대 6 · 0:136px/6단 2:18px/4단 3:9px/4단 6:9px/3단 7:11px/2단
|
|
||||||
| PP_Theme_05_Bow_003 | c24p12 | 54 | 12 | 12070→12070 | 146 | 36 | 24.66 | 9 | 0.00/0.00 | 칸단계 3.00/6 | 캐릭 188·6.35% |
|
|
||||||
칸 8개 측정 · 평균 3.00 · 최대 6 · 0:63px/1단 2:7px/2단 3:9px/4단 6:9px/3단 7:11px/1단 8:73px/6단 9:6px/3단 11:5px/4단
|
|
||||||
| PP_Theme_05_Bow_003 | c40p16 | 54 | 16 | 12070→12070 | 146 | 36 | 24.66 | 9 | 0.00/0.00 | 칸단계 2.78/6 | 캐릭 188·6.35% |
|
|
||||||
칸 9개 측정 · 평균 2.78 · 최대 6 · 0:63px/1단 2:7px/2단 3:5px/3단 6:9px/3단 7:11px/1단 8:73px/6단 9:6px/3단 11:3px/3단 14:4px/3단
|
|
||||||
|
|
||||||
캐릭터 재측정(무기 적용 후) : 2959 px · 고유색 188 · 비율 6.35 % · 단계 20
|
캐릭터 재측정(무기 적용 후) : 2959 px · 고유색 182 · 비율 6.15 % · 단계 24
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// WL-816b — 무기용 덩어리·팔레트 값 결정 (🔴 인게임 Play · 포스트 포함 · 게임 크기에서만 잰다)
|
// WL-816b — 무기용 덩어리·팔레트 값 결정 (🔴 인게임 Play · 포스트 포함 · 게임 크기에서만 잰다)
|
||||||
// 빌드: scripts 가 한 파일로 합쳐져야 한다 → AgentScripts/WL816b_ALL.cs 로 concat 해서 돌린다.
|
// 빌드: scripts 가 한 파일로 합쳐져야 한다 → AgentScripts/WL816b_ALL.cs 로 concat 해서 돌린다.
|
||||||
// entry: WL816bIter.Run
|
// entry: WL816bIter.Run
|
||||||
using System;
|
using System;
|
||||||
|
|
@ -15,12 +15,12 @@ public static class WL816bIter
|
||||||
new[]{ "Elven_Sword_01", "2" },
|
new[]{ "Elven_Sword_01", "2" },
|
||||||
new[]{ "PP_Theme_10_Mace_003", "1" },
|
new[]{ "PP_Theme_10_Mace_003", "1" },
|
||||||
new[]{ "PP_Theme_10_Shield_003", "0" },
|
new[]{ "PP_Theme_10_Shield_003", "0" },
|
||||||
new[]{ "Dagger1", "3" },
|
new[]{ "PP_Theme_08_Shield_003", "0" },
|
||||||
new[]{ "PP_Theme_05_Bow_003", "6" },
|
new[]{ "PP_Theme_05_Bow_004", "6" },
|
||||||
};
|
};
|
||||||
// 후보 (덩어리목표, 팔레트칸) — 캐릭터는 40/16. 무기는 화면이 10분의 1 이라 작게부터 본다.
|
// 후보 (덩어리목표, 팔레트칸) — 캐릭터는 40/16. 무기는 화면이 10분의 1 이라 작게부터 본다.
|
||||||
static readonly int[][] CFG = {
|
static readonly int[][] CFG = {
|
||||||
new[]{ 6, 6 }, new[]{ 10, 8 }, new[]{ 16, 8 }, new[]{ 24, 12 }, new[]{ 40, 16 },
|
new[]{ 6, 6 }, new[]{ 16, 12 }, new[]{ 24, 16 },
|
||||||
};
|
};
|
||||||
|
|
||||||
public static void Run()
|
public static void Run()
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
weaponEnabled_=0 · WeaponEnabled=False
|
||||||
|
Elven_Sword_01 applied=False mesh default → default · mat Elven_Sword_01 → Elven_Sword_01 · 원본 그대로 ✅
|
||||||
|
PP_Theme_10_Shield_003 applied=False mesh PP_Theme_10_Shield_003 → PP_Theme_10_Shield_003 · mat PP_Standard_Material → PP_Standard_Material · 원본 그대로 ✅
|
||||||
|
Dagger1 applied=False mesh dagger → dagger · mat T_Dagger → T_Dagger · 원본 그대로 ✅
|
||||||
|
weaponEnabled_=1 · WeaponEnabled=True
|
||||||
|
Elven_Sword_01 applied=True mesh default → Elven_Sword_01_PAL · mat Elven_Sword_01 → Elven_Sword_01_ToonP · 팔레트 적용 ✅
|
||||||
|
PP_Theme_10_Shield_003 applied=True mesh PP_Theme_10_Shield_003 → PP_Theme_10_Shield_003_PAL · mat PP_Standard_Material → PP_Theme_10_Shield_003_ToonP · 팔레트 적용 ✅
|
||||||
|
Dagger1 applied=True mesh dagger → Dagger1_PAL · mat T_Dagger → Dagger1_ToonP · 팔레트 적용 ✅
|
||||||
|
복구: weaponEnabled_=1
|
||||||
|
캐릭터 행 6 · enabled_=1 · 무기 행 11
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
// WL-816b — 되돌리기(C8) 실측: weaponEnabled_ = 0 이면 무기는 원본 100 % (에디트 모드)
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEngine;
|
||||||
|
using WL.Look.Character;
|
||||||
|
|
||||||
|
public static class WL816bRevert
|
||||||
|
{
|
||||||
|
public static void Run()
|
||||||
|
{
|
||||||
|
var sb = new StringBuilder();
|
||||||
|
const string SOP = "Assets/WL/Look/Character/Resources/WL/WLCharacterPaletteSettings.asset";
|
||||||
|
var so = AssetDatabase.LoadAssetAtPath<WLCharacterPaletteSettings>(SOP);
|
||||||
|
WLCharacterPaletteSettings.Invalidate();
|
||||||
|
int was = so.weaponEnabled_;
|
||||||
|
string[] test = { "Elven_Sword_01", "PP_Theme_10_Shield_003", "Dagger1" };
|
||||||
|
|
||||||
|
foreach (int flag in new[] { 0, 1 })
|
||||||
|
{
|
||||||
|
so.weaponEnabled_ = flag; EditorUtility.SetDirty(so); AssetDatabase.SaveAssets();
|
||||||
|
WLCharacterPaletteSettings.Invalidate();
|
||||||
|
sb.AppendLine("weaponEnabled_=" + flag + " · WeaponEnabled=" + WLCharacterPaletteSettings.WeaponEnabled);
|
||||||
|
foreach (var w in test)
|
||||||
|
{
|
||||||
|
var pf = AssetDatabase.LoadAssetAtPath<GameObject>("Assets/Res_Addr/Weapon/" + w + ".prefab");
|
||||||
|
var go = UnityEngine.Object.Instantiate(pf); go.name = w + "(Clone)";
|
||||||
|
var mf = go.GetComponentInChildren<MeshFilter>(true);
|
||||||
|
var rd = go.GetComponentsInChildren<Renderer>(true).First(r => !(r is ParticleSystemRenderer));
|
||||||
|
var m0 = mf.sharedMesh; var t0 = rd.sharedMaterial;
|
||||||
|
bool applied = WLWeaponPalette.Apply(go.transform);
|
||||||
|
sb.AppendLine(string.Format(" {0,-24} applied={1,-5} mesh {2} → {3} · mat {4} → {5} · {6}",
|
||||||
|
w, applied, m0.name, mf.sharedMesh.name, t0.name, rd.sharedMaterial.name,
|
||||||
|
flag == 0 ? ((mf.sharedMesh == m0 && rd.sharedMaterial == t0) ? "원본 그대로 ✅" : "🔴 바뀜")
|
||||||
|
: ((mf.sharedMesh != m0 && rd.sharedMaterial != t0) ? "팔레트 적용 ✅" : "🔴 미적용")));
|
||||||
|
UnityEngine.Object.DestroyImmediate(go);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
so.weaponEnabled_ = was; EditorUtility.SetDirty(so); AssetDatabase.SaveAssets();
|
||||||
|
WLCharacterPaletteSettings.Invalidate();
|
||||||
|
sb.AppendLine("복구: weaponEnabled_=" + so.weaponEnabled_);
|
||||||
|
// 캐릭터 표가 그대로인지
|
||||||
|
sb.AppendLine("캐릭터 행 " + (so.rendererNames == null ? 0 : so.rendererNames.Length) + " · enabled_=" + so.enabled_ + " · 무기 행 " + so.weaponNames.Length);
|
||||||
|
File.WriteAllText("AgentScripts/WL816b_REVERT.txt", sb.ToString(), new UTF8Encoding(true));
|
||||||
|
Debug.Log("[WL816b] revert check done");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -10,45 +10,45 @@
|
||||||
palette SO enabled=1 rows=6
|
palette SO enabled=1 rows=6
|
||||||
|
|
||||||
SO: enabled_=1 weaponEnabled_=1 무기행 11 캐릭터행 6
|
SO: enabled_=1 weaponEnabled_=1 무기행 11 캐릭터행 6
|
||||||
=== 최종 검증 (인게임 Play · 포스트 포함 · 1080x1920 · ortho 10 · 덩어리 6 · 팔레트 6칸) ===
|
=== 최종 검증 (인게임 Play · 포스트 포함 · 1080x1920 · ortho 10 · 덩어리 16 · 팔레트 12칸) ===
|
||||||
캐릭터 (무기 없음 · 시작) : 2960 px · 고유색 174 · 비율 5.88 % · 단계 20
|
캐릭터 (무기 없음 · 시작) : 2959 px · 고유색 167 · 비율 5.64 % · 단계 21
|
||||||
|
|
||||||
| 무기 | 화면 px | 고유색 전→후 | 서로다른색 % 전→후 | 칸당단계 평균/최대 | 배수 | 메시/렌더러 교체 |
|
| 무기 | 화면 px | 고유색 전→후 | 서로다른색 % 전→후 | 칸당단계 평균/최대 | 배수 | 메시/렌더러 교체 |
|
||||||
|---|---|---|---|---|---|---|
|
|---|---|---|---|---|---|---|
|
||||||
PP_Theme_10_Mace_003 칸 6개 측정 · 평균 2.17 · 최대 5 · 0:165px/2단 1:8px/5단 2:12px/2단 3:75px/1단 4:12px/1단 5:5px/2단
|
PP_Theme_10_Mace_003 칸 10개 측정 · 평균 1.90 · 최대 4 · 0:45px/2단 1:5px/4단 2:12px/2단 3:75px/1단 4:3px/1단 5:5px/2단 6:67px/2단 8:53px/2단 9:3px/2단 11:7px/1단
|
||||||
| PP_Theme_10_Mace_003 | 265 | 71→26 | 27.00→9.81 | 2.17/5 | ×0.6746 | 1/1 |
|
| PP_Theme_10_Mace_003 | 265 | 72→35 | 27.38→13.21 | 1.90/4 | ×0.6746 | 1/1 |
|
||||||
되돌림 확인 PP_Theme_10_Mace_003 : px 263(전 263) · 고유색 71(전 71) · 동일 ✅
|
되돌림 확인 PP_Theme_10_Mace_003 : px 263(전 263) · 고유색 72(전 72) · 동일 ✅
|
||||||
PP_Theme_10_Shield_003 칸 3개 측정 · 평균 6.00 · 최대 8 · 0:1157px/7단 1:139px/8단 3:13px/3단
|
PP_Theme_10_Shield_003 칸 3개 측정 · 평균 6.00 · 최대 9 · 0:1157px/7단 1:139px/9단 3:13px/2단
|
||||||
| PP_Theme_10_Shield_003 | 1306 | 85→71 | 6.49→5.44 | 6.00/8 | ×1.0000 | 1/1 |
|
| PP_Theme_10_Shield_003 | 1306 | 86→70 | 6.57→5.36 | 6.00/9 | ×1.0000 | 1/1 |
|
||||||
되돌림 확인 PP_Theme_10_Shield_003 : px 1309(전 1309) · 고유색 85(전 85) · 동일 ✅
|
되돌림 확인 PP_Theme_10_Shield_003 : px 1309(전 1309) · 고유색 86(전 86) · 동일 ✅
|
||||||
Elven_Sword_01 칸 5개 측정 · 평균 1.40 · 최대 2 · 0:178px/2단 1:26px/1단 2:62px/1단 3:36px/2단 4:10px/1단
|
Elven_Sword_01 칸 11개 측정 · 평균 1.36 · 최대 2 · 0:104px/1단 1:26px/1단 2:62px/1단 3:36px/2단 4:14px/2단 5:9px/1단 6:10px/1단 7:9px/1단 8:14px/2단 9:8px/2단 10:20px/1단
|
||||||
| Elven_Sword_01 | 312 | 253→19 | 83.22→6.09 | 1.40/2 | ×0.5499 | 1/1 |
|
| Elven_Sword_01 | 312 | 251→24 | 82.57→7.69 | 1.36/2 | ×0.5499 | 1/1 |
|
||||||
되돌림 확인 Elven_Sword_01 : px 304(전 304) · 고유색 253(전 253) · 동일 ✅
|
되돌림 확인 Elven_Sword_01 : px 304(전 304) · 고유색 251(전 251) · 동일 ✅
|
||||||
PP_Theme_08_Mace_003 칸 5개 측정 · 평균 2.20 · 최대 3 · 0:86px/2단 1:126px/2단 2:9px/3단 3:35px/2단 5:12px/2단
|
PP_Theme_08_Mace_003 칸 8개 측정 · 평균 2.13 · 최대 3 · 0:86px/2단 1:126px/2단 2:9px/3단 3:15px/2단 5:11px/2단 6:8px/2단 7:6px/2단 9:3px/2단
|
||||||
| PP_Theme_08_Mace_003 | 269 | 81→45 | 30.11→16.73 | 2.20/3 | ×0.5768 | 1/1 |
|
| PP_Theme_08_Mace_003 | 269 | 81→56 | 30.11→20.82 | 2.13/3 | ×0.5768 | 1/1 |
|
||||||
되돌림 확인 PP_Theme_08_Mace_003 : px 269(전 269) · 고유색 81(전 81) · 동일 ✅
|
되돌림 확인 PP_Theme_08_Mace_003 : px 269(전 269) · 고유색 81(전 81) · 동일 ✅
|
||||||
PP_Theme_08_Shield_003 칸 3개 측정 · 평균 5.33 · 최대 9 · 0:962px/9단 3:37px/4단 4:9px/3단
|
PP_Theme_08_Shield_003 칸 3개 측정 · 평균 4.67 · 최대 8 · 0:962px/8단 3:37px/3단 4:9px/3단
|
||||||
| PP_Theme_08_Shield_003 | 1007 | 125→61 | 12.40→6.06 | 5.33/9 | ×0.8182 | 1/1 |
|
| PP_Theme_08_Shield_003 | 1007 | 120→59 | 11.90→5.86 | 4.67/8 | ×0.8182 | 1/1 |
|
||||||
되돌림 확인 PP_Theme_08_Shield_003 : px 1008(전 1008) · 고유색 125(전 125) · 동일 ✅
|
되돌림 확인 PP_Theme_08_Shield_003 : px 1008(전 1008) · 고유색 120(전 120) · 동일 ✅
|
||||||
PP_Theme_05_Bow_003 칸 3개 측정 · 평균 4.67 · 최대 5 · 0:147px/5단 2:18px/4단 3:18px/5단
|
PP_Theme_05_Bow_003 칸 8개 측정 · 평균 2.63 · 최대 4 · 0:63px/1단 2:7px/2단 3:9px/3단 6:9px/3단 7:11px/1단 8:73px/4단 9:6px/3단 11:5px/4단
|
||||||
| PP_Theme_05_Bow_003 | 152 | 52→32 | 39.69→21.05 | 4.67/5 | ×0.3502 | 1/1 |
|
| PP_Theme_05_Bow_003 | 146 | 51→30 | 38.93→20.55 | 2.63/4 | ×0.3502 | 1/1 |
|
||||||
되돌림 확인 PP_Theme_05_Bow_003 : px 131(전 131) · 고유색 52(전 52) · 동일 ✅
|
되돌림 확인 PP_Theme_05_Bow_003 : px 131(전 131) · 고유색 51(전 51) · 동일 ✅
|
||||||
PP_Theme_05_Bow_004 칸 4개 측정 · 평균 4.00 · 최대 7 · 0:182px/7단 1:10px/2단 2:21px/4단 3:11px/3단
|
PP_Theme_05_Bow_004 칸 5개 측정 · 평균 3.40 · 최대 5 · 0:98px/3단 1:10px/2단 3:11px/3단 6:21px/4단 8:84px/5단
|
||||||
| PP_Theme_05_Bow_004 | 194 | 67→37 | 29.78→19.07 | 4.00/7 | ×0.4068 | 1/1 |
|
| PP_Theme_05_Bow_004 | 194 | 65→36 | 28.89→18.56 | 3.40/5 | ×0.4068 | 1/1 |
|
||||||
되돌림 확인 PP_Theme_05_Bow_004 : px 225(전 225) · 고유색 67(전 67) · 동일 ✅
|
되돌림 확인 PP_Theme_05_Bow_004 : px 225(전 225) · 고유색 65(전 65) · 동일 ✅
|
||||||
PP_Theme_03_Scepter_001 칸 5개 측정 · 평균 1.80 · 최대 3 · 0:106px/3단 1:34px/2단 3:4px/2단 4:17px/1단 5:6px/1단
|
PP_Theme_03_Scepter_001 칸 7개 측정 · 평균 2.14 · 최대 3 · 0:61px/3단 1:34px/2단 3:3px/2단 4:17px/1단 5:6px/1단 6:17px/3단 9:28px/3단
|
||||||
| PP_Theme_03_Scepter_001 | 166 | 71→28 | 42.26→16.87 | 1.80/3 | ×0.4992 | 1/1 |
|
| PP_Theme_03_Scepter_001 | 166 | 69→31 | 41.07→18.67 | 2.14/3 | ×0.4992 | 1/1 |
|
||||||
되돌림 확인 PP_Theme_03_Scepter_001 : px 168(전 168) · 고유색 71(전 71) · 동일 ✅
|
되돌림 확인 PP_Theme_03_Scepter_001 : px 168(전 168) · 고유색 69(전 69) · 동일 ✅
|
||||||
PP_Theme_03_Wand_001 칸 4개 측정 · 평균 2.00 · 최대 3 · 0:301px/3단 1:10px/1단 2:103px/2단 3:3px/2단
|
PP_Theme_03_Wand_001 칸 6개 측정 · 평균 2.67 · 최대 4 · 0:141px/3단 2:103px/2단 3:3px/2단 6:119px/3단 7:6px/2단 10:41px/4단
|
||||||
| PP_Theme_03_Wand_001 | 417 | 160→28 | 38.37→6.71 | 2.00/3 | ×1.0000 | 1/1 |
|
| PP_Theme_03_Wand_001 | 417 | 159→36 | 38.13→8.63 | 2.67/4 | ×1.0000 | 1/1 |
|
||||||
되돌림 확인 PP_Theme_03_Wand_001 : px 417(전 417) · 고유색 160(전 160) · 동일 ✅
|
되돌림 확인 PP_Theme_03_Wand_001 : px 417(전 417) · 고유색 159(전 159) · 동일 ✅
|
||||||
Dagger1 칸 4개 측정 · 평균 2.75 · 최대 4 · 0:51px/4단 1:3px/1단 2:67px/3단 3:9px/3단
|
Dagger1 칸 6개 측정 · 평균 2.17 · 최대 4 · 0:51px/4단 1:3px/1단 2:29px/3단 3:6px/1단 5:24px/2단 9:14px/2단
|
||||||
| Dagger1 | 126 | 57→14 | 45.24→11.11 | 2.75/4 | ×1.0000 | 1/1 |
|
| Dagger1 | 126 | 58→22 | 46.03→17.46 | 2.17/4 | ×1.0000 | 1/1 |
|
||||||
되돌림 확인 Dagger1 : px 126(전 126) · 고유색 57(전 57) · 동일 ✅
|
되돌림 확인 Dagger1 : px 126(전 126) · 고유색 58(전 58) · 동일 ✅
|
||||||
Dagger2 칸 5개 측정 · 평균 1.00 · 최대 1 · 0:43px/1단 1:20px/1단 2:20px/1단 3:11px/1단 5:6px/1단
|
Dagger2 칸 9개 측정 · 평균 1.11 · 최대 2 · 0:43px/1단 1:7px/1단 2:4px/2단 4:3px/1단 5:5px/1단 7:13px/1단 9:11px/1단 10:6px/1단 11:6px/1단
|
||||||
| Dagger2 | 100 | 60→16 | 66.67→16.00 | 1.00/1 | ×1.0000 | 1/1 |
|
| Dagger2 | 100 | 59→15 | 65.56→15.00 | 1.11/2 | ×1.0000 | 1/1 |
|
||||||
되돌림 확인 Dagger2 : px 90(전 90) · 고유색 60(전 60) · 동일 ✅
|
되돌림 확인 Dagger2 : px 90(전 90) · 고유색 61(전 59) · 차이 ⚠
|
||||||
| Orb | 0 | 0→0 | 0.00→0.00 | — | ×1.0000 | 표에 없음(Orb) |
|
| Orb | 0 | 0→0 | 0.00→0.00 | — | ×1.0000 | 표에 없음(Orb) |
|
||||||
|
|
||||||
캐릭터 (무기 없음 · 끝) : 2959 px · 고유색 173 · 비율 5.85 % · 단계 21 → 악화 없음 ✅
|
캐릭터 (무기 없음 · 끝) : 2959 px · 고유색 167 · 비율 5.64 % · 단계 21 → 악화 없음 ✅
|
||||||
합계 교체: 메시 11 · 렌더러 11
|
합계 교체: 메시 11 · 렌더러 11
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ public static class WL816bVerify
|
||||||
WL816b.Log("SO: enabled_=" + cfg.enabled_ + " weaponEnabled_=" + cfg.weaponEnabled_
|
WL816b.Log("SO: enabled_=" + cfg.enabled_ + " weaponEnabled_=" + cfg.weaponEnabled_
|
||||||
+ " 무기행 " + (cfg.weaponNames == null ? 0 : cfg.weaponNames.Length)
|
+ " 무기행 " + (cfg.weaponNames == null ? 0 : cfg.weaponNames.Length)
|
||||||
+ " 캐릭터행 " + (cfg.rendererNames == null ? 0 : cfg.rendererNames.Length));
|
+ " 캐릭터행 " + (cfg.rendererNames == null ? 0 : cfg.rendererNames.Length));
|
||||||
WL816b.Log("=== 최종 검증 (인게임 Play · 포스트 포함 · 1080x1920 · ortho 10 · 덩어리 6 · 팔레트 6칸) ===");
|
WL816b.Log("=== 최종 검증 (인게임 Play · 포스트 포함 · 1080x1920 · ortho 10 · 덩어리 " + WL816bBake.FINAL_CHUNKS + " · 팔레트 " + WL816bBake.FINAL_PALETTE + "칸) ===");
|
||||||
|
|
||||||
var cA = WL816b.MeasureChar("v_char_A.png", null);
|
var cA = WL816b.MeasureChar("v_char_A.png", null);
|
||||||
WL816b.Log(string.Format("캐릭터 (무기 없음 · 시작) : {0} px · 고유색 {1} · 비율 {2:F2} % · 단계 {3}", cA.px, cA.uniq, cA.ratio, cA.steps));
|
WL816b.Log(string.Format("캐릭터 (무기 없음 · 시작) : {0} px · 고유색 {1} · 비율 {2:F2} % · 단계 {3}", cA.px, cA.uniq, cA.ratio, cA.steps));
|
||||||
|
|
@ -115,4 +115,23 @@ public static class WL816bVerify
|
||||||
WL816b.Flush("WL816b_VERIFY.txt");
|
WL816b.Flush("WL816b_VERIFY.txt");
|
||||||
Debug.Log("[WL816b] verify done");
|
Debug.Log("[WL816b] verify done");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>🔴 대조군 — 무기를 하나도 붙이지 않고 같은 횟수만큼 측정·ReLook 을 반복한다.
|
||||||
|
/// 캐릭터 수치가 여기서도 같은 만큼 흔들리면 그 흔들림은 **하니스 탓**이지 무기 탓이 아니다.</summary>
|
||||||
|
public static void Control()
|
||||||
|
{
|
||||||
|
WL816b.Reset(); WL816b.PubSetup();
|
||||||
|
WL816b.Log("=== 대조군: 무기 0 · ReLook/측정만 12회 반복 ===");
|
||||||
|
var c0 = WL816b.MeasureChar(null, null);
|
||||||
|
WL816b.Log(string.Format("0회 : {0} px · 고유색 {1} · 비율 {2:F2} %", c0.px, c0.uniq, c0.ratio));
|
||||||
|
for (int i = 1; i <= 12; i++)
|
||||||
|
{
|
||||||
|
WL816b.UnLook(); WL816b.ReLook();
|
||||||
|
var c = WL816b.MeasureChar(null, null);
|
||||||
|
if (i % 4 == 0 || i == 12) WL816b.Log(string.Format("{0}회 : {1} px · 고유색 {2} · 비율 {3:F2} %", i, c.px, c.uniq, c.ratio));
|
||||||
|
}
|
||||||
|
WL816b.PubTeardown();
|
||||||
|
WL816b.Flush("WL816b_CONTROL.txt");
|
||||||
|
Debug.Log("[WL816b] control done");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
# WL-816b 후보 육안 비교 시트 — 지금 vs 후보 3안 (무기 근접 8배 · 니어리스트)
|
||||||
|
import os
|
||||||
|
import numpy as np
|
||||||
|
from PIL import Image, ImageDraw
|
||||||
|
RAW="Screenshots_WL/WL816b/raw/"; OUT="Screenshots_WL/WL816b/"
|
||||||
|
W=["Elven_Sword_01","PP_Theme_10_Mace_003","PP_Theme_10_Shield_003","PP_Theme_08_Shield_003","PP_Theme_05_Bow_004"]
|
||||||
|
TAGS=[("before","지금"),("c6p6","c6p6"),("c16p12","c16p12"),("c24p16","c24p16")]
|
||||||
|
def bbox(p,pad=5):
|
||||||
|
a=np.asarray(Image.open(RAW+p).convert("L")); ys,xs=np.nonzero(a>127)
|
||||||
|
if not len(ys): return None
|
||||||
|
return (max(0,xs.min()-pad),max(0,ys.min()-pad),min(a.shape[1],xs.max()+1+pad),min(a.shape[0],ys.max()+1+pad))
|
||||||
|
def lab(im,t,h=20):
|
||||||
|
o=Image.new("RGB",(im.width,im.height+h),(18,18,22)); o.paste(im,(0,h))
|
||||||
|
ImageDraw.Draw(o).text((3,4),t,fill=(235,235,235)); return o
|
||||||
|
def hs(ims,g=8):
|
||||||
|
w=sum(i.width for i in ims)+g*(len(ims)-1); h=max(i.height for i in ims)
|
||||||
|
o=Image.new("RGB",(w,h),(18,18,22)); x=0
|
||||||
|
for i in ims: o.paste(i,(x,0)); x+=i.width+g
|
||||||
|
return o
|
||||||
|
def vs(ims,g=12):
|
||||||
|
w=max(i.width for i in ims); h=sum(i.height for i in ims)+g*(len(ims)-1)
|
||||||
|
o=Image.new("RGB",(w,h),(18,18,22)); y=0
|
||||||
|
for i in ims: o.paste(i,(0,y)); y+=i.height+g
|
||||||
|
return o
|
||||||
|
rows=[]
|
||||||
|
for w in W:
|
||||||
|
b=bbox("m_%s_before.png"%w)
|
||||||
|
if b is None: continue
|
||||||
|
cells=[]
|
||||||
|
for tg,nm in TAGS:
|
||||||
|
f=RAW+"s_%s_%s.png"%(w,tg)
|
||||||
|
if not os.path.exists(f): continue
|
||||||
|
c=Image.open(f).convert("RGB").crop(b)
|
||||||
|
cells.append(lab(c.resize((c.width*8,c.height*8),Image.NEAREST),nm))
|
||||||
|
if cells: rows.append(lab(hs(cells),w))
|
||||||
|
vs(rows).save(OUT+"e_candidates.png"); print("ok",len(rows))
|
||||||
|
Before Width: | Height: | Size: 157 B After Width: | Height: | Size: 187 B |
|
Before Width: | Height: | Size: 157 B After Width: | Height: | Size: 187 B |
|
Before Width: | Height: | Size: 160 B After Width: | Height: | Size: 186 B |
|
Before Width: | Height: | Size: 153 B After Width: | Height: | Size: 174 B |
|
Before Width: | Height: | Size: 161 B After Width: | Height: | Size: 183 B |
|
Before Width: | Height: | Size: 161 B After Width: | Height: | Size: 173 B |
|
Before Width: | Height: | Size: 161 B After Width: | Height: | Size: 178 B |
|
Before Width: | Height: | Size: 160 B After Width: | Height: | Size: 187 B |
|
Before Width: | Height: | Size: 160 B After Width: | Height: | Size: 173 B |
|
Before Width: | Height: | Size: 160 B After Width: | Height: | Size: 183 B |
|
Before Width: | Height: | Size: 154 B After Width: | Height: | Size: 156 B |