FilmForge 스토리
스토리가 먼저입니다: 종이 위에 영화가 초 단위로 정해지고 크레딧으로 가격이 책정되기 전에는 아무것도 그리거나, 채점하거나, 구매하지 않습니다. 이 스킬은 세 가지 파일을 작성합니다: story-bible.md, screenplay.md, shotlist.yaml (템플릿은 templates/에 있습니다). 스테이지 게이트는 쇼트 리스트가 검증되고 계획이 크레딧에 적합할 때 통과됩니다.
경로: 아래 scripts/, templates/, config/는 이 스킬 내부의 폴더입니다(로드될 때 표시되는 기본 디렉토리 기준). 리포지토리의 클론에서 작업할 때는 루트에 tools/, templates/, config/ 폴더가 있습니다.
1단계: 전제 및 주제
- 전제: 한 문장, 누가 무엇을 원하고 그 대가가 무엇인지.
- 주제: 결말이 증명하는 한 문장.
둘 중 하나라도 두 문장이 필요하다면, 이야기가 아직 발견되지 않은 것입니다. 여기서 계속 작업하세요; 모든 하위 작업이 이를 상속받습니다.
2단계: 핵심: 여섯 가지 엔진
훌륭한 단편 애니메이션은 동일한 몇 가지를 수행합니다. 모든 행을 채우세요; 하나라도 채울 수 없는 영화는 일부가 누락된 것입니다.
| 엔진 | 테스트 |
|---|---|
| 하나의 관계 | 영화의 주제가 되는 두 캐릭터. 다른 모든 캐릭터는 그들을 돕습니다. |
| 하나의 결함, 그 대가 | 영웅의 결함이 누군가에게 화면상에서 실제로 무언가를 대가로 치르게 합니다. |
| 가슴 아픈 하나의 선택 | 영웅이 자신이 원했던 것을 스스로 포기합니다. |
| 하나의 반전 | 관객이 믿었던 것이 사실이 아니며, 그 진실이 미리 심어져 있었습니다. |
| 하나의 거울 | 초기에는 거짓을 보여주고 나중에는 진실을 말해주는 이미지. |
| 하나의 이미지, 두 번 | 하나의 구도가 영화를 열고 닫으며, 그 사이의 모든 것에 의해 변화합니다. |
작업 예시 (The Lantern Moth, 리포지토리의 텍스트 예시, 36초): 하나의 관계, 등대 소녀와 불씨 나방, 그녀가 겨울 내내 잡은 첫 번째 따뜻한 것. 대가가 있는 하나의 결함: 그녀는 따뜻함을 간직하고 싶어하고, 그것을 손에 쥐고 있는 동안 배는 바위 쪽으로 표류합니다. 하나의 선택: 그녀는 죽은 등불을 향해 손을 펴고 나방이 그 안으로 들어가도록 놓아줍니다. 하나의 반전: 나방은 타버리지 않습니다; 새벽에 등불 유리는 수백 마리의 작은 불씨 나방으로 덮여 있습니다. 하나의 거울: 등불 렌즈에 비친 그녀의 모습, 나방에 의해 혼자 비춰지다가, 빛줄기 속에서 사라집니다. 두 번 나타나는 하나의 이미지: 밤의 죽은 등대가 영화를 열고, 새벽의 따뜻한 등대가 영화를 닫습니다.
3단계: 설정과 해소
아무것도 한 번만 나타나지 않는 표. 각 행: 심어진 것 (쇼트), 해소되는 것 (쇼트). 이미지에 해소가 없다면, 삭제하거나 해소를 부여하세요. The Lantern Moth의 행: 첫 프레임의 죽은 등불 / 새벽의 같은 프레임, 등불이 따뜻해짐; 그녀가 항상 들고 다니는 빈 랜턴 / 나방이 사라지면 바닥에 남겨짐; 그녀의 손끝에 있는 한 마리 나방 / 유리 위의 백 마리 나방; 따뜻한 금색이 전혀 없음 / 빛줄기가 황금빛으로 타오름.
4단계: 컬러 스크립트
씬당 한 행: 시간 범위, 3~5가지 색상, 느낌. 의미를 전달하는 규칙을 추가하세요("등불이 켜지기 전에는 따뜻한 금색 없음", "등불이 켜지기 전 유일한 따뜻한 색은 나방의 주황색", "새벽까지 하늘에 파란색 없음"). 규칙은 연속성 원장에서 forbid 항목이 되어 모든 그림에서 측정됩니다.
5단계: 시간 기반 시나리오
- 시간 범위가 있는 씬; 시작, 길이, 프레이밍, 그리고 카메라가 촬영할 수 있는 것만, 현재 시제로. 촬영할 수 없는 비트는 영화에 없습니다.
- 각 씬 아래에 음악이 하는 일 (악기, 에너지, 명명된 히트, 쓰여진 침묵). The Lantern Moth의 시나리오는 "낮은 드론 음, 각 마디마다 부드러운 킥. 차갑고 외로움."을 어둠 아래에, 그리고 "0:24의 히트, 그 후 따뜻하고 풍성한 코드"를 빛 아래에 넣습니다. 음악이 이미 존재한다면 (노래, 피아노 곡), 이야기는 순서대로 그 섹션을 통과하며, 각 아래에 하나의 분위기 라인을 두고, 쇼트나 페이지가 그에 따라 전환됩니다.
- 말: 그림이 말할 수 없는 것만 말하세요 (누가 말하는지, 왜 그들이 가는지, 누가 죽는지, 결말이 무엇을 의미하는지). 말이 없는 것은 강점입니다: 어디서나 누구에게나 통합니다. 나레이션은 화면에 손으로 쓰거나 말로 전달됩니다; 어느 쪽이든 나중에 영화 시간으로 시간을 측정합니다 (forge-sound).
6단계: 크레딧에 영화 크기 조정
paint_credits = credits x 0.95 - sheets - plates - proofs - score
paintings = floor(paint_credits / (price x 1.3)) # 1.3 = 리페인트 버퍼
runtime = paintings x average hold # 페인티드 홀드: 각 4~6초
작업 예시: 70 크레딧 (66.5 사용 가능), 두 장의 시트와 한 장의 플레이트 (8.25, 버퍼 포함 약 11.8), 64초 스코어 (9.28): 그림용으로 약 45.4 남음, 따라서 버퍼 포함 2.75에 12개의 그림: 5초 홀드당 60초 영화. The Lantern Moth는 36초 동안 6개의 쇼트를 실행합니다; budget.py는 66.50 사용 가능 중 39.08로 계획하며, 이미 사용된 후 27.42가 남습니다: 리테이크 포함 7개의 그림을 더 넣을 여유가 있습니다.
크기 조정 중 규칙:
- 영웅 프레임 우선: 사람들이 무언가를 느끼게 해야 하는 2~4개의 쇼트를 지정하세요. 이 쇼트들은 다른 모든 것보다 먼저 증명 사진으로 그려집니다.
- 실제 움직임은 다른 방법이 통하지 않을 때만 사용하세요 (비행, 클라이맥스인 변신). 그 외에는 스냅되는 키 포즈 (
poses: 2)와 후반 작업에서의 생동감. - 이야기가 허용하는 곳에서 플레이트나 그림을 재사용하세요 (
kind: reuse): 이미지 두 번 엔진은 무료입니다.
7단계: 쇼트 리스트
shotlist.yaml 작성 (스키마: references/shotlist-schema.md). 각 쇼트: id, scene, dur, kind, framing, beat, characters, refs (모든 캐릭터의 시트), cut_on, 그리고 음악 브리핑이 스토리 히트를 지정하는 곳에는 pin. 그런 다음:
python3 scripts/shotlist.py validate shotlist.yaml
python3 scripts/budget.py shotlist.yaml --production production.yaml
validate에 오류가 없고 budget이 FITS를 표시할 때까지 반복하세요. 조치해야 할 경고: 페인티드 홀드가 1.5초 미만 또는 10초 초과, 내레이션이 초당 2.4단어보다 빠름, 시트가 첨부되지 않은 캐릭터가 프레임에 있음.
출력 형식
story-bible.md: 전제, 주제, 여섯 가지 엔진, 세계, 캐릭터 (핸들, 외형, 욕망, 움직임), 소품 및 상태, 설정과 해소, 컬러 스크립트, 제작 규칙.screenplay.md: 시간, 음악 노트, 시작, 길이, 프레이밍, 동작, 대사가 포함된 쇼트가 있는 씬.shotlist.yaml: 검증 가능, 적합.- 짧은 보고서: 런타임, 쇼트 수, 계획된 크레딧 대 사용 가능 크레딧, 영웅 프레임, 한 가지 위험.
게이트 체크리스트
- 전제와 주제가 각각 한 문장임
- 여섯 가지 엔진이 모두 채워짐; 모든 설정이 해소됨
- 규칙이 있는 컬러 스크립트
- 모든 쇼트 촬영 가능; 모든 비트가 해당 음악 아래에 있음
-
shotlist.py validate: 오류 없음 -
budget.py: FITS, 예비 자금 사용되지 않음 - 영웅 프레임 지정됨
수리 표
| 증상 | 해결책 |
|---|---|
| 결말이 와닿지 않음 | 선택이 없거나 영웅을 위해 이루어짐; 또는 반전이 심어지지 않음. 엔진 3과 4를 다시 확인하세요 |
| 슬라이드쇼처럼 느껴짐 | 비트가 상태를 설명하고 행동을 설명하지 않음; 각 비트를 프레임에서 변화하는 무언가로 다시 작성하세요 |
| 예산 초과 | 더 적고 더 긴 홀드; 플레이트 재사용; 비디오 대신 키 포즈; 그런 다음 우선순위 3 쇼트를 삭제하세요 |
| 내레이션 경고 | 더 적은 단어, 또는 다음 컷까지 대사를 이어가세요 (내레이션은 영화 시간에 존재함) |
| 캐릭터가 같은 사람으로 읽히지 않음 | 스토리 결함이 아님: forge-style-lock (시트, 앵커, 스케일 락) 사용 |
참고 자료
references/story-engine.md: 여섯 가지 엔진에 대한 심층 설명, The Lantern Moth 분석 포함references/shotlist-schema.md: 모든 쇼트 리스트 필드, 해당 값 및 읽는 도구