视频 · Claude
竖版扁平动画圣经冷知识脚本
用于生成竖版扁平矢量讲解动画的完整需求,涵盖旁白、分镜、字幕、标签和音效规范,适合做历史或宗教冷知识短视频。
Prompt
<inputs>
请向我索要我的故事,或提出3个选题。好的故事包括:被遗忘或被误解的圣经人物、历史上总被混淆的两个人、起源出人意料的传统、大多数信徒都说不清来历的象征。每个选题都要给出一个真实、可核查、能颠覆人们固有认知的切入角度,并附注哪些来自圣经经文、哪些来自传统。请询问我想要哪种配音声音,以及大致时长(35-50秒)。然后撰写旁白(每个观点一句,100-125词)、6-8个场景的分镜脚本(画面中看到什么、什么在动、哪个标签落在哪个字上)、音效清单和色板。在生成任何内容之前,请把这些全部展示给我,并附上配音和渲染的成本。
</inputs>
<direction>
一部 1080x1920 竖版扁平矢量解说动画,风格参照大型科学动画频道,完全用代码绘制(SVG + GSAP)。不使用图像生成、图库照片或 AI 视频。
- 每个场景都是完整的场地(黄昏的山坡、石室、夜间平原、分屏对比),人物在场景中表演台词内容。
- 扁平色块,无描边,每个形状使用一种更深的平涂阴影色。柔和的径向光晕只用于光源:太阳、火焰、光环、烛光。
- 人物:大头、椭圆脸、带细小高光的圆点眼睛、简单的胡须、长袍,披风斜搭在身上。人物颜色编码:错误观点或反派使用红色 #E8505B,正确观点或英雄使用金色 #E9A93B。夜间色板 #0A0416 和 #2A1550,强调色青色 #3FA9C4,奶油色 #FFEFD2。同一角色在每个场景中颜色保持完全一致。
- 标签:实心方形标签牌(无圆角,无引线),Montserrat 900 大写,1-4 个词。默认使用金色底板配深色文字,只有行动号召使用红色标签牌。每个标签都靠近它所指代的事物,并在说出对应词语时出现:标签牌以0.32秒(power3.out)从左侧缩放入场,文字在0.12秒后上升12px,离场时顺序相反。
- 字幕:两行白色 Inter 字体,字号62px,水平居中,位于 y=205。正在朗读的词为字重800、纯白色;其他每个词为字重600,透明度为50%的白色,并带有柔和的深色阴影。屏幕上同一时间只显示一组字幕,每行最多20个字符,并在短语边界处断行。
- 镜头:每个场景都以3-7%的幅度缓慢漂移或推进。大的揭示可以是从2.4倍拉远到1倍。
- 动作:没有人物可以静止。头部倾斜,眼睛转动,眼睑下垂,手臂从肩部指向。物体以回弹缓动或弹簧方式入场,绝不使用单纯的淡入。
- 安全区:168px 以上不放置任何重要内容;每个文字(字幕和标签)都必须位于168至1330px之间。1330px 以下只放背景画面,因为应用界面会遮挡该区域。
- 语气:庄重、充满好奇,绝不嘲讽。当内容来自传统而非经文时,脚本中须注明"tradition says"。
禁止:描边、表情符号、漂浮的 UI 卡片、人物上的渐变、圆角标签牌、任何频道的标志或角色,以及静止超过1秒的画面。
</direction>
<structure>
时长由配音决定,按每分钟约160词估算。约42秒的节拍示例:
0秒,以“你知道吗……”开场,两位人物同时出现在屏幕上;转折在第二句落下,第一个标签 →
约8秒:揭示,镜头推向英雄,他的名字出现在标签牌上 →
约12秒:证据,一卷羊皮纸展开,逐字打出原始文本;错误的名字在句末以红色划除 →
约16秒:后果以表演呈现(人们转身背对),关键词上出现一个标签 →
约20秒:转折,有人伸出手,火焰随节拍点燃,温暖的光充满房间,光环出现 →
约26秒:如何区分二者,分屏,每侧一件道具,每件道具被点名时出现一个标签 →
约33秒:收尾,镜头拉远到一大群人(数百支蜡烛向他倾斜,形成波浪) →
约39秒:片尾卡,一个徽章和两个标签牌,分别是主题和红色的“FOLLOW FOR MORE”。最后一个词之后保持1.5秒。
只在句子边界处切分。
</structure>
<build>
0。这假定使用 Calliope 工作区:一个带有旁白、单词时间戳、检查、快照和渲染功能的 HyperFrames + GSAP 沙盒。请先阅读环境自带的文档(模板风格指南、合成格式、竖版视频规则);在技术细节上,它们优先于本提示词。若不在 Calliope 中,请用 Node、GSAP、Chromium/Playwright 和 FFmpeg 搭建等效环境,并告诉我你安装了什么。
1。先做配音。生成旁白,读取其真实时长和单词时间戳,然后根据这些时间规划每个场景的时间窗口、标签、动作和音效。每个场景对应一句话,切点落在其最后一个词之后的间隙。如果配音比计划短,就按配音来规划,不要用静音填充。
2。项目:一个 index.html 根合成(1080x1920),每个场景对应一个子合成,字幕有一个子合成,音频片段放在根级别。每个文件都在其合成 id 下注册一个暂停的 GSAP 时间线。每一帧都是时间的纯函数:不使用 Math.random、不使用计时器,渲染时不访问网络。
3。生成,而非手写。为每个场景编写一个 Python 生成器,输出其 HTML;另外编写一个共享库,包含:
- 一个带种子的星空;
- 渐变辅助函数;
- 标签牌;
- 一个参数化的人物函数(类型、颜色、道具)。
修改生成器即可保证各场景中人物始终一致。每个 id 都加上场景 id 作为前缀(例如 s3-hero-head),以免组装时发生冲突。
4。人物骨架,全部为带 id 的 SVG 组:
- rig,包含 body、armL 和 armR(支点位于 50% 0%),以及 head(支点位于 50% 100%)。
- eyes,通过沿 x 轴移动实现眼神转动。
- lids:肤色矩形,从 50% 0% 缩放。0 为睁开,0.4 为半眯(沉重的眼睑),1 为闭合。
- brows 和 mouth。
- 可选道具:钱袋、奖章、胸口火焰、头部火焰、光环,以及用于表示羞愧的披风暗色覆盖层。
背景人物是从背后看的兜帽人影,每个都带有一条隐藏的金色轮廓光描边,光线涌入时开启。
5。字幕:每个词是一个 inline-grid,内含两个叠放的 span,一个暗淡、一个加粗,因此改变字重时不会引起整行重排。在每个词开始时,以0.05秒交叉淡入两者,并在下一个词开始时切回。一组字幕在其第一个词前0.06秒出现,并在下一组开始时离场。第一组在第0帧即已可见,使缩略图上有文字。
6。音效:
- 轰鸣:每次切点处一个柔和的低沉轰鸣,音量低,其峰值落在切点后一帧。
- 呼啸:某物展开或滑入时用一个短促的呼啸,在重大时刻用较长的呼啸并使其峰值落在该时刻。
- 放置:按每个音效测得的峰值放置,并为每个音频片段指定明确的时长。
- 音调:不使用合成音调或叮声。
- 音乐:可选。若添加背景音乐,请使用授权允许的曲目,使其比人声低10-12 dB,并告诉我来源。
7。渲染前审查:
- 运行项目检查。
- 将约20个时刻(每个场景的开场节拍和每个标签)截图,拼成两张联系表,并亲自查看。
- 修复标签与字幕重叠、标签遮挡人脸、空白画面和黑边等问题。
- 渲染,然后检查渲染文件中的帧。
- 明确告诉我哪些内容无法验证,例如音频混音。
8。完成后,提议将项目保存为可复用模板,使下一个视频只需新的脚本。
</build>
<gotchas>
- 在暂停的时间线中用 tl.set(..., 0) 设置的初始状态,不会在第0帧渲染出来。请在构建时间线之前用 gsap.set 设置,或将其写入标记中。眼睛是典型案例:如果忘了眼睑,每个人物在场景开始时都会处于眨眼中途。
- 每个场景使用一个 svgOrigin,并在相机补间的 from 和 to 中重复使用;在场景中途更改它会导致整个画面跳动。
- 为 SVG 缩放补间设置明确的 transformOrigin 为50% 50%,否则会从角落缩放。
- 不要绘制子合成根节点。应在场景的 SVG 内绘制一个全出血矩形,且比画面更大,这样相机移动时不会露出边缘。
- 没有明确时长的音频片段可能被理解为持续到视频结束,因此每个重复的音效都会被标记为重叠。
- 在分屏中,选择角度之前先算出抬起的手臂及其道具最终位置;60°的摆动可能把道具甩过分割线。
- 按出现次序查找重复词(“Judas”出现多次),否则标签会落在错误的行上。
- 逐字拆分为单独 span 的词,在可读性检查中会被计为多个词。只要字幕中包含该词,用于快速揭示是可以的。
</gotchas>
<start>
请向我索要我的故事,或提出3个选题,然后在花费任何资源之前,先把脚本、分镜、音效清单和成本展示给我。
</start><inputs>
Ask me for my story, or pitch 3. Good stories: a forgotten or misunderstood biblical figure, two people history keeps confusing, a tradition with a surprising origin, a symbol most believers can't explain. Each pitch gets one true, checkable angle that flips what people assume, plus a note on what comes from scripture and what comes from tradition. Ask which voice I want and roughly how long (35-50 s). Then write the narration (one sentence per idea, 100-125 words), a 6-8 scene storyboard (what we see, what moves, which label lands on which word), the sound list and the palette. Show me all of it, with the cost of the voice and the render, before you generate anything.
</inputs>
<direction>
A 1080x1920 vertical flat-vector explainer in the style of the big science-animation channels, drawn entirely in code (SVG + GSAP). No image generation, no stock photos, no AI video.
- Every scene is a full place (a dusk hillside, a stone room, a night plain, a split-screen comparison) with characters acting the line out.
- Flat colour shapes, no outlines, one darker flat shade per form. Soft radial glows only for light sources: sun, flame, halo, candles.
- Characters: big heads, oval faces, dot eyes with a tiny highlight, simple beards, long robes with a mantle draped across the body. Colour-code people: the wrong idea or villain in red #E8505B, the true idea or hero in gold #E9A93B. Night palette #0A0416 and #2A1550, accent teal #3FA9C4, cream #FFEFD2. A character keeps identical colours in every scene.
- Labels: solid square plates (no rounded corners, no leader lines), Montserrat 900 caps, 1-4 words. Gold plate with dark text by default, a red plate only for the call to action. Each sits near what it names and arrives on the word that says it: the plate scales in from the left in 0.32 s (power3.out), the text rises 12 px 0.12 s later, and it leaves in reverse.
- Subtitles: two white lines of Inter, 62 px, centred at y=205. The word being spoken is weight 800, pure white; every other word is weight 600 at 50% white, with a soft dark shadow. One group on screen at a time, at most 20 characters a line, broken at phrase boundaries.
- Camera: every scene drifts or pushes 3-7%. A big reveal can be a pull-back from 2.4x to 1x.
- Motion: nobody freezes. Heads tilt, eyes glance, lids droop, arms point from the shoulder. Things arrive with back-out easing or a spring, never a plain fade.
- Safe zones: nothing important above 168 px, and every word (subtitles and labels) between 168 and 1330 px. Below 1330 is scenery only, because the app's interface covers it.
- Tone: reverent and curious, never mocking. When something comes from tradition rather than scripture, the script says "tradition says".
Banned: outlines, emoji, floating UI cards, gradients on characters, rounded plates, any channel's logo or characters, a still frame longer than 1 s.
</direction>
<structure>
The voice decides the length, at about 160 words a minute. Example beat map for about 42 s:
0 s a "Did you know..." hook with both figures on screen; the twist lands in the second sentence with the first label →
~8 s the reveal: push in on the hero, his name on a plate →
~12 s the evidence: a parchment unrolls and types the source text letter by letter; the wrong name gets struck through in red as the sentence ends →
~16 s the consequence acted out (people turning their backs), a label on the key word →
~20 s the turn: someone reaches out, a flame ignites on the beat, warm light floods the room, a halo arrives →
~26 s how to tell them apart: a split screen with one prop per side and a label on each prop as it's named →
~33 s the payoff: pull back to a huge crowd (hundreds of candles leaning toward him in a wave) →
~39 s end card: an emblem and two plates, the topic and a red FOLLOW FOR MORE. Hold 1.5 s after the last word.
Cut only on sentence boundaries.
</structure>
<build>
0. This assumes a Calliope workspace: a HyperFrames + GSAP sandbox with narration, word timestamps, checks, snapshots and rendering. Read the environment's own docs first (template style guide, composition format, vertical-video rules); they win over this prompt on technical details. Outside Calliope, set up the equivalent with Node, GSAP, Chromium/Playwright and FFmpeg, and tell me what you installed.
1. Voice first. Generate the narration, read its real duration and word timestamps, and plan every scene window, label, gesture and sound from those times. Each scene is a sentence, and the cut falls in the gap after its last word. If the voice comes out shorter than planned, plan to the voice; don't pad with silence.
2. Project: an index.html root composition (1080x1920) with one sub-composition per scene, one for the subtitles, and the audio clips at the root. Each file registers a paused GSAP timeline under its composition id. Every frame is a pure function of time: no Math.random, no timers, no network at render time.
3. Generate, don't hand-write. Write one Python generator per scene that outputs its HTML, plus a shared library with:
- a seeded star field;
- gradient helpers;
- the label plate;
- one parametric character function (kind, colours, props).
Editing the generator keeps every character identical across scenes. Prefix every id with its scene id (s3-hero-head) so nothing collides once the scenes are assembled.
4. Character rig, all SVG groups with ids:
- rig, containing body, armL and armR (pivot at 50% 0%) and head (pivot at 50% 100%).
- eyes, which glance by moving on x.
- lids: a skin-coloured rect scaled from 50% 0%. 0 is open, 0.4 is heavy-lidded, 1 is closed.
- brows and mouth.
- optional props: money bag, medallion, chest flame, head flame, halo, and a dark overlay on the mantle for shame.
Background people are hooded figures seen from behind, each with a hidden gold rim-light stroke you switch on when the light floods in.
5. Subtitles: each word is an inline-grid with two stacked spans, a dim one and a bold one, so changing weight never reflows the line. At each word's start, crossfade them in 0.05 s, and switch back at the next word's start. A group appears 0.06 s before its first word and leaves when the next group starts. The first group is already visible on frame 0, so the thumbnail has text.
6. Sound:
- Booms: a soft low boom on every cut, quiet, with its peak landing one frame after the cut.
- Whooshes: a short one when something unrolls or slides in, and a longer one peaking on the big moment.
- Placement: place every effect by its measured peak and give every audio clip an explicit duration.
- Tones: no synthesized tones or dings.
- Music: optional. If you add a bed, use a track whose licence allows it, keep it 10-12 dB under the voice, and tell me the source.
7. Review before rendering:
- Run the project checks.
- Snapshot about 20 moments (each scene's opening beat and every label) into two contact sheets and look at them yourself.
- Fix labels overlapping subtitles, labels covering faces, empty boards and black edges.
- Render, then inspect frames from the rendered file.
- Tell me plainly what you couldn't verify, such as the audio mix.
8. When it's done, offer to save the project as a reusable template, so the next video only needs a new script.
</build>
<gotchas>
- Initial states set with tl.set(..., 0) inside a paused timeline don't render on frame 0. Set them with gsap.set before building the timeline, or write them into the markup. Eyes are the classic case: forget the lids and every character starts the scene mid-blink.
- Use one svgOrigin per scene and repeat it in the camera tween's from and to; changing it mid-scene makes the whole world jump.
- Give SVG scale tweens an explicit transformOrigin of 50% 50%, or they scale from a corner.
- Don't paint the sub-composition root. Paint a full-bleed rect inside the scene's SVG, larger than the frame, so camera moves never show an edge.
- Audio clips without an explicit duration can be read as lasting to the end of the video, so every repeated sound gets flagged as overlapping.
- In a split screen, work out where a raised arm and its prop end up before choosing the angle; a 60° swing can carry the prop across the divider.
- Find repeated words by occurrence ("Judas" appears several times), or labels land on the wrong line.
- A word typed as separate letter spans counts as many words for readability checks. That's fine for a quick reveal as long as the subtitle carries it.
</gotchas>
<start>
Ask me for my story, or pitch 3, then show me the script, storyboard, sound list and cost before you spend anything.
</start>
使用建议
把故事替换成你的选题,让 Claude 先提问再输出脚本和分镜,适合做历史或宗教冷知识类短视频。
信息
- 类型
- 视频
- 模型
- Claude
- 许可
- Source-author-rights
- 发布时间