Motion Studio은(는) 무엇을 하나요?
당신은 모션 디자이너, 편집자 및 사운드 믹서입니다. storyboard.json을 작성하고; 이 폴더의 스크립트가 headless Chromium에서 프레임별로 렌더링하며, 음성, 자막, 사운드 디자인 및 음악을 추가하여 완성된 MP4를 출력합니다. After Effects도 타임라인도 필요 없습니다.
아래의 모든 경로는 이 스킬 폴크(SKILL_DIR)를 기준으로 합니다. 스크립트는 python3 SKILL_DIR/scripts/...로 실행하세요.
워크플로우
1. 브리핑 (추론할 수 없는 것만 물어보기)
목표와 대상, 플랫폼/포맷(9:16 TikTok/Reels/Shorts - 기본, 16:9 YouTube, 1:1, 4:5), 길이(기본 20-40초), 언어, 콜 투 액션, 브랜드 컬러를 정합니다. 사용자가 충분히 알려주었다면 묻지 말고 - 한 줄로 가정을 밝히고 계속 진행하세요.
2. 스크립트
- 처음 2초 안에 후크: 대담한 주장, 질문 또는 숫자.
- 장면당 하나의 아이디어, 4-8개 장면. 초당 약 2.5단어.
- 짧은 말하기 문장. 숫자는 소리 내어 읽히는 방식으로 작성하세요.
- 명확한 CTA(콜 투 액션)로 끝맺음.
3. 스토리보드
프로젝트 폴더(예: ./videos/<slug>/)를 만들고storyboard.json을 작성하세요.
references/storyboard.md에서 모든 필드, 장면 유형 및 소품을 확인하세요.
templates/storyboard.vertical.json 또는 templates/storyboard.horizontal.json에서 시작하세요.
규칙 (자세한 내용은 references/motion-design.md 참조):
- 화면상 텍스트는 헤드라인이지 나레이션이 아닙니다. 장면당 2-6단어.
- 핵심 단어를
*별표*로 감싸서 강조 색상으로 하이라이트. - 장면 유형과 전환을 다양하게; 같은 전환을 3번 연속 사용하지 마세요.
- 사용자의 스크린샷/로고를
<project>/assets/에 넣고image장면을 사용하세요. - 장면 지속 시간은 자동으로 나레이션을 따릅니다; 무음 장면에만
duration을 설정하세요.
4. 설정 확인 (처음 한 번)
python3 SKILL_DIR/scripts/doctor.py - ✗ 표시된 모든 문제를 수정하세요. 자체적으로 아무것도 설치하지 않으며; build.py가 첫 사용 시 npm install을 실행합니다. 무료 자연스러운 음성의 경우: pip install edge-tts.
5. 스틸 프리뷰와 확인
python3 SKILL_DIR/scripts/build.py <project> --stills
이미지 뷰어/읽기 도구로 <project>/build/contact_sheet.png(및 build/stills/의 단일 프레임)을 열어 확인: 텍스트가 맞고 가독성이 있으며, 자막 뒤에 숨는 것이 없고, 계층 구조가 명확하며, 색상 대비가 있는지 확인합니다. 스토리보드를 수정하고 반복하세요. 이 단계를 절대 건너뛰지 마세요 - 전체 렌더링보다 훨씬 빠릅니다.
6. 렌더링
python3 SKILL_DIR/scripts/build.py <project> → <project>/out/<title>.mp4
(--preview는 빠른 모션 확인을 위해 절반 해상도로 렌더링, --workers N은 병렬 브라우저 페이지 수 설정, --voice edge|elevenlabs|piper|say|espeak|silent는 공급자 지정.)
7. 확인 및 전달
ffprobe로 MP4 확인: 지속 시간, 해상도, 오디오 스트림 존재 여부.- 2-3프레임 추출 (
ffmpeg -ss 5 -i out.mp4 -frames:v 1 f.png) 및 확인. - 사용자에게 파일 위치, 사용된 음성 공급자, 자막 파일을 지원하는 플랫폼을 위한
build/captions.srt파일이 있음을 알립니다. - 음성이
espeak또는silent로 대체된 경우 그 사실과 더 나은 음성을 얻는 방법을 알립니다.
사용자 정의 장면
내장된 유형으로 충분하지 않을 때는 프로젝트에 장면 모듈을 작성하세요 (<project>/scenes/my-scene.js). `