Communitygithub.com

PhucDnag/video-3d-agent

导演并制作与旁白/字幕高度同步的3D竖屏视频,画面精美丰富、富有意义且动作协调;适用于金融、知识、家庭、情感、自我提升等主题。

video-3d-agent 是什么?

该技能是一个AI代理(Agent),用于将剧本和旁白自动转换为具有丰富3D视觉效果的9:16竖屏视频。其核心目标是确保每个镜头都能准确、同步地可视化旁白的核心含义,即使在静音状态下也能传达主旨。它模拟了专业视频导演的工作流:首先分析剧本,将其分解为有意义的节拍(Beats);然后为每个节拍设计具体的视觉声明(VisualClaim),涵盖构图、动作、材质、灯光、色彩和情绪;并生成详细的分镜脚本(Storyboard)。该技能严格强调视觉与语言的同步性,要求动作必须与关键词或短语精确对齐。它被设计为与特定的项目渲染引擎、场景系统和命令行界面(CLI)协同工作,因此它会主动检查代码库中实际支持的场景、相机和资源,避免生成无法渲染的描述。它特别注重通过避免重复使用相同的镜头类型、颜色或资产来确保视觉多样性,同时为角色和道具保持叙事连贯性。该技能还包含详细的配音导演指南,为每个节拍指定情绪、强度、节奏、重音和停顿,但会考虑到文本转语音(TTS)引擎的实际能力差异。最终输出是一个结构化的JSON分镜脚本,包含每个节拍的文本、视觉声明、时间码和可执行的动作,然后交给渲染管线处理。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/PhucDnag/skill_tao_video/tree/HEAD/.agent/skills/video-3d-agent

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

3D视频导演技能(基于旁白)

目标

将脚本和旁白转化为9:16竖屏视频,包含精美的3D图像,即使静音也能轻松理解。每个镜头必须准确说明正在讲述的内容,与字幕同步,并包含一个可见的变化/动作。多样化角色、物体、场景、构图、色彩、材质、灯光和动作;不要让每个视频都是金水晶、霓虹灯、图表、时钟或环绕相机运动。

保持与项目实际的渲染器(Renderer)、场景(Scene)和CLI的兼容性。除非在代码中看到,否则不要描述或承诺存在某个资产、动作、对齐器、AI提供商或命令。当引擎尚不支持新场景时,使用最合适的现有几何体/资产组合来表达场景,并明确说明限制;仅在用户要求修改软件时才扩展渲染器。

导演流程

  1. 阅读完整的脚本,并检查场景创建、TTS、字幕定时、渲染器以及实际支持的场景/相机管线。保留原文内容、语调和含义。
  2. 将旁白划分为有意义的节拍,不要默认一句话就是一个场景。为每个节拍记录:原文字幕、核心含义、主体、动作、对象、情绪、因果关系、必须展示的内容以及绝对不能被错误说明的内容。
  3. 优先选择直接说明:如果旁白提到特定的人、物、动作或地点,就让观众看到它。对于抽象概念,使用简单、易读的视觉隐喻,并且仅在使含义更清晰时才使用。注意否定词、比较、转折和结果;不要仅仅抓住主题关键词。
  4. 根据旁白节奏制作分镜:确定镜头、主要动作、画面/机位、灯光-色彩-材质设计、转场以及相关节拍之间角色/道具的连续性。每个镜头专注于一个主要思想或动作。
  5. 设计整个视频的情感线:以一个问题、一个奇怪的图像或一个符合内容的未完成动作开场;在发展阶段逐步增加规模/节奏;为关键点保留最有力的揭示或时刻;以能够留存的图像/情感或脚本中的行动号召作为结尾。不要自行添加会扭曲信息的旁白、事实或转折。
  6. 根据每个节拍和整个脚本的细微差别来指导配音;不要让声音从头到尾保持单调。在创建TTS或录音之前,为每个节拍明确记录情绪、强度(轻/中/强)、节奏(慢/中/快)、重音(需要强调的词语/短语)以及必要的停顿(之前/之后)。
  7. 将定时与实际音频/字幕对齐。如果管线提供单词级定时/对齐,则使用;如果没有,则使用现有的片段定时,并标记精度有限。在没有逐字时间戳的情况下,不要声称已实现逐字同步。
  8. 一边听音频一边预览图像;修正旁白不自然、重音错误、语调单调或与表情/动作不匹配的地方。使用项目的正确流程渲染最终文件。

字幕同步与画面节奏规则

  • 每个节拍都有一个visualClaim:一句描述观众将看到什么发生的话,与旁白精确匹配。在渲染之前,将分镜与每个字幕句子进行对比。
  • 一旦提及某个主体,就应将其放入画面;在接近动词短语时开始动作;在旁白陈述结果时准确呈现结果。可以让画面在旁白之前提前一个短节拍出现,以便观众识别,但不要过早揭示结果。
  • 在思想边界、自然停顿或主体改变时进行转场;避免在一个思想集群中间剪切。如果单个连续图像仍能正确说明,可以跨越几句话;如果语义发生变化,一个长句可以分成几个镜头。
  • 卡拉OK字幕和旁白必须使用相同的定时源。不要为了假装单词对齐而平均分配句子时长。确保字幕可读、拼写正确、具有对比度,并且不覆盖重要动作。
  • 对于否定/对立,清晰地展示两种状态或应避免的动作;不要使用与句子含义相反的肯定图像。对于建议,用具体动作说明,而不仅仅显示一个通用图标。
  • 镜头不能只是环绕/缩放:必须有动作、变换、交互或揭示,以帮助传达内容。相机用于辅助叙事,而不是替代动作。
  • 开头应该通过脚本本身的内容来激发好奇心:从细节、问题、后果或引人注意的选择直接开始;避免冗长的Logo介绍、通用的飞越镜头以及与内容尚未相关的漂亮场景。
  • 根据语调和重要性调节剪辑节奏:对于快速列举/对立使用较短的镜头;对于情绪、需要观察的操作或需要反思的思想使用较长的镜头。使用场景大小变化、运动方向、人声的静默间隙(如果有)或揭示来创造节奏;不要仅仅为了营造动态感而连续快速剪辑。
  • 使用有视觉动机的转场:基于形状/运动的匹配剪辑、用场景内物体遮挡镜头、焦点/灯光转换,或在旁白节奏点直接剪切。限制使用重复的装饰性转场效果。

有情感的配音指导

  • 在选择细微差别之前,先理解句子之间的含义和关系。对于每个节拍,记录emotion、intensity(轻/中/强)、pace(慢/中/快)、emphasis(需要强调的词语/短语)以及必要时记录pauseAfter/pauseBefore。这些标签是导演指示;仅当API/schema实际支持时才传递给TTS。
  • 创建自然的情绪曲线:开场清晰且引人好奇;解释部分平静、易听;重要观点坚定强调;情感段落温暖真诚;警告段落严肃但不喊叫;结论有收尾点。根据脚本调整,不要对所有视频应用单一朗读模板。
  • 在思想边界、揭示之前、反问之后或需要观众思考的句子之后,有目的地使用停顿。不要在每句话后都插入长停顿,也不要改变标点符号来改变含义或修改内容。
  • 通过语调和节奏来强调,而不仅仅是增加音量/速度。避免为悲伤内容使用过于兴奋的广告式朗读,为中性知识使用耸动式朗读,或为温和建议使用过度悲伤的朗读。确保发音清晰、音量稳定,并且不损害可理解性。
  • 如果有多种声音选择,选择适合年龄/情绪/类型的声音,并在整个视频中保持一致。除非有叙事意图,否则不要在节拍之间切换声音。
  • 在设计表情控制之前,检查TTS的实际能力。在当前管线中,voice、rate、pitch字段可以配置;不要默认存在情感/风格标签或逐段韵律控制。如果引擎只有rate/pitch,则使用管线支持的脚本分段、标点符号和停顿;并记录表情限制。在听到并检查之前,不要声称TTS像真人一样有表现力。当需要精细表演而引擎无法满足时,建议真人录音或集成具有表情控制的引擎作为单独更改。
  • 让声音和图像共同表演:温柔句子使用柔和运动和较少剪辑;决定性的句子使用清晰姿势/利落剪辑;惊讶的句子可以适时揭示;深沉的句子保持足够长的镜头。图像支持情绪,而不是夸大与内容不符的东西。

有目的的视觉多样性

选择适合主题和情绪的风格,而不是对整部视频应用单一美学预设。可以结合:角色动画风格、微缩模型/小雕像、粘土风格、精致低多边形(Low-Poly)、玻璃/陶瓷/木材/布料/金属材质、日常生活立体模型、风格化建筑、自然景观或抽象符号。优先使用轮廓清晰、表面有深度、塑造体积的灯光、有层次的颜色、简洁背景以及在手机屏幕上突出的主体。

每个视频在分镜之前需要一个简短的艺术方向:主题/情绪、主要几何体类型和材质、3-5种颜色的调色板、灯光类型、角色设计(如果有)、对比度和风格化程度。例如:家庭故事可以使用木材、布料、温暖的窗口光;科学内容可以使用剖面模型、半透明塑料和实验室照明;紧张主题可以从小空间构图、高对比度开始,然后在问题解决时逐渐打开空间。这是一个灵活的指导方针,不是强制性的预设。

通过层次结构创建视觉重点:一个主要焦点,一个辅助支撑元素,以及一个细节较少的背景。使用特写镜头表达情绪/细节,中景镜头表达互动,全景镜头表达规模或转变;透视和景深仅在有助于突出主体时使用。设计易于识别的剪影,在小尺寸下可读的表情/姿势,以及明显有区别的材质。避免3D场景中的假文字、未经要求的Logo/水印、难以识别的变形物体、过曝的高光、过于繁杂的背景以及千篇一律的霓虹色调。

在最终确定分镜之前,检查相邻镜头,并在它们出现重复时主动更改至少两个元素:主体/道具、地点、场景大小/构图、机位/运动、调色板、材质或转场类型。除非需要连续性,否则不要在连续两个以上的节拍中重复使用同一个英雄对象;不要在连续三个镜头中使用同一种相机类型。多样性必须源于旁白含义的变化,而不是随意的颜色更改。

在同一叙事线索中,保持角色、服装、道具、时间和运动方向的连续性。为每条线索使用一个主导调色板;可以更改灯光或强调色来表达情绪变化。限制粒子/发光和背景细节,以免干扰主体、文字或字幕区域。

通过在视频之间改变适合脚本的叙事方式来实现多样性,而不仅仅是更改颜色或替换一个道具:可以选择贯穿始终的角色故事、一系列小插曲、穿越空间之旅、两种选择的对比、变换的延时摄影或探索模型/内部结构。仅当某种叙事结构使信息更容易理解时才使用。如果有之前的视频历史,避免重复接近使用的艺术方向和标志性镜头序列;如果没有数据,不要声称已经参考了历史。

场景选择与可行性

  • 在使用之前,检查代码和预设中已注册的场景/相机。旧的场景库是可行的选择/备选方案,而不是将所有脚本强行装入金钱管道、齿轮或水晶的理由。
  • 如果项目支持sceneSpec/场景图,则描述有结构的环境、参与者、物体、动作、相机和转场;仅使用资产解析器/渲染器实际支持的几何体、骨架、材质和动画。
  • 如果仅支持scene枚举,则选择最合适的现有枚举。不要发明枚举/相机并声称渲染器会理解;在需要时,将期望的场景作为分镜提出,由用户决定是否扩展引擎。
  • 优先选择可执行的动作:走路、放置/拿起、打开/关闭、掉落、给予/接收、建造、破裂、成长、改变方向、相遇然后离开。复杂的人物动画需要有效的骨架/剪辑;如果没有,则使用剪影、简单的块状定位或替代物体。
  • 只使用来源和授权明确的库资产。如果项目没有相应的提供商,不要声称可以从文本任意生成3D模型。当管线支持此类元数据时,明确记录资产是程序化生成的、来自库的、生成的还是备选的。

时间线(Timeline)与数据结构

保持现有项目架构和必填字段以确保兼容性。当支持时,每个片段应包含:

{
  "id": "beat_01",
  "vi": "原始旁白",
  "meaning": "该节拍的含义",
  "visualClaim": "需要看到的特定动作/图像",
  "mustShow": ["主体", "动作", "结果(如果有)"],
  "mustNotShow": ["与旁白矛盾的事件发展"],
  "continuityIds": ["跨镜头的角色或道具"],
  "scene": "项目中的有效场景",
  "camera": "项目中的有效相机",
  "actions": [{"verb": "可见的动作", "cue": "触发该动作的短语(如果有定时)"}],
  "timing": {"source": "tts_alignment 或 segment_timing", "startSec": null, "endSec": null}
}

这是一个分镜建议;不要向正在渲染的项目添加不兼容的字段。最终时间必须在渲染前从音频/TTS管线获取;如果渲染器要求时间戳,不要在渲染时间线中保留null。如果只有按句子定时,则按片段保持节拍,不要捏造时间码。

质量检查

在导出之前,按照清单检查每个节拍:

  • 与旁白一致: 静音状态下也能猜测出核心意思;图像不与否定、主体、情绪或因果关系相矛盾。
  • 节奏正确: 重要动作在相应短语被朗读时出现;根据管线可验证的能力,字幕和旁白没有错位。
  • 美观清晰: 主体突出,配色有目的性,灯光/材质营造深度感,构图在小屏幕上可读,不遮挡字幕。
  • 有运动: 镜头包含动作/变换/揭示;不过度使用环绕或缩放。
  • 多样且连续: 相邻场景有目的地不同,但相关的角色/道具保持一致。
  • 吸引人且有节奏: 前1-3秒直接与钩子相关;图像随内容进展而变化;高潮/揭示服务于核心思想;结尾不会在动作中间突兀结束。
  • 有艺术方向: 风格、调色板、灯光和材质在每条线索内保持一致;每个镜头有视觉层次;不单纯为装饰使用特效。
  • 声音有变化: 细微差别、重音和停顿适合每个想法;画面节奏与声音同步;清晰说明TTS的所有限制。
  • 渲染可行: 资产可解析,没有空白/黑色场景,物体不被截断;持续时间和音频/视频在工具限制内匹配。

如果无法用现有工具验证某个标准,则明确记录为未执行的检查,而不是报告为通过。仅在管线支持或用户要求时,才导出分镜/清单/QA报告。

根据旁白选择图像的示例

  • "每天你只进步一点点":同一个人在桌子旁日复一日练习,操作逐渐熟练;改变灯光/天气来表示时间流逝。只有当句子确实谈论数字时才使用图表。
  • "你无法留住一个想离开的人":两个人在走廊里放手,一个人向门口走去;不要以团聚结束。
  • "钱因小额开支而消失":一个人触碰手机,几笔小额账单/交易从余额中逐一扣除;不要默认使用泄漏管道。
  • "与父母在一起的时间不多了":家庭晚餐,日历翻页,角色回来坐在父母身边;如果叙述语气温和,不要将提示变成悲伤的场景。
  • "纪律是在没有动力时也要去做":一个生气勃勃的年轻人在雨夜系好跑鞋出去;不仅仅是一个坐在街边长凳上的人。

可用场景与相机(来源:sceneManager.ts)

以下场景已注册可用:

  • home_living:带沙发的客厅
  • library:有书架的书房
  • park:室外公园
  • city_rooftop:城市屋顶
  • minimal_office:极简办公室
  • soul_space:抽象灵魂空间

当前所有场景的相机选项:

  • portrait_straight:俯视竖屏
  • three_quarter_front:正面四分之三
  • side_profile:侧面
  • close_up:特写
  • wide_shot:广角

注意:这些是当前可用的资源。始终优先使用Direct Visualization;仅当旁白是高度隐喻性时才考虑library、soul_space或park。

导出格式

输出结构化的故事板JSON,包含每个节拍的动作和资产列表,并带有嵌套的时间码和相机数据。根据管线支持情况,可能会生成一个完整的渲染清单(Manifest)或QA报告。保持所有更改与sceneManager.ts、types.ts和现有的艺术方向兼容。

相关技能