| name | vtuber-autorig |
| description | 새 2D 버튜버 캐릭터를 코드 0줄(yaml 1개)로 생성→AI 자동리깅(끄덕임·목·어깨 foreshortening, 부품형 입, 표정, 2D 조합 키폼, hair strand physics 기본 적용)까지 만드는 검증된 풀 파이프라인. 트리거 — "새 버튜버 모델 만들기", "새 캐릭터 생성", "AUTORIG 캐릭터 추가", "설명/PNG로 버튜버 모델", "006/007 만들기". 배포·방송은 vtuber-deploy 스킬로 이어짐. 2026-06-16 006(Mung-ji)로 end-to-end 실증(워프 15·키폼 156). |
새 VTuber 모델 생성 — 2.5D AutoRig 파이프라인
파이프라인 공식 명칭: 2.5D AutoRig — 2D 아트(입체 셀셰이딩)로 그려 3D처럼 보이고 움직이는(2.5D)
버튜버를 AI로 자동 생성·리깅하는 파이프라인. (생성: DIMENSIONAL 입체음영 / 리깅: foreshortening+2D 키폼)
characters/<id>.yaml 1개만 추가하면 코드 수정 없이 캐릭터가 생성·자동리깅된다. 픽셀 좌표에
LLM 비전 추측 금지 — 결정론적 도구만. 산출물은 experiments/<id>/rig_v0_project(자체 2D 런타임 rig).
0. 캐릭터 스펙 작성 (코드 0줄)
characters/autorig-character-<NNN>.yaml (005/006 참고):
id: autorig-character-007
name: "..."
ip_named: "<오리지널 캐릭터 한 줄 묘사>"
ip_desc: >- <캐릭터명 없는 외형 서술 폴백>
appearance: {hair: "...", eyes: "...", outfit: "..."}
expression_style: >- <성격 — 입 개방·눈 표정 결정. 발랄=입 크게/차분=작게>
colors: {hair_rgb: [r,g,b], clothing_rgb: [r,g,b]}
constraints: [neck_visible, choker_thin]
끄덕임/foreshortening 잘 보이는 설계: 이마·헤어라인 보이는 머리, 드러난 목(낮은 옷깃), 분명한 어깨.
1. 시트 생성 (~$1, gpt-image-2)
python3 scripts/generate_master_sheets.py --character-spec characters/autorig-character-<NNN>.yaml
마스터(OVERDRAW 정수리·턱밑 + ARMS-DOWN 팔차렷 + DIMENSIONAL 입체 셀셰이딩 = "3D 같은 2D 부품") +
입 4상태 + 눈 6표정 + 액센트 4종. 확인: 입 시트 배경이 순수 마젠타(피부 0), 아랫입술이 얇은 선 아닌
면적 있는 입술(부품형 입 추출 통과 조건, MIN_PX lower_lip 800).
2. 풀 파이프라인 (~76분, 분해 ~20분이 병목)
전제: ComfyUI 127.0.0.1:8188 + 관제탑 8095 가동(미가동시 P1 중단).
python3 scripts/run_autorig_pipeline.py \
--master experiments/<id>/generated/master.png \
--mouth-sheet experiments/<id>/generated/mouth.png \
--eye-expr-sheet experiments/<id>/generated/eyes.png \
--accent-sheet experiments/<id>/generated/accent.png \
--experiment-id autorig-character-<NNN> --skip-gates
--skip-gates: 사람 게이트 H1.5/H2 자동 통과(완성 후 라이브 뷰로 일괄 판정). P5 자동검증기는 그대로 작동.
- 재실행/시트만 교체 시
--reuse-decomposition <ComfyUI output>/<id>_seethrough_*_layers.json로 20분 분해 생략.
자동 적용(코드 0줄): 머리 XYZ foreshortening(cheek/pitch/AngleZ)·목 원통 테이퍼·어깨 비대칭·귀 패럴랙스·
눈썹 형태·정수리 노출·2D 조합 키폼·부품형 입(연속 개폐)·깜빡임·표정6·액센트·머리물리. 규모 ≈ 워프 15 / 키폼 156.
Hair strand 기본값(2026-07-06 유키/미미 evidence): 새 AUTORIG 캐릭터는 기본적으로 hair_physics.enabled=true, mode=chunk_vertex_strands, strand_segments=4를 쓴다. 기존 hair chunk를 통째로 흔드는 대신 chunk PNG alpha silhouette에서 strand 중심을 자동 추정하고 ParamHairStrand_* + root-to-tip/Gaussian vertex keyforms를 주입한다. 머리 파츠가 없으면 안전 스킵하며, 캐릭터별로 과하게 흔들리면 hair_physics.enabled=false 또는 strand_segments 하향으로 끈다. 성공 패턴은 docs/ref/pipeline/AUTORIG-HAIRSTRAND-PHYSICS-001.md; JSON PASS만으로 끝내지 말고 live drive에서 확인한다.
3. 알려진 함정 (이 세션 교훈 — 박제)
- 입이 4상태로 폴백(딱딱 끊김):
mouth_parts_manifest.json ok=False(보통 lower_lip <800px). → 입술 두껍게
재생성 후 수동 복구: extract_mouth_parts --sheet <mouth.png> --mouth-line <reskinned>/mouth_line.png --out-dir <id>/mouth_parts
→ clear_face_mouth --face <reskinned>/face_base.png --mouth-line ... --out <같은>(이중 입 차단)
→ build_autorig_rig_v0 ... --mouth-parts-dir <id>/mouth_parts(분해 생략 재빌드).
- P5
neutral_identity: false: mesh vs sprite 백엔드 픽셀 해시 차이 — 005/006도 false인 기존 tolerated(실결함 아님). 무시.
- 귀 워프는 귀 콘텐츠(폭>4) 있을 때만 생성(가린 캐릭터 무영향).
4. 검증 (메모리 visual-verify-real-render — 실렌더로 판정)
python3 scripts/capture_pose.py --project experiments/<id>/rig_v0_project --out /tmp/<id>_pose \
--poses '[{"name":"nod","parameters":{"ParamAngleY":30}},{"name":"turn","parameters":{"ParamAngleX":30}},{"name":"combo","parameters":{"ParamAngleX":25,"ParamAngleY":25}}]'
python3 scripts/analyze_rig_cohesion.py --check --project experiments/<id>/rig_v0_project --out-dir /tmp/<id>_coh
python3 scripts/validate_mouth_parts_keyforms.py --project experiments/<id>/rig_v0_project --out-dir /tmp/<id>_mk
hair strand 적용 후보면 추가로 hair_idle/head_turn_hair/combo_hair before-after evidence와 live compare URL을 남긴다. JSON PASS만으로 승격하지 않는다.
5. 배포·방송 → vtuber-deploy 스킬
build_player_webapp → Vercel → OBS. (라이브 확인: build_player_webapp --out /tmp/<id>_view 후 http.server,
/?renderer=pixi 슬라이더 / drive.html 웹캠.)
한계 (정직)
2D 평면 천장 — 극단 각도·진짜 측면/정수리 완전 노출은 안 됨(=3D 별도 피벗 VRM). 품질은 중급 외주급(기능 ~90%,
손작화 예술성은 못 미침). "싸고 빠름" 포지션. 상세: docs/ref/vision/PRODUCTION-VISION.md.