第五部 人物、空间、动作连续性工程
第 23 章 人物状态机#
本章目录
23.1 连续性是状态继承#
“记得她穿灰西装”不是系统。每个镜头进入时读取上一镜离开状态,执行事件,再产生新的离开状态。只要没有事件修改,状态应自动继承。
人物状态至少包括身份版本、服装与覆盖、妆发、伤口、情绪、姿态、左右手、道具、屏幕位置、视线目标、知识和关系。并非每镜全部可见,但事实仍存在。

图 23-1 同一个场景中,服装、道具、情绪和知识是四条同步但变化速度不同的状态轨。镜头只展示人物,系统却必须同时知道钢笔何时失去、情绪何时失控、秘密何时被理解。
读图时要从纵向和横向同时检查。纵向确认一个时刻的四类状态是否互相兼容;横向确认每类状态是否由明确事件改变。人物离开画面并不会自动清空状态,下一场仍要继承她已经知道的秘密与尚未找回的钢笔。
23.2 状态快照#
character_state:
shot: E001_S08
character: CH_LINYUN
identity: CH_LINYUN_FACE@v03
wardrobe: WD_LINYUN_GREY_SUIT@v02
appearance:
hair: neat_center_part
makeup: office_neutral
injury: none
body:
position: boardroom_door_zone
orientation: facing_table_east
posture: upright
hands:
left: holding_PROP_OLD_PEN
right: touching_PROP_AUTHORIZATION_on_table
screen:
position: left_third
eyeline: CH_LINWEI_right
emotion:
in: restrained
out: controlled_dominance
knowledge:
gained: 董事长已核验授权签名
状态字段使用枚举或资产 ID,减少“差不多”的自由文本。
23.3 事件修改状态#
状态只能通过明确事件变化:拿起、放下、交接、受伤、换衣、得知、进入、离开。事件记录旧值、新值和证据镜头。
state_event:
id: EVT_E001_S09_AUTH_PICKUP
entity: CH_LINYUN
field: hands.right
from: touching_PROP_AUTHORIZATION_on_table
to: holding_PROP_AUTHORIZATION_chest_height
visible_in: E001_S09
若下一镜右手出现手机,而没有事件放下文件、拿起手机,连续性检查应报错。
23.4 左右手是高频故障源#
镜像、反打和生成随机性会交换手。规定角色世界坐标中的左/右手,不以画面左右命名。镜像翻转素材会让痣、纽扣和文字一起错误,不能只看构图。
关键道具交互记录握持方式、朝向和是否可见。简单镜头可以标记手在画外,但状态仍需继承。
23.5 情绪有进入、峰值和离开#
每镜只写“愤怒”会导致表演跳变。记录 emotion_in、触发、峰值和 emotion_out。下一镜从上一镜离开强度开始,除非有时间跳跃或调节动作。
emotion_transition:
in: controlled_anger_2
trigger: 屏幕显示父亲姓名
peak: shock_4_suppressed
regulation: 停止转笔,吸气,不看周岚
out: fear_and_focus_3
情绪连续不等于表情不变,而是变化有触发和调节过程。
23.6 知识状态防止角色“读过剧本”#
角色只能依据已经获得的信息行动。秘密揭露后更新 knows;谎言则分别记录角色相信什么和事实是什么。
林筠在 E001 只知道父亲姓名出现在账户,不知道本人活着。让她直接说“我父亲还活着”是知识连续性错误,即使画面连续。
23.7 关系状态也会传播#
信任、债务、称谓和公开关系在重要事件后更新。人物可能表面维持原称谓,但动作应反映变化。
E003 证明陈默未删除记录后,林筠信任从 1 到 2;她不必立即拥抱他,但下一场不应继续用完全相同的敌对语气。
23.8 时间跳跃与状态压缩#
跨日时不是清空状态。伤口、知识、关系和持有物继续;服装、妆发和地点可能通过更衣或移动事件变化。建立时间跳跃规则:哪些自动保持,哪些必须重置,哪些需要可见解释。
“第二天”可合理更衣,不能合理让伤口消失或忘记秘密。
23.9 状态冲突优先级#
当剧本、资产、分镜和已批准成片冲突,必须确定权威来源。通常事实账和最新批准变更最高;已拍成片若与事实冲突,要修片或批准剧情改动,不能悄悄让错误成为真相。
状态解析器输出冲突,而不是自行猜测。
23.10 只把相关状态送给模型#
完整项目状态很大。生成 E001_S09 时,只需当前人物可见状态、动作相关历史和下一镜交接,不需要整季秘密。上下文编译器从总状态提取最小切片。
过多状态会稀释重要约束,甚至把未来伤口或服装提前带入当前镜头。
23.11 状态 Lint#
可自动发现:道具凭空出现或消失;左右手交换;服装版本改变无事件;伤口越界;人物在离场后仍出现;知识提前;时间倒退;情绪强度无触发跳跃;屏幕位置与已定轴线冲突。
Lint 只报告事实不一致,不判断角色是否“应该更伤心”。情绪合理性仍需表演审核。
23.12 状态机 SOP#
第一步,为每个场景建立人物进入状态。第二步,每镜继承上镜离开状态。第三步,只通过 State Event 修改。第四步,记录手、道具、位置、视线和情绪。第五步,在揭露后更新知识与关系。第六步,跨时间按字段规则继承。第七步,为模型编译最小相关状态。第八步,运行 Lint 并由连续性负责人处理冲突。第九步,将批准镜头的真实状态回写。
23.13 故障树#
**症状:道具每镜换手。**没有左右手字段或素材被镜像。锁定世界左右,禁止未经审计翻转。
**症状:表演忽然从平静到崩溃。**只有目标情绪,没有进入和触发。补情绪过渡。
**症状:角色知道尚未揭露的信息。**知识状态未管理,模型接收整季资料。只发送当前已知切片。
**症状:换场后伤口消失。**把地点变化错误当状态重置。按字段继承。
**症状:剧本和成片各自为真。**缺少权威来源和回写。建立批准状态与变更流程。
23.14 检查表、练习与交付物#
检查状态是否有进入和离开;变化是否由事件触发;左右手是否世界坐标;情绪是否连续;知识是否按揭露更新;跨日是否正确继承;模型是否只接收相关状态;批准成片是否回写。
练习一:为六镜文件交接写完整状态。练习二:找出一段剧本的知识提前错误。练习三:模拟跨夜后服装、伤口、关系和道具继承。练习四:为五类状态冲突规定权威来源。
本章交付物:Character State Snapshot、State Event Log、Emotion Transition、Knowledge Ledger、Relationship Update、State Lint、镜头状态回写记录。
23.15 字段语义必须比字段数量更清楚#
状态表最常见的失败不是字段少,而是不同工位对同一字段理解不同。location 究竟是场景名、房间分区还是画面位置;emotion 保存内心状态、外显表演还是导演目标;wardrobe 指服装套装还是包含解扣、湿度、污渍的当前穿着状态。每个字段都需要类型、单位、枚举范围、默认继承规则、修改权限和证据来源。
field_definition:
name: prop_possession
type: map[prop_id, possession_state]
allowed: [not_present, visible_unheld, held_left, held_right, concealed, transferred]
inheritance: carry_forward_until_event
writers: [continuity_agent, approved_human_override]
required_evidence: shot_or_script_event
render_scope: only_visible_props
状态 Schema 要区分 unknown、not_applicable 和 not_visible。角色的右手在画外不等于右手没有持物;观众尚不知道母亲是否存活,不等于项目事实未知;远景看不清伤口,不等于伤口消失。错误地把不可见当成空值,是道具和伤痕突然重置的重要来源。
23.16 事件溯源、回滚与分支#
不要反复覆盖一份“当前状态”而丢失历史。项目保存初始快照和按顺序发生的 State Event,当前状态由事件重放得到。这样可以回答:林筠何时拿到手机、哪一镜把文件交给周岚、伤口从何时出现、某次剧本修改影响哪些后续镜头。

图 23-2 初始状态经过道具、位置和情绪事件形成当前快照。上游事件一旦改变,引用旧状态的依赖镜头不能继续冒充有效资产,必须标记失效、重编译并重新验证。
图中的红色镜头不是“画面不好”,而是依据已经过期。即使它们视觉上非常漂亮,也不能直接保留;只有证明变化不影响该镜头,或经过批准的适配和回归,它们才能重新变绿。这正是状态系统区别于文件夹管理的地方:文件存在不等于文件仍然有效。
剧本改稿时尤其需要分支。若 E006 删除“林筠手机被抢走”,旧分支中后续所有 phone_absent 都应失效;系统从删除点重放事件,生成影响清单。已经批准的镜头不会被静默改写,而被标记为“依据过期”,由制片决定重做、修改剧情或保留例外。
回滚不是删除历史。错误事件保留状态、原因和替代事件,便于复盘智能体为何产生错误。Agentic 系统若只看到最终快照,无法学习哪个规则失效;保留事件链才能定位是输入事实、解析、生成还是人工批准出了问题。
23.17 项目事实、角色认知与观众认知#
知识状态至少有三层:项目事实是什么,角色相信什么,观众目前知道什么。同一时刻三者可以完全不同。项目事实是林父仍活着;林筠只知道账户出现父亲姓名;观众可能看到一个模糊背影,因此怀疑但没有确认。编剧、演员和剪辑分别依赖不同层,混在一个 knows 列表中会制造剧透式表演。
谎言还需要记录来源和置信度。林薇声称林父已死,林筠可能“暂时接受但怀疑”,不是简单的 true/false。人物行为由其认知状态驱动,镜头信息分配则由观众认知驱动。生成上下文只发送角色当下可用于表演的信息,不能把项目真相全部塞入提示词,再期待模型自行假装不知道。
每次揭露都应产生两类事件:事实曝光事件更新哪些角色和观众知道什么;关系解释事件更新他们如何理解说话者。例如授权书为真,不仅让众人知道林筠有资格,也让周岚重新评估林薇此前的说法。后一层决定下一场的称谓、距离和协作意愿。
23.18 一条状态从剧本到成片的完整生命线#
以“林筠右手持授权书”为例:剧本动作创建预期事件;分镜决定动作在哪个镜头完成;关键帧包把右手和文件朝向编译为可见约束;视频生成输出候选;连续性审核观察实际结果;批准后,成片事实回写为 held_right。若候选实际上左手持有,系统不能为了让审核通过而修改预期状态,而应生成差异并路由。
只有导演批准改动作时,才创建新的变更事件,将预期从右手改为左手,并检查后续握手、手机操作和构图是否受影响。这条规则阻止“模型生成成什么,故事事实就跟着变成什么”。生成结果可以提出变化,不能未经批准成为权威。
状态包还应注明有效区间。文件在 E001_S08 被拿起,在 S14 被放到桌面,后续镜头不再继承持有状态。没有结束事件的状态会像内存泄漏一样无限传播;每个临时状态都要么有明确结束条件,要么由新事件覆盖。
研究依据说明#
固定提示词只能描述角色,状态机才能描述角色经历了什么。本章将影视场记方法结构化,使智能体和生成工位共享同一时刻的事实。