Communitygithub.com

Blender影视短片制作

使用Claude在Blender中从零开始制作一段逼真的电影级短片——故事板、城市布局、物理驱动的飞行路径、追踪镜头、真实动态角色、写实化处理、夜间照明、手持摄像机抖动、3D运动音效设计、通宵渲染并自动检查,以及「白模搭建」验证真实3D效果。

Blender影视短片制作 是什么?

该技能提供了一整套通过Claude在Blender中制作电影级短片的端到端工作流程,支持Claude Code、Cursor等AI编程工具,由社区贡献者Abdullah Formuli维护。它涵盖从故事板到最终渲染的所有步骤:使用物理学模拟而非关键帧生成真实运动路径;通过粗糙度贴图智能识别窗户区域实现逼真夜间照明;利用Shakify插件模拟真实手持摄像机抖动;从动画数据驱动音效设计(含多普勒效应、转速音高变化、环境混响)。工作流包含关键决策点(如角色选择失败时的转捩策略)、自动化检查机制(渲染完整性、单帧异常亮度检测),以及「白模搭建」功能(将最终场景转换为白色粘土模型从天空坠落,以此证明所有画面均为真实3D资产而非实拍)。整套流程可在Blender 4.4+上运行,依赖Cycles渲染器、Python 3、ffmpeg以及numpy、scipy库。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/authrain-cloud-abdullahformuli/claude-blender-skills/tree/HEAD/skills/blender-film

在你喜欢的 AI 中提问

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

文档

Claude驱动的Blender电影级短片制作

一段10秒第一人称穿越机视角的夜间城市飞行动作背后的完整工作流:一个故事板、真实的物理路径、一个转折点(第一个主角效果不理想)、夜间照明、基于运动的音效、3.5小时渲染,以及白模搭建揭示。以下每个步骤都是scripts/目录中实际用于该片段的脚本;其中的名称(Drone Empty、Street Asphalt、Building_1...)来自该场景——请根据你的场景重命名。

0. 准备工作

  • Blender 4.4+(本流程使用5.2版本)、支持Cycles的GPU、已加入PATH的Python 3和ffmpeg(音效步骤还需numpy、scipy)。
  • 实时桥接(Claude驱动已打开的Blender,你观看):在Blender的文本编辑器中运行tools/bridge.py(监听127.0.0.1:9876)。然后在终端中运行:python tools/send.py scripts/06_night.py 或 python tools/send.py -c "print(bpy.data.filepath)"。
  • 设置FILM_ROOT指向你的项目文件夹(默认为~/blender-film):scene/、render/、audio/、research/将创建在该目录下。tools/lib.py会被每个脚本加载(辅助函数:coll()、save()、snap()...)。
  • 在副本上工作。 在重播或重新运行任何编辑材质的脚本之前,请复制.blend文件——如果运行中途崩溃,几个步骤不是幂等的(一旦重新运行,会留下孤立的节点连接)。

1. 先做故事板

在接触Blender之前,请Claude生成一个10秒的故事板:带有时间安排的镜头列表、每个镜头的摄像机、主角位置、观众感受。将其转换为一张图片(使用任何图像模型),并保持打开——后续每个决定都将对照它检查。

2. 城市

使用你拥有的城市资产包(建筑、道路、道具)或免费的CC0资产(Poly Haven)。让Claude从俯视图平面沿+X方向布置一条大道加一个十字路口(保持主角路径通畅无道具遮挡),然后进行装饰:汽车(停靠/行驶/停止)、路灯、树木、消防栓。将所有外部资产烘焙到.blend文件中。

3. 基于物理的运动,而非手动关键帧曲线

scripts/01_swing_sim.py模拟移动(重力、空气阻力、不可拉伸的绳索、根据故事板设置的空间锚点)并搜索锚点时间,直到路径穿过街道。02_path_empty.py将其转换为路径曲线加上一个沿路径跟随的空物体,其偏移量按帧计算(真实速度,非线性)。主角作为空物体的子级,摄像机跟随自己的路径(03_camera.py,加上03b_camera_noise.py实现细微抖动)。

4. 主角——以及何时转捩

第一个主角是一个使用Mixamo动画片段绑定的蜘蛛侠。它失败了:动作捕捉是在地面上录制的,所以在空中它像木偶一样悬挂,姿势僵硬,而且在画面中很小。如果带肢体的角色看起来不对劲,就更换主角——保留城市、摄像机和路径。 向Claude询问替代方案(我们得到了:鹰、超级跑车、手工修复、穿越机)。

穿越机之所以可行,是因为没有任何东西会显得僵硬。04_drone_attitude.py使其像真实四轴飞行器一样飞行:

  • 姿态源自物理:推力轴=加速度+重力,机头沿速度方向——加速时前倾,急转弯时大角度倾斜,刹车时机头上仰;
  • 在弹道段切断油门——叠加特技动作:动力筋斗、横滚、后空翻;
  • 刹车后悬停,然后缓慢偏航朝向镜头;旋转的桨叶+品红/青色LED灯条。

5. 写实化处理(05_realism.py)

那些直到缺失时才会被注意的微小细节:AgX曝光(无调色)、薄雾体积、纹理重复破损的沥青路面、车轮轨迹、每条车道上的油滴线、修补块、磨损的标线,以及每面墙脚下的污垢和微弱的冲刷痕迹。

6. 真正像夜晚的夜间照明(06_night.py)

规则:夜晚天空不照亮场景——实际光源照亮场景。 带有城市辉光的暗渐变天空、LED路灯、亮灯的窗户、汽车头灯/尾灯、红色交通信号灯、带有微弱自发光效果的蓝色调雾、带水坑的潮湿路面。

  • 首次尝试失败(到处都是橙色雾,发光块而非窗户)。
  • 解决方法:建筑纹理已经知道玻璃的位置——玻璃是光滑的,墙壁是粗糙的。使用粗糙度贴图作为窗户遮罩(roughness < 0.3),然后为每个窗户单元随机设置灯光:暖色、冷色、关闭。

7. 像真实摄影师一样的摄像机(07_shakify_cams.py)

将所有镜头摄像机的程序化噪波替换为Shakify(免费插件,使用真实录制的摄像机运动)。添加近景镜头:一个距潮湿路面约0.45米高的街道级摄像机,穿越机向镜头俯冲并在镜头前停下。08_lens_look.py:灯光周围的光晕、轻微的桶形畸变和色散——无调色,画面效果来自照明本身。

8. 基于运动设计的音效

免费的CC0录音(BigSoundBank:穿越机、夜间城市、湿滑道路上的交通、喇叭声、远处的警笛声、风声、水坑上的雨声、空调声)。11_motion_data.py将每帧的动画数据(穿越机距离/径向速度/偏航方向/油门、附近车辆)读取到audio/motion.json;12_build_sfx.py根据该数据进行混音:

  • 油门→电机转速→音高;径向速度→多普勒效应(经过镜头时音高下降);偏航方向→等功率声像定位;
  • 距离增益+空气吸收、急加油门时的螺旋桨爆音、低空飞过湿路面时的水花声、仅在屋顶镜头出现的屋顶空调声、汽车经过时的最近距离点声音、街道峡谷混响;
  • 制作两个版本(宁静的夜晚/嘈杂的城市),凭听觉选择。宁静版本胜出:让主角成为焦点。响度-14 LUFS。

9. 通宵渲染——安全进行

  • 09_render_opt.py:移除隐藏的重复几何体(树木资产携带了额外副本),对远离所有镜头摄像机的任何物体使用较轻的LOD,GPU降噪。没有可见变化。
  • 首先以最终质量渲染六张测试静帧并检查。
  • 10_render_edit.py仅渲染最终剪辑使用的帧(镜头列表=摄像机+帧范围),可续传,并将进度写入render/status.json;tools/render_window.ps1(Windows)显示干净的进度面板:百分比、剩余时间、最后完成的帧。
  • 渲染完成后:检查每一帧是否存在、没有黑帧/损坏帧(逐帧亮度检测,仅在计划剪辑处跳变)、音效与已批准的混音相符、响度符合YouTube要求。只有通过所有检查后才编码输出+(如果你要求的话)关闭电脑。

10. 白模搭建揭示(证明它是真实的3D)

13_aerial_cam.py在街道上方添加一个高视角摄像机。在场景的新副本上,14_clay_build.py将所有材质变为白色粘土,冻结摄像机+交通在一个帧上,并隐藏每个物体直到其出现时刻,然后使其从天空坠落:首先是汽车,然后是离摄像机最近的建筑,接着是远处的城市,最后是路灯和消防栓(约500个物体)。每个下落都加速并在落地时有轻微的弹跳。tools/clay_assemble.sh:夜间|硬切|白模搭建|一个0.25秒的擦拭|夜间,相同的摄像机,相同的帧。白模与夜间并排的静帧是很好的缩略图。

耗费时间的教训

  • 如果窗口规格不正确,屏幕录制会捕获黑屏——在离开前检查第一个录制帧。
  • 视口录制:材质预览需要关闭运动模糊并取消连接体积,否则会涂抹;Cycles视口需要降噪器。
  • blender -b中的相对输出路径解析到驱动器根目录——始终使用绝对路径。
  • 在任何长时间GPU工作前询问;先以低质量测试,最后再使用最终质量。

许可证:MIT。仅由Abdullah Formuli维护。不接受外部贡献。

相关技能