FilmForge Motion
그림은 필름 프레임처럼 고정되어 있습니다. 확대/축소도, 흐름도 없습니다. 움직임은 프레임 내부에서 발생합니다: 입자, 안개, 깜박임, 반짝임, 빛, 이 모든 것이 GPU에서 비용 없이 렌더링됩니다. 유료 비디오는 코드로 할 수 없는 것(실제 비행, 영화의 클라이맥스가 되는 변환)을 위해 아껴둡니다. 이 스킬은 각 샷의 motion 필드를 채우고, QA 수정을 적용하며, 렌더러를 위한 타임라인을 내보내고 감독이 승인할 프리뷰를 렌더링합니다.
경로: 아래 scripts/, templates/ 및 config/는 이 스킬 내부의 폴더입니다(로드 시 표시되는 기본 디렉토리). ./install.sh에 의해 생성됩니다. 리포지토리의 클론에서 작업할 경우, 루트에 있는 tools/, templates/ 및 config/입니다.
렌더러는 painted-film-pipeline(Python 및 GLSL, 모듈 이름은 아래 참조)입니다. 모든 픽셀 값은 4K(3840x2160)입니다. 렌더러는 이를 K = W / 3840으로 스케일링하므로 1080p 프리뷰에서도 동일한 숫자를 사용합니다.
1단계. 샷 읽기
각 샷에 대해: 비트, 장면의 분위기와 색상 스크립트, 리타임 후 길이, 그 아래 깔리는 음악(beatmap.json의 구절, 히트), 그림에 이미 그려져 있는 것(불, 바다, 하늘, 유리). 생명은 그림의 세계에 속해야 합니다: 불씨는 그려진 불에서 솟아오르고, 눈은 하늘이 있는 곳에 내립니다.
2단계. 생명 선택(용어집)
| 효과 | 파라미터(샷 필드) | 값 |
|---|---|---|
| 떠도는 안개 띠 | fog + fogc | (강도 0..1, 시작 y, 완전히 나타나는 y, 이동 속도); 색상 (r, g, b) 0..1 |
| 하이라이트 위 빛 스윕 | sweep | (주기 s, 띠 폭 px, 강도, 0) |
| 한 점 주변 불빛 깜박임 | flick + fire | 진폭 (0.07 ~ 0.45); (x, y, 반경 px) |
| 띠 모양 열기 | shim | (y 전체, y 0, 0, 강도) |
| 카메라 흔들림 | shake | (시작 s, 길이 s, 진폭 px) |
| 전환 인/아웃 | tin, tout | ("fade" 또는 "white", 초); 기본값은 하드 컷 |
| 다시 프레이밍 | crop | (x0, y0, x1, y1) 소스 픽셀 단위 |
| 입자 색조 | ashc | (r, g, b) |
| 입자 | life | 아래 입자 시스템에 대한 레시피 또는 람다 |
| 번개 | bolts | 샷 내 시간 목록 |
| 유리 균열 | crack | (시작 s, 길이 s) |
입자 시스템 (painted.py): ash(t, n, wind=(vx, vy), size=(min, max), alpha, seed) (재, 먼지, 눈); flakes(...) (크고 부드러운 조각); sparkles(t, n, alpha, size) (반짝임, 별); streaks(t, n, speed) (비); embers(t, n, src=(x, y), spread, rise, life) (원천에서 솟아오르는 불씨). 실제 영화 레시피 (film_cut.py): SNOW(n, wind), EMB(n, alpha), GLINT, RAIN, STARS(n), GOLD. 전체 파라미터 의미: references/pipeline-modules.md; 테스트된 분위기별 레시피: references/effects-cookbook.md.
그래픽 (graphics.py, overlays.py): 그려지고 음악에 맞춰 흔들리다가 멈추는 황금 실 리본 (T(points, t0, draw, w)); 왼쪽에서 오른쪽으로 쓰여지는 손글씨 (W(text, t0, x, y, size)); 장면 재료로 형성되었다가 사라지는 장소 이름 (V(...)); 타이틀 피날레.
3단계. 음악이 움직임을 주도하게 하기
graphics.Drive는 프레임별로 점수(레벨 및 펄스)를 측정합니다. 블룸, 불씨 플레어, 실 광채, 텍스트 호흡이 이를 따르므로, 키프레임 없이 히트에 맞춰 불씨가 플레어됩니다. beatmap.json의 히트에 전환과 흔들림을 배치하십시오 (shake 시작 = 히트 시간 - 샷 시작 시간).
4단계. 모션 필드 작성
shotlist.yaml에서, 샷별로 (예: 시모르그의 불-숲 샷과 랜턴 나방의 빛줄기):
motion:
life: EMB(320)
flick: 0.09
fire: [1920, 1300, 2600]
shim: [2160, 300, 0, 0.8]
ashc: [0.62, 0.55, 0.5]
motion:
tin: [white, 0.4]
sweep: [3.0, 520, 0.35, 0]
life: GOLD
shake: [0.0, 0.4, 10]
아무것도 필요 없는 샷은 motion: none을 받습니다(게이트는 모든 샷이 결정되기를 원함).
5단계. QA 수정 적용
qa.yaml의 각 fix에 대해: 해당 호출 실행(grade.py의 recolor 또는 blue, 패치, 샷에 대한 crop), _g 파일 작성, ledger.py palette로 재측정한 다음 done: true 설정. 일치된 그레이드(판레벨)와 4K 업스케일은 렌더러에서 자동으로 처리됩니다.
6단계. 내보내기, 렌더링, 확인
python3 scripts/shotlist.py export-cut shotlist.yaml --paintings art/film > code/timeline.py
film_cut.py용 P_() 라인으로 타임라인을 출력합니다. 그런 다음 렌더러에서:
W=1920 H=1080 python film_cut.py still out/frames 6.0 12.0 24.0 # 스토리 히트 시점의 스틸
python film_cut.py sheet out/sheet.jpg # 샷당 한 프레임 시트
python film_cut.py video film/preview_1080p.mp4 audio/score.wav # 점수가 포함된 프리뷰
사운드와 함께 프리뷰를 시청하세요. 모든 히트 지점의 스틸을 확인하세요. 그런 다음 감독이 모션 단계를 승인합니다.
유료 비디오가 필요한 경우
오직 모션이 스토리의 일부이고 코드로 가짜를 만들 수 없는 경우에만: 비행(시모르그의 이륙: 속도 램프가 있는 실제 클립), 클라이맥스의 탄생 또는 변신. budget.py에서 비용을 산정하십시오(Kling 4.0: 1080p에서 5초당 16.25 크레딧, 키프레임 페인팅 추가); 먼저 키프레임을 그리고 QA를 통과시키십시오. 모델이 드래프트를 제공하는 경우 저렴하게 드래프트하고 하나의 테이크를 최종 확정하십시오. 그 외의 모든 것은 애니메이션이 포즈를 유지하는 방식처럼, 스냅되는 (poses: 2) 그려진 키 포즈로 전달됩니다.
출력
- 모든 샷의
motion필드 (또는none) - export-cut의
code/timeline.py - 적용된 수정 사항 (
_g파일,qa.yaml의done: true) film/preview_1080p.mp4, 히트 지점의 스틸, 샷당 한 프레임 시트
게이트 체크리스트
- 모든 페인트된 샷에 모션 계획 또는
motion: none이 있음 - 모든 QA 수정이 적용되고 재측정됨
- 사운드와 함께 프리뷰 시청, 모든 히트 지점 스틸 확인
- 승인됨
수리 테이블
| 증상 | 수정 |
|---|---|
| 슬라이드쇼처럼 느껴짐 | 모든 정적 장면에는 세계와 연결된 하나의 살아있는 레이어(입자, 안개, 깜박임)가 필요합니다. 장면별로 다양화하십시오. |
| 효과가 붙인 것처럼 보임 | 페인팅의 ashc로 입자를 착색하고, 그려진 소스에서 방출기를 배치하고, 하늘에서 안개 색상을 가져오십시오. |
| 복잡하고 시끄러운 프레임 | 입자 수 줄이기(n 반으로), 알파 낮추기, 장면당 하나의 효과군 사용. |
| 다른 세대의 샷이 함께 매끄럽게 편집되지 않음 | 해당 판의 일치된 그레이드가 잘못됨: 레벨 확인, 모든 샷에 대해 동일한 그레이드, 그레인 및 비네트 사용. |
| 효과가 음악을 무시함 | 히트를 사용하지 않음: beatmap 히트에 흔들림, 플레어 및 전환 배치. |
| 텍스트를 읽기 어려움 | 그림의 조용한 영역(text_area)으로 이동, 크기 확대, 쓰기 속도 늦춤. |
참조
references/pipeline-modules.md: 렌더러의 모듈 및 모든 파라미터references/effects-cookbook.md: 완성된 영화를 기반으로 한 분위기별 테스트된 레시피