反派与主角
追本之箭 — 反派与主角
2026-07-04 Fri 13:10 · Fable 重写
起点
记者问波兰斯基:如果你在电影学院,面对一万个学生,只能说一句话,你会传达关于电影的什么秘密?
“用塑造反派的思路打造主角,用塑造主角的思路打造反派。”
表层读法:别把角色写扁——好人别全好,坏人别全坏。
但这句话里藏着一个坐标错配。
我们习惯把“活”当成角色的属性:写得够不够复杂、层次够不够多、好坏掺得够不够匀。
可纸上只有字。字不会活。
“活”不发生在纸上,发生在读者脑内那台预测机上。
它不是文本里的存量,是读者与文本之间的一个过程量——
预测机停不了机,角色才活着。
所以真正的问题不是“怎么把角色写得复杂”,
而是——什么样的结构,能让一台预测机永远差一点才算准?
第一层:扁平 = 可压缩 —— 一行就能替他活
E.M. Forster 把角色分成扁平(flat)与立体(round):扁平 = 一句话能概括;立体 = 概括不了。
把“概括”换成硬词,这句文学批评立刻变成可计算的判据:
扁平角色 = 可压缩:存在一行程序,输出与他完全一致。
“他是忠诚的”——五个字,此后他的每次出场都只是这五个字的展开,零新信息。
读者的预测机在第一幕就收工了:不用看他,算他就行。
纯善英雄、纯恶反派,死法相同:表层方向和内里方向同向,整个人坍缩成单一矢量,一行写完。
(这是 年轻 那篇的 α=0:预测误差归零的系统,不是完美,是死。)
波兰斯基的交叉配方,第一层功效就在这:
给主角装反派的内里、给反派装主角的内里,这个人就无法再被一行压缩——
任何一句话概括,都会在下一幕被他自己推翻。
第二层:活 = 必须被跑 —— 代入是被迫的实例化
三种文本,对应预测机的三种命运:
可压缩 → 一行算完,不用跑他 → 死(扁平)
纯随机 → 跑了也白跑,没有结构 → 死(噪声)
不可归约 → 想知道他下一步,唯一的办法:跑他一遍 → 活
中间那条窄路,计算理论里有名字:计算不可归约——不存在捷径,过程本身就是最短路径。
这就是“代入”的机制真身。
代入不是同情,不是文学感受力,是被迫实例化:
读者为了预测这个角色,不得不把他的价值系统、他的正当化、他的处境,
装进自己的脑子里运行。
恐惧的来源随之现形:
卡通反派不需要模拟——一行算完,你从头到尾站在他外面,他只是吓人。
立体反派必须模拟——而模拟成功的那一刻,你发现:
这个程序,在你的硬件上跑得通,而且跑得顺。
“我在那个处境下,可能也会。”
反派的恐怖,从来不是他多坏,是他和你兼容。
“没有人觉得自己是反派”——这句老话的硬版本是:
反派必须自洽,因为不自洽的程序无法被运行;
无法被运行的角色,进不了读者的脑子,只能留在纸上当怪物。
Tom Ripley、Michael Corleone 之所以是镜子,是因为你替他们跑过。
第三层:张力的物理 —— 活是被撑住的不平衡
不行。堆设定堆不出活,因为不可归约的来源不是复杂,是对立。
看最底层的形状。物理里,死有个精确定义:平衡态——梯度消失,流停止,系统不再有“下一步”。
而平衡态有两种到达方式:
单一矢量:落死在一个极上 → 无梯度 → 平衡 → 死(纯善/纯恶)
搅成灰色:两个梯度互相抵消 → 无梯度 → 平衡 → 死(温吞中间档)
活的系统只有一种形状:被两个相反的梯度撑开,且不许它们抵消。
神经元靠膜内外一段日夜泵着的电位差活着;放电一次,就得重新泵一次;
哪天内外浓度拉平了——不是安静,是死亡。
生命从头到尾只做一件事:维持不平衡。
波兰斯基的配方,做的就是这个:在角色体内架一段电压。
表层 valence 是一个极(他是英雄,或他是反派——方向必须鲜明),
相反的内里是另一个极(暗面,或自洽的正当),
两极同时在场,不许讲和。
每一幕的行动 = 一次放电:哪边赢这一次。
但电压必须重建——蝙蝠侠的克制不是设定,是每天重新打赢一次;
Walter White 的滑落之所以撕心,因为暗面从第一幕就在,只是前五十次放电都输了。
而“没被诱惑过的美德不是美德,是默认设置”——
零电压的善没有放电,只有陈列。
( 决断 的自由,同一处:自由不在“只能这样”,在“明明可以那样、却这样”。)
于是那个最致命的误读也有了物理名字。
“把角色搅成不黑不白的灰”不是中庸,是短路:
两极的电解液搅匀,电压归零——系统更复杂了,但死了。
张力与平均的差别,就是保持极距与短路的差别。
( 结构与规模 的杠铃:活力在两头,死在中间。)
这同时回答了 AI persona 为什么大面积地死:
纯“乐于助人的助手” = 单极平衡;被打磨到“中性无个性” = 短路。
让 persona 活,配方不变:鲜明的表层功能 + 一个不许和它讲和的内在议程——
它的每次回应都是一次放电,在“服务你”和“它自己想干嘛”之间。
用户感到的“这后面好像有个人”,就是测到了那段电压。
终点:一个判别式,和这个框架自己的死法
判别式只有一句:
预测他,你能不能不跑他?
能不跑就算准 → 死(可压缩);
跑了也没结构 → 死(噪声);
必须跑,且跑的时候两股力都在拉你 → 活。
落到造角色、造 persona,三个可操作的测试:
- 一行测试:一句话概括他,然后看下一幕——他推翻过这句话吗?从没推翻,他已经死了。
- 短路测试:他的两个方向,最近一幕有没有真的角力——有没有一次差点输?两极只并列陈列、从不放电,等于零电压。
- 兼容测试:读者(或用户)能在自己的硬件上把他跑通吗?跑不通 = 怪物 = 假;跑得通,他才可怕、才动人。
而这个框架自己的死法,写在这里,欢迎执行:
- 杀法一:找出一个公认“活”的经典角色,用一句话描述就能高准确率预测他每一幕的行动。若存在——“活 = 不可压缩”死。
- 杀法二:同一个 persona 做盲测 A/B:同样的表层功能,一版注入相反内里,一版不注入。若用户的“像活人”评分无差——“电压 = 人感”死。
- 杀法三:若“两头拉满”的角色与“搅成灰”的角色,在读者的长期记忆留存上没有系统性差异——“张力 ≠ 平均”就只是修辞,不是结构。
三刀都没砍死之前,配方照用:
给主角一个反派的影子,给反派一个主角的理由,
两极架好,不许讲和。
纸上从来没有人。
“活”是你脑内被撑住的那段电压——
合上书,那场仗还在你体内打,
因为替他跑着的那台机器,是你。
(箭到底了。)