# 샷 시퀀스

> 보이스오버가 말하는 순간에 텍스트와 도형이 정확히 나타나는 내레이션 모션 그래픽 동영상을 브리프, 강제 정렬, 렌더링으로 만드세요.

Source: https://nodaro.ai/ko/docs/mcp/shot-sequence

**샷 시퀀스**는 화면의 모든 텍스트, 도형, 이미지가 보이스오버가 해당 구절을 말하는 순간에 나타나는, 내레이션이 있는 모션 그래픽 동영상입니다. 내가 직접, 또는 어시스턴트가 **브리프**를 씁니다. 브리프에는 내레이션과 그 큐, 그리고 장면, 샷, 리빌이 담깁니다. Nodaro는 녹음된 보이스오버를 단어 단위로 정렬하고 모든 큐를 정확한 프레임에 고정하므로, 타이밍이 매번 똑같이 정해집니다. [동영상 디렉터](https://nodaro.ai/docs/mcp/video-director)는 이 파이프라인을 기반으로 브리프를 대신 써 줍니다.

## 파이프라인
Workflow: 내레이션에 음성을 입히고, 단어 단위로 정렬하고, 프레임 단위로 정확한 플랜으로 확정한 다음 렌더링합니다.

- generate_speech → forced_alignment (오디오)
- forced_alignment → resolve_shot_sequence (정렬)
- resolve_shot_sequence → render_shot_sequence (플랜)

### 내레이션 음성 만들기
내레이션 스크립트로 [`generate_speech`](https://nodaro.ai/docs/mcp/tools/audio#generate_speech)를 호출하세요. 작업 출력에서 오디오 URL을 읽으세요. ElevenLabs v3로 5~33크레딧입니다.

### 단어 정렬
오디오와, 완전히 같은 스크립트를 `transcript`로 넣어 `forced_alignment`를 호출하세요. 초 단위의 `{ word, start, end }` 목록인 `output_data.alignment`를 읽으세요. 33크레딧입니다.

### 브리프 확정
브리프, 오디오 URL, 정렬을 넣어 `resolve_shot_sequence`를 호출하세요. 이 도구는 렌더링할 준비가 된 `plan`과 모든 `warnings`를 즉시 반환합니다. 무료입니다.

### 렌더링
플랜으로 `render_shot_sequence`를 호출하세요. 작업이 MP4를 렌더링하며, 이 MP4는 카드에서 재생되고 내 라이브러리에 보관됩니다. 프레임 크기와 관계없이 55크레딧입니다.

먼저 [`start_video_director`](https://nodaro.ai/docs/mcp/tools/shot-sequence-and-video-director#start_video_director)를 호출하세요. 내레이션을 큐 구절로 쓰고 좋은 브리프를 만드는 가이드를 반환합니다.

## 브리프 작성
브리프에는 `script`와 `cues`가 담긴 `narration`, 그리고 `shots`를 담은 `scenes`가 있으며, `shots`에는 `reveals`가 담깁니다. **큐**는 스크립트의 한 구절입니다. **리빌**은 큐가 말해질 때 요소를 배치합니다.

```json
{
"fps": 30, "width": 1920, "height": 1080, "backgroundColor": "#0b0b0f",
"narration": {
"script": "Ship faster. Nodaro turns your idea into video.",
"cues": [
{ "id": "c_ship", "text": "Ship faster" },
{ "id": "c_idea", "text": "your idea into video" }
]
},
"scenes": [
{
"id": "scene_hook",
"shots": [{
"id": "shot_1",
"reveals": [
{
"id": "rv_title",
"element": { "id": "t1", "type": "text", "text": "Ship faster", "fontFamily": "Inter", "fontSize": 120, "fontWeight": 900, "color": "#ffffff", "x": 200, "y": 450 },
"revealAt": { "kind": "cue", "cueId": "c_ship", "edge": "start" },
"enter": { "motion": "slide-up", "durationFrames": 12, "easing": "easeOut" }
}
]
}]
}
]
}
```

### 앵커
| 앵커 | 요소가 나타나는 시점 |
| --- | --- |
| `{ "kind": "cue", "cueId": "…", "edge": "start" }` | 큐의 구절이 시작될 때. 구절이 끝날 때 나타나게 하려면 `"edge": "end"`를 쓰고, `offsetMs`로 미세 조정하세요. |
| `{ "kind": "frame", "frame": 0 }` | 정해진 프레임. 인트로 로고나 아웃트로처럼 내레이션이 없는 요소에 씁니다 |

프레임 0의 썸네일에 보여야 하는 요소에는 `"enter": { "motion": "none", "durationFrames": 0 }`을 쓰세요.

### 요소가 머무는 시간
요소는 자기 장면의 콘텐츠가 끝날 때 사라집니다. 요소가 사라지는 방식을 정하려면, 등장 후 머무는 프레임 수인 `hold`와 머문 뒤의 모션인 `exit`를 설정하세요.

### 타이밍을 정확하게 유지하는 규칙
- **큐는 공백까지 포함해 스크립트와 정확히 일치해야 합니다.** 말하는 형태로 쓰세요. “2026”이 아니라 `twenty twenty-six`, “$5”가 아니라 `five dollars`로 씁니다.
- **장면은 시간상 겹치면 안 됩니다.** 각 장면은 내레이션의 연속된 구간 하나를 차지합니다. 두 장면의 리빌이 겹치면 `resolve_shot_sequence`가 `422 scene_overlap`을 반환합니다.
- **글꼴**은 Inter, Roboto, Montserrat, Poppins, Playfair Display, Bebas Neue, Anton, Caveat, Roboto Mono, Fira Code 등 지원되는 패밀리에서 고릅니다. Rubik, Heebo, Cairo, Tajawal은 히브리어와 아랍어를 지원합니다.
- **등장 모션**은 `fade`, `scale-up`, `wipe-in`, `slide-up`, `slide-down`, `slide-left`, `slide-right`, `none`입니다.
- **퇴장 모션**은 `fade`, `slide-up`, `slide-down`, `slide-left`, `slide-right`, `none`입니다.

트랜스크립트에서 찾을 수 없는 큐는 비례 타이밍으로 대체되며, `warnings`에 그 사실이 표시됩니다.

## 블루프린트
블루프린트는 미리 만들어진 애니메이션 비트로, `blueprint` 리빌로 배치하고 `params`로 내용을 채웁니다. `list_shot_shapes`는 카탈로그를 반환하고, `get_shot_shape`는 블루프린트 하나의 매개변수를 작업 예시와 함께 반환합니다. 블루프린트 자체에는 비용이 들지 않으며, 렌더링 가격에 동영상 전체가 포함됩니다.

| ID | 역할 | 기본 프레임 | 하는 일 |
| --- | --- | --- | --- |
| `comparison-split` | 기능 소개 | 180 | 라벨이 붙은 패널 두 개가 양쪽에서 미끄러져 들어와 구분선과 함께 멈춥니다. 선택 사항인 배지가 끝부분에 튀어나옵니다. |
| `constellation-hub` | 훅, 사회적 증거 | 180 | 라벨이 붙은 노드들이 가운데 허브를 둘러싼 고리 모양으로 튀어나온 다음, 샷이 중심에서 마무리됩니다. |
| `cta-morph-press` | 행동 유도 | 150 | 가운데에 버튼이 나타나고, 커서가 천천히 다가와 버튼을 누릅니다. |
| `cursor-ui-demo` | 기능 소개, 제품 소개 | 210 | 커서가 클릭으로 내 스크린샷을 조작하고, 화면이 각 대상을 따라갑니다. |
| `dataviz-countup` | 페인 포인트 | 240 | 큰 숫자가 라벨과 함께 목표 값까지 올라갑니다. |
| `device-surface-showcase` | 제품 소개, 기능 소개 | 240 | 기기 목업이 고정된 채 화면에 내 스크린샷이 차례로 바뀌며, 헤드라인도 함께 맞춰 바뀝니다. |
| `grid-card-assemble` | 기능 소개, 혜택, 사회적 증거 | 180 | 텍스트 카드가 차례로 쏟아져 들어와 그리드를 이룹니다. |
| `kinetic-type-beats` | 훅 | 150 | 한 줄에서 네 줄의 문장이 바뀌며 들어오고, 마지막 줄이 강조색으로 튀어나옵니다. |
| `logo-assemble-lockup` | 제품 소개, 브랜딩 | 180 | 브랜드 단어의 글자들이 모여 가운데 정렬된 로고 조합이 되며, 선택 사항인 태그라인이 붙습니다. |
| `overwhelm-surround` | 페인 포인트 | 210 | 도구 카드가 모이고 칩이 흩어져 들어온 다음, 요구 사항이 사방에서 조여 옵니다. |
| `spatial-pan-stations` | 훅, 페인 포인트 | 240 | 큰 캔버스 하나 위에 라벨이 붙은 지점들을 부드러운 카메라 팬으로 차례로 방문하며, 멈출 때마다 설명 문구가 나타납니다. |
| `ticker-takeover` | 훅, 브랜딩 | 180 | 강조 단어가 계속 바뀌는 타이핑 도입부에 이어, 핵심 문구가 강하게 등장합니다. |
| `titlecard-reveal` | 혜택, 사회적 증거 | 120 | 깔끔한 제목 하나와 선택 사항인 부제목이 절제된 움직임 하나로 나타나 머무릅니다. |
| `typewriter-reveal` | 훅, 브랜딩 | 180 | 깜박이는 커서와 함께 텍스트가 한 글자씩 입력되며, 선택 사항인 보조 라벨이 서서히 떠오릅니다. |
| `waterfall-reveal` | 훅, 기능 소개 | 150 | 한 줄의 단어들이 왼쪽에서 오른쪽으로 하나씩 끊어 들어오며, 선택 사항인 보조 라벨이 서서히 떠오릅니다. |

기본 길이는 30fps 기준 프레임 수입니다. `list_shot_shapes`는 항상 현재 카탈로그를 반환합니다.

## 브랜드 토큰
브리프에는 팔레트, 글꼴, 로고가 담긴 브랜드 토큰을 넣을 수 있으므로, 모든 블루프린트가 내 색상과 서체를 사용합니다. 브리프에서 토큰은 프리셋 ID가 아니라 전체 객체여야 합니다. `list_brand_presets`에서 프리셋의 토큰을 복사하세요. 필드는 [동영상 디렉터의 브랜드](https://nodaro.ai/docs/mcp/video-director#brand)와 같습니다.

## 자주 묻는 질문

### Nodaro의 샷 시퀀스란 무엇인가요?

브리프로 설명한, 내레이션이 있는 모션 그래픽 동영상입니다. 각 텍스트, 도형, 이미지가 보이스오버의 한 구절에 고정되며, Nodaro가 MP4를 렌더링하기 전에 단어 타이밍을 정확한 프레임으로 바꿉니다.

### 샷 시퀀스 동영상의 비용은 얼마인가요?

보이스오버, 정렬, 렌더링이 각각 따로 청구됩니다. ElevenLabs v3를 쓰는 보이스오버는 5~33크레딧, 강제 정렬은 33크레딧, 렌더링은 55크레딧입니다. 플랜 확정은 무료입니다.

### resolve_shot_sequence가 scene_overlap을 반환하는 이유는 무엇인가요?

두 장면의 리빌이 같은 시간대에 있기 때문입니다. 각 장면은 내레이션의 연속된 구간 하나를 차지하므로, 한 장면의 모든 큐를 다음 장면의 큐보다 앞에 두세요.

### 내레이션에서 숫자는 어떻게 써야 하나요?

말하는 그대로 쓰세요. 예를 들어 2026은 “twenty twenty-six”로, $5는 “five dollars”로 씁니다. 큐는 스크립트와 단어 하나하나 일치해야 하며, 정렬은 말한 단어를 기준으로 맞춥니다.
