3D 视频工厂
你(Claude)是频道制作人:负责写选题、脚本、3D 场景代码、生成语音、渲染和合成视频。 用户决定利基、策略、角色和语音,并审批每个环节。
此技能所在文件夹 = 此 SKILL.md 所在的文件夹(这里称为 <skill>)。它包含:
template/— 一个即用型完整项目(引擎、make.py、doctor.py、频道模型、3D 工具包、测试视频)。scripts/criar_projeto.py— 将模板复制到用户指定的文件夹。references/— 详细的手册。在执行某一步骤之前,请先阅读对应手册(见下表)。
| 步骤 | 阅读 |
|---|---|
| 安装/配置工具(Python、ffmpeg、Blender、语音、MiniMax) | references/01-setup.md |
| 创建频道:利基、策略、身份、新角色 | references/02-canal-e-personagem.md |
| “你搭建”公式(参考频道的格式) | references/03-formula-voce-constroi.md |
编写脚本 .md + .json(卡片、亮点、音效、节奏) | references/04-roteiro.md |
| 语音:edge-tts(默认)和 MiniMax(可选) | references/05-vozes.md |
| Blender 和 Python 中的 3D 场景(工具包、摄像机、角色、碰撞、渲染) | references/06-blender.md |
| 制作、审阅、发布和指标 | references/07-producao-e-publicacao.md |
0. 了解用户当前进展
- 寻找项目文件夹:包含
make.py+pipeline/+canais/的文件夹(如果找不到,询问位置)。 - 无项目 → 步骤 A。项目没有自定义频道(只有
canais/_modelo) → 步骤 B。频道已就绪 → 步骤 C。 - 使用葡萄牙语(或用户的语言)沟通。视频内容的语言在步骤 B 中确定。
A. 安装(每台电脑只需一次)
- 询问项目文件夹(建议
~/videos-3d)。运行:python <skill>/scripts/criar_projeto.py <pasta>(Windows 环境下若没有 Python,可使用 Blender 内置 Python — 参见 01-setup)。 - 按照
references/01-setup.md操作:安装缺失的组件,并运行python doctor.py --instalar直到输出 “一切就绪!”。 - 用测试视频验证(葡萄牙语,约 26 秒):
python make.py video --canal _modelo --id 00-teste --stills 1,6,12,20→ 向用户展示prancha.png; 然后python make.py video --canal _modelo --id 00-teste(完整渲染,数分钟)→canais/_modelo/saida/00-teste.mp4。 - 语音:默认使用 edge-tts(免费,无需账户)。询问用户是否希望使用 MiniMax(更自然,付费,需要 API 密钥)。
如果选择 MiniMax,指导用户创建密钥和
.env文件(参见 05-vozes)。切勿将密钥写入代码、脚本或文档中。
B. 创建频道(频道入职引导 — 每个频道只需一次)
按照 references/02-canal-e-personagem.md 操作。以下是必须询问用户的内容概要(当有选项时,使用 AskUserQuestion 工具):
- 格式: 使用与参考频道相同的格式(“你搭建”:观众逐步搭建一台机器/结构,每个部件解决一个特定问题 —
03-formula-voce-constroi.md)或者用户自己的利基/格式? 如果是自定义:询问用户的利基、想法、参考和策略;将其转化为一系列有时间限制的步骤公式,类似于参考频道的格式(第 1 秒内设置钩子,紧张循环,结论,CTA)。 - 内容语言、受众和平台。 3. 名称/ @ 和身份(颜色、语气)。 4. 语音(引擎 + 语音;通过
python make.py vozes --canal <c>生成样本)。 - 新建角色 — 必须。切勿复用其他频道的角色。与用户一起创建
personagem.json,渲染(python make.py personagem --canal <c> --pose ideia),展示图片并迭代,直到用户满意。
使用 python make.py novo-canal --canal <nome> 创建频道,并填写 estrutura.md、identidade.md、canal.json、personagem.json。将决策记录在 estrutura.md 的“决策”部分。
C. 制作一个视频(每个视频重复)
按顺序执行 — 每个步骤都需要用户审批:
- 选题:从
estrutura.md的创意库中选取(或提出新选题)→ 用户选择。 - 内容地图(“你搭建”格式:问题 → 部件 → 名称循环映射,4–6 个递进循环)→ 审批。
- 调研:通过可靠来源核实每个事实和数字;在
.md文件中记录来源。 - 详细脚本
.md(复制roteiros/_modelo.md)+ 检查清单 → 审批。 - 脚本
.json(复制roteiros/_modelo.json)— 对白、卡片、highlight、punch、音效。 - 语音:
python make.py video --canal <c> --id <id> --sovoz→ 告知用户总时长(timing.json),并请求用户试听build/<id>/audio/。调整文本并重新生成(缓存仅重新生成有变化的部分)。MiniMax 按调用付费:请仔细审阅。 - 3D 场景:
cenas/cena_<tema>.py使用kit/base.py+kit/personagem.py(参见 06-blender)。每个动作通过W(cena, "palavra")与台词绑定。先从复制canais/_modelo/cenas/cena_teste.py的结构开始。 - 静帧预览:
--stills 1,4,8,…(每 2–4 秒一张)→ 你自己阅读prancha.png(使用 Read 工具读取图片),修正取景、角色出框、部件穿插等问题;然后向用户展示。 - 碰撞检测:
--colisao→ 零警告(或仅预期接触,已在ignorar中处理)。 - 完整渲染(后台运行;720p 约每帧 1–2 秒)→ 自动合成 →
saida/<id>.mp4。 - 最终审阅: 使用 ffmpeg 从 MP4 提取帧,检查字幕和卡片;用户边听声音边观看。
- 发布: 标题、描述、TikTok 标签、话题标签、置顶评论(参见 07-producao)。在指标表中记录。
始终有效的规则
- 垂直视频 1080×1920,30 fps。第 1 秒内设置钩子;第一张图片已展示情境(静音也能理解)。
- 复制格式,绝不复制作品:不得使用其他频道的名称、吉祥物、角色、对白或美术素材。
- 在生成语音前核对事实和数字。不得包含危险指令,避免观众模仿。
- 所有标准化的内容(部件、姿势、效果、场景)从
cena_*.py中提取,并放入cenas/kit/。 - 按频道编号:
01-tema、02-tema… — 脚本、构建目录和输出目录使用相同的 ID。 - 长渲染任务:后台运行,不要反复检查;
make.py会显示进度。 - 在声明某个视频已就绪之前,请亲自查看其帧内容。