Communitygithub.com

NaxFur/duo-sketch-reel

3D 코미디 스케치 릴(30-45초, 영어)을 Blender에서 하나의 storyboard.json으로 제작합니다. 두 캐릭터(안경 쓴 괴짜 개발자와 작은 주황색 로봇 Claude)가 등장하며, 연구 출처, 대본, macOS 음성 더빙, 레이아웃 스틸, ElevenLabs 음성, Whisper 검증, 최종 EEVEE 렌더링, 커버 및 QA까지 자동화된 파이프라인을 제공합니다.

duo-sketch-reel란 무엇인가요?

이 스킬은 **Nerd(괴짜 개발자)** 와 **Claude(작은 주황색 로우폴리 로봇)** 이 등장하는 9:16 비율의 코미디 스케치 릴(30-45초, 영어)을 제작하기 위한 완전 자동화 파이프라인입니다. 개발자 또는 AI 사용자가 겪는 실제 문제(페인 포인트)를 소재로, Nerd가 패닉에 빠지면 Claude가 냉소적인 말투로 하나의 검증된 팁을 던져주고, 마지막에 반전이 있다가 다시 첫 프레임으로 돌아오는 구조입니다. 핵심 특징: - **전체가 Blender 절차적(procedural) 작업**입니다. 세트, 캐릭터 리깅, 연기, 조명, 카메라, 모니터, 오버레이, 배경음악, 효과음까지 모두 storyboard.json 하나로 제어됩니다. - **에피소드 하나는 폴더 단위** (`<anything>/<YYYY-MM-DD>_<slug>/`)이며, `storyboard.json`과 `research.md`만 작성하면 파이프라인이 나머지(에셋, 프로젝트 파일, 렌더, 최종 mp4, 커버, QA 보고서)를 자동 생성합니다. - **워크플로**는 주제 선정(5분) → 연구 및 출처 확인 → 대본 + 스토리보드 → 무료 macOS 음성 더빙(draft) → ElevenLabs 유료 음성 → 최종 렌더링 + QA 순서로 이루어집니다. - **하드 규칙**: 캐릭터 디자인 변경 금지, 제품 기능/수치/벤치마크/인용구 절대 허구화 금지, 페이오프(스탬프, 키, 체크 등)는 해당 단어보다 **0.2~0.3초 먼저** 배치, 무료 음성 → 유료 음성 순서, 최종 렌더 전에 반드시 스틸 확인. - **지원 환경**: macOS (Blender 5.x, whisper.cpp, ffmpeg, ElevenLabs API), Python 가상환경(`numpy`, `scipy`, `soundfile`, `pillow`). - **사용 예시**: "Nerd + Claude 스케치 만들어 줘", "듀오 릴", "새 에피소드", "X에 관한 스케치 릴", "주황색 작은 로봇 영상" 등으로 호출 가능.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/NaxFur/reel-studio/tree/main/skills/duo-sketch-reel

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

듀오 스케치 릴 (Nerd + Claude)

Nerd가 패닉에 빠지고 Claude(주황색 로봇)가 냉소적으로 답하는 3D 스케치입니다. 모든 것은 절차적(procedural) Blender로 만들어집니다: 세트, 두 캐릭터 리깅, 연기, 조명, 카메라, 모니터, 오버레이, 배경음악, 효과음까지 에피소드당 하나의 파일 storyboard.json 으로 구축됩니다. 새로운 에피소드는 데이터일 뿐, 코드가 아닙니다. 이미지나 비디오 생성은 전혀 사용하지 않습니다.

에피소드는 하나의 폴더입니다: <anything>/<YYYY-MM-DD>_<slug>/ 안에 storyboard.json과 research.md가 들어 있습니다. 파이프라인이 나머지(assets/, project/, renders/, final.mp4, cover.png, qa/)를 모두 이 폴더 안에 생성합니다. 완성된 두 개의 예시 에피소드가 저장소의 examples/에 있으니, 하나를 복사해서 시작하세요.

워크플로 (순서대로, 건너뛰지 마세요)

  1. 주제 (5분). 개발자나 AI 사용자가 공감할 만한 실제 문제(페인 포인트) 하나와 오늘 당장 쓸 수 있는 팁 하나를 정합니다. 농담은 시청자가 본인의 AI로 무엇을 하는지에 관한 것이어야 하지, 도구 자체에 관한 것이 아닙니다. 규칙과 아이디어 뱅크: references/retention.md.
  2. 연구 → research.md: 화면/음성/자막에 등장하는 모든 사실은 URL + 확인 날짜와 함께 1차 출처(공식 문서, README, 소스 코드)를 제시합니다. 스케치의 허구적 스토리 요소(시간, 숫자, 이름)는 별도 "Fiction" 섹션에 기록합니다. 확인할 수 없는 것은 제거하고 그 사실을 명시합니다.
  3. 대본 + 스토리보드 → storyboard.json (예시를 복사해서 덮어씁니다). 스키마와 용어: references/storyboard.md. 목표: 30-40초, 10-14라인, 첫 단어 ≤ 0.5초, 컷 간격 1.5-3초, Nerd가 열고 Claude가 닫으며, 마지막 프레임이 첫 프레임으로 돌아갑니다.
  4. 무료 더빙(draft) (macOS): pipeline.sh <episode> --say stills (시스템 음성, 크레딧 없음). renders/stills/sheet.jpg (비트 끝마다 한 프레임)를 확인합니다. 프레이밍/오버레이 충돌을 수정하고 다시 실행합니다. macOS가 아닌가요? --say를 빼고 먼저 음성을 녹음/생성(5단계)한 다음 stills를 실행합니다.
  5. 음성. 한 라인당 하나의 오디오 파일을 assets/audio/dialogue_raw/<beat id>.mp3 (L01.mp3, ...)에 넣습니다. 참조 에피소드는 ElevenLabs eleven_v4를 사용하며, 두 개의 라이브러리 음성(Nerd = "Quinn - Soft Nerd Boy", Claude = "Sarcastic Nigel")과 각 비트의 tts에 오디오 태그(예: [deadpan] It was ugly.)를 포함합니다. Claude에서 ElevenLabs 커넥터를 사용할 경우: 먼저 대략 한 라인당 비용을 추정(≈ 문자당 1 크레딧, 태그 포함)한 후, 라인별로 한 번씩 생성하고 각 테이크를 content_url에서 다운로드합니다. 11-14라인 에피소드는 약 700-900 크레딧입니다. 직접 녹음한 파일도 같은 파일명으로 사용 가능합니다.
  6. 실제 빌드 + 스틸: pipeline.sh <episode> stills. project/whisper_check.txt에 대본 대비 들린 단어 비율이 기록됩니다(< 0.8이면 직접 들어보기). 테이크는 say 더빙보다 길 수 있으므로 sheet.jpg를 다시 확인합니다.
  7. 최종: pipeline.sh <episode> final (16 샘플, 3 워커 ≈ M시리즈 Mac에서 프레임당 3초: 38초 릴 ≈ 1시간; 백그라운드 실행). final.mp4, B-후크 변형 final_b.mp4, cover.png를 렌더링하고 qa.py를 실행하여 qa/report.md를 생성합니다(Blocking: none이어야 함).

하드 규칙

  • 캐릭터: Nerd와 Claude를 재디자인하지 마세요 (engine/scene/nerd.py, mascot.py). Claude는 입이 없습니다: 몸통 찌그러짐, 바운스, 눈, 팔로 "말합니다".
  • 스케치가 이야기를 창작할 수는 있지만(그게 코미디입니다), 절대 제품 기능, 숫자, 벤치마크, 인용구를 허구화하지 마세요.
  • 페이오프(스탬프, 키, 체크 표시)는 해당 단어가 나오기 0.2-0.3초 전에 배치하며, 절대 마지막 단어에 배치하지 않습니다.
  • 무료 더빙을 유료 음성보다 먼저, 최종 렌더 전에 스틸을 먼저 확인하세요.

파일

  • pipeline.sh <episode> [--say] [build|stills|draft|final]
  • engine/scene/ Blender 측: build_scene.py (진입점), animate.py (스토리보드 기반 연기/조명/카메라), env.py (세트), nerd.py, mascot.py, lights.py, tl.py (앵커, 스크립트와 공유).
  • engine/scripts/: build_timeline.py (테이크 → 타임라인 + Whisper 단어 + 립싱크), make_screens.py (모니터 템플릿), make_overlay.py (후크, 자막, 아이템, 타이틀 카드, captions.srt), make_audio.py + synth.py (배경음악/효과음), master_audio.py (-14 LUFS), stills.py, draft.sh, render_final.sh, encode.sh, make_cover.py, cover_title.py, qa.py, make_textures.py.
  • 도구와 경로 (환경 변수, macOS 기본값): BLENDER (Blender 5.x 바이너리), DUO_PYTHON (numpy, scipy, soundfile, pillow 포함된 Python; 기본값 ~/.venvs/duo-reel/bin/python), WHISPER_MODEL (whisper.cpp 모델, 기본값 ~/whisper-models/ggml-medium.en.bin), whisper-cli와 ffmpeg가 PATH에 있어야 함, 폰트 DUO_FONT_DISPLAY / DUO_FONT_MONO / DUO_FONT_SANS / DUO_FONT_EMOJI.
  • references/storyboard.md (스키마, 모든 프리셋), references/retention.md (후크/구조/주제), references/lessons.md (과거 실수 사례).

관련 스킬