<inputs>
请向我询问:一个以“如果……会怎样”形式提出的主题(默认:“{argument name="topic" default="What if the Sun vanished?"}”)、时长(默认 {argument name="length" default="30 SEConds"}),以及我是否拥有 ElevenLabs 密钥(如果没有,则使用免费的本地语音)。
</inputs>

<direction>
Kurzgesagt 风格的动画科普视频,分辨率 1920x1080,帧率 30fps,全部由代码绘制:一个 2D canvas 加一个用于渲染行星的 WebGL canvas。
太空背景:从 #081d2c 到 #102348 的垂直渐变;五个巨大的视差星云团(青色 rgb 24,150,160 透明度 20%,蓝色 40,95,195 透明度 16%,珊瑚色 220,95,110 透明度 10%,靛蓝色 60,70,175 透明度 15%);三层星星分别位于 .12/.35/.6 的视差深度并带有闪烁效果,其中 40% 的近景星星绘制为四角星芒。
太阳:半径 300px,一半隐没在画面左侧边缘之外。径向渐变从 #fff7dc 到 #ffc857 再到 #ff8f4a,高光位置偏移;叠加光晕环,半径分别为太阳半径的 1.23/1.48/1.76/2.1 倍;18 道微弱的旋转光芒楔形;表面有 28 个漂浮的发光颗粒。
地球:在片段着色器中绘制的正交球体,4 倍超采样,基于由经纬度多边形绘制的 2048x1024 贴图:陆地 #5fc47a、森林 #48ad6b、沙漠 #f5c75f、雨林 #3a9d62、冰盖 #f1f8ff、海洋渐变从 #4dc7eb 到 #1a66b8,以及白色的荚状云。倾斜 .26 rad,自转速度每秒 .55 度。昼夜过渡使用 smoothstep(-.12, .24, N·L),光照方向每帧根据太阳到地球的位置重新计算。夜半球呈深藏青色,点缀约 380 个暖色调城市灯光;晨昏线上有一道珊瑚色光带和一圈青色边缘;海洋带有高光反射;大气光晕在受光面更强。
小宇航员吉祥物(约 180px),由圆角矩形拼成:宇航服 #f3f7fb,橙色 #ff8f4a 靴子,面罩渐变从 #1f5a73 到 #0a1c2c,发光的青色眼睛始终注视着当前画面的焦点,天线灯闪烁,待机时有上下浮动效果,每个姿势都带有挤压与拉伸动画。
字体:仅限 Fredoka 600/700。字幕全大写,字间距 3-6px,颜色为青色 #8fd8e6、金色 #ffd98a 或白色,置于 rgb(6,20,40) 且透明度 62% 的圆角胶囊背景中。每一行文字都在裁剪区域内以 ease-out-quint 缓动向上移动自身高度的 1.3 倍。
后期处理:添加暗角至 rgba(4,4,20,.45),以及每秒重新随机生成 24 次的 6% 胶片噪点。
禁用项:描边、太阳边缘的光晕耀斑或循环动画、静态信息图表条、屏幕文字中的句号、整体淡入的文字、AI 图像或 AI 视频、Kurzgesagt 的自有角色、鸟类或音乐。
</direction>

<structure>
总长 30 秒,每一句旁白都必须配合镜头运动或画面变换,绝不允许任何元素静止不动。
2.25 倍特写太阳 (0s) → 念到“vanished”时,太阳膨胀 6% 持续 0.22s,随后在 0.33s 内坍缩,接着是一道白光闪光和冲击波环 (1s) → 镜头拉回至 1 倍,展现依然被照亮的地球,以及盯着空处的宇航员 (1.6-3s) → 念到“eight”时,一个 8:20 的倒计时从 1.7 倍猛冲至 1 倍并开始跳动,“LAST LIGHT”标签沿着逐渐变大的暗盘边缘移动 (3.2s) → 镜头推进至地球的 2.3 倍,光线拖尾流入画面 (5.6s) → 念到“you”时,一枚 YOU 图钉落下 (7s) → 念到“left”时,一个光子落在图钉上,显示“THIS LIGHT LEFT THE SUN / 8 MIN 20 SEC AGO” (7.5s) → 念到“play”时,图钉变形为播放按钮,显示“YOU PRESSED PLAY / 15 SEC AGO” (8.8s) → 镜头从 2.4 倍拉远至 0.3 倍的轨道视角,“LAST LIGHT”和“GRAVITY”沿轨道环移动 (9.6-12.5s) → 念到“nothing”时,中心空白处出现一个虚线圆圈 (13.4s) → 念到“hits”时,黑暗在 0.7s 内席卷地球,城市灯光接连亮起,倒计时在 0:00 时变为金色 (15.8s) → 念到“black”时,背景几乎褪至纯黑 (17.4s) → 木星出现,显示“STILL SHINING FOR 1 HOUR+” (17.9s) → 镜头拉远,出现一条虚线切线,显示“30 KM/S”,地球沿直线飞出 (20.8s) → 温度计从 15°C 降至 -70°C,同时冰霜从两极蔓延 (22.8s) → 独立的故事时钟倒带 0.8s (24.3s) → 墨镜落到宇航员脸上 (25.2s) → 一个标记着“8:20 OLD”的光子,随后出现标题 (27.7s)。
对于其他任何主题,保持相同的结构节奏:事件在对应词语出现时发生,拉远镜头展示宏大尺度,推进镜头拉近个人距离(“you”),再次拉远,用实时计数器展示后果,层层递进,加入吉祥物的搞笑桥段,最后首尾呼应并亮出标题。
</structure>

<build>
1. 单个 HTML 文件。每一帧都是时间的纯函数:https://t.co/lT4Z2IvSIB(t) 负责绘制第 t 帧。不使用定时器,不使用 CSS 动画。
2. 镜头运动采用 easeInOutCubic 缓动,缩放比例在对数空间中插值,所有弹跳效果均使用阻尼弹簧(阻尼 .42-.5,频率 12-16)。
3. 语音:使用 ElevenLabs eleven_v4 及定制音色(沉稳、温暖、充满好奇心的男性,30 多岁,吐字清晰,偏轻的中性欧洲英语口音),稳定性 .5,相似度 .75,生成时需包含时间戳。若没有密钥,则在本地使用 kokoro-onnx,并通过 faster-Whisper 获取单词时间戳。每个动画事件都在对应的单词处触发。语速约为每分钟 165 词,句间停顿 0.24s,重大揭晓前留出 0.36s 的节奏停顿。
4. 黑暗前沿:距太阳处于该前沿半径内的任何像素都会转为黑夜,并带有 30px 的柔和边缘。前沿移动速度约为 47px/s,靠近地球时加速至 700px/s。
5. 维护两个时钟:环境时钟控制闪烁、自转和浮动,独立的故事时钟控制事件,以确保倒带时逻辑一致。
6. 使用 Playwright 在启用 GPU 的无头 Edge 浏览器中渲染:按 30fps 逐帧定位,混合 2 个子帧(快门角度 0.6)实现运动模糊,然后使用 libx264 编码,母版 CRF 设为 16,交付版 CRF 设为 20。
7. 音效:铺垫一段平静的免版税太空背景音乐,音量比人声低 7dB,卡准时间点使其自然收尾于标题处,并在标题出现时推高 5dB。每种事件类型(坍缩、撞击、拉远呼啸声、倒计时滴答声、俯冲、图钉敲击、光子落地、点击播放、光线击中、揭晓、结霜、倒带)各配一个下载的免版税音效,峰值对齐其所在帧,音量比人声低 4-10dB。母带处理使用增益加限制器,达到 -14 LUFS,真实峰值 -2.2dB。
</build>

<gotchas>
WebGL 地球 canvas 的尺寸必须至少为 2 x 半径 x 缩放倍数 x 1.18 像素,否则球体在特写镜头中会被裁切成平面。绝不要在太阳边缘绘制日珥,它们看起来像白色的钩子。绝不要为了迁就画面而拉长语音,应改为精简文案。黑暗前沿靠近地球时必须加速,否则扫过整个星球需要 13 秒。正式渲染前,先给我看一张包含所有关键节点的缩略图联系表。
</gotchas>

<start>
请先向我确认输入参数,撰写旁白并标明每个词触发的节点,展示给我确认后,再构建并渲染视频。
</start>

Be the first to rate this article.

Comments & Questions (0)

Captcha
Please be respectful — let's keep the conversation friendly.

No comments yet

Be the first to comment!