kidstoon — 설계 + 구현계획
상세 표·비용·예시 이미지 =
devplan/kidstoon.html(정본). 여기엔 결정과 그 근거만 둔다.
D1. 제작 경로 = 3D 실시간 엔진 (AI 영상생성 아님)
- 어린이 시리즈의 요구는 화질이 아니라 회차 간 캐릭터 동일성이다. 2026년 AI 영상생성(Kling 3.0 Elements·Seedance 참조 50장)도 30초 넘으면 정체성 드리프트, 다중 캐릭터 상호작용은 업계 미해결.
- 3D는 같은 메시를 다시 부르는 것이라 구조적으로 안 흐른다. + 카메라 통제 · 재렌더 재현성 · 다국어 재활용.
- AI 영상생성은 인서트(꿈·회상·인트로) 단발로만 병용.
- ⚠성립 조건 = 발행 빈도. 3D는 「1편 만들기」가 아니라 「공장 짓기」다. 월 2편 이하면 초기비용을 못 뽑는다 → 미결 1번이 이 결정의 진짜 전제.
D2. 엔진 = Unity 6000.3.19f1 + URP + Unity Toon Shader
- ⚠최초 근거(2026-08-22 오전)는 폐기됐다. 당시엔 「이 PC에 외장 GPU가 없어 블렌더 배치렌더·로컬 3D 확산모델이 원천 불가」가 이유였는데, 같은 날 gpubox로 집PC(RTX 4070 Ti SUPER 16GB · Ryzen 9 9900X · 31GB · 디스크 3TB)를 온디맨드로 쓸 수 있게 됐다. 하드웨어는 더 이상 엔진을 정하지 않는다.
- 재검토 결과 = 유니티 유지. 진짜 근거는 렌더가 아니라 자동 조립 API다. 주 1편의 병목은 렌더링이 아니라 에피소드 조립이고(D6), 유니티는 Timeline·Cinemachine·Humanoid 리타게팅을 API로 준다. 블렌더로 가면 Mixamo 클립 리타게팅·샷 프리셋·컷 전환을 직접 만들어야 한다 — D3(이족 설계)의 이득이 절반 날아간다.
- 오프라인 렌더는 여전히 답이 아니다. 5분물 = 9,000프레임. Cycles가 4070Ti S에서 프레임당 20초만 걸려도 50시간/편 → 주 1편 불가. EEVEE Next 로 내리면 결국 래스터라 유니티 대비 이점이 작다.
- Recorder 고정 프레임레이트 캡처는 이제 「저사양 보정」이 아니라 결정론적 재현성 장치로 남는다(실시간 fps와 출력 fps 분리).
- Personal 라이선스 = 연매출 $200k 미만 무료·런타임피 폐지. Toon Shader(
com.unity.toonshader)는 셀애니 제작용 공식 패키지. - 블렌더는 버리지 않는다 — 메시 정리·데시메이트·본 추가 전용(무료, 신규 설치 1건).
D3. 🔑 전 캐릭터 이족(bipedal) 설계 — 최대 최적화
deskpet에서 확정된 벽 = 상업적으로 쓸 수 있는 4족 모캡 데이터가 존재하지 않는다(AI4Animation·PFERD = CC BY-NC, Truebones = IP 의혹). 그래서 고양이 보행 하나에 논문 관절각 판독 + 발끝 IK 역산까지 갔다.
이족으로 바꾸면 그 벽이 통째로 사라진다: - Mixamo 2,500+ 무료 애니(로열티프리 상업 허용) + 유니티 Humanoid 리타게팅 → 클립 1개가 캐스트 전원에 붙는다 - 오토리깅(Tripo·Meshy·AccuRIG·Rigify) 전부 휴머노이드가 최우선 지원 케이스 - 손 연기(물건·도구·손짓) = 어린이물 연출 어휘가 열린다 - 장르 표준과 일치(Paw Patrol·로보카폴리·뽀로로 전부 이족)
규약 ①이족·치비 비율이되 관절 구성은 인간형(Mixamo 스켈레톤 매핑 가능) ②네 발 존재는 「마을 애완동물」로 격하(대사·주연 배제, 절차 애니 2~3종) ③로봇이 가장 싼 캐릭터(딱딱한 파츠라 스키닝 오차 안 보임, 표정=텍스처) → 주연은 로봇에 배정.
D4. 립싱크 = Rhubarb + 입 텍스처 스왑 (블렌드셰이프 안 만든다)
- 통상 경로는 캐릭터마다 입 셰이프키 5~15개 조각 → AI 메시엔 셰이프키가 없다 → 파이프라인 최대의 숨은 비용.
- Rhubarb는 원래 2D 만화 입 그림 교체용 도구다 — 출력이 A~H 8종 코드 + 타임코드. 얼굴에 입 쿼드 하나 두고 8칸 아틀라스 UV 오프셋만 바꾸면 끝. 캐릭터 추가 비용 = 입 그림 1장.
- 눈·눈썹(감정)도 같은 방식 → 에피소드 JSON에서
"emotion":"surprised"한 줄로 지시 가능. - ⚠Rhubarb 음소 인식은 영어 기반 → 한국어는 근사. P0 육안 검증 항목. 실패 시 = 자체 음절·에너지 매핑(파이썬 20줄) 또는 uLipSync(MIT, 음향특징 기반이라 언어 무관).
- 업그레이드 = 클로즈업 많은 캐릭터만 블렌드셰이프로 승격.
D5. 파이프라인 9단계 · 비용 성격 분리
| 단계 | 도구 | 성격 | |
|---|---|---|---|
| 1 | 대본 → 에피소드 JSON | 코디 | 편당 사람 |
| 2 | 캐릭터 컨셉·턴어라운드 시트 | imagegen(나노바나나, 무료) | 1회 |
| 3 | 이미지 → 3D + 오토리깅 | Tripo / Meshy | 1회 |
| 4 | 정리(데시메이트 15~30k tri·축·UV 아틀라스·Humanoid 매핑) | Blender | 1회 |
| 5 | 마을 셋 4~6곳 + 라이트맵 베이크 | Kenney CC0 / Synty POLYGON | 1회 |
| 6 | 대사 음성 → 입모양 데이터 | edge-tts → Rhubarb | 편당 사람 |
| 7 | 자동 조립(JSON → Timeline) | Unity Timeline + Cinemachine | 편당 자동 |
| 8 | 캡처 | Unity Recorder | 편당 자동 |
| 9 | 믹스·자막·썸네일·업로드 | ffmpeg 8.1.2 + YouTube API | 편당 자동 |
정상 가동 시 편당 사람 작업 = 대본 쓰기 + 목소리 확인이 전부다.
- 턴어라운드 시트 규격이 3단계 품질의 8할: 정면/측면/후면, A포즈, 무지 배경·균일광·그림자 없음(강한 조명이면 메시에 그림자가 구워진다).
- 환경은 AI 생성하지 않는다 — 에셋 키트 조립이 더 싸고 재현성 있다.
- 캐릭터 승인 게이트 = deskpet
compare_master.py재사용(체크리스트+CLIP, ≥0.80). 눈대중 승인 금지.
D6. 에피소드 자동 조립기(P2) — 진짜 산출물
EpisodeDirector가 에피소드 JSON을 읽어 Timeline을 코드로 생성.
- 대사 → edge-tts wav → 길이를 재서 샷 duration 자동 산출(사람이 초를 안 적는다)
- wav → rhubarb → 입모양 트랙
- Humanoid 클립 배치 + 마커 간 이동 보간
- 샷 타입(wide/close/two/ots) → Cinemachine 프리셋, 컷 = 우선순위 전환
- Recorder 배치 캡처 → ffmpeg 믹스
안 만든다(YAGNI): 자동 스토리 생성기 · 웹 편집 UI · 렌더팜 큐 · 자동 번역. 파일럿 1편 후 실제 병목 확인하고 판단.
D8. GPU 확보 후 재검토 (2026-08-22 저녁 · gpubox 개통)
집PC = RTX 4070 Ti SUPER 16GB · Ryzen 9 9900X 12C · 31GB · 디스크 여유 3TB. 단 개발도구가 하나도 없다(Git·GitHub CLI·Steam·NVIDIA 드라이버뿐 — Unity·Blender·Python 전부 신규 설치). 접근 = gpubox(WOL 기상 40초 → SSH 2222 → 작업 → 셧다운).
뒤집힌 결정 = 없다. D1(3D 엔진)·D2(유니티)·D3(이족)은 전부 유지된다 — D3는 애초에 하드웨어와 무관한 「모캡 데이터 가용성」 논리였고, D1은 캐릭터 동일성 논리였다. 바뀐 건 D2의 근거뿐(위 참조).
실제로 열린 것 6가지 1. 3D 조달(미결 7) — Hunyuan3D 2.1·TRELLIS·TripoSG가 16GB에 들어간다. 크레딧 구독 불필요 + 🔑재생성이 공짜 → 승인 게이트(≥0.80)를 통과할 때까지 돌릴 수 있다. 품질에 직접 영향. 2. 턴어라운드 시트 무제한 — 나노바나나 웹UI CDP 는 하루 20~100장 제한이었다([[nanobanana-webui-cdp-profile]]). 로컬 SDXL/FLUX 면 캐릭터 승인 반복이 무료. 3. AI 영상 인서트의 상업 제약 해제 — Hailuo 무료는 워터마크+비상업이라 수익화와 충돌했다. 로컬 생성이면 둘 다 없다. 4. 한국어 립싱크 리스크 완화(D4·리스크5) — Rhubarb 영어 근사 대신 wav2vec2/MFA 한국어 강제정렬로 음소 타임코드를 직접 뽑는다. 5. 목소리(미결 6) — 로컬 한국어 TTS 가 열려 ElevenLabs 유료 결정을 뒤로 미룰 수 있다. 6. 제작 쾌적도 — 780M 의 「8fps 미리보기」 제약 소멸, 라이트맵 베이크·Recorder 캡처도 GPU.
새로 생긴 제약 3가지
1. 🔴SSH 세션은 Session 0 — Unity -batchmode 로 GPU 렌더가 되는지 미검증(-nographics 는 렌더 자체가 안 된다). 안 되면 schtasks /IT 로 Session 1 실행 우회(기존 확립 패턴). P0 게이트에 추가.
2. 집PC는 상시 가동이 아니다 — 작업 세션 단위로 켜고 끈다. 편당 자동화가 집PC 기상까지 포함해야 한다.
3. 작업 본거지 = 하이브리드(페페 결정 2026-08-22). 경계는 git이 긋는다 — 표준 Unity 리포 규약 그대로:
미니PC C:\dev\kidstoon |
집PC D:\kidstoon |
|
|---|---|---|
| 무엇 | 리포 편집·커밋 = 대본·에피소드 JSON·EpisodeDirector C# ·파이썬 도구(TTS·정렬·ffmpeg·업로드)·gpubox 오케스트레이션 |
같은 리포 clone + Unity 실행·렌더·로컬 생성모델·모델 가중치 |
| 안 두는 것 | Unity 에디터(열지 않는다) | — |
| git 추적 | Assets/·Packages/·ProjectSettings/·tools/ |
〃 (pull 만) |
| git 무시 | — | Library/·Temp/·Recordings/·생성 메시 원본·wav·mp4 |
- 🔄동기화 = GitHub 안 쓴다. origin 이 집PC 자신이다(2026-08-22 구축하며 변경). 집PC에
receive.denyCurrentBranch=updateInstead를 걸어 미니PC에서 push 하면 집PC 작업트리가 즉시 갱신된다 — 별도 배포 단계가 없다. GitHub 를 뺀 이유 = 집PC gh 인증(웹 로그인)이 또 하나의 사람 개입이고, 같은 LAN 이라 SSH 가 더 빠르며, 대용량을 어차피 안 올린다. 백업이 필요해지면 GitHub 를 두 번째 remote 로 붙인다. - 🔑전송은
ext::여야 한다 —ssh://도 scp 문법도 안 된다. 집PC sshd 기본 셸이 cmd.exe 인데 git 이 원격 경로에 붙이는 작은따옴표를 cmd 가 경로의 일부로 먹는다(실측fatal: ''/D:/kidstoon''). sshd 셸을 bash 로 바꾸면 gpubox 의 cmd 문법이 전부 깨지므로 셸은 두고 전송만 바꿨다.ext는 Git 기본 차단이라protocol.ext.allow=always필요.git clone "ext::ssh -p 2222 -i <키> delix@192.168.45.2 %S D:/kidstoon"(%S= upload-pack/receive-pack 자동 치환) - 대용량은 리포에 안 넣는다 — 집PC 로컬(D:/E: 여유 3TB)에 두고 결과 mp4만
gpubox job으로 회수한다. git-lfs 안 쓴다. - ⚠C# 스크립트가 Unity
Assets/안에 있어야 컴파일된다 → 리포 루트 = Unity 프로젝트 루트. 미니PC는 Unity 없이 텍스트만 고친다.
D7. 리스크
- 🔴유튜브 수익화 — 2025-07 「반복」→「비진정성(inauthentic) 콘텐츠」 개칭, 대량양산 AI에 경고→90일 정지→YPP 영구제외 3진 아웃. 2026년 어린이 대상 AI 콘텐츠는 단체 압박(4월 공개서한)까지 겹쳐 심사가 특히 빡빡. made-for-kids는 COPPA로 개인맞춤광고 금지·댓글 차단 → CPM 구조적으로 낮음. → 대응 = 오리지널 캐릭터·실제 3D 제작(슬라이드쇼 TTS와 명백히 다름)을 증명 가능하게 · 템플릿 복붙 금지 · YPP 단독 의존 금지(브랜드·라이선싱·굿즈 병행) · AI 라벨 성실 표기.
- 하드웨어 → 라이트맵 베이크·폴리/드로우콜 예산·Recorder 결정론 캡처.
- Mixamo 미유지보수(수년째 방치, 2025-06 다일 장애) → P1에서 쓸 클립 전량 로컬 미러링(다운로드분은 로열티프리라 보관·사용 무제한). 추가분은 Cascadeur 무료티어.
- AI 메시 품질(deskpet 실측 Tripo 195만면·텍스처 좌우대칭) → 데시메이트 규칙 + 비대칭 요소는 텍스처 후처리.
- 한국어 립싱크(D4 참조).
로드맵
- P0 관통 스파이크(1일) — 캐릭터1·셋1·대사2줄 → 20초 mp4. 품질 무관, 9단계 전 구간 1회 통과가 목적
- P1 캐스트 5종 + 마을 셋 + Mixamo 로컬 미러 (게이트: 일치도 ≥0.80, 5인 동시 씬 구동)
- P2
EpisodeDirector자동 조립 (게이트: JSON 하나로 사람 손 없이 mp4) - P3 파일럿 1편(3~5분) + 채널·정책 점검
- P4 양산 (게이트: 주 1편 2주 연속)
- P5 다국어 — 같은 씬에 오디오만 교체 재캡처 → 영어 채널 (게이트: 편당 +2시간 이내)