Files
ichni_Official/docs/chapter0-scene-03-contract-decision-card.md
SoulliesOfficial fe00ecfcc7 微调
2026-07-24 03:43:11 -04:00

22 KiB
Raw Blame History

Chapter 0 场景卡C0-S03 契约抉择与镜的降临

状态:已确认前置信息的场景设计稿,非 Yarn 台本
用途:锁定第五日最终会面、接受/拒绝抉择、接受路线中的镜首次出现,以及拒绝彩蛋 TextBlock 的叙事与系统接口。
本稿允许确定 Yarn 文件、Node、章节变量、TextBlock、Timeline Marker 与 Localization Key 的建议命名;不在本阶段修改 StoryData、Localization Table、Prefab、C# 或正式 Yarn 台词。

一、场景定位

项目 内容
场景编号 C0-S03
暂定名称 契约抉择与镜的降临
时间 C0-S02 结束后;共同梦境发生后的第二十二日,五日考虑期限的最后一日上午
主要地点 泽尼斯公共事务中心的最终会面室;拒绝彩蛋后段可按时间顺序推进至若干年后的日常生活
出场角色 曦、总统程衡、研究代表徐允雅;接受后镜首次出现;场末父亲与母亲短暂进入或在门外与曦会合
玩家状态 已经完整知晓星联能够提供的事实与所有未知边界;仍然害怕、犹豫,但已准备亲自给出不可替代的答案
核心交互 玩家先作出“接受/拒绝”路线选择,再进行一次不可逆后果确认;接受后依次向镜提出三个单选项问题
主线结果 接受:契约成立、镜降临、进入十至十五周履约窗口;拒绝:交易终止,解锁独立的拒绝彩蛋 TextBlock

二、设计分类与范围

本场属于既有 Chapter 0 叙事流程中的 Addition:增加一项章节路线变量、一个抉择 checkpoint以及同列互斥的接受后续与拒绝结局。它不新增 Story System 底层机制,也不改变 Timeline 回滚、TextBlock 事务或 Forbidden Condition 的现有规则。

本场包含

  • 第二次会面与最终知情确认;
  • 接受/拒绝的正式玩家抉择;
  • 接受路线中的签约、镜首次出现及有限问答;
  • 独立 Yarn Script 与独立 TextBlock 承载的拒绝彩蛋;
  • “第五日 · 抉择”Timeline Marker
  • 拒绝结局完成后出现的回滚说明 MessageBox
  • C0-S04 与拒绝彩蛋在同一叙事列、不同路线行的布局约束。

本场不包含

  • 公众获知真相后的反应与英雄仪式;该内容由 C0-S04 承担;
  • 母星旅行、正式告别或跨界出发;
  • 献祭对象范围、抹除机制、干涉/不干涉结构;
  • 神的形态、动机、声音或科技锁原理;
  • 镜对曦的私人好感、信任、赞许或价值观转变;
  • 镜主动透露未来、任务结局、曦能否归来或任何未被神公开的规则。

三、空间与演出基调

最终会面室

会面地点沿用 C0-S01 的公共事务中心,但房间布置应比第一次更简洁。桌面只保留已经核对过的知情文件、星联一侧的程序确认书,以及仍处于静默状态的通信接收装置。窗外的泽尼斯正常运转,学校列车、研究设施与住宅区没有因为曦今天要作出的决定而停下。

  • 程衡与徐允雅仍与曦平视而坐,不设置宣誓台、旗帜阵列、直播设备或带有英雄意味的仪式。
  • 父母在门外等候。他们不是被隔绝,而是尊重曦在不读取任何人表情的情况下作出最终决定;曦可随时要求他们进入。
  • 神不在室内制造可辨认的形体或声音。通信装置只负责确认契约是否成立,不承担解释世界观的功能。
  • 接受后,镜的出现应构成序章开端以来第一次真正超越星联技术理解的视觉事件,并成为本场后半段的主要“钩子”。

文本与镜头节奏

  • 开场不重复完整讲解 C0-S01 已经提供的信息,而是通过徐允雅逐项确认“曦是否仍然理解这些事实”来重新建立抉择重量。
  • 最终确认必须清楚,但不拖成多轮近义反问。玩家选择路线后,只进行一次针对不可逆后果的二次确认。
  • 曦仍是十七岁的普通女孩。她可以紧张、口干、说话前停顿、用轻微吐槽缓解压力;不能突然发表成熟完备的文明演说。
  • 旁白保持第三人称,并贴近曦当下能够观察到的细节。换行即一次玩家推进,除关键打击或有意留白外,避免五六个字的独立短句。
  • 接受路线中的镜不与任何人辩论,不解释自己为何比三维生命优越,也不通过承认错误或被人说服来制造亲和力。

四、角色目标与表演边界

  • 表层目标:完成最后核对,然后说出一个真正属于自己的答案。
  • 真实状态:五天并没有消除恐惧,只让她能够区分“我害怕”与“我不愿意”。她接受时仍可手抖、迟疑,也可承认自己没有把握。
  • 接受动机:对家园的热爱、对文明未来的责任感,以及她本人的好奇心共同构成选择;不能只写成被集体利益压倒。
  • 拒绝动机:承认自己无法真诚地承担未知任务,而非怯懦、赌气或对星联的报复。
  • 语言边界:不咄咄逼人,不审判程衡与徐允雅;可以用“你说这些的时候,能不能偶尔不要这么干脆?”一类无奈吐槽调节过度严肃的气氛。

程衡

  • 场景目标:代表星联接收曦的决定,并确保任何结果都不会被当成她对文明的亏欠。
  • 接受反应:克制地确认星联承担公开真相、保护家属与完成出发准备的责任;不称曦为救世主,不在私密会面里鼓掌。
  • 拒绝反应:明确宣布交易终止,星联继续依靠自身研究面对未来;不流露失望,不让曦安慰他。
  • 语言边界:不把“唯一机会”说成逼迫句,不用宏大修辞替曦解释她的选择。

徐允雅

  • 场景目标:完成最终知情同意程序,确认曦理解可知事实、未知风险、拒绝权与签约后的不可撤回性。
  • 程序职责:星联一侧的文件只是记录曦在充分知情后作出选择,不是神的契约,也不承载飞升知识。
  • 接受反应:记录程序完成,在镜出现后保持研究者的敏锐,但不抢夺曦与陪同者的第一次交流。
  • 拒绝反应:立即终止通信程序并封存材料,不追加劝说,不要求曦说明一个“足够合理”的理由。

  • 初始身份:首次以投影进入三维世界的四维存在,是神安排的陪同者、观察者与必要时的保护者。
  • 自我命名 是它对自己的命名。它不是被星联临时起名,而是允许在场者以“镜”称呼自己。
  • 外在态度:平和、准确、保持距离,并带有无需刻意展示的上位者傲慢。它把在场人视作短暂、局部的三维生命,但没有兴趣与他们争执。
  • 当前能力:在故乡世界仍可观测完整时间线,也清楚自己的观察在进入第一个异世界后将受到限制;它不会向外透露未来信息。
  • 任务立场:中立执行神的安排,没有独立判断献祭是否成立的权力,只能在未来转告神的结果。
  • 保护边界:只在曦遭受生命危险或可能无法继续履约时兜底;不替她解决普通困难,也不能替她决定献祭。
  • 情感边界:序章结束时仍不会对曦产生超出任务关系的显著情感。本场不得出现欣赏、心疼、偏爱、承认被三维生命启发或暗示自己判断有误。

五、镜的视觉、声音与首次降临

契约被确认后,通信装置不应发射一道传统意义上的传送光柱。异变先从房间里所有能够反射光线的表面开始:窗玻璃、桌边的金属、徐允雅终端的暗屏,以及曦瞳孔中极小的高光,都在同一瞬间映出一个现实中并不存在的角度。

随后,大量完美镜面在半空中展开并无声重组,形成没有固定外轮廓的几何复合体。它既像一枚不断翻折的万华镜,也像某个高维整体切入三维空间后留下的碎片。不同镜面可以同时呈现房间的真实影像、人物的线框轮廓、热分布与无法被星联设备归类的数据结构;半透明表层之下,光点和线条组成的数据流如风暴般持续运动。

  • 镜面运动必须显得有秩序且无需适应环境,不表现成刚苏醒、失控或故障。
  • 镜不会固定成一张人脸,也不借用曦或在场者的面容制造惊吓。
  • 声音平静、无明确性别,无法从某一块镜面或某个具体方向定位。
  • 第一段正式表述暂定为:“契约确认。履约窗口开始计算。”之后再说明:“你们可以称呼我为镜。”
  • 镜的首次出现应令程衡与徐允雅短暂失去熟练的程序节奏,但二人不会大喊、逃离或立刻围绕它进行实验。

六、场景推进顺序

A. 共同开场与最终确认

  1. 回到同一扇门前:承接 C0-S02曦与父母在等候区作最后交流随后独自进入会面室。
  2. 日常仍在继续:窗外的泽尼斯正常运转,提醒玩家文明没有即时灾难,曦面对的是遥远未来与个人一生之间的不对称选择。
  3. 确认程序边界:徐允雅再次说明星联文件不是神的契约;签字只证明资料已经如实提供,拒绝签字或拒绝交易都不会产生处罚。
  4. 核对唯一已知规则:徐允雅用准确、简短的语言复述唯一规则,并要求曦亲口确认自己理解其余事项仍是未知。
  5. 确认不可撤回:程衡说明一旦曦接受、神确认契约成立,就进入十至十五周履约窗口,此后星联无权替她撤回。
  6. 把决定交还给曦:程衡与徐允雅停止说话,不用最后一次演说填满沉默。玩家作出接受/拒绝选择。

B. 接受路线:签约与镜首次出现

  1. 二次确认:系统用一个明确选项确认“接受后不可撤回”;曦可以在确认前表现紧张,但不重新展开整场争论。
  2. 星联记录选择:徐允雅完成星联侧记录,通信装置将曦的答案传递给神。神没有声音或形体。
  3. 契约成立:装置只给出无法误读的成立结果。程衡以克制方式确认,星联从这一刻承担公开、告别与出发准备工作。
  4. 镜面异常:房间内反射同时偏离现实角度,镜以不断重组的万华镜形态进入三维空间。
  5. 镜自我说明:镜先宣布履约窗口开始计算,再允许在场者称它为镜;它只说明自己负责陪同、观察,以及在曦无法继续履约的决定性危险中提供保护。
  6. 问题一——“你是什么?”:玩家以单选项推进。镜明确自己是四维生命及当前形态只是投影,但拒绝用会破坏三维认知的知识完整解释四维结构。
  7. 问题二——“你会怎样保护我?”:镜说明保护不是替曦消除一切困难;只有生命或履约能力受到决定性威胁时才会介入。
  8. 问题三——“你知道我能不能回来吗?”:镜承认自己能够观测时间,却明确拒绝透露未来。它不撒谎、不故作谜语,也不以“为了你好”包装拒答。
  9. 父母见到镜:会面结束前,父母获准进入或在门口看见镜。镜不评价他们的选择,也不提供安慰;它仅确认履约窗口内曦仍可与家人正常生活和准备。
  10. 接受路线收束:曦与父母离开会面室,镜公开陪同。下一 TextBlock 进入公众披露,而非立刻开始母星旅行。

C. 拒绝入口:由抉择 TextBlock 转入独立彩蛋

  1. 二次确认:系统明确说明拒绝将使交易终止,神不会指定第二位候选人;玩家确认拒绝。
  2. 交易终止:徐允雅关闭通信程序,程衡正式接收决定。二人都不要求曦解释或安慰星联。
  3. 回到父母身边:曦走出会面室。父母不问她是否让文明失望,也不把拒绝包装成胜利;一家人先一起离开。
  4. 抉择 TextBlock 正常结束:写入 c0_contract_route = 2,从而开放独立拒绝彩蛋 TextBlock并将接受后续 C0-S04 置为 Forbidden

D. 独立拒绝彩蛋 TextBlock

  1. 绝密程序终止:拒绝发生在候选人身份公开以前,曦的身份继续受到保护。本彩蛋不额外决定星联是否会在未来公布这场未成立的交易,也不虚构公众已经知情后的反应。
  2. 文明继续前进:研究没有因为失去唯一捷径而停止。星联继续探索高维理论,能够处理三维世界中的长期工程,却始终无法自行解除科技锁。
  3. 曦回到平静生活:她继续完成学业,与父母生活,后来也可从事自己喜欢的工作。她不必终身接受道德审判,也不会因为拒绝自动变成悲惨人物。
  4. 遥远终局保持遥远:文明的停滞与三维宇宙最终毁灭是极其遥远的必然结局,不在曦的一生中以灾难蒙太奇惩罚她。结局的余味来自“一个可能性永远关闭”,而不是即时毁灭。
  5. 彩蛋收束:曦偶尔会想起那扇门后的选择,但文本不替她宣判后悔或庆幸。结尾回到一个具体、温暖、仍在继续的普通日常。
  6. 回滚提示:彩蛋 TextBlock 正常提交后调用 show_message,提示玩家可点击 Timeline 上的“第五日 · 抉择”Marker并读取该时间点的存档以返回选择前。

七、玩家互动设计

接受/拒绝主抉择

这是本场唯一改变章节路线的选择组,包含两个互斥选项:

  • “接受契约。”
  • “拒绝契约。”

选择后分别出现一次单选项确认:

  • 接受确认:“我明白契约成立后无法撤回。确认接受。”
  • 拒绝确认:“我明白交易将就此终止。确认拒绝。”

二次确认的作用是防止误触并明确后果,不应在确认页添加新的世界观信息。它采用单选项确认;玩家若尚未确认,或确认后尚未让 TextBlock 正常结束,仍可使用 Back 退出整个 TextBlock使本次选择、路线变量和进度恢复到进入前状态。

镜出现后的三个单选项

三个问题固定顺序出现,确保玩家一次游玩即可获得全部必要信息;它们不写入额外变量,也不改变剧情路线。

顺序 单选项意图 必须得到的信息 禁止提前揭示
1 “你到底是什么?” 镜是四维生命;当前几何体只是进入三维世界的投影 完整四维结构、神的身份、未来世界内容
2 “你会怎样保护我?” 只在生命或继续履约能力受到决定性威胁时介入 镜无条件解决危险、替曦完成任务或决定献祭
3 “你知道我还能不能回来吗?” 镜能观测时间,但不会透露未来 回归结论、默认时间线、能力将在异世界受限的具体规则

八、Yarn、TextBlock 与 StoryData 接口

建议 Yarn 文件与入口 Node

用途 Yarn 文件 入口 Node TextBlock ID
最终会面、路线抉择、接受签约、镜降临与问答 C0_ContractDecision.yarn C0_ContractDecision c0_contract_decision
拒绝后的完整彩蛋结局 C0_RefusalEnding.yarn C0_RefusalEnding c0_refusal_ending
接受后的公众披露 后续 C0-S04 确定 后续 C0-S04 确定 c0_public_disclosure

主 Yarn 可按实际台词长度拆分内部 Node但入口名保持稳定。建议内部 Node

  • C0_ContractDecision_AcceptConfirm
  • C0_ContractDecision_RefuseConfirm
  • C0_ContractDecision_KagamiArrival
  • C0_ContractDecision_AskIdentity
  • C0_ContractDecision_AskProtection
  • C0_ContractDecision_AskReturn

章节路线变量

使用一个 Int 变量表达互斥路线,不增加语义重复的 Bool

Key 默认值 含义
c0_contract_route 0 尚未作出选择
c0_contract_route 1 接受契约
c0_contract_route 2 拒绝契约

正式 Yarn 仅使用项目持久状态命令:

<<set_int "c0_contract_route" 1>>

或:

<<set_int "c0_contract_route" 2>>

不得使用 <<declare>><<set $...>>$variable。路线值应在二次确认之后、该路线叙事继续之前写入;只有 TextBlock 正常结束才提交。

Block 条件与布局

TextBlock Unlock Condition Forbidden Condition 布局
c0_contract_decision 承接 C0-S02 完成状态 抉择列,gridRow = 0Important
c0_public_disclosure c0_contract_route == 1 c0_contract_route == 2 下一列,gridRow = 0,与拒绝彩蛋同列
c0_refusal_ending c0_contract_route == 2 c0_contract_route == 1 下一列,分支行,与 C0-S04 同列

c0_public_disclosurec0_refusal_ending 不汇合:前者继续 Chapter 0 主线,后者是当前路线终点。两者虽在同一列,仍必须分别连接自 c0_contract_decision,并由相反的 UnlockForbidden 条件控制。

拒绝彩蛋与 C0-S04 不应登记为同一“互斥终点验证组”,因为 C0-S04 不是章节终点;互斥关系已经由路线变量与两个 Block 的条件完整表达。

九、Timeline Marker 与回滚语义

Marker 配置

字段 建议值
markerId c0_contract_decision_checkpoint
anchorBlockId c0_contract_decision
显示文本 第五日 · 抉择
labelKey story_c0_marker_contract_decision
progressValue 待 Chapter 0 全量 StoryData 排布后统一确定;本阶段不虚构百分比

该 Important TextBlock 的 checkpoint 保存“进入抉择以前”的章节快照。玩家从拒绝彩蛋回滚后:

  • c0_contract_decision 恢复为 Current
  • c0_contract_route 恢复为 0
  • 接受/拒绝选项记忆被清除;
  • c0_refusal_ending 的完成状态被清除;
  • c0_public_disclosurec0_refusal_ending 重新按未选择状态计算;
  • 歌曲成绩、Settings、全局 Unlock Key 与其它章节不受影响。

“拒绝不保存”的正式解释

拒绝路线会像其它正常 TextBlock 一样暂存为当前章节的当前结局,否则系统无法开放拒绝彩蛋、禁用接受后续或让玩家离开后继续读取该结局。它不会形成永久锁死:玩家可通过“第五日 · 抉择”Marker 读取进入决定前的 checkpoint完整撤销路线变量、选项记忆与拒绝 TextBlock 完成状态。

因此,正式语义是“拒绝结局可被完整回滚,不作为不可撤销的永久结局”,而不是“运行期间完全不写入任何存档记录”。

十、Localization Key 与 MessageBox

建议使用以下 Unity Localization Key正式建表仍需在 StoryData本地化集成阶段完成

用途 Key 简体中文源文本
Timeline Marker story_c0_marker_contract_decision 第五日 · 抉择
拒绝回滚提示标题 story_c0_refusal_rewind_title 旅程在这里结束
拒绝回滚提示正文 story_c0_refusal_rewind_body 若希望返回选择之前,请点击时间轴上的“第五日 · 抉择”Marker并读取该时间点的存档。

拒绝彩蛋 Yarn 在结尾使用项目命令:

<<show_message "story_c0_refusal_rewind_title" "story_c0_refusal_rewind_body" "Message">>

show_message 必须等待拒绝 TextBlock 正常提交后显示;若玩家中途退出,不得留下孤立弹窗。

十一、情绪转折

  1. 没有更多答案可等:五日过去,房间和问题都与第一次会面相似,但选择已经无法继续推迟。
  2. 程序停止替人说话:徐允雅完成核对,程衡不作最后动员,成年人真正把沉默留给曦。
  3. 玩家承担选择:接受与拒绝都由玩家亲手确认,不由旁白替曦决定。
  4. 接受不是恐惧消失:曦带着害怕签约,选择的可信度来自她仍然知道自己在害怕。
  5. 不可理解之物第一次到来:镜的降临把此前停留在资料中的高维存在变成可见事实,推动玩家继续阅读。
  6. 镜保持距离:它准确回答职责,却拒绝提供未来;序章不提前兑现它与曦的情感成长。
  7. 拒绝不是即时惩罚:另一条路线让生活继续,也让唯一可能性安静关闭。
  8. 回滚属于玩家而非角色Marker 提示是叙事系统层的交互说明,不让故事内角色谈论存档或时间轴。

十二、连续性与 OOC 检查清单

  • 曦在最终决定前仍表现出十七岁普通人的紧张与迟疑,没有突然成为成熟政治演说家。
  • 程衡与徐允雅没有以星联未来、唯一候选人或父母情感向曦施压。
  • 星联文件与神的契约被清楚区分;文件本身不包含飞升答案。
  • 神没有形体、声音或新增说明,只确认契约是否成立。
  • 镜的名字来自自我命名,并由它允许三维生命使用。
  • 镜保持上位者距离,不争论、不认错、不被说服,也不表现对曦的任务外感情。
  • 镜承认能观测时间,却不透露未来;不在本场说明进入异世界后的具体限制。
  • 镜没有宣称自己能判断献祭是否合格,也没有提前解释献祭后果。
  • 接受后仍有十至十五周准备窗口,母星旅行包含在该窗口内。
  • 拒绝不会导致即时灾难、家庭惩罚、公众猎巫或替代候选人。
  • C0-S04 与拒绝彩蛋处于同列不同路线行,且任何时刻只有一者可进入。
  • 拒绝结局的 Marker 提示只出现在 TextBlock 正常提交之后。
  • 正式 Yarn 人物台词使用 ASCII 英文冒号,旁白使用第三人称,避免无必要的过短换行。

十三、后续接口

  • 用户批准本场景卡后,先编写 C0_ContractDecision.yarn 初稿,再单独编写 C0_RefusalEnding.yarn 初稿,便于分别审阅主线角色表演与彩蛋余味。
  • 两份 Yarn 获批前,不配置 StoryData Block、Marker、Localization Table 或人物/镜的视觉资源。
  • 接受路线下一场为 C0-S04 公众披露:公开全部当时已知事实,让曦成为星联公众眼中的英雄,并建立十至十五周告别与出发准备期。
  • C0-S04 不重复镜的完整首次介绍,只表现它开始公开陪同曦,以及社会如何面对一个不主动融入的高维观察者。