- 로딩 화면 2종(LoadingScreen · 표 Resources/UI/loading_screen.csv): 원격 다운로드 = 배경 + 타이틀 로고 + 조운(아두)·병졸 제자리 질주 + 진행률·용량 / 일반 로딩 = 검은 화면 + 유비·관우·장비 말 타고 질주 + Loading
- 3형제 머리 크기 관우 기준(유비 0.80 · 장비 0.76) · 먼지 = 무리 뒤 · 발굽 테 닿음 · 검은 화면 밝은 바깥 테 · 장비 머리띠 점 · 관우 얼굴색 · 로고 먹 점 지움 (QA r6 PASS · B 0)
- 시작 흐름(BootFlow · 표 Resources/UI/boot_flow.csv): 스플래시 → 받을 리소스가 있으면 다운로드 화면 → 100 % → 검정 페이드 → 타이틀(TitleProvider · 없으면 로비) → 페이드 인 · 받을 것 없으면 지금처럼 바로 시작 · 지금 공급자 = none(실제 받기 장치 = PD 결정 대기) · 메뉴 TKS/Boot 미리보기
- GameBootstrap 시작 줄 1개 · 아틀라스 UI_Loading · UI_LoadingSimple(ui_atlas.csv 2줄) · 캡처 -uiOnly loading* · boot_anim
- 테스트: LoadingScreenTests 3 · BootFlowTests 4(타이틀 훅을 바꿨다 되돌림) · TitleScreenTests 8 함께 통과
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- UIAtlasBuilder: generateMipMaps true · Trilinear · 설정 판(TexSettingsVer "mip1")을 구성 서명에 넣어 기존 아틀라스 다시 굽기
· 아틀라스 4장(UI_Common · UI_Content · UI_SkillIcon · WorldMap_UI) 설정 갱신 · 메모리 = 장마다 약 +1/3
· 이유: 밉맵 없이 256 px 아이콘을 1/2 아래로 줄여 그리면 외곽 계단·지글거림(작은 화면 · 에디터 축소 화면) — 가로 700 캡처로 해소 확인
- UITheme.asset: 원격 스킬 아이콘(1532af5)과 합친 뒤 테마 임포트로 다시 생성 = 보물 아이콘 tre_* 30 추가(스킬 아이콘 159 유지)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 3탭 배경 = 로비 화풍(연병장·저잣거리·규장각) · 장면 표 Resources/UI/domestic_scene.csv · 연출 LobbyAmbient(Frame 캔버스)
- 훈련: 병종별 범용 병사 훈련 동작(UiDrillAnim · 뒷발 고정 · 병종별 박자 · 화면 배율) · 궁병 훈련 전용 클립 drill_ready/drill_action(대기 원화 리그) + 날아가는 화살 · 병종 탭 아이콘 · 카드 = 이름 +수치%
- 순찰: 정보 판 1장(시계 + 쌓인 시간 · 게이지 · 시간당 골드·경험치·전리품 오른쪽 정렬 · 금테 안 획득 보상) · 버튼 수확/즉시 수확 · 광고 2배 = 수확 팝업 · 문 앞 순찰 영웅 + 창병 2 · 상인·주민 NPC 5(R22 대기 모션 · 길바닥)
- 개발: 양피지 두루마리 위 성장 트리(노드 그림 아이콘 27) · 재화 칩 · 아래 두루마리 = 영웅 배치 + 트리 초기화
- 영웅 파견 3자리(훈련 병종 지휘관 · 순찰 · 개발 · 장면 표시만) · 세이브 필드 3
- 병사 5종 자세·타격 그림 색·크기 대기에 맞춤(전투 그림도 같은 파일)
- 승병: UnitTypeInfo 이름/표시 글자 · heroes 병사 3 이름·한자 · 스킬·기믹 설명 · 튜토리얼 팁 + 임포트 자산(HeroDb·SkillInfoDb·GimmickDb·StageGimmickTable)
- 테스트 DomesticSceneTests 4 · BattleFlowTests 표시 글자
PD 지시 2026-11-12(대화로그 공유/대화로그/삼국지슬링샷/2026-11-12_내정메뉴_개편.md · 레시피 R23) · QA r1~r12 · 마지막 r11·r12 PASS(B 0)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 유닛 대기: 122명 앞모습 + 로비 5인 앞·뒷모습 = 원화 픽셀 그대로 4 자세 + 깜빡임(눈썹 붙은 눈·없는 유닛 = 깜빡임 없음 · 기마 = 말 귀 쫑긋)
· PD 「고개만 어색하게 까닥」 → Fable 재검수 = 상체 전체가 숨을 이끌고 머리는 반 박자 늦게(허리 축 흔들림) · 자세 3 = 날숨 중간 · 4장 유지
· 검사: 머리 교체 ≤ 0.6 화면 px · 머리/목 ≤ 0.95 · 부위 끝 ≤ 1.2 · 게임 크기 비침 0 · 발 0
- UnitArt: 클립 지연 로드(UnitClipStore) + Portrait(초상 = f000 한 장) · UiKit.ArtSprite = 초상 한 장 · UnitView = 전투 유닛 클립 미리 읽기
- UnitArtImporter: Android 오버라이드 긴 변 512 + ASTC 5×5 + 밉맵(PC·편집기 불변 · 블록 크기는 출시 전 육안 비교)
- 테스트: UILayer 2 + OutGame 15 + 유닛 아트 5 = 22/22 · 콘솔 error 0 · 로비·전투 Play 확인
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 스킬 아이콘 144(256² · 128² 임포트) + 얇은 사각 틀 테두리 5 = Assets/UI/Samguk/skill_icon/ · 아틀라스 UI_SkillIcon(149)
· ui_atlas.csv theme 줄 + import 줄(새 종류 · UIAtlasBuilder.ImportMaxSize · UIThemeAssetPostprocessor 적용)
· HeroScreens 스킬 행 = 아이콘 있으면 얇은 틀(띠 18/256) + 아이콘 105 px · 없으면 옛 두꺼운 틀 + 병종 기호
· 컨셉 감사 후속: 42종 교체(무신 = 동양 용이 청룡언월도를 감쌈 등) · 6종 옛 그림 유지
- 폰트: 제목·숫자·버튼 = 메이플스토리체 Bold · 본문 = 넥슨 Lv1 고딕(굵게 = Lv1 Bold)
· ui_theme.csv font 줄 3(title · body · body_bold) · UITheme.bodyFont/bodyBoldFont · UISkin.UseTitle · TextUtil.UseBody
· Lv2 고딕 제외 = 한자·– — 가 빈 글자라 OS 폴백이 안 걸림(靑龍偃月 사라짐 실측) · 없는 글자 = OS 폰트 폴백
· 전투 HUD 스킬 이름 한 줄 고정(높이 44 · Truncate) — 메이플 Bold 폭 때문에 「사용 가능」과 겹치던 것
· 라이선스 원문 미확인(메이플스토리체) = Assets/UI/Fonts/README.md · 출시 전 확인
- 확인: UILayerTests + OutGameTests 16/16(검증 사본) · console error 0 · 드로우콜 옛 폰트 대비 동일(battle_hud 34 → 36)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 영웅 목록 카드 기병: 배율 ×0.72 → ×0.85 · 머리 끝 +24 · 전신 상한 390 → 460(말 얼굴이 카드 오른쪽 경계에 닿을 만큼 · PD 「조금 더 키우고 내려도」)
- 병과 심볼 = 검은 선(바깥 테두리 + 안쪽 선) + 그 안쪽 흰 채움(PD 「검은선 안쪽은 흰색」 · 배경 틀 없음 유지) · Tools/class_symbols.py 기본값 변경(--mono = 단색)
- CaptureUI -uiOnly <이름,접두*> = 그 화면만 찍고 바로 종료(PD 「수정된 화면만 체크 · 시간·토큰 낭비 줄여」 · 영웅 목록 1장 실측 15초 · 전체 21장 ≈ 3분) · CLAUDE.md 절차 추가
- 테스트 118/118 · console error 0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- PD 「완벽한 비율 아니어도 됨(게임적 허용) · 기마는 보병·창병보다 조금 크게 · 너무 커지지 않게 조금 줄여」:
BalanceConfig.mountedArtMaxTop = 1.3(크기 표 mounted = 1 의 그려진 머리 끝 상한 = 표준 키 × 1.3) →
조운·조조군 기병 ×1.56 · 여포 ×1.82 · 장비 ×1.43 · 황건 기병 ×1.38 → 모두 ×1.3(탄 사람 = 보병의 약 0.8~0.9)
· 영웅 목록 카드는 그대로(머리 크기 같음)
- PD 「관우 옆얼굴이 깨진 것처럼 보임」: 원인 = front_idle 오른쪽 귀(붉은 조각 3,795 px)가 외곽선 없이 머리카락 사이에 끼어 있음
→ 그 조각만 둘레 머리카락으로 메움(cv2.inpaint TELEA · 검은 외곽선·얼굴 유지 · 재생성 없음) · ready·action 은 귀에 외곽선이 있어 그대로
- 테스트 118/118(기마 머리 끝 = 표준 키 × 상한 · 보병 < 기마) · console error 0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1. 카드 축소 = 한 줄 4명(기준 1080 폭 · 칸 246 · 간격 16)
2. 해상도 대응 = UiAutoGrid(열 수 = round((폭 + 간격) ÷ (목표 칸 + 간격)) · 최소 3 · 칸 = 폭 ÷ 열 · 카드 = 원래 320×431 을 배율로) · 본문 = 화면 폭 전체 · 실측 1080×1920 = 4열 · 1536×2048 = 5열 · 1080×2400 = 4열 · 1080×2520 = 3열
3. 카드 유닛 20 % 작게(UnitPx 450 → 360)
4. 진영 = 원 배지 위·촉·오·군(UiKit.FactionBadge · 색 = 테마 fbadge_* · 촉 녹 · 위 청 · 오 적 · 군 짙은 회색) — 구 세력 깃발 대체(목록 · 편성 카드 공용)
5. 병과 = 단색 심볼(말 · 검 · 활 · 창 · 깃털부채) = Assets/UI/Symbols/cls_sym_*.png · 만든 법 = Tools/class_symbols.py(확정 납품 메달의 원본 투명 사물 그림 = 아트 R&D seed 21 의 형태 → 베이지 채움 + 안쪽 선 + 테두리 · 새로 그리지 않음) · UiKit.TypeSymbolId · 임포터 Symbols 폴더 Sprite
- 캡처 도구: 영웅 목록 1536×2048 · 1080×2400 · 1080×2520 + 열 수 로그 · 진영 확인용 위·오·군 영웅 1명씩(메모리 세이브만)
- 테스트 118/118(다른 세션 미커밋 전투 변경 포함 상태) · console error 0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 데이터: Assets/Data/Gimmicks/stage_gimmicks.csv 455행(143 스테이지 · 1-1·1-2 없음 · 샘플 5 스테이지 16행 그대로) = 기획 tables/ 사본(생성·사전 검증 = 기획 tables/_stage_gimmicks_gen.py) → TKS/Import Gimmicks → StageGimmickTable(455)
- 테스트: Tests/PlayMode/StageGimmickPlacementTests 2 — 145 스테이지 GimmickLayer.Build · 편성 좌표 보정 이동 0 · 아군 스폰 반경 2 비움 · 해로운 지대 위 적 스폰 0 · 파괴 불가 장애물 사이 폭 2 통로 · 강마다 다리 · 기믹 많은 5 스테이지 적 턴 결정 ≤ 1.5 초
- 캡처: GimmickImporter.Capture -gimmickStages 1-10,2-10,… = 그 스테이지 시작 화면(전장 전체)만
- 실측: 컴파일 0 · 임포트 OK(정의 16 · 배치 455) · PlayMode 115/115 · console error 0 · AI 적 턴 132~299 ms
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 데이터: Assets/Data/Gimmicks/{gimmicks,stage_gimmicks,tutorial_tips}.csv + Assets/Data/AI/ai_weights.csv(기획 tables/ 사본) → 메뉴 TKS/Import Gimmicks(검증 · 오류 시 자산 불변) → Resources/Gimmicks/GimmickDb(16)·StageGimmickTable(16 + 팁 3) · Resources/AI/AiWeights(32)
- 레이어: GimmickLayer(전투 시작 = 스테이지 배치 · 배경 위 유닛 아래 · 원/사각/다각 · 색 도형 + 글자 · 내구 핍 · 강 콜라이더 = 다리 구간 제외 · 겹친 유닛 보정) · 장애물 = 병종별 내구 피해·튕김·창 목책 밀기·바위 굴림·기병 정지 · 투사체 pass/block/destroy · 폭약 광역(아군 포함)+밀기+불 · 책사 광역 덤불 제거 · 강 낙하
- 지대: 경로 스윕(독 1→2→3 % · 늪 ×2 · 불 10 % · 빙판 미끄러짐 · 고지 · 안개 · 군기 · 함정) · 양 진영 턴 시작 훅
- 규칙 개정: 보병 튕김 중 다른 적과 연쇄 1회 · 창병 반작용(spearRecoilRatio · 밀며 전진 폐기) · 기존 테스트 기대값 갱신
- 적 AI: Runtime/AI(Sim 가상 실행 · TacticalAI 후보·점수·난이도·턴 운영 · 1부 보스 액티브) · 조준선 = 가상 실행 예상 궤적·기믹 반응·지대 띠 · TKS/Gimmick Painter · 캡처 GimmickImporter.Capture
- 검증: 컴파일 0 · 플레이모드 113/113(신규 26) · console error 0 · 적 10기 턴 결정 62 ms
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>