2D 动画 HyperFrames
使用此技能,根据用户批准的旁白脚本和时序源制作动画视频。标准输入为 vo.mp3 加上 script.txt(带情感标签的旁白),视觉参考位于 references/visual-style/overall/。
示例触发:
/2d-animation-hyperframes 使用 vo.mp3 和 script.txt 创建 2D 动画视频。请遵循 references/visual-style/overall/ 中的视觉参考。
用户的脚本和音频是最终依据。除非用户明确要求,否则不要花代币起草新脚本、重写旁白或生成替代配音。情感标签是演绎指令,而非口语内容:请原样保留,切勿朗读或加字幕。如果请求的文件缺失或不明确,请询问其位置;不要用新编写的脚本替代。
默认受众是 TK 至 SD 阶段的印尼儿童。保持视觉叙事清晰、温馨且适龄。所有动画保持 2D。
输入、脚本格式和时序
在请求或当前项目文件中查找附件。指定路径时使用提供的路径。如果文件不在项目中,请在开始制作前询问在哪里可以找到它们。源文件位于 references/multi-video.md 中描述的工作区布局中:旁白和配音位于 inputs/<slug>/ 下,HyperFrames 项目生成在 videos/<slug>/ 下,共享的视觉参考位于工作区根目录(references/visual-style/overall/)。
script.txt 格式:一个只包含方括号内情感标签的行(例如 [excited]、[ curious ]、[playfully])设定了后续旁白块的演绎方式,直到下一个标签。空行仅用于提高可读性,不代表停顿。示例:
[excited]
Adik-adik, pernah nggak sih kalian melihat jerapah?
[curious]
Wah, lehernya panjang sekali, ya!
标签规则:
- 标签适用于其后的整个旁白块。用它来驱动场景节奏、角色表情、节奏和视觉重点。
- 切勿朗读、加字幕或渲染标签。在生成屏幕文字前将其移除。
- 完全按原样保留标签。如果配音是由 ElevenLabs 生成的,相同的标签就是演绎指令;不要规范化或发明新标签。
- 无法识别的标签仍然是演绎提示;请保留,不要丢弃。
时序源,按优先级排序:
- 如果用户还提供了同一音频的词/段时间戳导出文件(ElevenLabs JSON),则使用它;该文件为可选项,非必需。
- 否则从
vo.mp3推导词级时序:针对script.txt文本转录/对齐提供的音频(例如 ElevenLabs Scribe 词时间戳,或 TTS 生成音频时返回的时间戳有效负载)。 - 如果
vo.mp3缺失,请询问。除非用户要求,否则不要合成替代配音。
在动画制作前:
- 检查每个脚本块是否对应音频中的一段,并且时序源覆盖了整个
vo.mp3的时长,包括任何初始偏移或暂停。 - 确认脚本文本与提供的音频对应。不要编辑旁白。如果文本、音频和时间戳冲突,请说明不匹配情况并要求提供修正后的文件。
- 使用情感标签块(以及如果提供了时间戳导出文件时的段边界)来划分故事节奏和场景变化。使用词时间戳来处理字幕、强调和小型视觉提示。将词语组合成有意义的短语,而不是让每个词都成为一个单独的场景。
构建 2D 视觉风格
每个场景的默认风格关键词:
2D 扁平,主白背景配淡速写线条。仅主题和文字为全彩。
在设计场景之前,请一起检查 references/visual-style/overall/ 中所有可用的图片。将它们视为本项目视觉特征的权威依据。提取一份简洁的风格指南,涵盖:
- 调色板、饱和度、对比度、光照和辉光;
- 形状语言、线条粗细、纹理和细节密度;
- 角色比例、表情和重复出现的设计特征;
- 构图以及扁平 2D 艺术品如何暗示深度;
- 排版、文字动画、节奏、转场和视觉母题。
将一份统一的风格指南应用于每个场景和新创建的素材。如果参考文件冲突,遵循出现次数最多或最新批准的指示;仅在冲突会实质性地改变结果时才询问。保持结果为 2D:使用图层、视差、重叠、缩放、阴影和渐变来表现深度。除非用户要求,否则不要将其变成 3D 模型或 3D 渲染的外观。
HyperFrames 制作工作流
- 使用 HyperFrames 作为动画和渲染框架。在用户的活动视频项目文件夹中工作,并保留其资产和参考。
- 根据批准的旁白、情感标签块和词时间戳来规划场景。保持旁白不变;将视觉动作和字幕与音频时间线对齐。将音乐和音效放在暂停处或不会掩盖语音的音量水平。
- 使用实际的
vo.mp3、script.txt和视觉参考构建一个简短的 2D 测试场景。预览并检查风格一致性、可读性以及语音开始、暂停、转场和结束时的同步性。 - 根据预览效果进行有针对性的修改,然后将批准的视觉语言扩展到整个视频。在测试场景经过审核之前,不要创建完整动画。
- 从项目文件夹运行 HyperFrames 预览(
npx hyperframes preview)。它将启动基于浏览器的 HyperFrames Studio 并热重载文件更改。对于此 CLI 工作流,独立的桌面 Studio 应用是可选的。 - 使用当前的 HyperFrames CLI 工作流将批准的项目渲染为 MP4。报告输出路径和任何制作限制。不要声称预览就是渲染完成的最终视频。
如果可用,请使用已安装的 HyperFrames 创作说明。如果缺少设置或依赖项,请说明确切的缺失步骤。未经用户授权,请勿安装软件或更改全局设置。
启动新视频
从工作区根目录生成 HyperFrames 项目,而不是手动搭建;每个视频一个项目。
python tools/new-video.py <slug> # 搭建 + 转录 + 块映射
python tools/new-video.py <slug> --force # 重新构建已有的 videos/<slug>
python tools/new-video.py <slug> --no-transcribe # 仅搭建
它会读取 inputs/<slug>/(vo.mp3 + script.txt)并写入 videos/<slug>/,然后为每个带标签的块打印一行包含绝对和本地开始/时长的信息。完整布局、输出和生成后的步骤见 references/multi-video.md。
音效
音效位于旁白下方,绝不能覆盖旁白。在每个视觉打击(元素出现、剪辑、笑点、揭示)上放置一个重音——而不是每个字幕都放。在提示音之间留出静默。
- 默认路线:通过
media-use技能(Openverse 或该技能附带的 21 个文件库audio/assets/sfx/)检索 CC0/CC BY 音效。当已有匹配的库存音效时,绝不生成新音效。 - 自定义路线:使用 Python(
numpy+ 标准库wave,44.1 kHz 单声道 16 位,峰值归一化 0.7,种子噪声)合成一个一致的音效系列。pop、boing、whoosh、chime、stamp 和 sparkle 的配方见references/sfx.md。 - 将每个提示音作为带时序的
<audio>元素添加到根合成上:唯一的id、以绝对秒数表示的data-start、等于文件长度的data-duration、0.22–0.38 的data-volume,以及一个不与其他可听片段重叠的data-track-index。 - 在渲染之前,
npm run check必须报告 0 个错误,并且没有clip_ends_past_root_duration或duplicate_audio_track警告。
范围
此技能从提供的媒体素材创建动画;它通常不创建或修改旁白。如果用户只要求提供故事板或视觉计划,则基于相同的音频和 script.txt 提供,而不起草脚本。如果用户明确要求编写脚本,请处理该单独请求,并在生成新的配音或替换现有音频之前获得批准。