kidstoon — 캐릭터 제작 전체계획 (사람 공정 대조 · TRELLIS→Unity 상세)
페페 지시(26.8.23): 「사람이 직접 디자인하고 프로세싱하면 어떻게 될까? 앞발·색상 문제만 매달리고 있다. 실제 그래픽 디자이너가 어떻게 작업하는지 확인하고, TRELLIS 결과물 작업까지의 전체계획을 더 상세하고 치밀하게 정리 먼저.」 조사 = 웹조사 5갈래 병렬 + 비판 1(에이전트 6, 웹조회 154회). 원문 =
research-2026-08-23-designer-workflow.md. 상태 =handoff.md· TRELLIS 생성 매뉴얼 =playbook.md· 기존 설계 =design.md.
0. 결론 먼저 — 질문 3개의 답
Q1. 사람이 직접 하면 어떻게 되나? 앞발·색 문제는 아예 발생하지 않는다. 사람은 실루엣 추출이라는 공정 자체가 없다 — 턴어라운드를 「이미지 플레인」(배경 참조 그림)으로 깔고 눈으로 보며 손으로 형태를 재구성하고, 모호한 부위는 해부학 지식으로 채운다. 대신 값이 있다: 전문가 기준 캐릭터 1종 ≈ 100시간(컨셉 8~24h + 모델링 32~160h + 리깅/텍스처 ≤15h). 외주 실측가 = 크몽 120만원(디자인부터·수정 2회·15일).
Q2. 우리가 앞발·색상에 매달린 게 맞았나? ~~색은 맞았고 끝났다(비검정 0.882·게이트 0.828 PASS).~~ 🔄2026-08-24 정정 — 색은 안 끝났었다. 지표(비검정·게이트)는 통과했지만 납품 GLB 에는 유령 눈 4개·앞섶 체커·전신 스펙클이 그대로 있었다. 원인은 우리가 TRELLIS 공식 규약을 벗어난 것이다(§10). 앞발은 매달릴 자리가 아니었다 — ①리깅 관통이 끝나기 전엔 이 메시가 쓸 만한지조차 모르고(§3) ②조사에서 안 써 본 지렛대가 4개 나왔다(§5).
Q3. 그래서 다음 한 수는? 앞발을 덮어두고 현 메시로 리깅 관통 스파이크(R1~R6)부터 친다. 사람 공정 기준으로 우리는 지금 「스컬프트+텍스처까지」 온 것이고, 리토포→리깅→리타게팅이 통째로 미검증인데 조사 결과 그 구간에 치비 특유의 함정이 줄줄이 있다(Mixamo 치비 실패는 업계 통념 수준). 관통이 되면 앞발은 재생성 루프(공짜)로 고치면 되고, 안 되면 앞발을 고칠 이유 자체가 없다.
1. 실제 그래픽 디자이너의 공정 (조사 확정)
1-1. 표준 9단계와 실측 시간
| # | 단계 | 도구(실무 표준) | 시간(심플 스타일라이즈드) |
|---|---|---|---|
| 1 | 컨셉/턴어라운드 | Photoshop·PureRef | 러프 4~8h + 클린 8~16h |
| 2 | 블록아웃 | Maya/Blender | (실루엣 합의 전 3D 착수 금지 원칙) |
| 3 | 스컬프트 | ZBrush(표준)·Marvelous(의상) | 모델링 합산 32~160h |
| 4 | 리토폴로지 | Maya QuadDraw·Topogun | 0.5h(재사용)~3.5h(부위)~18h(복잡) |
| 5 | UV·베이크 | Marmoset·xNormal | — |
| 6 | 텍스처 | Substance Painter·3D Coat(핸드페인트 정평) | 전신 ~1주(신입 자기보고)·단순 색블록 1~2일 |
| 7 | 리깅/스키닝 | Maya·Mixamo/AccuRIG(오토) | 오토 분단위 / 심플 수동 1주 |
| 8 | 엔진 임포트 | Unity Humanoid | — |
| — | 1종 합계 | ≈100h (AAA 상한 사례 270h) |
1-2. 우리 파이프라인과 구조가 다른 지점 3개
- 사람은 실루엣을 추출하지 않는다. 턴어라운드는 뷰포트 배경의 눈 참조용이고, 형태는 판단으로 만든다. 겹친 팔다리·흰 부위 같은 모호 구간도 「해부학 지식 + 컨셉아티스트에게 질문」으로 채운다. → 우리 앞발 문제는 「AI가 실루엣에서 형태를 추정」하는 구조에서만 존재하는 문제 클래스다.
- 색 입히기는 우리 bake 와 같은 원리다. Blender 「project from view」= 카메라 투영 + 클론 브러시 전사 + 심 수정을 각도마다 수동 반복. 우리는 그걸 IoU 자동정합으로 자동화했고 이미 88% 수준까지 왔다 — 색 공정은 사람 대비 열세가 아니다.
- 디자인 단계에서 실루엣 문제를 예방한다. 「블랙필 테스트」(실루엣만 검게 채워도 형태가 읽히는가)를 컨셉에서 통과시키는 게 원칙. → 우리도 같은 걸 할 수 있다: 캐릭터 시트 단계에서 「배경과 붙는 흰 부위가 외곽에 없도록」 디자인 규칙화(주황 장갑이 정확히 이것).
2. 사람이 하면 — 경로 4개 비교 (실측가 기준)
| A. 현행 AI 자동화 | B. 하이브리드(AI메시+사람 정리) | C. 외주 | D. 기성(VRoid/에셋) | |
|---|---|---|---|---|
| 1종 비용 | 0원(전기값) | 0원+시간 | 크몽 실측 5만~120만원(디자인부터·수정2회·15일) / Fiverr $25~30+리깅 $100~300 / Upwork $500~2,000 | 무료~$45 |
| 5종 캐스트 | 0원 | 시간×5 | ≈600만원(크몽 PREMIUM급×5) | ~0원 |
| 시간/1종 | 생성 6초+리깅 미지수 | +1~2일(숙련자 국소수정 기준·유추치) | 15일/종 | 반나절 |
| 원화 일치 | 게이트 0.828 | 게이트 이상 | 작가 역량·수정 2회 한도 | 원화 포기(기성 형태에 맞춤) |
| 앞발류 문제 | 있음(구조적) | 사람이 지움 | 없음 | 없음 |
| 캐스트 일관성 | 시트 규격으로 강제 | 동일 | 단일 작가 고정 필수(업계 관행) | VRoid는 사람형 위주 — 동물 치비 부적합 |
| 주1편 적합성 | ◎(재생성 공짜) | ○ | △(추가 캐릭터마다 돈·15일) | △ |
| 리깅 보장 | 미검증 | 사람이 보장 | 발주조건에 명시하면 보장 | VRoid는 Humanoid+블렌드셰이프 자동 |
판단: 캐릭터는 1회성 자산이라 100h/외주 120만원이 「못 낼 값」은 아니다 — 병목은 편당 제작이지 캐릭터가 아니다. 그래서 A를 기본으로 유지하되, A가 리깅 관통(§4)에 실패하면 C(1종 시험발주 50만원급)로 보험을 건다. D의 VRoid 는 사람형 전제라 동물 치비 캐스트엔 부적합(단, 사람 조연이 필요해지면 그때 최적). B는 A의 국소 보완재로 상시 열어둔다 — Tripo 공식 가이드도 「생성 20% : 정제 80%」를 명시하고, AI 메시→사람 마무리가 2025~26 실무 표준 패턴이다.
3. 🔴 순서 재정렬 — 진짜 미검증 구간은 리깅 이후 전부다
조사에서 확인된 우리 앞길의 함정들(전부 남의 실측):
- AI 원시 메시는 리토포 없이 리깅하면 깨진다. fused geometry(손가락 벙어리장갑·부속이 몸통에 융합)로 스키닝이 뼈 소속을 못 가른다 — 어깨·엉덩이·팔꿈치·무릎에서 찢어지거나 붕괴(Tripo 공식도 명시).
- Mixamo 는 치비 비율에서 자주 실패한다(업계 통념 수준) — 손가락 미인식·목 관절 오정렬·팔 꼬임. 「Mixamo 호환 치비 베이스메시」가 별도 상품으로 팔릴 정도. 우회 = 마커를 사람 비율처럼 배치 + ≤120K 폴리 + 실패 시 Blender Automatic Weights 재스킨.
- AccuRIG 가 과장비율(큰 머리·짧은 팔다리) 전용 Pose Offset 을 공식 주장 — 단 벤더 문구고 제3자 검증 없음. 그래도 치비엔 Mixamo 보다 1순위 시도 가치.
- Unity Humanoid 는 리깅이 아니라 리타게팅 레이어다. 비율차 보정 파라미터가 빈약(Translate DoF 7곳 한정). 치비 증상 = 팔이 몸을 뚫음·보폭 과대·손이 머리에 안 닿음. 해법 = Avatar Mask + 클립별 커브 + Two-Bone IK 수동 세팅(상용 해결책 IK Helper Tool 은 폐기됨).
- 귀·꼬리는 지능적으로 리타겟되지 않는다(Unity 공식 답변) — 임포터 마스크에서 명시적으로 켜야 하고 소스 커브가 그대로 복사된다. 흔들림 = UniVRM SpringBone(MIT)이 사실상 표준.
- 툰 아웃라인(inverted hull)은 AI 메시의 불균일 노멀에서 틈이 생긴다 — 스무딩 노멀을 UV2 에 구워 넣는 전처리가 필요. 우리 공정엔 이 단계가 아예 없었다(비판 에이전트 발견).
- 캐스트 5종이 같은 클립을 공유할 수 있는지는 업계 자료 자체가 없다 — 자체 파일럿이 유일한 검증.
- 라이선스 확정: Mixamo 애니는 유튜브 수익화 포함 상업 무제한 무료(재판매 금지·ML 학습 금지만).
→ 앞발은 이 벽들을 다 넘은 뒤에 고쳐도 늦지 않고, 벽에서 막히면 고칠 이유도 없다. fail-fast.
4. TRELLIS 결과물 → Unity 완성 상세 공정 (R-체인)
S1~S4(시트→생성→게이트)는
playbook.md확정. 여기는 그 다음 전 구간. 원칙: 각 단계에 게이트·폴백을 박고, 통과 실측값을 playbook 에 승격한다.
| # | 단계 | 도구(전부 무료) | 게이트(통과 기준) | 실패 시 폴백 |
|---|---|---|---|---|
| R1 | 노멀 정리 — 스무딩 노멀 생성(툰 아웃라인용 UV2 베이크는 셰이더 확정 후) | Blender(Shade Smooth + Auto Smooth) | 렌더에서 패싯 면 없음 | 각도 임계 조정 |
| R2 | 리토포 — 20,650 tri → 쿼드 위주 8~15K, 관절(팔꿈치·무릎·어깨·목)에 지지 루프 ≥3 | Instant Meshes(오픈소스) 1차 → Blender Remesh/수동 보정 | 쿼드율·관절 루프 육안 + tri 수 | Meshy/Tripo 무료 Remesh(웹) |
| R3 | UV 재전개 + 텍스처 전사 — 새 토폴로지에 새 UV, 기존 bake 텍스처를 Selected-to-Active 베이크로 이사. ⚠전사할 원본 텍스처는 §10 결정 후 확정 | Blender(xatlas/Smart UV + Cycles bake) | 비검정 >0.15 · 육안 심 확인 | 문제 부위만 국소 재언랩 |
| R4 | 리깅 — ①AccuRIG(과장비율 주장·1순위) ②Mixamo(마커를 사람 비율처럼) ③Blender Automatic Weights 재스킨 | AccuRIG·Mixamo·Blender | 본 위치 육안 + 팔들기·앉기 테스트 포즈에서 찢어짐 없음 | ③까지 실패 = §5 경로 전환 |
| R5 | Unity 반입 — URP + com.unity.toonshader + UniVRM(SpringBone용) 설치, FBX 임포트, Humanoid Avatar 매핑 | Unity 6000.3.22f1(집PC) | Configure 에서 필수 본 전부 녹색 + T포즈 정상 | 본 이름 수동 매핑(⚠GLTF 본이름 콜론 제거 함정 기억) |
| R6 | 리타게팅 검증 — Mixamo walk/idle/wave 3클립 재생 | Unity Animator | 팔 관통·보폭·손위치 육안 3클립 통과 | Avatar Mask·클립별 커브·Two-Bone IK |
| R7 | 귀·꼬리 — 임포터 마스크에서 extra bone 활성 + SpringBone | UniVRM SpringBone(MIT) | 흔들림 육안(Stiffness 1.0·Drag 0.4 기본에서 시작) | 본 없으면 Blender 에서 귀·꼬리 본 수동 추가 |
| R8 | 입·눈 텍스처 스왑 — 얼굴 쿼드 전용 2번째 UV + 8칸 아틀라스, Shader Graph Flipbook 노드(Tile 에 정수 인덱스) | Unity 내장 | 입모양 8종 전환 육안 | MaterialPropertyBlock 직접 오프셋 |
| R9 | 캐스트 간 클립 공유 검증 — 2종째 캐릭터(로봇)에 같은 클립 | R1~R6 반복 | 두 캐릭터가 같은 클립으로 걷는가 | 캐릭터별 클립 사본+커브 보정 |
R1~R6 = 「리깅 관통 스파이크」 1단위(현 메시 그대로, 앞발 무시). 예상 반나절~1일. 집PC GPU 불필요 구간(R1~R4 는 Blender CPU 로 미니PC에서도 가능, R5~R6 만 집PC Unity).
5. 앞발 — 관통 뒤에 쓸 지렛대 4개 (조사에서 새로 나온 것 포함)
우선순위 순. ①이 공짜고 근본이라 1순위.
- 업스트림 크로마키 — 시트 재생성(비판 에이전트 발견·미시도). 나노바나나 프롬프트에서 배경을 캐릭터 팔레트에 없는 색(그린/마젠타)으로 지정해 처음부터 흰 부위가 배경과 안 붙는 시트를 뽑는다. rembg(u2net)가 흰 앞발을 배경으로 오인하는 원인 자체가 사라진다. 비용 = 프롬프트 실험 1~2시간. ⚠단 「배경교체 후 rembg」(rembg-swap)가 붕괴했던 전례가 있으므로, 생성 시점부터 크로마키인 시트로 4컷 전부 다시 뽑아 일관되게 넣어야 한다(후처리 교체와는 다른 조건).
- rembg 노브/모델 교체(미시도). alpha_matting 임계값(fg 기본 240·bg 기본 10) 조정 또는 birefnet 등 다른 매팅 모델 — 손대는 건 파라미터지 매트 자체가 아니라서 「외곽을 우리가 다시 그리면 붕괴」 규칙에 안 걸린다. 비용 = 코드 한 줄 스윕.
- 디자인 변경 — 주황 장갑(기존 안). 디자이너의 「블랙필 테스트」 원칙과 정확히 같은 해법. 장화와 세트라 자연스럽다. 비용 = 시트 재생성. ①②가 실패하면 이것.
- Blender 국소 수정(하이브리드 B). 정상 발을 복제·이식 + 국소 재언랩 + 원화 재투영. 숙련자 1~2일(유추치) — 코디가 Blender 파이썬으로 시도 가능하되 학습곡선 리스크.
6. 실행 로드맵 (이 순서로)
Phase A 리깅 관통 스파이크 (R1~R6, 현 메시·앞발 무시)
├─ 통과 → Phase B
└─ R4 3폴백 전부 실패 → Phase C
Phase B 앞발 지렛대 ①→②→③ 순 시도 → 시트 확정 → 재생성 →
R-체인 재주행(이번엔 자동화 스크립트로) → R7~R9 → 캐릭터 1종 완성
Phase C 하이브리드 B 심화 — 코디가 Blender 스크립팅(bpy)으로 리깅·정리를 직접 자동화
(본 배치 휴리스틱 개선·웨이트 수동보정 스크립트화) + 시트·생성 파라미터 재설계 루프
✅페페 확정(26.8.23) = ①관통 먼저 ②지렛대 = 크로마키→rembg 노브→장갑 순 ③🔴외주는 안 쓴다 — 무조건 AI 기술로 승부. §2 경로 C(외주)·구 Phase C(시험발주)는 폐기. 실패 시 경로 = 항상 「AI + 코디 자동화」 안에서 푼다(위 Phase C).
기존 로드맵과의 관계 = P0 관통 스파이크의 「③Mixamo 클립이 AI 메시 리그에 붙음」 게이트를 R1~R6 으로 세분화한 것. P0 의 나머지(셋·대사·Recorder)는 R-체인 통과 후 그대로 진행.
7. 페페 결정 — ✅확정(26.8.23)
| # | 사안 | 결정 |
|---|---|---|
| 1 | 우선순위 | ✅관통 먼저(추천대로) |
| 2 | 앞발 지렛대 | ✅크로마키 → rembg 노브 → 장갑 순(추천대로) |
| 3 | 외주 | ✅🔴외주 사용 없음 — 무조건 AI 기술로 승부(페페 원문 26.8.23). 실패 시에도 AI+코디 자동화 안에서 푼다. §2 경로 C 폐기 |
7-1. 경로 E — 파트별 생성·조립 (페페 발의 26.8.23 밤, 코디 평가)
페페 원문: 「몸·얼굴의 다른 색상부분, 귀 파트, 눈 파트 등 디테일이 하나로 베이크해서 산출 안 되는 부분들을 파트별로 나눠 생성하는 방법도 생각해봐. 에셋 개념으로 파트를 나눠 생성하면 관절 부위도 생성되고 파트별 에셋 생성도 잘 될 것 같다.」
코디 평가 = 유망하다. 오늘 확인된 문제 3계열을 동시에 지운다:
- 앞발 실루엣 결손 소멸 — 팔을 독립 파트로 생성하면 흰 앞발이 실루엣 내부가 아니라 파트 자체가 된다. rembg 가 오릴 배경 혼동 자체가 없다.
- 어깨 융합·웨이트 번짐 소멸 — 오늘 단면 진단의 최대 리스크(위팔~어깨가 몸통에 융합, 자동 웨이트 번짐 우려)가 파트별 강체(rigid) 바인딩으로 원천 제거된다. 관절 = 파트 겹침(볼조인트) — 세그먼트 캐릭터는 툰 장르 표준 기법(레이먼은 아예 팔다리가 떠 있다). 스키닝·자동 웨이트가 공정에서 사라진다.
- 텍스처 아틀라스 단순화 — 파트당 텍스처가 작고 단순해져(귀=단색+안쪽, 눈=평면) 오늘 밤 잡은 「단일 아틀라스 섬 뒤섞임」 문제의 표면적 자체가 준다. 눈·입은 애초에 D4 계획대로 텍스처 스왑 쿼드라 파트 생성과 정합.
리스크·확인 필요 = ①TRELLIS 가 몸통 없는 단독 팔/귀를 온전히 생성하는지(학습분포 밖일 수 있다 — 파트당 실측 1회) ②파트 접합부 이음새가 툰 렌더에서 읽히는지(겹침 반경 튜닝) ③파트 배치 정렬 자동화 (랜드마크 JSON 은 이미 있다 — rig_prep 산출을 조립 좌표로 재사용) ④파트 수 × 생성 시간(파트당 6초라 문제 아님).
결론 = R3'(텍스처 대응 문제)가 한 번 더 막히면 경로 E 를 1군으로 승격한다. 그 전에도 귀·꼬리 같은 소형 파트는 E 방식이 유리(SpringBone 대상이라 어차피 별도 본이다). 로봇 주연(D3)은 애초에 파트 조립이 자연형이라 E 의 첫 실전은 로봇 캐스트로 잡는 게 맞다.
8. 조사의 한계 (정직하게)
- 「치비 1종/앞발 하나 수정 = X시간」 직접 벤치마크는 웹에 없다 — 1~2일은 국소작업 규모의 유추치.
- AccuRIG 치비 우위는 벤더 자기주장(제3자 검증 무) — R4 에서 자체 실측으로 판정.
- TRELLIS 를 Mixamo/AccuRIG 에 넣은 직접 사례는 끝내 못 찾았다 — R-체인이 그 첫 실측이 된다.
- AI 하이브리드 낙관론(3~5배 빠름)의 출처 다수가 벤더 블로그 — 독립 실측(StraySpark)은 「이미 정제된 3만폴리」 기준이라 우리 raw 조건보다 유리한 출발점이었다.
- 시간 수치 자릿수 모순(100h vs 1~2h vs 외주 12~80h)은 조건(손모델링/AI+정제/외주)이 달라서다 — 우리 조건의 실제 시간은 Phase A 타임로그가 첫 데이터가 된다.
- TRELLIS.2(25.12 출시)를 비판 에이전트가 「미검토」로 꼽았으나 기각 사유가 이미 시드에 있다
(단일 이미지 입력뿐 + 24GB 요구 — 비대칭 얼굴엔 다중뷰가 우선,
rules.md). 재론 안 함.
9. 눈·귀·입 움직임 — 조사 결과와 채택안 (2026-08-24, 페페 지시)
페페 원문: 「영상으로 만들고 3D로 캐릭터가 움직이면 눈, 귀, 입 움직임도 필요하다. 파트를 나눠서 별도로 머리에 추가하는 방법이 필요할거 같다. 관절은 지금 상태에서도 움직일 수 있을 것으로 본다.」
결론 = 페페 직감이 맞다. 단 「파트」의 성격이 부위마다 다르다 — 셋을 같은 방식으로 풀면 안 된다.
| 부위 | 성격 | 채택 기법 | 왜 |
|---|---|---|---|
| 입 | 평면 특징(실루엣 무관) | 텍스처 스왑 — 별도 패치 메시 + 8칸 아틀라스 UV 오프셋 | Rhubarb 출력이 A~H 8종 코드+타임코드라 그대로 대응 |
| 눈 | 평면 특징 | 텍스처 스왑 — 깜빡임 2~3칸 + 감정 N칸 | 업계 표준(젤다TP·VRoid·VTuber 3D) |
| 귀 | 실루엣 특징 | 본 2개(Head 자식 L/R) + SpringBone | 텍스처로 불가 — 쫑긋/납작은 외곽선이 바뀐다 |
| 꼬리 | 실루엣 | 본 3~4개 + SpringBone (기존 R7) | 동일 |
업계 대조 — VRoid 계열은 모델을 Body/Face/Hair 별도 SkinnedMeshRenderer + 별도 머티리얼로 쪼개고
얼굴만 텍스처를 갈아끼운다. 눈은 「얼굴 메시의 고정 영역에 눈 텍스처를 얹고 UV 를 오프셋」하는
닌텐도식이 정석(SetTextureOffset). 블렌드셰이프를 안 쓰는 게 이 장르의 주류다 — AI 메시엔
셰이프키가 없어 캐릭터마다 입을 조각해야 하는데, 그 비용이 통째로 사라진다(rules.md 기확정).
🔴 진짜 장애물 = 베이스 텍스처에 얼굴이 이미 구워져 있다
눈·입을 스왑하려면 그 자리가 비어 있어야 하는데, 우리 아틀라스는 xatlas 임의 섬이라 「얼굴 영역만」 도려낼 수가 없다. 3안:
| 안 | 방법 | 비용 | 위험 |
|---|---|---|---|
| (a) 덮기 ✅채택 | 눈·입 패치 메시를 머리 곡면에 shrinkwrap 으로 밀착시켜 얹는다(평면 아님 — 세분화 필요) | 최저. 오늘 자산에 바로 얹힌다 | z-fighting · 툰 아웃라인이 패치 경계를 그릴 수 있다 |
| (b) 민얼굴 베이스 | 얼굴 특징을 뺀 시트를 한 벌 더 생성해 그걸로 굽는다(imagegen) | 중 | 시트 재생성 = 형상까지 흔들릴 수 있어 bake 입력만 교체해야 한다 |
| (c) 경로 E | 머리를 파트로 생성 | 최대 | §7-1 |
채택 = (a) 먼저. 베이스 재생성 없이 검증되고, 실패해도 (b)→(c) 로 승급하면 된다. (b) 는 (a) 에서 「패치가 원래 눈을 다 못 가린다」가 확인될 때만 간다.
관절 = 페페 말대로 현 상태로 간다
Phase A 에서 Humanoid 아바타 isValid+isHuman · 전 본 자동매핑 · 근육 포즈 3종 메시 붕괴 없음을 이미 확인했다(2026-08-23). 귀·꼬리만 extra bone 으로 추가하는데, Mixamo 리타게팅은 extra bone 을 건드리지 않으므로 기존 클립과 충돌하지 않는다(= 안전한 증분).
한국어 립싱크
Rhubarb 는 영어 음소 기반이라 한국어는 근사다. 음향 기반 uLipSync(언어 무관)가 한국어 1순위 후보 — R8 에서 두 개를 같은 대사로 붙여보고 육안 비교해 고른다.
미검증(정직하게)
- 툰 아웃라인이 패치 경계에 선을 그리는지 — 아웃라인 단계는 우리 공정에 아직 없다(비판 에이전트 지적).
- AI 메시 머리 곡면에 shrinkwrap 이 깨끗이 붙는지(quadriflow 5,429쿼드 기준).
- 치비라 눈이 커서 패치가 크다 — 머리 회전 시 가장자리 왜곡이 보이는지.
9-1. (a)안 스파이크 실측 — 2026-08-24 (tools/blender_face_parts.py)
패치 메시(24×24 그리드) + SHRINKWRAP(PROJECT, offset 0.004) + Mapping 노드 UV 오프셋으로
final3 머리에 눈 3칸·입 4칸 아틀라스를 얹어 정면·35° 2각도 렌더.
| 질문 | 답 | 근거 |
|---|---|---|
| 곡면에 이음새 없이 붙는가 | ✅붙는다 | 35° 비스듬에서도 머리에 밀착, 뜨거나 파고들지 않음 |
| z-fighting 나는가 | ✅안 난다 | offset 0.004 로 충분 |
| UV 오프셋으로 칸이 바뀌는가 | ✅바뀐다 | 눈 뜸→감음 · 입 다뭄→A 교체 확인 |
| 원래 구워진 얼굴을 가리는가 | 🔴못 가린다 | 베이크된 눈이 패치 옆으로 그대로 보인다 |
🔴그래서 (b)민얼굴 베이스는 선택이 아니라 필수다. 이유 = 눈을 덮으려면 패치 칸에 주변 털색
배경을 같이 그려야 하는데, 우리 캐릭터는 털이 무늬(태비/주황 비대칭)라 단색 배경으로는 절대
안 맞는다. 패치를 키우면 35° 에서 머리 옆면까지 감겨 눈감음 선이 볼 밖으로 삐져나온다(실측).
→ bake 입력 시트에서만 눈·입을 지우고 굽는다(형상 입력은 손대지 않는다 — 실루엣 건드리면
§2 붕괴 규칙에 걸린다). 시트 재생성이 아니라 --sheet-dir 쪽 4컷만 얼굴 특징 제거하면 된다.
다음 수 = ①민얼굴 bake 시트 4컷 생성(imagegen 또는 인페인팅) → 재bake → 패치만 남는지 확인 ②패치 위치·크기를 랜드마크(rig_prep)에서 자동 산출 ③Head 본에 패런팅 + Unity 반입.
9-2. (b)민얼굴 베이스 — ✅관통 확인 (2026-08-24)
tools/deface_sheet.py 신설 = bake 시트에서 눈만 지운다(형상 입력은 안 건드린다).
🔑열쇠 2개 — ①원화가 툰 라인아트라 「어둡다」의 대부분이 외곽선이다 → 알파를 침식한 내부에
완전히 포함된 덩어리만 남긴다(외곽선·귀선 제거) ②태비 줄무늬도 어둡고 내부라 안 갈린다 →
홍채색(HSV s>80·v>110·h 18~42)이 인접한 덩어리만 눈으로 인정. 이 둘을 다 걸어야 눈 2개만 남는다.
실측 = 마스크 13,450px(front) · 줄무늬·귀·주둥이 보존 · 코/입선은 남긴다(입 패치가 덮는다).
관통 결과 = 민얼굴 시트로 재bake(out/trellis/noface, 지표 유지 coverage 0.595 · raw 0.675) →
패치 얹기 → 베이스에 눈이 없고 패치 눈만 보인다 ✅. 눈 깜빡임·입 4칸 교체도 그대로 동작.
남은 것 = ①패치 위치·크기를 랜드마크에서 자동 산출(지금은 상수 0.760/0.690 — 원래 눈보다 작고 가깝다) ②눈 지운 자리에 옅은 얼룩이 남는다(패치 밑이라 실사용엔 무해) ③실제 눈·입 아틀라스 아트 (지금은 플레이스홀더) ④Head 본 패런팅 + Unity 반입 ⑤귀 본 2개.
10. 🔑 텍스처 경로 — 공식 규약 재발견과 3안 비교 (2026-08-24)
10-1. 발단 — orbit.mp4 는 납품물이 아니었다
페페 지적 = 「앞섶 깨지고 얼굴 이중, 전체 텍스처 지저분. 그런데 final3/orbit.mp4 는 완벽하다」.
정체 = trellis_gen.py 마지막 줄이 render_utils.render_video(outputs["gaussian"][0]).
orbit.mp4 는 가우시안 스플랫 직접 렌더라 메시·UV·bake·GLB 를 하나도 안 거친다.
그래서 우리 텍스처 공정이 무슨 짓을 해도 안 깨진다 — final·run1·cut1 등
모든 실행 폴더의 orbit.mp4 가 원래 다 깨끗했다. 「final3 만 완벽」이 아니다.
glb_cpu_render.py 로 GLB 를 직접 렌더하니 페페가 말한 3증상이 GLB 에만 전부 있었다 —
눈 4개(정면시트 눈 2 + 측면시트 눈 2가 볼에 찍힘) · 가슴 중앙 체커 · 전신 스펙클.
증거 = kidstoon/out/_diag_texture/compare_{body,face}*.png.
10-2. 🔴 뿌리 = 공식 규약 이탈
TRELLIS v1 공식 페이지(26.8.23 조사에서 누락, 26.8.24 페페 지적으로 확인):
"GLB files are extracted by baking appearance from 3D Gaussians to meshes."
공식에서 GLB 텍스처의 관측원은 가우시안이다. 우리는 「생성된 가슴·앞발이 검다」를 고치려고
관측원을 원화 4컷으로 갈아끼웠고(--sheet-dir), 그 순간 3D 정합을 잃었다.
측면 시트의 눈은 「같은 눈을 옆에서 그린 2D 그림」인데, 옆 카메라로 쏘면 광선이 머리 옆면에 맞는다 → 볼에 눈. 앞섶은 4뷰 모두 스치듯 봐서 텍셀당 관측 1~2개 → 최적화 미결정 → 체커. 파라미터(texture_size·lambda-tv·simplify)로는 못 고친다 — 1024+TV 는 증상만 옅게 한다.
조사 §1-2 의 「디자이너는 턴어라운드를 눈 참조로만 쓴다」가 코드로 나타난 것이고, 가우시안은 4뷰를 3D 로 융합해 눈 위치를 이미 결정했으므로 이 문제 클래스가 원리상 없다.
10-3. 3안 비교 (26.8.24 실행, tools/trellis_3way.bat)
| # | 안 | 구현 | 기대 |
|---|---|---|---|
| ① | 공식 to_glb 복귀 | --sheet-dir 없이 실행(코드에 이미 있는 else 분기) + --target-medv 0.53 알베도 보정 |
유령눈·체커 원리적 소멸. 대가 = 라인아트 뭉갬(코·입 선 소실, 색 파스텔) |
| ② | 하이브리드 | 🆕--gauss-views 60 — 원화 4뷰에 가우시안 60뷰를 관측으로 덧붙인다. 원화 지분 4/64. 상하규약은 래스터 마스크 IoU 로 자동 결정(추측 금지) |
다수결이 정합 쪽으로 기울어 유령 소멸 + 원화 색·선 일부 회복 |
| ③ | 정면만 얼굴 | 시트 조합 cut_h_frontface = 정면·후면은 원본, 측면 2장은 눈·입 지운 것(cut_noface 재활용) |
볼에 눈을 칠할 관측이 없어 유령 구조적 소멸. 4뷰 희소성(체커)은 남음 |
대조군 = 현 영상 자산 nf1024tv/model_n.glb(원화 4뷰 · 1024 · TV 0.01).
②③은 대조군과 같은 simplify 0.90 / texture 1024 / lambda-tv 0.01 로 맞춰 1변수 비교로 만들었다.
판정 = glb_cpu_render.py 로 GLB 직접 렌더 → ⓐ정면 눈 개수 2개 ⓑ가슴 체커 없음 ⓒ코·입 라인 생존.
10-3′. 실측 결과 (26.8.24, GLB 직접 렌더 판정)
증거 = kidstoon/out/_diag_texture/ALL_6way.png(위=전신 · 아래=얼굴 확대, 좌→우 순서 = 아래 표).
| # | 안 | 유령 눈 | 앞섶·스펙클 | 라인아트 | 판정 |
|---|---|---|---|---|---|
| — | 대조군 nf1024tv(현 영상 자산) |
🔴있음 | 🔴체커·전신 스펙클 | 선명 | 현 상태 |
| ① | o1_native 공식 to_glb |
✅없음 | ✅깨끗 | 🔴전부 소실(코·입선·태비무늬) | 통과, 밋밋 |
| ② | o2_hybrid 원화4+가우시안60 |
✅없음 | ✅깨끗 | △입·주머니선 일부 생존 | 🏆최선 |
| ②b | o2b_hybrid12 원화4+가우시안12 |
△약한 테두리 재등장 | ✅깨끗 | ○①②보다 더 살아남 | 노브 확인용 |
| ③ | o3_frontface 측면시트 deface |
🔴있음 | 🔴그대로 | 선명 | 실패 |
| ③b | o3b_eyedrop 측면시트 눈 알파=0 |
🔴있음 | 🔴그대로 | 선명 | 실패 |
🔑 ③ 계열 2방식 전부 실패 = 「원화 4뷰 단독」 경로는 종결이다. 측면 시트를 손대는 것으로는 유령이 안 지워진다 — 즉 유령의 출처가 측면 시트만이 아니다(정면 시트 자체의 관측이 구형 머리 옆면까지 유효 판정되는 것으로 추정, 미확정). 4뷰 희소성은 관측 수를 늘리는 것 말고 해법이 없다.
🔴 ③ 이 실패한 직접 원인은 따로 있고, 이게 더 큰 발견이다 — deface_sheet.py 는 눈을 못 지운다.
어두운 덩어리(눈꺼풀·동공)만 인페인팅하고 밝은 홍채를 남겨 창백한 원형 잔상을 만든다
(실측: cut_h vs cut_noface 측면 시트 확대). 그래서 ③은 「측면 눈 제거」가 아니라
「측면 눈을 다른 얼룩으로 교체」를 시험한 셈이었다. 현 영상의 「얼굴이 이중으로 겹쳐 보인다」도
같은 원인 — 민얼굴 베이스(nf1024tv)에 이 홍채 잔상이 남아 있는데 그 위에 눈 패치를 얹었다.
②의 노브 = 가우시안 뷰 수. 60뷰(지분 6%)면 유령 0·라인 최소, 12뷰(지분 25%)면 라인이 더 살고 유령이 조금 돌아온다. 라인아트를 더 원하면 12~30 사이를 스윕한다.
10-3″. 5시트 × 가우시안{12,60} 전수 매트릭스 (26.8.24, 페페 지시)
산출 = out/trellis/m10/{A_orig,B_front,C_drop,D_noface,E_dropall}_g{12,60} · 대조 = o1_native.
캡처 = out/_diag_texture/m10_{body_front,body_left,face}.png(2행 = g12/g60, 6열 = A~E + NATIVE).
| 코드 | 시트(bake 관측) |
|---|---|
| A | cut_h 원화 얼굴 그대로(=final3 입력) |
| B | cut_h_frontface 측면 2장 deface |
| C | cut_h_eyedrop 측면 2장 눈 알파 0 |
| D | cut_noface 4장 전부 deface(현 영상 베이스) |
| E | cut_h_dropall 🆕 4장 전부 눈 알파 0 |
결과 — 10개 전부 깨끗하다. 유령 눈 0 · 앞섶 체커 0 · 스펙클 0. 즉 가우시안 관측을 넣는 순간 시트 변형(A~E)은 사실상 무의미해진다.
| 비교 | 평균 픽셀차(0~255) |
|---|---|
| 같은 g 에서 A 대비 B/C/D/E | g12 1.5~1.6 · g60 1.0~1.2 |
| 같은 시트에서 g12 vs g60 | 1.6~1.7 |
| NATIVE 대비 | g12 2.3 · g60 1.8 |
🔴 결정적 발견 = 하이브리드로는 민얼굴 베이스를 못 만든다. D(전부 deface)·E(전부 알파드롭)에도 눈이 그대로 있다 — 가우시안이 눈을 갖고 있어 다시 칠한다(얼굴영역 홍채색 비율 D 0.485 · E 0.486 = NATIVE 0.487). R8 눈·입 스왑은 시트를 손대는 것으로 해결 안 되고, 가우시안 렌더 쪽에서 얼굴을 지우거나 얼굴을 별도 파트로 분리(경로 E)해야 한다.
⚠ 방법론 경고 — 이 매트릭스는 시트 변형 효과를 분리하지 못한다. TRELLIS 가 --seed 1 고정에도
매 실행 메시가 다르다(10회 verts 12,590~13,129 전부 상이) → UV 재배치로 선명도가 흔들리고,
그 런노이즈가 변형 효과(1.0~1.6)와 같은 크기다. 시트 변형을 진짜로 재려면 메시를 1회 생성해
고정하고 bake 만 반복해야 한다(미구현).
남은 유일한 실질 노브 = 가우시안 뷰 수. g12 가 g60 보다 원화 쪽(대비·라인)에 가깝고 NATIVE 에서 멀다. 원화 선명도를 더 원하면 4~8뷰까지 내려 스윕하는 게 다음 수다(미실행).
10-5. 🔑 정정 + 해결 — 유령의 범인은 측면 시트였다 (26.8.24 밤)
정정 — §10-3′ 의 「③ 계열 2방식 실패 = 원화 4뷰 단독 경로 종결」은 오판이었다. ③b 를 1024+TV 로 돌려 다른 파라미터의 기준선과 눈으로 비교한 탓이다. 같은 조건으로 A/B 를 다시 쳤다.
A/B (둘 다 sheet-only · 2048 · TV off · 가우시안 0 = final3 설정) — out/_diag_texture/ghost_ab.png
| 시트 | 정면 눈 | |
|---|---|---|
| S1 | cut_h (원화 얼굴 그대로) |
🔴4개 |
| S2 | cut_h_eyedrop (측면 시트 눈만 알파 0) |
✅2개 |
→ 측면 시트가 범인 확정. 측면 원화의 눈은 「같은 눈을 옆에서 그린 2D 그림」이라 옆 카메라로 쏘면 광선이 머리 옆면(볼) 에 맞는다(메시의 진짜 눈은 앞면). 같은 원리로 측면 시트의 수염·주둥이선· 머리 윤곽선이 얼굴을 가로지르는 유령 곡선이 된다.
해법 = tools/facedrop_sheet.py 신설. 측면 시트의 눈에서 앞·아래 사분면(눈 크기 단위 직사각)을
알파 0 으로 판다. 정면·후면 시트는 그대로 둔다(정면 눈이 진짜 눈이고 후면엔 얼굴이 없다).
| 시트 | 결과 | |
|---|---|---|
| F0 | cut_h_facedrop (윤곽선 띠 보존) |
눈 2개 ✅ · 얼굴 가로지르는 곡선 잔존 |
| F0b | cut_h_facedrop2 (--no-edge, 윤곽선 띠까지 제거) |
🏆눈 2개 · 곡선 소멸 · 원화급 선명도·색 유지 |
| F4/F8 | facedrop + 가우시안 4/8 | 🔴가우시안이 소수여도 색이 탁해지고 노이즈 증가 — 섞지 마라 |
증거 = out/_diag_texture/facedrop_{face,edge_ab,body}.png · 산출 = out/trellis/fd/.
🏆 현재 최선 = fd/F0b_g0 — 원화 4뷰 단독 · 2048 · TV off · facedrop2 시트.
페페 평가대로 색·해상도는 final3 급이면서 유령만 사라진 것이다.
남는 결함 = 가슴(앞섶) 격자·전신 스펙클. 이건 유령과 별개인 4뷰 희소성 문제이고, 가우시안 혼합은 색을 죽이니(F4/F8 실측) 다른 수가 필요하다 — 후보 = 시트 4컷 → 6~8컷 증설, 또는 앞섶 부위만 국소 보정. 미해결.
10-4. 조사 방법론 교정 (재발방지)
26.8.23 조사는 웹 154회를 돌면서 지금 쓰고 있는 도구의 1차 문서를 안 읽었다(TRELLIS v1 공식
페이지 0건. 잡힌 건 전부 TRELLIS.2·포크·ComfyUI·fal.ai). 도구를 이미 돌리고 있다는 사실이
「문서는 이미 안다」는 착각을 만들었다. → 조사 착수 시 0번 항목 = 현재 쓰는 도구의 1차 문서.
조사 원문 반영 = research-2026-08-23-designer-workflow.md 의 ===== trellis-official ===== 절.