| 질문 | 7개 리서치 공통 결론 |
|---|---|
| 옷이 왜 "몸 색칠"로 보이나 | composite()가 body 픽셀의 색만 바꿔서. 실루엣을 못 더하고 살을 못 남김. 머리카락·투구는 구조적으로 불가능 |
| 근본 해법 | 별도 RGBA 오버레이 레이어를 본체 위에 알파 합성. recolor가 아니라 "새 픽셀을 얹기" |
| 정렬 기법 | attach point도 스켈레톤도 아닌 "동일 레이아웃 페이퍼돌" — 모든 레이어가 본체와 같은 그리드 공유, offset 0로 stack (LPC·Mana Seed·Stardew·Terraria 전부 동일) |
| 스켈레톤 리깅 | 틀린 도구. 32px 픽셀 회전은 jaggies. 모든 레퍼런스가 고정그리드 레이어드 스프라이트 사용 |
| AI(ComfyUI) | 32px 직접생성·8방향정합·프레임일관성 모두 2026년 미해결. AI = 컬러 원안 70~80%, 정렬·픽셀퍼펙트 = 수작업 20~30% |
| 기존 애드온 구매 | ErisEsra 호환 팩 0개. 진짜 8방향 모듈러는 유료 "툴"뿐이고 그건 본체를 갈아치움 |
| 좌우반전 | 대칭 슬롯(살·셔츠·바지)은 flip 완벽 통과. 비대칭 부착물(견장·옆가르마·검집)만 보정 |
프레임수×방향수가 아니라 레이어종류수 × 고유방향수(5)로 떨어진다.★=MVP, 중간, 나머지 후순위. 색은 슬롯과 직교하는 별도 축(recolor)이라 슬롯×색이 곱셈으로 폭발해도 작화량은 슬롯 수에 선형.
| z | 슬롯 | Y대역 | flip | 우선 |
|---|---|---|---|---|
| 9 | 뒷머리(back_hair) — bg장 | 7~13 | 대칭 | ★MVP |
| 10 | BODY(살, 5색 불변) | 7~31 | 대칭 | 있음 |
| 25 | 부츠 | 25~31 | 대칭 | 중간 |
| 35 | 상의(셔츠/로브/흉갑) | 13~21 | 대칭 | ★MVP 1순위 |
| legs | 하의(바지/치마/판금) — 별도 슬롯! | 21~31 | 대칭 | ★MVP 1순위 |
| 65 | 견장(한쪽) | 13~16 | 비대칭 | 중간 |
| 70 | 벨트 / 장갑 | 20~22 / 손 | 대칭 | 중간 |
| 85 | 망토 앞자락(fg장) | 어깨 | 대칭 | 중간 |
| 100 | HEAD(머리통) | 7~13 | 대칭 | 있음 |
| 101 | 표정(눈/입) · 눈썹 · 코 | 8~11 | 대칭 | 중간 |
| 120 | 앞머리(front_hair) — fg장 | 7~13 | 비대칭(가르마) | ★MVP 2순위 |
| 130 | 투구/모자/후드/왕관 | 6~13 | 대칭 | ★MVP 2순위 |
| 140/150 | 주무기(idle/swing) — fg/bg | 손 | 비대칭 | 있음 |
| 접근 | 잘함 | 한계 | 역할 |
|---|---|---|---|
| ① 절차 recolor (현재) | 5색 램프라 무한 색변형 math 100%, flip 불변, 비용0 | 실루엣 못 더함, 머리·투구 불가 | 유지(색 축) |
| ② 손그림 오버레이 | "진짜 옷", 머리·투구·장비 전부, 페이퍼돌로 전프레임 자동추종 | 슬롯×5방향 작화 노동 | 본체 아키텍처 |
| ③ AI(ComfyUI) | 헤어/투구 컬러원안 빠르게(70~80%) | 32px·8방향·프레임일관성 미해결 | 시드 생성기 |
| ④ 애드온 구매 | (이론상) 즉시 | ErisEsra 호환 0개, 8방향 툴은 본체 교체 | 인벤 아이콘만 |
| ⑤ 하이브리드 | math는 math, 작화는 슬롯당 5장, AI는 시드 | 초기 파이프라인 구축 | ★최종 추천 |
① 절차 recolor → 피부톤 + 옷 base색 1개→3색 천 램프 자동셰이딩 (HSV hue-shift, math 100%) ② 손그림 오버레이 → 머리카락·투구·옷디테일·장비 (슬롯당 5장, flip로 8방향) ← 본체 ③ AI/ComfyUI → ②의 컬러 원안·실루엣 시드만 (큰사이즈→다운샘플→5색 양자화→정리) ④ 구매 → diablo_horde 인벤/루트 UI 아이콘 한정
근거: 8방향 모듈러 시판 솔루션이 사실상 없음 → 자작이 정공법. LPC는 GPL 전염 위험(상용 부적합)이라 기법·z테이블·taxonomy만 차용, 아트는 보유 자산+자작. 5색 결정론 recolor는 LPC가 못 가진 우리만의 보너스 색 축.
대칭 슬롯(피부·셔츠·바지·정수리머리·벨트)은 5방향만 그리고 SW/W/NW = flip = 추가작업 0. 비대칭(한쪽 견장·옆가르마·한손무기)만 보정 — 비용 오름차순: ①그냥 수용(치비에선 거의 안 보임) ②부분 패치(그 부위만 1px 재배치) ③대칭으로 설계 회피(MVP 추천: 양어깨 견장·가운데 가르마).
Aseprite slices의 keys[frame].pivot → 프레임별 (x,y) 손/머리 좌표 보유 .ase 원본에 hand_R / head_anchor / hip 슬라이스 추가 → HAND=[[19,19]...] 하드코딩 대신 읽으면 공격 스윙·bob 공짜로 추종 경량 대안(now): (dir,anim,frame)→손좌표 테이블만 코드에
| 방향 | 그리기 순서 |
|---|---|
| S/SE/E/SW/W (비북향) | body → head → 앞머리(위) |
| N/NE/NW (북향) | 뒷머리 → body → head (역전, 뒤통수가 위) |
→ (슬롯,방향,애니구간)→z 테이블(외부 데이터). 망토·긴머리·무기는 fg/bg 2장으로 쪼개 북향에서 bg가 몸 뒤로.
composite(a) {
base 그리기 (5색 recolor = 피부톤만)
for layer of orderedLayers: // z순 [{sheet, z, recolorable, anchor}]
if recolorable: applyRamp(layer, color) // 회색조 마스크 + 팔레트 인덱스
alphaBlit(layer) // 머리/목/손은 마스크로 비움 → 살이 남음
drawWeapon(...) // 이미 있음, fg/bg 분리만 추가
}
옷 버그 직접 수정: 피부 2색(#faf3e8 몸, #d19da7 볼)을 "피부 채널"로 락 → 옷은 z35 별도 픽셀 레이어로 덮되 머리/목/손을 알파 마스크로 비워 살이 남게.
역할분담: math=피부·옷색·천램프·flip·z합성·옷위치마스크·칼라/헴 스탬프 / AI=헤어·투구·방패문양 컬러원안 / 손=AI결과 정리·정렬 / 구매=인벤 아이콘.
| 단계 | 목표 | 핵심 작업 | 비용 |
|---|---|---|---|
| MVP-0 지금 | 옷버그 수정 + 레이어 아키텍처 | Y대역 recolor → 알파 오버레이 합성, 피부채널 락, 머리/손 마스크 | 코드 1일 |
| MVP-1 1주 | "진짜 입은 캐릭터" | 상의·하의·앞/뒷머리·투구 5슬롯 오버레이(idle, S방향, flip로 8방향) + layers.json/zorder | 손작업 中 |
| MVP-2 2주 | 전 애니 | 5슬롯을 run6·attack7로 + per-frame 슬라이스 앵커 + 무기 fg/bg | 손작업 中 |
| 중간 1달 | 양산 파이프라인 | ComfyUI 트랙(ControlNet→inpaint→다운샘플→PixelArt-Detector→정리) + 슬롯 15개 | AI+손 |
| 중간+ | 염색 채널 | 회색조 마스크+팔레트 인덱스(슬롯×색 직교화). 초기에 결정해야 함 | 코드 中 |
| 풀 | LPC급 메이커 | 20슬롯+비대칭보정+방향별 z스왑+라이선스 매니페스트 | 장기 |
| 게임 | diablo_horde 통합 | Godot4 plain spritesheet 합성(Spine 없이, jaggies 없이) | 코드 中 |
skin-studio-5re.pages.dev (현 메이커) · /home/david/game_dev/skin_studio/index.html · diablo_horde