前几天 X 上有一条短片被很多人转:深夜的图书馆,月光从高窗斜着打进来,两万多页纸飞起来,在半空拼出狐狸、老鹰和乌龟。作者 @lemomo_ai 后来讲了做法,整条片子是在 Claude Code 里让 AI 写脚本,交给免费的 3D 软件 Blender 搭场景、渲染出来的。
这条路不用你会 3D 软件,Blender 也免费,镜头和光线想改哪里改哪里。下面按动手的顺序走一遍:装什么,第一个镜头怎么做出来,电影感靠哪几个参数,渲染的时间和钱怎么省。我们也照着文中的提示词实际跑了一遍,结果和耗时都放在文里。
想做一条有电影感的短片,常见的办法有三种:用视频生成模型、找人做 3D、自己学 3D 软件。视频模型出片快,但场景和物体前后不容易对上,镜头很难精确指挥,想改其中两秒往往要重新生成一段。后两种要么贵,要么学习周期长。
让 AI 写脚本去操作 Blender,是第四种办法。房间、灯、摄影机都是在 3D 软件里实实在在搭出来的,位置和参数全写在脚本里。你说"摄影机再低一点""月光再冷一点",改的就是一个数字,改完只重新渲染受影响的那几秒。第一个镜头和最后一个镜头里是同一间屋子、同一张桌子,不会走样。
整条流程是这样的:
它的短板也很明显。渲染慢,一条一分钟的片子,在普通电脑上可能要渲好几小时。真人表演和复杂的人物动作很难做好。所以它最适合以场景、光影、物体运动为主的片子:空间漫游、产品展示、意象短片、原理动画。图书馆这条正好是这一类。
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
二、准备:三样软件,一个文件夹
Blender。到官网 blender.org 下载安装,记下版本号。Mac 上程序的位置一般是 /Applications/Blender.app/Contents/MacOS/Blender,Windows 上是安装目录里的 blender.exe。装完之后在终端里直接敲 blender 多半会提示找不到命令,因为它默认不在系统路径里。不用自己配,后面告诉 Claude Code 完整路径,或者让它自己去找。
Claude Code。Anthropic 出的 AI 编程助手,装在你的电脑上,在终端里用。按官网 code.claude.com 的说明安装,用 Claude 的付费账号登录。你用大白话交代任务,它会自己写文件、跑命令、看报错再改;第一次执行命令或改文件前,它会先问你同不同意。原作者在里面用的模型是 Fable 5.2。别的能写文件、跑命令的 AI 编程助手,照着这篇的思路也能做。
FFmpeg。免费的命令行音视频工具,用来把渲染出来的图片拼成视频、合进配乐、调色。Mac 上可以用 brew install ffmpeg 装,Windows 上到 ffmpeg.org 下载。也可以直接让 Claude Code 帮你装。
然后建一个空文件夹专门放这个项目,在里面打开 Claude Code。建议第一件事是让它在文件夹里建一个 CLAUDE.md,记下 Blender 的路径和版本、渲染输出放哪个目录、用 CPU 还是哪块显卡。Claude Code 每次启动都会读这个文件,后面的对话就有了统一的前提,不用每次重新交代。
电脑配置不用太担心。搭场景、出一张低清图,这几年的电脑基本都跑得动,没有独立显卡也行。配置影响的是后面渲高清长片要等多久。
三、先做出第一个镜头
别一上来就做一分钟的片子。先做一个 5 秒的镜头:出一张低清图,看对了再出一秒动画,再看对了才渲整个镜头。
下面这段提示词是照着原作者的思路写的练习版,不是原作者本人的提示词。把"画面"那几行换成你想拍的,其余照抄就能开始:
为我写一份可被 Blender 后台运行的 scene.py,先完成一个镜头。
先检查本机 Blender 版本和可执行路径,使用对应版本的 bpy API。
画面:竖屏 9:16,深夜小阅览室,一本展开的书放在木桌上,20 张纸沿弧线升起。
构图:书在画面下方中央,给上方飞纸留空间;先用简单网格,不下载外部模型。
光线:窗外冷色月光、桌上一盏暖色灯,先把两种光源和明暗关系做好。
镜头:35mm,从桌前缓慢推向书,持续 5 秒,不切镜,不随意摇晃。
运动:纸片速度平滑、方向有变化,避免穿桌和穿书,别只让一块平面机械旋转。
预览:540×960、24fps、Cycles 低采样(例如 32 samples),并启用降噪。
先保存 scene.blend,只渲一帧;发我预览后停下,不自动启动整段动画。
确认构图后出前 24 帧测试运动,再出 120 帧;正式输出时再提高分辨率和采样。
把尺寸、纸片数、光源、焦距、采样和输出目录放在脚本开头,便于修改。
只在当前练习目录写文件;不付费调用、不租 GPU、不发布。
交付 scene.py、scene.blend、运行命令;说明实际使用 CPU 还是哪块 GPU。
这段话的结构可以记成三句:先说拍什么,再说光从哪来、镜头怎么走,最后说先给我看一帧。
我们在一台 M4 Max 的 Mac 上照着跑了一遍。Claude Code 写出来的脚本不到 200 行,第一张图是左边这张:纸的弧线、桌上的暖灯都对了,但月光落在了桌子前面的地上,光柱几乎看不出来。于是只提了一个问题:"月光往桌面上打,雾只留在屋里,窗外要暗。"第二版就是右边这张。
第一次渲染花了 3 分半钟,其中绝大部分是 Blender 在第一次用显卡时编译渲染程序,只会发生一次。之后同样一张 540×960 的图只要 5 秒左右,24 帧的一秒测试动画不到 2 分钟就渲完了。
看图提意见的时候,越具体越好。可以照这个样子说:
看一下 preview 里的图。书的右边出画了,摄影机往左移一点;
月光太暗,强度调到现在的 1.5 倍。只改这两处,再渲一张给我。
构图确认了。渲前 24 帧的低清动画,用 FFmpeg 拼成 mp4 给我看纸的运动。
这里的 540×960、32 采样、35mm 是为了出图快才选的。跑通以后再按第五节一样样加效果,画质按第七节的顺序往上提。
如果想自己看一眼脚本或者手动运行,命令是这样的(blender 换成你电脑上的完整路径):
# 后台运行脚本,搭好场景并保存 scene.blend
blender -b --python scene.py
# 用保存好的场景渲第 1 帧,存到 preview 目录
blender -b scene.blend -E CYCLES -o ./preview/frame_#### -F PNG -f 1
-b 是不打开界面在后台跑,-f 1 是只渲第 1 帧,#### 会被替换成四位帧号。版本不同参数可能略有差别,可以先用 blender --help 确认。
四、从一个镜头到一条片子
一个镜头跑通以后,再动手前先把整条片子想清楚。片子好不好看,大半在动手之前就定了。
原作者没有一上来就让 AI 写代码。他先出了几张概念图,把光和气氛定下来,整个房间只留月光和一盏油灯。概念图可以用任何你顺手的 AI 生图工具出,也可以找几张电影截图当参考。它的作用是让你自己先想清楚光从哪来、主色是什么,再把这些写进提示词。
然后是镜头。原作者说 Fable 最早给他的版本镜头表现力很一般,七个镜头他都按实拍的拍法去想,用了微距、手持跟拍、摇臂、慢动作。镜头之间怎么接,他说靠平时的积累。AI 能精确执行你说的镜头,但用什么镜头、怎么接,得你来定。
比较实用的办法是写一张分镜表,每个镜头一行:
|
|
|
|
|
|
|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
有了分镜表,可以这样交给 Claude Code:
这是分镜表(贴上表格)。场景沿用 scene.py,不要改。
每个镜头单独写一个 shot_01.py、shot_02.py……只负责摄影机和这个镜头里的动画,
渲染输出到 frames/shot_01/、frames/shot_02/……
先给每个镜头各渲一张低清关键帧,我确认后再出低清动画。
场景只有一份,每个镜头只管自己的摄影机和动作。这样改一个镜头不会影响别的镜头,哪个镜头有问题就只重渲哪个。
五、电影感靠哪几个参数
电影感是几种具体效果叠出来的,每一种在 Blender 里都有名字和对应的设置。叫得出名字,就能跟 AI 说清楚要什么。
光、镜头、颜色、构图
先看最基础的四样。下面是同一组物体,每次只多改一项:
刚打开 Blender 时只有一盏默认的灯,画面又平又硬。换成三点布光(一盏主光、一盏补光把暗部提起来、一盏从背后打出轮廓),物体马上有了体积感。焦距从 18mm 换成 85mm、摄影机退远,透视变得平缓,更像电影里的画面。颜色只留一个主色当主角,其他颜色退后。最后把主体从一字排开改成前后错开、放在三分线上。
跟 AI 说的时候,把这几样写进提示词就行,比如"三点布光,主光暖色从左前方来,轮廓光冷色从背后来""85mm 镜头""主色橙色,其他物体用低饱和的灰和米色"。原片只用月光和油灯,也是同一个道理:一冷一暖两个光源,明暗和情绪都好控制。
还有一招最省事:宽银幕遮幅。原片上下就有黑边。直接把画面渲成 2.39:1(比如 1920×804),最后用 FFmpeg 补上黑边,画面马上更像电影,要渲染的像素还少了四分之一。
体积光:看得见的光柱
原片里月光那道光柱,靠的是体积散射(Volume Scatter)。光穿过空气里的微粒时会散开,一部分进到镜头里,你才看得见光的形状。
做法是用一个方块包住整个房间,给它一个 Volume Scatter 体积材质。Density 控制空气有多浑,Anisotropy 控制光更偏向往前散还是往回散。光柱要明显,还需要一个被窗框挡住一部分的强光源,让光有明有暗。不要把体积加在世界设置上,那样太阳光和背景会失效,月光通常正是用太阳光做的。
跟 AI 说:"用一个包住房间的方块加 Volume Scatter,Density 0.06 左右,月光用太阳光从窗外斜着打进来。"
体积光很贵。在我们这个场景里,高清图开着体积光一帧要 29 秒,关掉只要 16.5 秒,差不多慢了一倍。只在需要光柱的镜头里开,雾的范围也尽量小。
浅景深:对焦以外的地方变虚
对焦附近清楚,越往前后越虚,画面一下就有了层次。在摄影机设置里打开 Depth of Field,指定对焦的物体或距离,F-Stop 越小虚得越厉害。
跟 AI 说:"摄影机打开景深,对焦在书上,F-Stop 2.0。"
运动模糊和慢镜头
纸飞快掠过时那一点拖影是运动模糊(Motion Blur)。它和景深的虚是两回事:景深虚是因为没对上焦,运动模糊是因为东西在一帧的曝光时间里还在动。在渲染设置里打开 Motion Blur,Shutter 的单位是帧,24 帧每秒时设 0.5,大约相当于 1/48 秒的快门,是电影常用的值。
慢镜头让节奏有快有慢,也给配乐留出空间。最直接的办法是把那一段动作的关键帧拉开,让同样的动作用更多帧完成。Blender 输出设置里的 Time Stretching 也能拉长时间,但它作用于整个场景,结束帧还得自己改,片中局部变慢用不上它。
跟 AI 说:"打开运动模糊,Shutter 0.5""第 3 个镜头里纸拼成狐狸的那 2 秒放慢到 4 秒,其余速度不变。"
运镜
Blender 里没有叫"摇臂"或"手持"的按钮,但都能用现成的工具搭出来:
|
|
|
|---|---|
|
|
clip_start
|
|
|
|
|
|
|
|
|
|
六、进阶:成千上万个物体怎么动
原片里的两万多页纸,原作者特意说明没有用 Blender 自带的粒子系统,而是用 NumPy(Python 里常用的数值计算库)自己写了一套模拟:每页纸在队伍里有自己的位置,跟着一条路线走,这样飞出来的曲线更自然。
按我们的理解,这个思路可以拆成三层:一条路线决定整群纸往哪走;每页纸有自己的进度,决定它走到路线的哪里;再给每页纸一个固定的偏移,让它在队伍里有自己的位置。想拼出狐狸,就是在某一段让每页纸的偏移慢慢变成狐狸轮廓上的一个点。这样不用真去算两万多张纸怎么被风吹,只要看起来自然就行,算得快,想拼什么形状也都能控制。
不想自己写模拟的话,Blender 本身也有办法:粒子系统里的 Boids 有跟随领队、避让等规则,Geometry Nodes(几何节点)可以把成千上万个实例沿曲线排布。数量很大时,让 AI 用实例化,所有纸共用一份网格,每页只记自己的位置和角度,能省不少内存。
七、渲染:时间和钱主要花在这里
Blender 自带的 Cycles 渲染器用的是路径追踪:从摄影机往场景里打出一根根光线,跟着它们在桌面、纸面和空气里反射、散开,一路追到光源,算出每个像素的亮度和颜色。光影很真,代价是慢。
先看我们这个练习场景在 M4 Max 上的实测(第一次编译之后):
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
同一个场景,高清比低清慢了将近 6 倍。一个 5 秒的镜头是 120 帧,按高清算要渲一个小时左右,而这还只是一张桌子、一本书、20 张纸的简单场景。原片一共 1,236 帧,场景复杂得多,如果只用一台电脑串行渲:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
社区作者公开过的数字也可以参考:有人用一块 RTX 5080 渲 444 帧 1080p 画面用了约 56 分钟;有人在云上租 10 张 GPU 渲 4K,用了 52 分钟,原帖写的总花费是 5.75 美元;有人在 Mac 上渲一个 4K、720 帧的魔方短片,用了将近 5 小时。
所以省时间省钱的关键,是别在没确认的画面上花渲染时间。按这个顺序往上提:
-
1. 只看动作和构图时,用 EEVEE(Blender 的实时渲染器)或更简单的 Workbench 出预览。它们用的是更快的近似算法,光影和 Cycles 有差别,只用来看东西在不在画面里、动得对不对。 -
2. 低清 Cycles:分辨率百分比设到 25%(4K 变成 960×540),采样降到几十,打开降噪,看光的方向和明暗。 -
3. 挑几张关键帧按最终设置渲,检查噪点和细节。 -
4. 都确认了,才渲完整的高清镜头。原作者也是先出低清版,把镜头角度、动作和故事线定下来,再渲高清。
另外几件事也很省时间。一是输出 PNG 图片序列而不是直接出视频,某一段有问题只重渲那几帧,渲到一半中断了也能接着渲。二是确认真的用上了显卡:Cycles 用 GPU 要在偏好设置里选对后端(NVIDIA 选 CUDA 或 OptiX,Mac 选 Metal),再把场景的渲染设备改成 GPU Compute,脚本里只写"用 Cycles"不等于用了显卡,可以让 Claude Code 渲完告诉你实际用的是哪块。三是算力不够时把渲染分出去:家里有几台电脑,可以用 Blender 官方支持的开源工具 Flamenco 分发任务;没有的话可以按小时租云 GPU。
八、声音、合成和调色
原片的配乐是 Python 写的谱子,用钢琴和弦乐的采样渲染出来,纸的声音是合成的。作者没有公开具体用了什么工具,一种常见的做法是:用 Python 写 MIDI 乐谱(音高、长短、力度),再用 FluidSynth 这样的合成器加载钢琴、弦乐的音色库,把乐谱渲成音频。纸飞的沙沙声可以用噪声加上起伏的音量变化来模拟。只想先出片的话,用一段版权清楚的现成配乐也完全可以。
画面渲完后,先把每个镜头的图片序列拼成视频:
# 渲第 1 个镜头的 120 帧到 frames/shot_01/
blender -b scene.blend --python shot_01.py -E CYCLES -o ./frames/shot_01/frame_#### -F PNG -a
# 按 24 帧每秒拼成视频
ffmpeg -framerate 24 -start_number 1 -i frames/shot_01/frame_%04d.png \
-c:v libx264 -pix_fmt yuv420p -crf 18 shot_01.mp4
几个镜头都拼好后,写一个 list.txt,每行一个 file 'shot_01.mp4',再按顺序接起来、合进配乐:
ffmpeg -f concat -safe 0 -i list.txt -c copy film_noaudio.mp4
ffmpeg -i film_noaudio.mp4 -i music.wav -c:v copy -c:a aac -shortest film.mp4
注意画面的宽和高都要是偶数,否则编码会报错。
最后是调色。渲出来的原始画面通常偏平、偏灰,整体加一点对比、把色调统一,质感会好很多,原作者也专门提了这一步。FFmpeg 可以用 eq 调亮度、对比度、饱和度,用 curves 调曲线,用 lut3d 套一个 .cube 格式的调色预设。比如稍微加对比、降一点饱和,同时补上宽银幕黑边:
ffmpeg -i film.mp4 -vf "eq=contrast=1.08:saturation=0.9,pad=1920:1080:0:(oh-ih)/2:black" \
-c:v libx264 -crf 18 -c:a copy film_final.mp4
pad 那一段只在你按第五节渲了 1920×804 的宽银幕画面时才需要。具体数值要边看边调,可以让 Claude Code 每种参数各截一帧给你对比着选。
九、跟 AI 协作的几个习惯
每轮只改一件事。"镜头再低一点,月光冷一点,纸多一倍"一次说完,出了问题不知道是哪条改坏的。
让它看图。每次渲完,把图片路径告诉 Claude Code,它能直接看图。描述问题要具体,"书的右半边出画了""纸穿过了桌面",比"感觉不太对"有用得多。
看动画,别只看截图。做魔方短片的那位作者就提醒过一个典型问题:旋转在相邻两帧之间翻转,方块会在运动模糊里打转,单看一帧完全看不出来。每个镜头至少出一秒的低清动画看一遍。
节奏你来定。有作者让 AI 全自动做完一整条片子,结果画面硬卡音乐节拍,自己评价是看起来反而不流畅。哪里快、哪里慢、哪里停,在分镜表里写清楚。
保存每一个满意的版本。用 git,或者每次满意就把脚本复制一份,改坏了能退回去。
别被"一条提示词做完"误导。网上很多案例写着一条提示词完成,往往省略了前面的环境配置和后面的修改。做鹈鹕骑自行车短片的 Techfren 公开了完整对话记录,第一条消息看起来很短,同一条消息里其实还交代了电脑环境、Blender 和 FFmpeg 的路径、显卡设置。
十、几个现成的扩展
想边看边改,可以接 Blender MCP。这是一个开源插件(GitHub 上 3 万多星,作者 Siddharth Ahuja,不是 Blender 官方出品),装好后 Claude Code 能直接查看和修改你眼前打开的 Blender 场景,还能截图回来看效果,适合细调材质和摆位置。按项目说明,装好 Blender 和 uv 之后运行 uvx mcp-for-blender setup,按向导选 Claude Code 即可。
道具和角色太复杂的话,不必让 AI 一点点手写模型。可以先用混元 3D(Hunyuan3D)、Tripo 这类工具从文字或图片生成模型,导进 Blender 里再打光和拍摄。
十一、常见问题
大概要花多少钱?
Blender 和 FFmpeg 免费。Claude Code 包含在 Claude 的付费订阅里,最低档的 Pro 按月付是 20 美元,用量更大的 Max 是每月 100 美元起(以官网 claude.com/pricing 为准);写代码、对话共用同一份额度。可以先用 Pro 练一个镜头,做多镜头的整片、反复修改时额度消耗会明显变快,不够再升级。渲染这一块,用自己电脑就是电费,算力不够再按小时租云 GPU。
从零开始,多久能看到第一张图?
做魔方短片的那位作者说,从贴出提示词到看到第一张测试图大约 30 分钟,这里面包括 AI 写脚本、调试的时间。另外,第一次用显卡渲染要额外等一会儿编译,我们这台 Mac 等了 3 分多钟,之后就快了。
普通笔记本能做吗?
能搭场景、能出低清图和短动画。高清长片会很慢,可以先做短的,或者把最终渲染放到云上。
人物能动起来吗?
能做。Techfren 的鹈鹕就绑了 21 根骨骼。但动作自不自然要一帧帧检查,脚和地面对不上、模型互相穿插,是很容易出问题的地方。
一定要用 Fable 5.2 吗?
原作者用的是 Fable 5.2,社区里也有人用 Opus 5.5 做出了作品。模型越强,脚本一次写对的概率越高;镜头设计和节奏,换什么模型都要你自己来把关。
附:Blender 能做到多好
最后放几张 Blender 官方公开的示例,看看这套软件做到顶尖是什么样子。这些文件都能在 blender.org 的 Demo Files 页面免费下载,打开就能看到场景是怎么搭的;也可以把文件交给 Claude Code,让它读一读、讲给你听是怎么做的。
参考
-
• 原片与作者讲解:X @lemomo_ai(2026-11-10、11-11) -
• Blender 命令行渲染、Cycles 采样与 GPU 设置:docs.blender.org -
• Blender MCP:github.com/ahujasid/mcp-for-blender -
• 鹈鹕案例的完整会话与源码:huggingface.co/datasets/techfren/pelican-fable-trace -
• 渲染耗时参考:Blender Studio《Charge》渲染时间概览(studio.blender.org) -
• 价格:claude.com/pricing(2026-11-14 查询) -
• 官方示例文件:blender.org/download/demo-files
文中原片截图版权归原作者 @lemomo_ai,仅作讲解引用。

