Film Production 是一个在 Blender 中制作动画短片的技能,目标是从故事构思到最终 mp4 的完整流程。它遵循“故事优先、画面其次”的原则,Blender 负责预演、渲染、编辑和编码,不依赖子进程、网络或外部 ffmpeg 二进制,mp4 由 Blender 自带的 FFmpeg 生成。
用途 该技能用于制作动画短片、预告片或多镜头影片。它提供一套有序的操作流程:概念、节拍、分镜表、预演、预览-检查-修复循环、最终渲染、带音频编辑。
主要能力
- 分镜表管理:通过 scripts/shot_list.py 应用分镜表,写入 scene["film_shots"],为每个镜头创建绑定摄像机的标记,设置 fps 和帧范围。脚本会拒绝重复 id、start > end 和重叠,创建缺失摄像机,且不会删除非镜头 id 的标记。
- 预览渲染:通过 scripts/preview_frames.py 渲染预览静帧和联系表,默认 480x270、EEVEE、8 采样、首/中/末帧。返回的联系表映射每个瓦片到镜头和帧。
- 编辑与渲染:通过 scripts/assemble_edit.py 构建独立的 EDIT 场景,按镜头创建场景条和声音条,设置 H.264 MPEG-4 容器,仅在提供音频时加入 AAC 音频。支持 render: True 回读 mp4 验证帧数、大小和音频流。
- 预览-检查-修复循环:运行预览、阅读联系表、列出缺陷、只修复列出的问题、重新渲染失败镜头。同一镜头失败两次后停止修复并报告。
- 连续性规则:一个主角、固定光照方向与色温、选择两三个焦距、保持屏幕方向、复用摄像机、在分镜表中存储镜头和构图选择。
- 最终渲染指导:使用 EEVEE,渲染采样默认 64,光线追踪、阴影质量、运动模糊、色彩管理(默认 AgX)。帧率一次选定(24 电影感,30 网络),分辨率 1920x1080。长片建议逐镜头渲染图像序列。
- 音频规则:仅使用用户提供或明确批准的音频,记录许可证,assemble_edit.py 拒绝无许可证音频并写入 audio_credits.json。音乐在对话下降低音量,头尾淡入淡出,对话和音乐分通道。无法试听,需通过测量验证并告知用户试听。
- AI 视频交接:当镜头需要转为 AI 生成片段时,使用 ai-video-handoff 技能,读取 scene["film_shots"] 和镜头标记。
使用方式 所有脚本读取 JSON ARGS,返回 JSON 安全字典,且可重复执行。路径使用正斜杠。示例:
应用分镜表: import runpy r = runpy.run_path("<skill_dir>/scripts/shot_list.py", init_globals={"ARGS": {"fps": 24, "shots": [ {"id": "S010", "start": 1, "end": 48, "camera": "CAM_S010", "lens_mm": 35, "motion": "still", "beat": "Setup", "description": "Wide: mascot at the door", "camera_location": [0, -6, 1.5], "look_at": [0, 0, 1]}]}})["result"]
渲染预览: import runpy r = runpy.run_path("<skill_dir>/scripts/preview_frames.py", init_globals={"ARGS": { "out_dir": "<project>/film/previews", "shots": ["S010"], "frames_per_shot": 3}})["result"]
构建编辑并渲染: import runpy r = runpy.run_path("<skill_dir>/scripts/assemble_edit.py", init_globals={"ARGS": { "out_path": "<project>/film/final.mp4", "render": False, "audio": [{"path": "<project>/music/theme.wav", "license": "CC0", "volume": 0.8, "fade_in": 1, "fade_out": 2}]}})["result"]
适用场景 适用于动画短片、预告片或多镜头影片制作。需要用户已确认节拍和分镜表后再进行预演。长片(超过约 20 秒或重场景)建议逐镜头渲染图像序列。
限制
- 未提供具体收费、价格或平台信息。
- 无法试听音频结果,需通过测量验证并告知用户试听。
- 长片逐镜头渲染图像序列尚无脚本自动化,需手动操作。
- 场景条源场景仅在动画渲染时正确评估,检查编辑帧需渲染短动画范围。
- 不得覆盖之前的最终文件,应写入 final_v2.mp4。
- 音频仅使用用户提供或明确批准的,不得下载、抓取或代码生成。
- 分镜表脚本拒绝重复 id、start > end 和重叠。
- 同一镜头失败两次后停止修复并报告。
参考文档 references/story-to-shots.md:节拍、镜头大小、镜头语言、时间计算。 references/audio-and-licensing.md:许可证、署名、音量。