返回 JoyAI-Echo
shot-sequence-patterns.md
根目录 / echo_longvideo / Director_Agent / pe / default / references / shot-sequence-patterns.md
1 # Shot Sequence Patterns
2
3 This reference distills the useful structure from a long single-subject seafaring sequence without copying its repetition.
4
5 ## What The Example Did Well
6
7 - It locked one focal subject across many shots with a stable identity anchor.
8 - It advanced the story in small readable steps instead of giant jumps.
9 - It staged dialogue after a readable visual setup within the same shot.
10 - It used simple camera verbs that are easy for a shot-writing model to preserve.
11 - It kept the larger trajectory clear:
12 - horizon
13 - discovery
14 - approach
15 - landing
16 - move inland
17
18 ## What Not To Copy Literally
19
20 - Repeating bloated identity paragraphs wastes tokens. Every shot caption still needs compact but complete character anchors in every shot that shows people; use `shot-prompt-writer.md` for that stricter caption format.
21 - Repeating the same BGM and SFX boilerplate makes the sequence feel synthetic.
22 - Contradictory sound descriptions break immersion.
23 - Swapping style labels every shot without a real visual change creates noise, not control.
24
25 ## Reusable Rules
26
27 ### 1. Lock The Anchors
28
29 Across a shot run, keep these stable unless the story explicitly changes them:
30
31 - subject ID
32 - appearance and wardrobe
33 - voice identity
34 - core environment
35 - immediate objective
36
37 ### 2. Move One Beat At A Time
38
39 Every shot must be a compact but dramatically complete unit, not a thin literal
40 description. Give it a concrete situation, a motivated action, and at least one
41 development or payoff. Each shot should add one of these:
42
43 - new information
44 - new intention
45 - new movement
46 - new obstacle
47 - new emotional turn
48
49 If a shot adds none of them, cut it or merge it.
50
51 Do not settle for a bare beat such as "looks at the door", "walks closer", or
52 "says one obvious sentence". Add specific performance, environmental, causal,
53 or emotional detail that makes the moment feel complete while preserving the
54 confirmed plot and keeping the action achievable within the shot duration.
55
56 ### 3. Keep Adjacent Shots Distinct But Continuous
57
58 Between neighboring shots, vary one or two of:
59
60 - framing size
61 - camera motion
62 - body action
63 - information revealed
64 - speech state
65
66 Do not change all five at once without a hard narrative reason.
67
68 ### 4. Use Dialogue As A Turning Point
69
70 Dialogue should appear when it does one of these:
71
72 - confirms a discovery
73 - redirects the group
74 - reveals attitude
75 - commits to the next action
76
77 Avoid filler lines that merely narrate the visible image.
78
79 ### 5. Lock One Full-Content Language For The Whole Story
80
81 Choose `caption_language` and the aligned `dialogue_language` exactly once while
82 writing `story_profile`. Their values must be `Simplified Chinese` plus
83 `Mandarin Chinese`, or `English` plus `English`.
84
85 Use this priority:
86
87 1. An explicit user choice of language.
88 2. Otherwise, infer it from the user's own conversational language: primarily
89 Chinese means the Chinese pair above; primarily English means the English pair.
90 3. If the user's conversation mixes Chinese and English without an explicit
91 choice, use the primary language of the latest substantive user instruction.
92
93 Consider only the user's own conversational messages when applying this
94 fallback. Ignore quoted story dialogue, pasted captions, character names,
95 ethnicity, nationality, appearance, and location. Also ignore the English
96 language of PE references, system prompts, tool instructions, or previously
97 generated content. Once chosen, the language is locked across the screenplay,
98 story profile, every speaker, and every shot; later wording cannot switch it.
99
100 Unless the user explicitly requests another language, all natural-language
101 content follows the user's conversational language: displayed `story_md`,
102 `story_profile.summary`, every beat summary and dialogue intent, character and
103 scene anchors, semantic mapping prose, complete shot-caption prose, dialogue,
104 and user-facing Agent replies. Never mix Chinese and English natural-language
105 prose in one artifact. Technical tokens such as `ID_A`, `shot1:`, and `OCR`
106 may remain unchanged.
107
108 Plan speech at story level instead of letting each shot guess. Unless the user
109 explicitly requests a silent, wordless, no-dialogue, or person-free outer shot,
110 every beat must produce spoken dialogue and have a non-empty
111 `"dialogue_intent"` describing the new information, decision, redirection, or
112 emotional turn the line contributes. Do not invent silent establishment,
113 transition, or reaction beats. Do not require or rely on a `speaks` field: it
114 may be absent after story-profile normalization, but the default-speech rule
115 still applies.
116
117 In every finished outer-shot caption, each character who actually speaks must
118 have exactly one complete stable voice anchor beginning `ID_X's voice is ` and
119 describing register, timbre, resonance, accent, and articulation. A changing
120 delivery phrase before `ID_X says` must also match that shot's dialogue,
121 emotion, and scene with heightened, unmistakably dramatic intensity; it does
122 not replace the stable anchor. Use the full emotional range rather than making
123 every line calm or turning every line into a shout: fear may be tightly
124 panicked, grief close to breaking, joy explosively radiant, anger cutting and
125 volatile, suspicion controlled but dangerous, and tenderness fiercely
126 vulnerable. A character who does not speak must have no voice anchor and no
127 voice-quality description anywhere.
128
129 The complete caption for one outer shot should target 1500 to 1800 Unicode
130 characters and must contain fewer than 2000 characters total (maximum 1999)
131 across all internal segments combined. Count every letter or Han character,
132 space, punctuation mark, quote, `This video has...` prefix, `shotN:` label, and
133 required declaration. Roughly 220 to 280 English words is only a soft planning
134 guide; the character budget always wins. Compose concisely from the start. If a
135 draft is too long, rewrite and compress secondary environment, lighting,
136 composition, and camera modifiers before output while preserving required
137 anchors, voice and delivery, dialogue, vocal/OCR declarations, and segment
138 syntax. Never truncate a finished caption.
139
140 Never write, imply, or preserve a sigh, audible breathing or breath sound,
141 inhale, exhale, intake of breath, panting, gasping, sniff, snort, nasal hum,
142 nasal grunt, breathy or airy voice quality, microphone-caught respiration, or
143 nasal voice quality, even when the user explicitly requests one. Replace it
144 with facial expression, gaze, posture, action, or permitted spoken dialogue.
145 This prohibition applies while planning the story and while writing every shot
146 caption.
147
148 ### 6. Build In Mini-Arcs
149
150 For long sequences, every 4-6 shots should create a local progression:
151
152 - setup -> notice -> react -> move
153 - scan -> reveal -> decide -> act
154 - approach -> inspect -> conclude -> commit
155
156 This prevents the middle of the sequence from flattening out.
157
158 ## Recommended Story Profile Shape
159
160 When writing `story_profile`, keep it compact and tool-friendly. The English
161 sample below illustrates structure only; translate every natural-language value
162 to the selected Chinese language when the user is communicating in Chinese:
163
164 ```json
165 {
166 "summary": "Short story summary",
167 "dialogue_language": "English",
168 "beats": [
169 {
170 "shot_id": 1,
171 "summary": "The hero reaches the rain-soaked deck and discovers the navigation lights are dead.",
172 "dialogue_intent": "Reports the failed navigation lights and asks the crew to check the backup circuit."
173 },
174 {
175 "shot_id": 2,
176 "summary": "The hero recognizes a signal on the horizon and commits to following it.",
177 "dialogue_intent": "Names the signal and commits the crew to the approach."
178 },
179 {
180 "shot_id": 3,
181 "summary": "The hero reaches the transmitter and realizes the signal carries a familiar voice.",
182 "dialogue_intent": "Identifies the voice and reveals why the signal matters personally."
183 }
184 ],
185 "anchors": {
186 "characters": ["Stable identity facts"],
187 "environment": ["Stable world facts"],
188 "tone": ["Stable tone facts"]
189 },
190 "shot_to_content": {
191 "shot_001": "establishes the hero on deck",
192 "shot_002": "hero notices the horizon",
193 "shot_003": "hero recognizes the transmitted voice"
194 },
195 "content_to_shots": {
196 "signal discovery": ["shot_002", "shot_003"]
197 }
198 }
199 ```
200
201 Keep the mappings semantic. They are for lookup, not for prose.
202
202 lines MARKDOWN