故事得从一个我捡到的小工具说起。(文尾附赠我coding好的工具和skill)
上周四,我又在跟AI视频的老毛病死磕。一条两分钟的对话戏,讲一对夫妻在厨房摊牌,简单得不能再简单。可就是这么一场戏,角色第三个镜头换了张脸,第四个镜头背景的厨房变成了客厅,第五个镜头两个人对话的方向,反了,俩人面朝同一边,深情地,对着空气互相告白。
我折腾到凌晨,生成了四十多次。单看每一帧都是大片,连起来一放,像六个剧组拍的。
就在我快把鼠标摔了的时候,刷到一个叫 shotblock 的网页,一个挂在 vercel 上的开源小工具,作者用它来做3D分镜。我本来没抱什么希望,点进去玩了十分钟,愣住了。
它的核心想法,简单得让我有点惭愧,开机之前,先把世界搭出来。

原版 shotblock,一个挂在 vercel 上的开源 3D 分镜原型,这是我整个改造的起点
但我在想,你能在一个3D视图里摆角色、摆机位,但是这也还是太麻烦了,也浪费时间,我在想,既然ai能识别剧本,为什么不直接让它自己根据剧本来摆分镜,然后我自己再局部微调呢?
先把这段剧本给你看。这是我自己写的,叫《最后一班地铁》。

图1 · 我写的原创剧本,就这么六句话,场景、人物、动作、对白,按正常剧本格式写下来
你注意看,这就是一个最普通不过的剧本格式。场景标题写在最上面,人物名单独占一行,括号里是动作,剩下的就是台词。我写的时候没想任何技术的事,我就是在讲一个故事。但接下来发生的事告诉我,我写下的每一个字,后面都有用。
得先说说我过去是怎么做AI视频的,你才知道这一下对我冲击有多大。
过去我的流程特别原始。脑子里想一个画面,写一长串提示词,生成,不对,改,再生成。最折磨人的是一致性,第三个镜头男主换了张脸,第四个镜头房间换了样,最离谱的是方向,两个人对话,这个镜头男主朝右看,切到反打女主居然也朝右看,俩人面朝同一边深情对视空气。

单看每一帧都挺好,连起来就是车祸现场。我一直以为是模型不行,后来才明白,是我做事的顺序从一开始就反了。剧组拍戏从来不是先想画面的,是先有剧本。剧本里其实什么都写好了,谁在场、谁跟谁说话、情绪是什么,这些本身就定义了空间怎么搭、机位怎么放。
所以这回我换了个工具。它长这样,一个网页,双击就开,什么都不用装。

图2 · 工具全貌。左边加场景和机位,中间是3D舞台,右边是真实取景器和「打板」按钮,底下是分镜墙
你大概扫一眼就懂了。左边一栏管搭场景、加机位,还有那条最关键的180度轴线,右边是个真的取景器,所见即所得,焦距机高随便调,底下一整排就是拍好的分镜。但这些我都没动,我做的第一件事,是点了左上角那个「导入剧本」。

图3 · 剧本驱动的入口。把剧本往这一粘,它立刻识别出有几个角色、几句对白
粘进去的那一下,它就告诉我,识别到2个角色、4句对白。然后我点「解析并自动建场」。
接下来的事,是它替我做的。

图4 · 工具自动拆出了场景、两个人物、动作和每一句对白,我写的信息一个都没浪费
它认出场景是深夜的地铁车厢,知道要搭车厢、还得是夜戏的光。认出陈默和林夏两个人,一个放进角落、一个放对面,在两人之间拉出那条180度轴线,沿同一侧布好三个机位。轴线是电影圈用了一百年的规矩,机位越线人物方向就跳,我过去天天踩这个坑,现在它从剧本层面就锁死了。
但真正让我坐直的,是它居然能按镜头号,把我的台词一句一句分下去,自己排正反打。

图5 · 这是核心。左边是我写的每一句剧本,右边是工具自动生成的对应镜头,一句台词,一个镜头
你仔细看这张图。开场没台词,给主机位一个全景。陈默开口,切到拍陈默的过肩机位。林夏回应,切到反打。最后两人沉默,收回全景,陈默下车。这不就是导演该干的事吗。哪句话用哪个机位、什么景别、给几秒,它全替我想好了,而且因为机位都来自同一个3D空间,六个镜头一帧都不越轴。
到这你可能会想,会不会是这个地铁剧本被特意调好了。我一开始也怀疑,所以我又写了个完全不一样的剧本试它,紧张的天台对峙,五句台词全是对抗。

图6 · 换个完全不同的剧本,它照样导得出来。左边安静的地铁戏,右边紧张的天台戏,各自生成贴合剧情的分镜

它一样读懂了。新场景搭出来了,两个新人物站好了位,五句对白生成了七个镜头,因为台词多一句,正反打自然多一轮。它没套用地铁戏的任何东西。那一刻我才确信,这不是一个写死的demo,你给它什么剧本,它就给你什么戏。
对话戏只是开胃菜。我后来越玩越上头,想试试它能不能扛住真正复杂的大片运镜。
于是我写了另一种剧本,不是对白剧本,是运镜剧本。我把一条炫酷的长镜头拆成三段写下来,第一段镜头边推进边整个画面旋转,第二段推到两个人贴身打斗、远处的街区整片翻折立起来,第三段绕着两人环绕、一记上勾拳把人击倒。就是那种盗梦空间式的世界折叠加打斗。

图7 · 我把一条复杂长镜头拆成一份运镜剧本,每一段运镜,都对应渲染出了相应的画面
你看这张图。左边是我一段一段写的运镜,右边是真的渲染出来的画面,画面整个转起来了,两个人在失重里交手,远处的屋顶真的沿着一条折线立了起来,跟地面成了直角。
从一段安静的地铁对话,到一条天旋地转的打斗长镜头,我做的事情其实是同一件,把脑子里那场戏,用剧本的方式写清楚。剩下的搭场景、排机位、出画面,都交给它。
你能写出多复杂的戏,它就能帮你导出多复杂的镜头。
为什么剧本驱动就能解决一致性?我自己一条条写提示词,是孤立地写,写第五个镜头时得重新描述一遍人物长相、位置、朝向,写到第五遍早忘了第二遍怎么写的,细节就对不上。可工具不会忘,它生成的六条提示词,是从同一个3D空间这个事实里抄出来的六份,不是我凭记忆写的六遍。
一致性不是事后一条条对出来的,是从剧本那一刻就锁死的。
最后说点心里话。AI视频这场仗,胜负手正在从提示词,挪回到剧本。提示词的技巧半年就过时,模型一更新你存的咒语全废。但一个好剧本,谁在场、为什么说这句话、要传递什么情绪,这些从戏剧诞生那天用到今天,一天都没掉过价。
我现在越来越觉得,以后比的不是谁的提示词写得花,是谁的剧本写得动人。
当AI能自己导戏,你的剧本,就是你最大的护城河。
P.S. 这次的东西打包送你,三件套。
① 那个剧本驱动的3D分镜工具(基于开源原型迭代),免费单文件HTML,双击即用,粘剧本就能自动建场、锁轴、排正反打、出双提示词。
② 「分镜一致性」Skill,装进Claude,丢一段剧本就自动出完整分镜包。
公众号后台回复「剧本」,自取工具。
谢谢你看我的文章,我们,下次再见。
夜雨聆风