This commit is contained in:
SoulliesOfficial
2026-07-24 03:43:11 -04:00
parent 48e7364981
commit fe00ecfcc7
90 changed files with 9610 additions and 461 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,105 @@
# Chapter 0 场景卡C0-S01 私密会面
> 状态:**已确认设定的场景设计稿,非 Yarn 台本**
> 用途:锁定开场场景的叙事功能、已知事实、角色表演与玩家信息顺序。
> 不在本稿中引入 StoryData、Yarn Node、变量或 Localization Key待用户批准正式台词后再进入 Yarn 制作。
## 一、场景定位
| 项目 | 内容 |
|---|---|
| 场景编号 | `C0-S01` |
| 暂定名称 | 私密会面 |
| 时间 | 共同梦境发生后的第十七日;曦尚未签约 |
| 地点 | 科研居住世界`泽尼斯`的公共事务中心顶层会面室 |
| 出场角色 | 曦、总统程衡、研究代表徐允雅(서윤아 / Seo Yuna |
| 玩家状态 | 刚从学校的普通实践课程中被以“家庭事务”名义通知离开;尚不知道自己是唯一候选人 |
| 主线结果 | 曦带走资料,选择先与父母商谈;不在本场签约 |
## 二、已确认的前情
### 共同梦境与通信密钥
- 十七天前,分布在不同可居住世界、不同研究领域的多位研究者做了同一场梦。
- 梦中没有神的形体、声音、宗教命令或飞升理论。所有人置身同一间无门窗的深色观测室,中央悬浮一枚持续重排、却能被完整复写的通信密钥。
- 醒来后,所有人都能独立复写同一组密钥;徐允雅参与验证,确认它不来自已知设备、组织或可复现的心理干预。
- 研究团队按梦中给出的构建步骤制作隔离接收器。密钥启动通信渠道后,神才以无实体的方式提出交易。
- 神未透露飞升理论、科技锁的具体原理、目标世界、献祭形式或契约完成后的安排;它仅承诺:若契约成立,将解除阻碍星联抵达第十等级的科技锁。
### 已知政治与文明背景
- 当前唯一文明的正式称呼为**联星共同体**,日常简称**星联**。
- `阿斯特里亚`是星联母星,保存大量历史与文化遗产;`泽尼斯`是以科研、制造与居住为主的专业世界,亦是曦与父母的生活所在地。
- 星联在第三维度已达到文明等级 8能够跨星系维持多颗都市世界其难题不是短期灾难而是三维宇宙极遥远却不可避免的终局。
- 神指定曦为唯一候选人。科学界、政府与徐允雅均未发现这一指定与她的能力、出身、家族或任何可验证特质有关。
## 三、空间与演出基调
会面室不应设计成冷峻审讯室,也不应是奢华权力场所。透明外墙可看见泽尼斯傍晚的研究设施、公共列车与普通居民区;桌面上有温热饮料、可由曦随时关闭的录音装置,以及一册纸质资料副本。
- **程衡**不坐在主位或桌后,而坐在与曦平视的圆桌旁。
- **徐允雅**先说明自己的双重职责:研究接触事实,也监督知情同意程序。
- 场景的“先进文明”不通过巨量名词堆砌表现,而通过可退出的程序、清楚的资料边界和对普通生活的保留表现。
- 镜在本场不出现;它仅在曦正式签约后被神召来。
## 四、角色在本场的目标与表演
### 曦
- **表层目标**:弄清为什么自己会被叫来,以及成年人究竟希望她做什么。
- **深层状态**:先以好奇和警惕保护自己,得知唯一候选人的事实后才真正感到恐惧。
- **表演节奏**:不应一开始就悲壮;她先尝试用普通、直接的问题把局面拉回可理解的范围。
- **场末行动**:不作答应或拒绝,只要求带走全部资料并先与父母谈。
### 程衡
- **场景目标**:向曦如实解释星联为何珍视交易,同时绝不将集体需要转化为个人义务。
- **关键表演**:谈及三维宇宙终局时不煽情;谈及曦可能无法归来时不回避沉默。
- **不能做的事**:不说“你是唯一希望”“为了所有人”“我们相信你一定能做到”;不以总统身份暗示期待。
- **关键态度**:他愿意承担文明失去机会的后果,而不愿让曦替文明承担被迫答应的代价。
### 徐允雅
- **场景目标**:区分已知、未知与不可保证的部分;确认曦理解自己有真实的拒绝权。
- **关键表演**:清晰、耐心、不过度安慰。她承认通信密钥足以证明“有联系”,不足以证明“交易值得接受”。
- **制度权力**:可暂停签约程序、要求提供资料副本、禁止在曦签约前向公众披露候选人身份;但不能替曦判断,也不能迫使神补充信息。
- **不能做的事**:不把未知的契约解释得无害,不因为自身希望交易成功而诱导曦。
## 五、信息揭示顺序
1. **退出权先于议题**:徐允雅说明曦随时可离开、暂停、联系父母或要求第三方意见。
2. **共同梦境与通信密钥**:徐允雅说明验证过程,证明这不是单一研究机构制造的骗局。
3. **交易收益**:程衡说明神承诺解除科技锁,使星联有机会从等级 8 继续走向第十等级与第四维度。
4. **文明动机**:程衡解释这是应对三维宇宙终局的长期选择,不是明日会降临的灾难。
5. **唯一候选人**:徐允雅说明神随机指定了唯一的十七岁少女,候选人就是曦。
6. **唯一已知规则**:程衡说明:曦须在高维陪同者陪伴下前往多个世界,并在离开每个世界前献上一件她真诚认为最珍贵的事物。
7. **未知边界**:徐允雅明确说明,星联不知道献祭形式、对象、后果、目标世界状况、任务结束后的安排,以及曦能否归来。
8. **拒绝权与时间**:徐允雅说明拒绝将使交易终止,但无人会被替换或受罚;若签约,神允许十至十五周告别与准备期。
9. **本场收束**:曦不作承诺,只决定带走资料、先告诉父母,并要求在作出决定前了解陪同者的性质。
## 六、可选互动与对话问题
本场为线性主线,不设置会改变后续内容的分支。玩家可在信息揭示中选择提问顺序;所有关键答案最终都必须被听到。
| 提问方向 | 必须给出的答案 | 禁止提前给出的信息 |
|---|---|---|
| “为什么是我?” | 神随机指定唯一候选人;目前没有可验证原因 | 曦有特殊血统、命定身份或神的真实目的 |
| “通信密钥证明了什么?” | 证明存在能与星联建立联系的未知对象 | 飞升理论或科技锁原理 |
| “我要做什么?” | 每个世界离开前献上一件真诚认为最珍贵的事物 | 献祭对象范围、抹除机制、干涉/不干涉结构 |
| “我能回来吗?” | 神拒绝回答;星联无法保证 | 任何回归预言或镜的时间线信息 |
| “拒绝会怎样?” | 交易终止,星联继续原有研究,没有替代候选人与处罚 | 文明立即毁灭或曦家人遭受后果 |
## 七、情绪转折
1. **普通生活被打断**:曦从学校离开,仍以为这是严肃但可解释的公共事务。
2. **理性建立可信度**:通信密钥与验证过程使“神”不再像传闻。
3. **宏大问题落在个人身上**:文明飞升与宇宙终局被说明后,唯一候选人的身份揭露。
4. **未知比任务更沉重**:曦发现成年人并没有隐藏答案,而是确实没有答案。
5. **选择权被还给曦**:程衡和徐允雅都不要求当场答复。
6. **克制收束**:曦带着资料离开,窗外仍是正常运行的泽尼斯;她将先回到家里。
## 八、后续接口
- `C0-S02`:曦与父母沟通、阅读资料、度过五日考虑期。
- `C0-S03`:第二次会面;玩家选择接受或拒绝。拒绝进入可由抉择 Marker 完整回滚的独立彩蛋 TextBlock接受后镜出现。
- 待定内容:父母姓名、外观与具体技术岗位;曦在泽尼斯学校的日常实践项目名称;签约确认文本的最终措辞。

View File

@@ -0,0 +1,158 @@
# Chapter 0 场景卡C0-S02 家庭商谈与五日考虑期
> 状态:**已确认设定的场景设计稿,非 Yarn 台本**
> 用途:锁定曦将契约告知父母、家庭共同阅读资料以及五日考虑期的叙事功能、角色表演与玩家互动。
> 不在本稿中确定接受或拒绝路线,不引入 StoryData、章节变量或 Localization Key待用户批准正式台词后再进入 Yarn 制作。
## 一、场景定位
| 项目 | 内容 |
|---|---|
| 场景编号 | `C0-S02` |
| 暂定名称 | 家庭商谈与五日考虑期 |
| 时间 | `C0-S01` 私密会面当晚起,至五日考虑期限的最后一日上午;曦尚未签约 |
| 主要地点 | 科研居住世界`泽尼斯`的曦家;场末抵达公共事务中心的陪同者等候区 |
| 出场角色 | 曦、父亲直人Naoto、母亲真帆Maho |
| 玩家状态 | 已知星联与神的交易、唯一候选人身份和全部已公开未知事项,但尚未将这些事实转化为对自己与家人的现实后果 |
| 主线结果 | 曦在父母陪同下返回公共事务中心,准备亲自给出答案;本场不确定接受或拒绝 |
## 二、已确认的前情与家庭设定
### 契约与保密边界
- 曦是神指定的唯一候选人;拒绝不会产生替代人选、处罚或对家人的追索,但星联会失去解除科技锁的机会。
- 已知规则只有一条:曦若签约,须在高维存在陪同下前往多个世界,并在离开每个世界前献上一件自己真诚认为是当地最珍贵的事物。
- 星联不知道献祭的具体形式、对象与后果,不知道目标世界状况、任务期限和曦能否归来,也不能把未知包装成保证。
- 曦拥有五日考虑时间。五日内没有默认同意;她可随时终止程序、查阅资料或寻求独立意见。
- 候选人身份在签约前不向公众公开。程衡、徐允雅及研究团队不会在家庭空间中进行劝说或现场监督。
- 镜尚未出现;它只会在曦正式签约后被神召来。
### 家庭基本设定
- 曦是独生女,与父母生活在`泽尼斯`。一家人生活平凡、富足、幸福,没有家庭秘密或长期矛盾。
- 父亲名为**直人Naoto**44 岁,是城市基础设施维护技术员,负责住宅区能源、运输或环境系统的日常维护。
- 母亲名为**真帆Maho**42 岁,是科研设备验证技术员,负责研究装置投入使用前的校准、故障复核与安全检查。
- 二人能够理解资料中的验证程序,但不掌握高维理论,也没有接触绝密项目的特殊权限。
- 正式 Yarn 台本以 `父亲``母亲`作为 Speaker除确有必要的正式介绍外尽量不在正文中反复使用名字。
## 三、空间、时间与演出基调
### 家庭住宅
曦家应呈现“先进但有人长期生活”的状态,而不是未来科技展厅。
- 自动厨房、环境调节与家庭终端已经高度成熟,但餐桌上可以留着直人没有收好的维修工具,墙面也保留曦小时候画错的纸质星图或旧照片。
- 住宅宽裕舒适但并非豪宅。窗外能够看到`泽尼斯`的运输线、实验塔与住宅照明,继续强化这里是功能明确的科研居住世界。
- 会面当晚的晚餐已经准备好。食物可以保持温度,但一家人无法像平时一样自然地开始吃饭;技术能够保住温度,不能替他们恢复日常。
- 政府人员、研究人员与媒体均不进入住宅。若需要核验资料,只通过关闭摄像与公开旁听功能的安全终端完成。
### 时间推进
- 严格按照时间顺序叙事,不使用倒叙或把五日内容交叉剪辑。
- 主要篇幅放在私密会面当晚的第一次家庭谈话。
- 中段以少量明确的时间提示推进:次日共同阅读资料、期限前一晚刻意维持的普通晚餐、最后一日上午出发。
- 不逐日记录全部活动。时间跳转之间必须说明已经过去多久,以及角色对同一问题的态度发生了什么变化。
### 文本节奏
- 旁白保持第三人称,以曦为主要感知视角。
- 人物台词使用 ASCII 英文冒号,例如 `父亲: 台词`
- 换行意味着一次新的对话推进。除关键打击、情绪断裂或有意留白外,避免让五六个字的短句单独占据一次玩家操作。
- 也不把多个完整情绪转折强行塞进同一行;每条可见文本应承载一个完整、清楚的表达单位。
## 四、角色在本场的目标与表演
### 曦
- **表层目标**:把资料交给父母,说明发生了什么,并希望他们帮助自己找到答案。
- **真实状态**:仍处于冲击之中。她会试图像复述学校报告一样按顺序说明,借助事实避免直接面对“可能永别”。
- **核心矛盾**:她害怕离开,也确实对未知世界和高维存在怀有好奇;她无法忽视星联唯一的机会,却不确定责任感是否已经等同于自己的真实意愿。
- **不成熟但真实的愿望**:她有一部分希望父母明确禁止自己离开,从而把选择责任交给他们;她能够在谈话中逐渐意识到这一点。
- **关键表演**:忘记坐下、重复整理文件、从容易说明的事实讲起、在说到可能无法回来时停顿;不是从头到尾进行冷静辩论。
- **场末行动**:不宣布接受或拒绝,只决定按约返回第二次会面并亲自给出答案。
### 父亲直人
- **表层目标**:确认曦是否安全、是否遭到威胁,以及拒绝是否真的不会牵连家人。
- **情绪方式**:比真帆更愿意直接承认恐惧。他可以在得知曦可能无法回来时脱口而出“那就不要去”。
- **边界**:这句话必须被明确为一个父亲的真实愿望,而不是家长命令。他不能利用亲情要求曦证明孝顺,也不能把自己的舍不得变成曦必须解决的问题。
- **后续连续性**:他最终没有“要求曦撤回”,因此不会与后续镜对父母行为的判断冲突。
- **日常表现**:紧张时会寻找可以实际处理的事项,例如确认资料页码、检查出行安排或把已经正常工作的家用设备重新检查一遍。
### 母亲真帆
- **表层目标**:核验资料是否完整,确认政府是否对未成年人施压,并寻找契约中可能遗漏的退出条件。
- **情绪方式**:越害怕越倾向于阅读、提问和反复确认。她的冷静是维持行动能力的方式,不代表她比直人更愿意让曦离开。
- **关键追问**:为什么政府先单独与十七岁的曦谈话;为什么父母没有先被叫到现场;所谓自愿是否真的允许拒绝。
- **必要回答**:曦说明徐允雅在会面开始时已经提供联系父母、暂停和离开的权利,是曦自己决定先把全部内容听完再回家说明。
- **边界**:真帆不以技术人员身份假装能够补全未知,也不把家庭谈话变成第二次知情同意审查。
### 父母共同边界
- 他们不需要从第一句话开始就表现得完美、平静或高度概念化。
- 他们可以哭、沉默、说出未经整理的愿望,也可以在彼此提醒后重新组织语言。
- 二人不能替曦签约或拒绝,不能以“我们都是为你好”终止讨论,也不能把星联未来全部压到女儿身上。
- 尊重不等于毫无倾向:他们可以诚实希望曦留下,同时承认最终决定不属于自己。
## 五、场景推进顺序
1. **回到日常空间**:曦回家时,晚餐和住宅环境都与往常相同;她却无法自然回应父母关于学校或晚餐的问题。
2. **政府尚未抢先说明**:曦确认父母还不知道详情。她主动将纸质资料放到餐桌上,说明今天见到了程衡和徐允雅。
3. **先说事实,避开后果**:曦从共同梦境、通信密钥和唯一候选人讲起,语气近似复述报告。
4. **父母质疑程序**:真帆追问为什么先单独找十七岁的曦。曦解释自己当时拥有联系父母与退出的权利,是她选择先听完。
5. **玩家说出最难的事实**:玩家推进“告诉他们,这次离开可能没有返程”。曦第一次无法维持报告式说明。
6. **父母出现真实反应**:直人脱口说出不希望她去;真帆继续寻找文件中不存在的保证。两人都不应迅速给出成熟总结。
7. **确认拒绝后果**:父母得知拒绝不会处罚任何人,却会使星联失去唯一机会。家庭因此无法把问题简化为“安全地留下”。
8. **曦试图转交选择**:玩家推进“问他们,希望自己怎样选择”。父母分别说出愿望,却拒绝把愿望伪装成正确答案。
9. **第一次谈话无结论**:谈话持续到很晚。一家人没有完成决定,只约定先把资料全部读完,第二天照常起床。
10. **五日按顺序推进**:资料被读了多次,问题清单不断增加,却没有获得新的关键答案;家庭生活仍在继续。
11. **期限前一晚的普通晚餐**:三个人暂时不谈契约,尝试完成一顿正常晚餐。平静不是问题消失,而是他们不愿让五天只剩下同一场争论。
12. **承认仍然未知**:玩家推进“承认自己还没有答案”。曦不假装已经坚定,只确认自己愿意亲自走进第二次会面。
13. **前往公共事务中心**:最后一日上午,父母陪曦抵达等候区。曦主动选择独自进入最终会面室,避免把决定变成对父母表情的回应。
14. **决定前收束**:父母不问“想好了吗”,只让曦在会面结束后回来找他们。场景在最终房门开启时结束。
## 六、玩家互动与 Yarn 约束
本场为线性主线。三次互动按固定顺序出现,每次只有一个选项,不写入章节变量,也不改变后续 Node 路线。
| 互动位置 | 单选项文本 | 叙事作用 |
|---|---|---|
| 第一次家庭说明 | “告诉他们,这次离开可能没有返程。” | 让玩家亲手推进曦最难说出口的事实 |
| 父母表达恐惧后 | “问他们,希望自己怎样选择。” | 表现曦试图把决定暂时交给父母 |
| 五日期限将至 | “承认自己还没有答案。” | 让曦重新承担选择,同时不提前锁定路线 |
建议 Yarn 文件与 Node 命名:
- 文件:`C0_HomeDeliberation.yarn`
- 入口 Node`C0_HomeDeliberation`
- 内部 Node`C0_HomeDeliberation_TellParents`
- 内部 Node`C0_HomeDeliberation_AskThem`
- 内部 Node`C0_HomeDeliberation_FifthDay`
不得在本场使用:
- `<<declare>>``<<set $...>>``$variable`
- 接受/拒绝的永久变量;
- 献祭对象范围、抹除机制、时间线基线、干涉/不干涉结构;
- 镜的形态、人格、时间观测能力或对任务结果的判断;
- 任何暗示正式路线必然接受的台词。
## 七、情绪转折
1. **熟悉的家变得难以进入**:曦回到最安全的地方,却必须亲手把危险带进来。
2. **报告式说明暂时保护她**:只要仍在讲验证过程,她就不必说“我可能回不来”。
3. **永别第一次成为家庭事实**:玩家推进关键句后,契约不再只是文明议题。
4. **父母不完美但不越界**:直人希望她留下,真帆试图找到不存在的保证;二人都没有因此夺走她的决定。
5. **曦试图逃避选择责任**:她希望父母替自己说出最终答案,却发现被尊重也会带来压力。
6. **时间没有自动产生答案**:五天让情绪沉淀,却没有让未知消失。
7. **普通生活重新进入画面**:期限前一晚的晚餐说明这个家庭不愿让分别提前吞掉所有相处时间。
8. **带着未完成感前进**:曦仍然害怕,也仍然不确定,但她愿意亲自走进作出决定的房间。
## 八、后续接口与连续性检查
- `C0-S03`:第二次会面。徐允雅逐项确认知情状态,玩家正式选择接受或拒绝。
- 拒绝进入独立彩蛋 TextBlock该路线会暂存为当前结局但可由“第五日 · 抉择”Marker 完整回滚,父母在等候区接她,不将拒绝视为失败。
- 接受后镜首次出现,契约进入不可撤回的十至十五周履约窗口;父母在公众知情以前仍是最先知道结果的人。
- 后续故乡告别场景中,父母“没有要求曦撤回”的说法应理解为他们没有以家长身份强迫、威胁或设置条件,不否定直人在本场诚实表达过希望她留下。
- 后续不得把真帆的资料核验写成她已经掌握献祭规则,也不得让直人的基础设施经验突然扩展成高维技术知识。
-`C0-S02` Yarn 台本确认后,再锁定家庭住宅的具体视觉资产、父母肖像与 `CharacterRegistry` 条目。

View File

@@ -0,0 +1,306 @@
# 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. 接受路线:签约与镜首次出现
7. **二次确认**:系统用一个明确选项确认“接受后不可撤回”;曦可以在确认前表现紧张,但不重新展开整场争论。
8. **星联记录选择**:徐允雅完成星联侧记录,通信装置将曦的答案传递给神。神没有声音或形体。
9. **契约成立**:装置只给出无法误读的成立结果。程衡以克制方式确认,星联从这一刻承担公开、告别与出发准备工作。
10. **镜面异常**:房间内反射同时偏离现实角度,镜以不断重组的万华镜形态进入三维空间。
11. **镜自我说明**:镜先宣布履约窗口开始计算,再允许在场者称它为镜;它只说明自己负责陪同、观察,以及在曦无法继续履约的决定性危险中提供保护。
12. **问题一——“你是什么?”**:玩家以单选项推进。镜明确自己是四维生命及当前形态只是投影,但拒绝用会破坏三维认知的知识完整解释四维结构。
13. **问题二——“你会怎样保护我?”**:镜说明保护不是替曦消除一切困难;只有生命或履约能力受到决定性威胁时才会介入。
14. **问题三——“你知道我能不能回来吗?”**:镜承认自己能够观测时间,却明确拒绝透露未来。它不撒谎、不故作谜语,也不以“为了你好”包装拒答。
15. **父母见到镜**:会面结束前,父母获准进入或在门口看见镜。镜不评价他们的选择,也不提供安慰;它仅确认履约窗口内曦仍可与家人正常生活和准备。
16. **接受路线收束**:曦与父母离开会面室,镜公开陪同。下一 TextBlock 进入公众披露,而非立刻开始母星旅行。
### C. 拒绝入口:由抉择 TextBlock 转入独立彩蛋
7. **二次确认**:系统明确说明拒绝将使交易终止,神不会指定第二位候选人;玩家确认拒绝。
8. **交易终止**:徐允雅关闭通信程序,程衡正式接收决定。二人都不要求曦解释或安慰星联。
9. **回到父母身边**:曦走出会面室。父母不问她是否让文明失望,也不把拒绝包装成胜利;一家人先一起离开。
10. **抉择 TextBlock 正常结束**:写入 `c0_contract_route = 2`,从而开放独立拒绝彩蛋 TextBlock并将接受后续 `C0-S04` 置为 `Forbidden`
### D. 独立拒绝彩蛋 TextBlock
11. **绝密程序终止**:拒绝发生在候选人身份公开以前,曦的身份继续受到保护。本彩蛋不额外决定星联是否会在未来公布这场未成立的交易,也不虚构公众已经知情后的反应。
12. **文明继续前进**:研究没有因为失去唯一捷径而停止。星联继续探索高维理论,能够处理三维世界中的长期工程,却始终无法自行解除科技锁。
13. **曦回到平静生活**:她继续完成学业,与父母生活,后来也可从事自己喜欢的工作。她不必终身接受道德审判,也不会因为拒绝自动变成悲惨人物。
14. **遥远终局保持遥远**:文明的停滞与三维宇宙最终毁灭是极其遥远的必然结局,不在曦的一生中以灾难蒙太奇惩罚她。结局的余味来自“一个可能性永远关闭”,而不是即时毁灭。
15. **彩蛋收束**:曦偶尔会想起那扇门后的选择,但文本不替她宣判后悔或庆幸。结尾回到一个具体、温暖、仍在继续的普通日常。
16. **回滚提示**:彩蛋 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 仅使用项目持久状态命令:
```yarn
<<set_int "c0_contract_route" 1>>
```
或:
```yarn
<<set_int "c0_contract_route" 2>>
```
不得使用 `<<declare>>``<<set $...>>``$variable`。路线值应在二次确认之后、该路线叙事继续之前写入;只有 TextBlock 正常结束才提交。
### Block 条件与布局
| TextBlock | Unlock Condition | Forbidden Condition | 布局 |
|---|---|---|---|
| `c0_contract_decision` | 承接 `C0-S02` 完成状态 | 无 | 抉择列,`gridRow = 0`Important |
| `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_disclosure``c0_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_disclosure``c0_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 在结尾使用项目命令:
```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 不重复镜的完整首次介绍,只表现它开始公开陪同曦,以及社会如何面对一个不主动融入的高维观察者。

View File

@@ -0,0 +1,247 @@
# Chapter 0 场景卡C0-S04 向群星公开
> 状态:**已确认前置信息的场景设计稿,非 Yarn 台本**
> 用途:锁定契约成立后的全星联公共说明、公众首次看见曦与镜、英雄身份形成,以及曦从匿名学生转变为公共人物的叙事过程。
> 本稿允许确定 Yarn 文件、Node、TextBlock 与 Localization Key 的建议命名;不在本阶段修改 StoryData、Localization Table、Prefab、C# 或正式 Yarn 台词。
## 一、场景定位
| 项目 | 内容 |
|---|---|
| 场景编号 | `C0-S04` |
| 暂定名称 | 向群星公开 |
| 时间 | 契约成立后的第二日上午;十至十五周履约窗口已经开始 |
| 主要地点 | `泽尼斯`公共事务中心的小型公共会堂及会堂外部公共区域 |
| 出场角色 | 曦、总统程衡、研究代表徐允雅、镜;父亲与母亲在镜头外陪同;公众通过实时公共频道参与 |
| 玩家状态 | 已选择接受契约,已经认识镜并理解其有限职责,但尚未经历身份向全星联公开后的社会反应 |
| 核心互动 | 三个固定顺序的单选项问题:自愿性、原有生活、公众能够提供的帮助 |
| 主线结果 | 星联公众获知当时的全部真相;曦成为公共意义上的英雄,获得鲜花、掌声与祝福,同时失去原有匿名生活 |
## 二、设计分类与范围
本场属于既有 Chapter 0 主线中的 **Addition**:它不增加新的剧情路线或变量,只把接受路线已经发生的契约事实公开,并建立后续告别、母星旅行和出发准备的社会背景。
### 本场包含
- 契约成立后的第一场全星联实时公共说明;
- 星联对曦自愿选择、未知风险和个人边界的正式说明;
- 公众首次看见曦与镜;
- 镜用极少量发言确认身份和职责;
- 三个顺序固定、不会改变路线的公众问题;
- 曦第一次以自己的话回应全星联;
- 从沉默、理解到掌声、鲜花与大量祝福的公众反应;
- 程衡公开宣布针对曦与家人的隐私保护规则;
- 曦意识到自己仍能回家生活,却已经不再是匿名学生。
### 本场不包含
- 母星`阿斯特里亚`的正式旅行;
- 海底游览区、地下都市、大图书馆、天文台或恒星边缘;
- 献祭对象范围、抹除机制、干涉/不干涉路线和时间线基线;
- 神的形态、声音、动机或科技锁原理;
- 镜展示力量、接受实验、评价星联文明或回应无边界采访;
- 曦对公众承诺“一定成功”或“一定归来”;
- 新的具名配角;重要的新角色留给母星旅行阶段。
## 三、公开范围:当时的全部已知事实
“公众知道全部真相”指星联必须如实公布当时已经确认的内容,也必须同时公布未知边界。正式台本不得为了制造乐观气氛删去风险,也不得提前透露后续冒险才会发现的规则。
### 必须公开
1. 多名研究者经历相同梦境,并根据梦中通信密钥建立了不可归入已知技术的联系。
2. 接触对象被称作“神”,没有向星联展示实体,也没有提供飞升理论。
3. 神承诺在契约成立后解除阻碍星联继续研究第四维度的科技锁。
4. 神指定十七岁的曦为唯一候选人,没有可验证的指定理由,也不存在第二位候选人。
5. 曦拥有真实拒绝权,经历完整知情同意程序后自愿接受;政府、研究机构和家人均不能替她决定。
6. 唯一明确的履约规则:曦需要在高维陪同者陪伴下前往多个世界,并在离开每个世界以前,献上一件自己真诚认为是当地最珍贵的事物。
7. 星联不知道世界数量、旅程期限、献祭形式、对象范围、具体后果或曦能否归来。
8. 契约已经成立且不可撤回;神允许十至十五周用于告别、旅行与出发准备。
9. 镜是契约安排的四维陪同者、观察者与必要保护者;它不会替曦行动或作出献祭选择。
### 禁止公开为“事实”
- 献祭会将目标从世界中抹除;
- 人、记忆、历史、概念或世界法则都可成为祭品;
- 干涉/不干涉对应不同结局;
- 镜进入异世界后将受到具体的时间线观测限制;
- 镜能够在献祭完成后观测哪些未来;
- 神来自第六维度,或“剧场”与现实玩家/制作者的关系;
- 曦必然成功、必然归来,或星联必然完成飞升。
## 四、空间与视觉基调
### 小型公共会堂
公共说明不应被设计成庆典、加冕或军事动员。会堂规模克制,中央是与普通公共事务说明相同高度的平台;程衡、徐允雅与曦使用同一水平线,不设置把曦单独托举到高处的英雄席位。
- 背景不使用夸张的星联旗帜阵列、倒计时或“文明救世主”标语。
- 会堂没有记者拥挤围堵。公共频道接收全星联问题,由独立系统去除骚扰、重复与私人信息,再按公开规则呈现。
- 父母在平台侧后方、镜头外的可见位置陪同。曦回头时能够看见他们,但公众画面不把他们当作宣传素材。
- 曦穿整洁的日常服装或校服,不使用礼服、制服、王冠、勋章或专为使命设计的英雄服装。
- 镜以完整的万华镜投影公开出现,悬停在曦侧后方。它不缩成人形迎合观众,也不扩大形体制造威慑。
### 公共反应的视觉层次
1. 公共说明开始时,会堂外没有提前摆满鲜花,也没有预录掌声。
2. 公布唯一候选人和未知风险后,公共频道首先出现明显的停顿;这段沉默代表公众真正理解曦可能无法归来。
3. 曦完成个人回应后,会堂内才出现第一轮掌声。
4. 随着直播传播,普通公民、学生、研究者和不同世界的居民开始发送祝福。
5. 鲜花从公共说明结束以后逐渐送达,表现为社会自发反应,而不是政府预先布置的仪式道具。
## 五、角色目标与表演边界
### 曦
- **表层目标**:在不背诵政治稿件的情况下,让公众知道接受契约的人真实存在,也仍然害怕未知。
- **真实状态**:面对整个星联比面对神的通信装置更具体、更令人紧张。她会担心说错话,也会对所有人突然知道自己的名字感到不适应。
- **外在表现**:上台前反复确认衣领、询问是否必须直视镜头、在公共频道开始计数时忘记原本准备好的第一句话。
- **个人回应**:不承诺成功或归来,不说“为了所有人牺牲自己”。她可以承认自己爱家园、对未知世界好奇,也可以承认仍然害怕。
- **对公众的请求**:希望大家不要把十几周准备期全部变成告别仪式;允许她继续上学、与父母吃饭,并真正完成一次母星旅行。
- **场末变化**:她仍能回家,却第一次意识到原有的匿名生活已经结束。
### 程衡
- **场景目标**:代表星联公开事实和政府责任,而不是把曦包装成政治象征。
- **必要说明**:星联珍视交易带来的机会,但曦的接受不是国家命令;文明的希望不能转化为公众对个人的无限索取。
- **制度承诺**:禁止跟踪、骚扰或私下接触曦及其家人;采访、研究、纪念活动和公开邀请必须经过本人同意。
- **语言边界**:不称曦为“唯一救世主”,不煽动全体公民要求她成功,不以掌声迫使她作出更多承诺。
### 徐允雅
- **场景目标**:公开验证知情同意过程,区分事实、推测与未知,防止公共传播把复杂契约压缩成英雄神话。
- **必要说明**:她可以公开自己同时承担研究验证与程序监督职责,并明确说明所有已知风险已经向曦及父母提供。
- **问题职责**:回答“曦是否完全自愿”,并在公众提问偏离已知边界时指出星联没有答案。
- **语言边界**:不把程序正确等同于契约安全,不宣称未知风险已经受到控制。
### 镜
- **场景目标**:确认自己是契约安排的陪同者及必要保护者,随后保持观察。
- **公开发言量**:一至两段完整回答,足以让公众确认它不是影像或星联制造的装置。
- **命名**:向公众重复“你们可以称呼我为镜”,说明这是它为自己选择并允许三维生命使用的称谓。
- **态度**:平和、准确、保持上位者距离;不因为数以亿计的观众而调整语气,也不把掌声视为需要回应的礼节。
- **拒答边界**:不透露未来,不说明任务细节,不展示能力,也不因为公众敬畏而变得友善或傲慢表演化。
### 父亲与母亲
- **位置**:全程在镜头外陪同,必要时帮助曦在上台前稳定情绪,但不参与正式发言。
- **边界**:不被介绍为“培养英雄的父母”,不被要求对全星联表态,也不在公众面前压抑所有恐惧。
- **场末作用**:公开说明结束后仍以“要不要回家吃饭”等具体问题把曦拉回普通生活。
## 六、场景推进顺序
1. **契约成立后的第一夜**:简短承接 C0-S03。星联准备公开说明家庭拒绝连夜接受采访镜公开陪同却不参与家庭谈话。
2. **第二日上午抵达会堂**:曦穿日常服装抵达,发现会堂比想象中小,却知道画面将同步到所有都市世界。
3. **父母留在镜头外**:父母确认会在原处等待。曦担心自己忘词,母亲提醒她不需要完成一篇完美演说。
4. **公共频道开启**:程衡先说明为什么必须公开全部事实,并承诺不会用国家利益要求公众向曦继续施压。
5. **接触事实与交易内容**:徐允雅依次说明共同梦境、通信密钥、科技锁、唯一候选人与唯一已知履约规则。
6. **未知边界完整公开**:徐允雅明确列出所有无法回答的问题,包括献祭后果和返程可能。
7. **曦的自愿性**:程衡说明最终选择来自曦本人,任何政府或家庭成员都没有替她签约。
8. **镜公开确认身份**:镜以一至两段回答确认自己是四维陪同者和必要保护者,并允许公众称呼它为镜。
9. **公众问题一——自愿性**:玩家用单选项推进“听徐允雅说明她是否完全自愿”。徐允雅公开知情同意过程与拒绝权。
10. **公众问题二——原有生活**:玩家用单选项推进“听程衡说明她还能否继续原来的生活”。程衡说明准备期属于曦,她仍可上学、与家人生活和完成母星旅行。
11. **公众问题三——能够做什么**:玩家用单选项让曦亲自回答。她感谢关心,同时请求公众不要把每一天都变成告别或要求她证明无所畏惧。
12. **沉默先于掌声**:公开频道短暂安静。掌声从会堂内少数人开始,逐渐扩散到不同世界的公共画面。
13. **祝福与鲜花出现**:直播结束后,公共频道上的祝福数量迅速增加,会堂外开始收到普通公民自发送来的鲜花。
14. **制度保护立即生效**:程衡宣布私人联系、跟踪、研究邀请和商业使用均须经过同意;星联提供过滤渠道,但不替曦决定接受哪些善意。
15. **匿名生活结束**:曦第一次看见自己的名字出现在整个星联公共频道。她没有立即获得英雄的笃定,只感到全世界突然离自己太近。
16. **回到具体生活**:父母问她是否先回家。镜保持不远不近的陪同距离,不评价掌声、鲜花或曦的情绪。
17. **场景收束**:曦带着第一束真正送到手中的鲜花离开会堂,下一阶段进入十至十五周告别、旅行与出发准备期。
## 七、玩家互动设计
本场为接受路线上的线性主线。三个问题固定顺序出现,每次只有一个选项,不新增剧情变量,也不改变后续 Node 路线。
| 顺序 | 公共问题 | 单选项意图 | 回答者 | 叙事作用 |
|---|---|---|---|---|
| 1 | “她真的是完全自愿的吗?” | 听徐允雅说明知情同意过程 | 徐允雅 | 用可验证程序证明道德边界,而非要求玩家相信政府自述 |
| 2 | “她在出发前还能继续原来的生活吗?” | 听程衡说明准备期与保护规则 | 程衡 | 建立后续母星旅行、上学和家庭生活的合理性 |
| 3 | “我们能够为她做些什么?” | 让曦亲自回答这个问题 | 曦 | 把公众善意的边界交还给当事人,并表现她尚未适应英雄身份 |
三个问题不得合并成一个三选一选择组,否则玩家无法在一次游玩中取得全部必要信息。不得为这些互动写入 Bool 或 IntYarn 选项记忆已经足以支持 TextBlock 回顾。
## 八、Yarn、TextBlock 与 StoryData 接口
### 建议 Yarn 文件与 Node
| 用途 | 建议值 |
|---|---|
| Yarn 文件 | `C0_PublicDisclosure.yarn` |
| 入口 Node | `C0_PublicDisclosure` |
| TextBlock ID | `c0_public_disclosure` |
| TextBlock 类型 | `Important` |
| 标题 Localization Key | `story_c0_block_public_disclosure` |
| 简体中文标题 | 向群星公开 |
建议内部 Node
- `C0_PublicDisclosure_VoluntaryQuestion`
- `C0_PublicDisclosure_OrdinaryLifeQuestion`
- `C0_PublicDisclosure_PublicSupportQuestion`
- `C0_PublicDisclosure_AfterBroadcast`
### Block 条件与布局
| 字段 | 配置 |
|---|---|
| Unlock Condition | `c0_contract_route == 1` |
| Forbidden Condition | `c0_contract_route == 2` |
| 布局 | 位于 `c0_contract_decision` 下一列,`gridRow = 0` |
| 同列分支 | `c0_refusal_ending` 位于同列的另一行 |
| 新增剧情变量 | 无 |
| 新增 Timeline Marker | 无;沿用上一列“第五日 · 抉择”作为最近回滚点 |
本场与拒绝彩蛋不会汇合。`c0_public_disclosure` 完成后继续接受路线的准备期内容;`c0_refusal_ending` 是拒绝路线终点。
## 九、Localization 与资源需求
### 本场新增 Localization Key
| 用途 | Key | 简体中文源文本 |
|---|---|---|
| TextBlock 标题 | `story_c0_block_public_disclosure` | 向群星公开 |
公共问题和正式台词的 `#line` 标签仍由 Yarn 工具在文本批准后生成,不在场景卡阶段手工创建。
### 角色与演出资源
- 曦:日常服装或校服;紧张、勉强微笑、认真回应、被掌声惊到等有限表情。
- 程衡:正式但不华丽的公共职务服装;克制、严肃。
- 徐允雅:研究代表服装;清晰说明、关注曦状态。
- 镜:沿用 C0-S03 万华镜投影;无需人形肖像。
- 父亲、母亲:只在上台前和直播结束后出现,不需要公共舞台站位。
- 公共频道:问题文本、不同世界的实时观看窗口、祝福数量增长表现。
- 鲜花:直播后逐渐出现,不在开场预先铺满会堂。
## 十、情绪转折
1. **公开比签约更具体**:神仍然没有形体,但遍布诸多都市世界的真实观众会看见曦的每一次停顿。
2. **事实压住英雄神话**:未知风险被完整公开,公众无法只把交易理解为没有代价的文明捷径。
3. **镜证明异常真实存在**:它只用少量发言确认身份,不把场景变成高维能力展示。
4. **公众首先沉默**:人们先理解曦可能无法归来,掌声才具有真正的情感重量。
5. **曦第一次划定公共边界**:她感谢善意,也请求保留普通生活,而不是被动接受所有期待。
6. **鲜花温暖但也沉重**:英雄身份来自无数人的真实感激,同时让曦意识到自己已经被整个文明认识。
7. **镜仍然置身其外**:它观察社会反应,不因此理解或认同三维情感。
8. **家庭把宏大事件拉回日常**:直播结束后,父母仍然先问她是否回家。
## 十一、连续性与 OOC 检查清单
- [ ] 公众得到当时全部已知事实与未知边界,没有提前得知献祭抹除机制。
- [ ] 曦穿日常服装,没有被塑造成预先准备好的职业英雄。
- [ ] 曦紧张、可能忘词,不发表成熟完整的政治演说。
- [ ] 程衡承担制度责任,不把公众期待转化为对曦的进一步强迫。
- [ ] 徐允雅不把知情同意程序解释为契约安全证明。
- [ ] 镜只确认身份与职责,不展示能力、不评价文明、不透露未来。
- [ ] 父母处于镜头外,没有被作为英雄家庭宣传。
- [ ] 掌声和鲜花发生在事实公开及曦回应以后,不是政府提前安排。
- [ ] 三个公共问题按固定顺序出现,每次单选,不新增变量。
- [ ] 本场不使用 `<<declare>>``<<set $...>>``$variable`
- [ ] 人物台词使用 ASCII 英文冒号,旁白使用第三人称,避免非必要短句。
- [ ] 场末只建立准备期和母星旅行接口,不直接跳到`阿斯特里亚`景点。
## 十二、后续接口
- 用户批准本场景卡后,编写 `C0_PublicDisclosure.yarn` 初稿。
- Yarn 获批前,不配置 StoryData、Localization Table、公共频道 UI 或人物资源。
- 下一阶段进入十至十五周履约窗口中的正式告别与母星旅行准备。
- 母星旅行仍按时间顺序展开;新的具名角色和景点冲突点在各自场景卡中单独确认。

View File

@@ -0,0 +1,291 @@
# Chapter 0 场景卡C0-S05 最后一段普通生活
> 状态:**已确认前置信息的场景设计稿,非 Yarn 台本**
> 用途:锁定曦公开身份后的返校、旧日生活变化、轻量出发准备,以及离开`泽尼斯`日期确定以前的叙事过程。
> 本稿允许确定 Yarn 文件、Node、TextBlock 与 Localization Key 的建议命名;不在本阶段修改 StoryData、Localization Table、Prefab、C# 或正式 Yarn 台词。
## 一、场景定位
| 项目 | 内容 |
|---|---|
| 场景编号 | `C0-S05` |
| 暂定名称 | 最后一段普通生活 |
| 时间 | `C0-S04` 结束后的第二天开始,持续约十日;场末为离开`泽尼斯`的前一日下午 |
| 主要地点 | `泽尼斯`的公共交通、曦所在学校、实践教室、家庭住宅与公共出发准备设施 |
| 出场角色 | 曦、镜、教师、不具名同学群像;父亲与母亲在家庭片段中出现 |
| 玩家状态 | 已接受不可撤回的契约,已经成为全星联知晓的公共人物,但尚未离开原来的学校和生活环境 |
| 核心互动 | 三个固定顺序的单选项互动:照常讨论旧实践记录、参加正常实践课、把旧多功能探针放入行李 |
| 主线结果 | 曦完成返校、基础出发准备与私人行李整理;离开`泽尼斯`的具体日期确定,正式家庭告别留到 `C0-S06` |
## 二、设计分类与场景职责
本场属于 Chapter 0 接受路线上的 **Addition**,不增加分支、结局或永久变量。它承担 `C0-S04` 公共身份形成与 `C0-S06` 正式家庭告别之间的必要过渡,但不能只写成快速蒙太奇。
本场的核心问题不是“曦是否后悔签约”,而是:**一个人被整个文明视作英雄以后,是否还能够在离开前真实地过几天原来的生活。**
### 本场必须完成
- 让玩家第一次看见科研居住世界`泽尼斯`的日常全貌;
- 回收 `C0-S01` 中被总统会面打断、并于 `C0-S04` 开场前补交的学校实践观察记录;
- 表现星联公众尊重曦的边界,但善意仍会不可避免地改变人与她相处的方式;
- 让曦主动参加一堂正常的实践课,而不是被学校当作需要陈列或隔离的英雄;
- 用轻量片段表现健康基线、环境适应和旅行装备等出发准备;
- 让曦亲手选择一件私人旧物放进行李,表现她不是只属于任务的人;
- 明确`泽尼斯``阿斯特里亚`的离开日期,给 `C0-S06` 建立直接接口。
### 本场不得完成
- 不进行曦与父母的最终当面告别;
- 不进入星际客运枢纽的登乘区,不让飞船或列车正式离开`泽尼斯`
- 不抵达`阿斯特里亚`,不提前展示母星景点;
- 不再举行一次公众大会、英雄授勋或大型送别仪式;
- 不引入具名教师、挚友或承担长期冲突的新角色;
- 不暗示学校生活可以在契约期间恢复如初;
- 不让曦重新讨论是否撤回契约,因为签约已经不可撤回;
- 不公开献祭的未知细节,也不补充神没有说明的新规则;
- 不让镜因学校、家庭或公众善意而承认自身判断不足或产生情感变化。
## 三、时间安排
本场严格按时间顺序推进,不使用倒叙或主题交叉剪辑。
| 时间 | 内容 |
|---|---|
| 公开说明后的第二天 | 曦乘公共交通返校,第一次以公共人物身份回到熟悉环境 |
| 当日上午 | 像往常一样讨论已经补交的实践记录,与教师及同学重新建立相处边界 |
| 当日下午 | 主动参加一堂正常的装置实践课 |
| 随后约八日 | 健康基线、环境适应、旅行终端与衣装测试;其余时间仍在家中度过 |
| 离开前一日下午 | 曦与父母整理私人行李,收到次日出发确认 |
`泽尼斯`阶段合计约占十至十五周履约窗口中的前一至两周。后续大部分时间用于`阿斯特里亚`母星旅行、恒星边缘路线和最终跨界准备。正式 Yarn 不必逐日记录八天内的全部检查,但每次时间推进都要给出明确标识,避免产生“一天内完成所有准备”的错觉。
## 四、环境与社会风貌
### 科研居住世界泽尼斯`泽尼斯`不是贫乏或冰冷的工业世界,而是一个功能高度专业化、生活舒适稳定、旅游吸引力有限的都市星球。
- 城市主要服务科研、设备验证、制造维护和居民生活;实验楼、环境调节塔、自动物流线与住宅区彼此紧密连接。
- 建筑风格整洁、可靠、模块化,新设施会随研究需求更新,因此缺少`阿斯特里亚`那种跨越漫长时代的历史层积。
- 公共交通照常运行,不因曦出行清空车站或停止普通班次。
- 公民普遍能认出曦与镜,却遵守公开说明后的隐私规则。有人会多看几眼、点头或让出空间,但不会围堵、偷拍视频或强行采访。
- 这颗星球“不适合旅游”的单调感来自它将可靠与便利做得过于日常,而不是科技落后、文化贫瘠或居民冷漠。
### 学校
学校不临时改造成纪念场所,也不把曦的座位围起来展示。
- 校方取消所有未经曦同意的采访、演讲和合影安排,但不封锁整栋建筑,也不让她从秘密通道进入。
- 教室仍保留她原来的位置、课程终端和已经提交却尚未讨论的记录;这些具体事物比欢迎标语更能证明她曾在这里生活。
- 同学们最初明显安静,担心普通闲聊会显得不尊重。教师需要帮助大家理解“保持边界”不等于假装曦不存在。
- 学校允许同学表达祝福,但不组织全班逐一发表告别感言,避免把返校日变成又一场正式送别。
### 出发准备设施
准备流程体现技术先进,但不进行设备清单式说明。
- 健康基线用于让镜和星联医疗人员识别曦在异世界的身体变化,并不保证所有未知环境都安全。
- 环境适应衣装能够调节常见温度、压力与空气差异,但不是无条件生存装甲。
- 旅行终端具有记录、翻译、离线资料和本地装置连接功能;具体能力在以后真正使用时再解释。
- 常用医疗物资和个人衣物可以随行,普通私人物品原则上也可进入跨界通道。
- 镜只确认这些物品不会妨碍履约,不承担星联设备讲解员职责。
## 五、角色目标与表演边界
### 曦
- **表层目标**:交回实践记录、上一天课,并证明自己至少还能完成一些原来的事情。
- **真实状态**:她期待回到熟悉环境,又害怕所有熟悉的人已经不知道该如何与她说话。
- **年龄表现**:会在进入教室前犹豫,会用玩笑缓解尴尬,也会因为同学突然过分客气而不知道如何回应;不能像成熟公共人物一样从容管理所有人的情绪。
- **关键主动性**:是曦自己要求参加实践课,不是教师用“保持正常”强迫她完成课程。
- **对善意的态度**:她不会责备同学紧张,但会请求大家不要把每句话都当成可能载入历史的临别赠言。
- **场末状态**:她没有重新获得真正的普通生活,却完成了几件仍属于原来自己的事,并开始接受离开日期已经具体到“明天”。
### 镜
- **场景位置**:以万华镜形态全程公开陪同,通常悬停在不妨碍教学和通行的位置。
- **发言频率**:低。它不会对每件设施、礼节或课程评价效率,也不会主动加入同学闲聊。
- **可用判断**:它可以准确指出,公众得知契约以后改变的是“对曦的预期”,并非突然获得了对曦的完整理解。
- **课堂边界**:不会替曦解答实践题,也不会展示四维能力帮助教学。若有人询问,它可以明确说明自己不承担改善三维课程结果的职责。
- **准备边界**:只审核随行物是否妨碍契约与跨界,不承诺装备能够应对全部世界。
- **OOC 禁区**:不说“我也许误解了你们”,不赞美学校或家庭,不从同学的善意中学习三维情感,不主动安慰曦,也不表现出任务之外的依恋。
### 教师
- **角色职能**:代表星联制度落实到普通生活时的执行者,而不是新的思想导师。
- **初始顾虑**:担心要求曦继续课程会成为另一种压力,因此提前准备了免除全部课程与远程完成记录的方案。
- **正确边界**:把是否参加课程交给曦决定,并提醒同学可以正常交谈,但不能要求她承担采访、解释契约或安抚全班的责任。
- **表现方式**:温和、专业,会承认自己也不知道怎样才算“完全正常”,因此愿意听曦说明她此刻需要什么。
- **人物密度**:不命名,不建立个人身世或母星旅行支线。
### 同学群像
同学承担不同形式的善意与距离感,但不形成固定挚友角色。
- 有人准备了很长的正式祝福,面对曦时却只说出一句普通问候;
- 有人下意识替曦收拾器材,随后发现她其实想自己完成;
- 有人想询问镜,却先征得曦与教师同意;
- 有人仍然记得她欠下的实践记录或过去的装置事故,用日常玩笑短暂打破凝重气氛;
- 没有人嫉妒、羞辱或指责她,也没有人宣称她必须成功才配得上公众支持。
### 父亲与母亲
- **本场职能**:参与行李整理和日常晚餐,不在本场完成最后告别。
- **父亲**:倾向检查能够实际处理的事项,可以拿出曦从小使用的旧多功能探针,却不宣称它能在异世界解决高维问题。
- **母亲**:关注衣装、健康记录与私人照片是否带齐,会提醒曦不需要为了任务放弃所有没有“用途”的东西。
- **共同边界**:不要求曦承诺回来,不把每一顿饭提前写成最后一餐,也不假装次日离开只是普通旅行。
## 六、核心道具回收
### 未完成的实践观察记录
该记录承接 `C0-S01` 开篇。它应当足够普通,例如城市环境调节设备的运行观察或学校附近公共装置的维护记录。
- 它不是发现神、镜或科技锁的伏笔;
- 它不因为曦成为英雄而自动获得特殊价值;
- 教师可以告诉曦,她完全没有必要再回来接受讨论,系统已经记录这份作业完成;
- 曦仍选择像往常一样听取问题并解释自己跳过标准校准流程的原因,因为这是契约发生以前由她自己开始的事情;
- 讨论记录不代表她已恢复正常,只代表宏大事件没有使此前的一切失去意义。
### 旧多功能探针
父亲在整理工具时拿出一支曦十二岁起使用的旧探针。它是普通、耐用、略显过时的民用工具,承接曦对机械装置的直觉亲和力。
- 探针不具备隐藏力量,不是文明最高科技的缩影;
- 曦携带它主要因为熟悉与私人记忆,而不是因为它必然有用;
- 未来章节可以在合理情况下使用,也可以长期只作为随身物品;
- 它不登记为剧情变量,不要求用选择记录“是否携带”,因为线性主线中曦会固定带走它。
## 七、场景推进顺序
1. **返校路上**:公开说明后的第二天,曦和镜乘坐普通公共交通前往学校。附近居民认出她,却只保持礼貌距离。
2. **熟悉环境出现变化**:学校建筑、路线和课程时间完全没有改变,同学看向曦的方式却已经不同。她在教室门外第一次不敢像往常一样直接推门。
3. **教师先确认边界**:教师说明她可以不上课、远程完成学业或立刻回家,所有采访请求也已被拒绝。曦反而因为选择太多而更加局促。
4. **回到原来的座位**:教室没有欢迎仪式。同学的问候过分整齐,曦试图用一件过去的课堂小事打破沉默。
5. **重新打开旧记录**:教师调出曦在公开说明前一晚补交的实践观察记录,并说明系统已经将它记为完成,她没有必要再接受课堂讨论。
6. **玩家互动一**:单选项“像以前一样,先讨论那份实践记录。”曦说明自己不是为了成绩,只是不想让那天以前的事情全部停在那里。
7. **同学尝试正常交谈**:有人询问她是否真的会去母星、是否能继续联系家里,也有人在得到许可后询问镜。回答只停留在公开事实和当前行程。
8. **镜精准指出变化**:镜可以说明,同学并非突然更了解曦,而是知道她即将离开以后,开始重新衡量每句话可能留下的意义。它不评价这种行为正确与否。
9. **是否参加实践课**:教师再次给曦退出机会。同学也因为担心给她添麻烦,准备替她完成装置操作。
10. **玩家互动二**:单选项“参加今天的实践课。”曦要求自己完成操作,也允许同学像过去一样指出她的错误。
11. **实践课恢复节奏**:装置出现普通的小故障或校准偏差。曦凭直觉找到接口问题,但仍需要同学递工具、教师确认安全流程;她不是突然无所不能。
12. **一段真正普通的时间**:课堂短暂忘记契约,直到镜面反光或公共频道提示再次提醒众人,曦即将离开。
13. **返校日收束**:同学不逐一告别,只把课程资料、留言和一张未经修饰的集体照片交给她。曦没有承诺一定回来补课。
14. **八日准备推进**:以明确日期提示串联健康基线、衣装测试、旅行终端校验和在家吃饭等片段。镜只回答必要的跨界携带问题。
15. **整理私人行李**:离开前一日下午,父母和曦发现官方装备占用空间很少,真正难决定的是哪些没有任务用途的东西仍值得携带。
16. **旧探针出现**:父亲从工具箱中找出旧多功能探针,先承认它可能没有实际价值,再把是否携带交给曦。
17. **玩家互动三**:单选项“把旧探针放进随身包。”曦以轻松语气承认自己只是用惯了它,不把决定写成庄严传承。
18. **离开日期具体化**:旅行终端收到次日上午前往星际客运枢纽的确认,目的地为母星`阿斯特里亚`
19. **场景收束**:曦看见行程中的“明日”,才意识到准备期已经不再是一段模糊的以后。父母继续讨论早餐与港口交通,把正式告别留到下一场。
## 八、玩家互动设计
本场为接受路线上的线性主线。三次互动按固定顺序出现,每次只有一个选项;选项不改变剧情变量、道具状态或后续 Node 路线。
| 顺序 | 单选项文本 | 叙事作用 | 结果 |
|---|---|---|---|
| 1 | 像以前一样,先讨论那份实践记录。 | 让玩家主动完成契约发生以前遗留的普通责任 | 教师照常点评记录,课程不产生分支 |
| 2 | 参加今天的实践课。 | 让玩家亲手选择一小段正常生活,而非被制度安排“恢复正常” | 曦参加实践课,完成群像互动 |
| 3 | 把旧探针放进随身包。 | 让玩家确认曦会带走一件只有私人意义的普通物品 | 探针固定随行,不写入变量 |
这些互动不得合并成三选一,不得增加 `Bool` 或道具变量。它们的作用是控制阅读节奏和强化玩家参与感,而不是制造虚假的路线差异。
## 九、Yarn、TextBlock 与 StoryData 接口
### 建议 Yarn 文件与 Node
| 用途 | 建议值 |
|---|---|
| Yarn 文件 | `C0_OldLifePreparation.yarn` |
| 入口 Node | `C0_OldLifePreparation` |
| TextBlock ID | `c0_old_life_preparation` |
| TextBlock 类型 | `Important` |
| 标题 Localization Key | `story_c0_block_old_life_preparation` |
| 简体中文标题 | 最后一段普通生活 |
建议内部 Node
- `C0_OldLifePreparation_ReturnToSchool`
- `C0_OldLifePreparation_PracticalLesson`
- `C0_OldLifePreparation_TravelChecks`
- `C0_OldLifePreparation_Packing`
### Block 条件与布局
| 字段 | 配置 |
|---|---|
| Unlock Condition | `c0_contract_route == 1` |
| Forbidden Condition | `c0_contract_route == 2` |
| 前置 Block | `c0_public_disclosure` 完成 |
| 布局 | 位于 `c0_public_disclosure` 的下一列,接受路线 `gridRow = 0` |
| 新增剧情变量 | 无 |
| 新增 Timeline Marker | 无;仍以“第五日 · 抉择”为最近回滚点 |
本场完成后开放 `C0-S06`但不以新的永久变量记录“探针已携带”或“返校已完成”。TextBlock 完成状态已经足够表达线性进度。
## 十、Localization 与资源需求
### 新增 Localization Key
| 用途 | Key | 简体中文源文本 |
|---|---|---|
| TextBlock 标题 | `story_c0_block_old_life_preparation` | 最后一段普通生活 |
正式台词、选项和环境旁白的 `#line` 标签仍由 Yarn 工具在文本批准后生成,不在场景卡阶段手工创建。
### 角色与演出资源
- 曦:日常校服或学校常服;迟疑、尴尬、松一口气、专注操作、勉强开玩笑等表情。
- 镜:沿用万华镜投影;以背景悬停和镜面缓慢重组为主,不需要情绪化动画。
- 教师:可使用不具名通用角色表现;无需建立后续角色档案。
- 同学:以少量远景、公共频道头像或无立绘台词组成群像,避免一次新增大量肖像。
- 父亲、母亲:沿用家庭场景资源;本场表演克制,不使用正式告别姿态。
- 场景背景:`泽尼斯`公共交通、学校走廊、教室/实践室、简化准备设施、家庭客厅。
- 道具:旧实践记录、教学装置、旅行终端、环境适应衣装、行李包、旧多功能探针。
## 十一、文本节奏与演出要求
- 旁白使用第三人称,并以曦的感知为主要视角;不得称玩家为“你”。
- 人物台词使用 ASCII 英文冒号。
- 换行即一次对话推进。除教室门口短暂停顿、收到离开日期等必要留白外,避免五六个字单独构成一页。
- 返校段应占主要篇幅,准备检查使用有明确日期的简洁片段,行李整理再次放慢节奏。
- 不以长篇科技说明展示文明先进,优先通过“复杂流程安静运行、普通公民遵守边界、曦仍能乘公共交通”表现社会状态。
- 幽默来自熟悉的人际关系、普通课堂事故和曦的无奈吐槽,不让镜频繁充当冷笑话角色。
- 镜的每次完整发言都应命中一个关键事实;若一句话只是在重复“高效/低效”或替旁白总结情绪,应删除。
- 课堂恢复日常的片段可以温暖,但不得让玩家误以为曦已经放下恐惧或与所有人完成了充分告别。
## 十二、情绪转折
1. **熟悉的路第一次需要勇气**:公开身份没有改变学校位置,却改变了曦推开教室门的难度。
2. **善意制造距离**:同学越想尊重她,越容易让每句话显得像正式告别。
3. **旧记录仍然值得完成**:契约没有让此前的普通责任和兴趣失去意义。
4. **正常来自当事人的选择**:曦主动参加实践课,而不是被别人规定应该坚强或应该休息。
5. **课堂短暂忘记英雄身份**:普通故障、协作与玩笑让她重新成为同学中的一员,但这种状态不能永久维持。
6. **准备把未知变成可操作事项**:检查无法消除风险,却让曦知道明天该做什么。
7. **无用之物证明私人生活存在**:旧探针没有宏大使命价值,仍然值得占据行李的一小部分。
8. **“明天”终止模糊等待**:真正的告别尚未发生,离开却已经拥有了具体时间。
## 十三、连续性与 OOC 检查清单
- [ ] 本场发生在 `C0-S04` 之后,没有重复公开契约或举办第二次英雄仪式。
- [ ] 曦已知契约不可撤回,不重新讨论接受/拒绝路线。
- [ ] `泽尼斯`是高度发达的科研居住世界,不被写成落后、压抑或只有灰色工厂的地方。
- [ ] 曦此前没有去过`阿斯特里亚`;母星仍是下一阶段第一次亲身抵达。
- [ ] 同学与教师不掌握献祭机制,不提出只有后续冒险才可能回答的问题。
- [ ] 学校保护隐私但不隔离曦,公众礼貌也不等于所有人毫无好奇心。
- [ ] 曦表现出十七岁少女的紧张、尴尬和不完全成熟,不发表完整的英雄人生总结。
- [ ] 镜全程保持任务距离,不争辩、不劝慰、不承认错误、不发生观念转变。
- [ ] 镜在序章仍可观测完整时间线,但不对外透露未来,也不以未来信息帮助课堂或准备流程。
- [ ] 旧实践记录只是普通学校任务,不成为高维事件伏笔。
- [ ] 旧探针是普通私人道具,没有隐藏力量,也不新增剧情变量。
- [ ] 准备装备不被写成全能保障,星联仍不知道目标世界环境。
- [ ] 本场没有完成最终父母告别,没有让父母陪同前往母星。
- [ ] 三个互动固定顺序、每次单选,不增加变量或路线分支。
- [ ] 本场不使用 `<<declare>>``<<set $...>>``$variable`
- [ ] 场末只确定次日离开,正式登乘与离别留给 `C0-S06`
## 十四、后续接口
- 用户批准本场景卡后,编写 `C0_OldLifePreparation.yarn` 初稿。
- Yarn 获批以前,不配置 StoryData、Localization Table、学校资源或新道具资源。
- `C0-S06` 从离开`泽尼斯`的最后一个清晨开始,完成家中最后早餐、星际客运枢纽告别、民用超光速航行与抵达`阿斯特里亚`
- 曦在进入跨界通道以前仍可与父母远程通信;`C0-S06` 的当面离别不等于立即永久失联。
- `C0-S06` 结束于曦第一次看见母星,并转乘前往海洋深层起点的行星交通;【海底游览区】另立 `C0-S07` 场景卡。

View File

@@ -0,0 +1,320 @@
# Chapter 0 场景卡C0-S06 离开泽尼斯,前往母星
> 状态:**已确认前置信息的场景设计稿,非 Yarn 台本**
> 用途:锁定曦离开`泽尼斯`当日的家庭告别、民用星际航行、第一次亲眼看见母星`阿斯特里亚`,以及转乘前往海洋深层起点的叙事过程。
> 本稿允许确定 Yarn 文件、Node、TextBlock 与 Localization Key 的建议命名;不在本阶段修改 StoryData、Localization Table、Prefab、C# 或正式 Yarn 台词。
## 一、场景定位
| 项目 | 内容 |
|---|---|
| 场景编号 | `C0-S06` |
| 暂定名称 | 离开泽尼斯,前往母星 |
| 时间 | `C0-S05` 结束后的次日上午至当日稍晚;仍处于十至十五周履约窗口前段 |
| 主要地点 | 曦家、`泽尼斯`公共交通与星际客运枢纽、民用超光速客运航线、`阿斯特里亚`轨道交通枢纽及行星纵向交通线 |
| 出场角色 | 曦、父亲、母亲、镜;少量不具名旅客、儿童和客运工作人员组成环境群像 |
| 玩家状态 | 已完成返校与基础准备,行李已经收好;知道当面告别即将发生,但进入跨界通道以前仍可与父母远程通信 |
| 核心互动 | 三个固定顺序的单选项互动:像平常一样吃完早餐、在登乘边界拥抱父母、第一次看见母星时先独自观看 |
| 主线结果 | 曦与父母完成最后一次当面告别,离开真正生活过的`泽尼斯`,抵达从未亲身到访的文明母星,并前往【海底游览区】起点 |
## 二、设计分类与场景职责
本场属于 Chapter 0 接受路线上的 **Addition**,不新增路线、结局或永久变量。它既是`泽尼斯`生活阶段的结束,也是母星游览阶段的入口。
本场的核心对照是两种不同的“家”:
- `泽尼斯`是曦真正生活过的家,由父母、学校、交通路线和具体日常构成;
- `阿斯特里亚`是文明共同来处意义上的家,曦从未到访,却从小在历史、教材与公共文化中认识它。
正式台本必须先让玩家感到曦确实离开了一处无法替代的生活空间,再给予第一次看见母星的开阔与好奇。母星的壮丽不能立即覆盖家庭告别的重量,家庭告别也不能把后续旅行写成只有悲伤的延长。
### 本场必须完成
- 完成曦与父母离开前的最后一顿家庭早餐;
- 通过普通公共交通前往客运枢纽,不再次安排国家仪仗或公众送别;
- 让曦在登乘边界主动拥抱父母,并确认这是跨界出发以前最后一次当面见面;
- 明确远程通信仍可持续到曦真正进入第一个异世界;
- 以正常民用客运展示星联科技、秩序和对个人边界的尊重;
- 让曦从外部第一次亲眼看见`阿斯特里亚`
- 区分`泽尼斯`的个人生活归属与`阿斯特里亚`的共同历史归属;
- 让曦抵达母星后转乘行星纵向交通,前往海洋深层的旅行起点。
### 本场不得完成
- 不进入【海底游览区】的正式导览内容;
- 不引入深水保育员、`Alunite` 或其它母星关键配角;
- 不开始地下都市、大图书馆、音乐会、天文台或恒星边缘剧情;
- 不让父母陪同母星旅行,也不让他们在客运枢纽以后再次当面出现;
- 不以通信中断制造虚假紧急感;真正断开故乡联系发生在未来跨界时;
- 不举行第二次公众演说、授勋、花海或全体公民夹道送别;
- 不让普通旅客围堵曦、骚扰父母或把镜当作公开实验对象;
- 不让镜安慰父母、承诺曦必然平安归来,或在离别中产生情感变化;
- 不让镜因为看见母星历史遗产而承认三维保存行为具有它此前未理解的价值;相关观念变化必须留给未来冒险长期积累。
## 三、时间与交通安排
本场严格按照时间顺序推进。
| 时间 | 行程 |
|---|---|
| 清晨 | 曦在家醒来,一家人按平常时间完成早餐与最后检查 |
| 08:40 | 从住宅区公共交通站出发 |
| 09:20 前后 | 抵达`泽尼斯`星际客运枢纽,完成正常安检与登乘手续 |
| 11:00 | 进入前往`阿斯特里亚`的民用超光速客运航线 |
| 数小时后 | 航线退出超光速区,`阿斯特里亚`首次进入肉眼可辨识范围 |
| 当日稍晚 | 抵达母星轨道交通枢纽,转乘行星纵向交通线前往海洋深层起点 |
星际通勤不应消耗数周。十至十五周窗口的大部分时间仍用于母星游览、恒星边缘路线与最终跨界准备。正式台本不需要详细解释超光速航行理论,只需让客运流程像星联公民习以为常的成熟公共技术。
## 四、空间与视觉基调
### 家庭住宅与最后早餐
住宅保持 `C0-S02``C0-S05` 已建立的普通、富足与温暖感。
- 灯光、餐具、厨房设备和座位均与往常相同,不布置“最后早餐”的装饰。
- 母亲仍会询问调味或食量,父亲仍会确认交通维护与替代线路。
- 行李放在门边,使“离开”始终处于画面中,却不占据餐桌中央。
- 镜可以在窗边等待,不需要座位或餐具;父母不再重复询问它是否进食。
- 家庭成员可以暂时谈论与告别无关的小事,但这种平常是主动选择的相处方式,不是假装风险不存在。
### 泽尼斯星际客运枢纽
客运枢纽服务大量普通乘客,不因曦到来停止运行。
- 建筑以清晰换乘、快速安检和舒适候乘为主,没有国家专用舰船或军事警戒线。
- 星联只为曦与家人提供一个避免媒体打扰的半私密登乘区,不清空整座枢纽。
- 其他旅客可以认出她、安静点头或留下空间,但不会形成围观人墙。
- 父母能够陪同到乘客权限边界;边界之后只有曦、镜与其他登乘旅客可以继续。
- 工作人员以普通客运标准处理曦的行李和镜的非标准投影登记,不把程序演成使命审查。
### 民用超光速航线
- 曦使用普通客运工具中的相对独立舱段,而非只为她启用的国家载具。
- 舱内仍有路线广播、餐饮、儿童、行李与普通乘客的小问题,体现世界没有以曦为中心暂停。
- 进入超光速航道时可表现为外部星光收束、导航图层接管肉眼景象或窗面自动降低透明度,但不使用神秘宗教意象。
- 镜不受航行景象震撼,也不主动讲解高维结构。它只在曦提出实际问题时说明当前行程与契约边界。
### 第一次看见阿斯特里亚母星先作为远处的蓝白色星体出现,再逐渐显出城市大陆、保留海域、云层、轨道设施和跨时代建筑区域。
- 大部分地表已被城市覆盖,但大洋之心仍保留广阔海域。
- 新旧建筑并存,新交通结构会绕开受保护历史区域,表现文明有能力彻底重建却主动为过去保留空间。
- 视觉应开阔、温暖、明亮,不把母星塑造成庄严到无人生活的纪念馆。
- 第一眼主要属于曦。镜可以提供事实性识别,不替她解释情感,也不立即评价保存历史的意义。
### 行星纵向交通线
星际航线抵达轨道交通枢纽后,曦换乘公共行星交通系统。路线从高空与城市层逐步下降,最终进入海洋区域的深层站点。
- 换乘过程与普通游客相同,不为曦封闭路线;
- 乘客可包括研学儿童、老人、普通旅客与工作人员;
- 随着下降,窗外从母星全景转为城市近景、海岸线、水面和逐渐变深的蓝色;
- 本场结束在海底游览区尚未正式展开以前,避免把两个场景挤在同一 TextBlock。
## 五、角色目标与表演边界
### 曦
- **表层目标**:按时登乘,不在父母面前因为害怕而失去行动能力。
- **真实状态**:她已经接受契约,也确实期待母星旅行;这不妨碍她在真正离开家门时产生后悔、恐惧和想拖延几分钟的愿望。
- **年龄表现**:会反复确认明明已经收好的物品,会在早餐时主动谈交通和天气,也会在到达登乘边界后突然发现准备好的告别话一句都说不完整。
- **情绪边界**:不发表成熟、完整的英雄告别演说,不承诺一定回来,不因哭泣或犹豫而重新讨论撤回契约。
- **主动性**:由她先拥抱父母、通过登乘边界,并在第一次看见母星时决定暂时放下记录终端。
- **场末变化**:悲伤没有结束,但好奇重新进入视野;她开始以真实旅客而非公共事件主角的身份观察母星。
### 父亲
- **表层目标**:确保交通、行李与登乘手续没有任何可实际处理的遗漏。
- **真实状态**:不断检查路线是维持行动能力的方式。他知道这些准备不能解决跨界风险,也不假装自己能够继续保护曦。
- **告别表达**:不要求曦成功,只提醒她遇到无法立刻解决的问题时可以停下来确认,不必因为别人称她为英雄就假装已经有答案。
- **边界**:不把旧探针解释为父亲能够跨世界守护女儿的象征,也不反复重复 `C0-S05` 已经说过的道具意义。
### 母亲
- **表层目标**:确认曦吃完早餐、衣装舒适、通信终端和私人照片均已携带。
- **真实状态**:她试图记住曦离家当天所有普通细节,又不愿用“最后一次”命名每一件事。
- **告别表达**:允许自己舍不得,也明确这份舍不得不需要曦在登乘边界解决。她可以请求曦安全抵达母星后发消息,却不要求随时报告或证明勇敢。
- **边界**:不在公开空间发表“英雄母亲”言论,不把眼泪隐藏成毫无情绪,也不以哭泣阻止曦通过边界。
### 镜
- **场景位置**:保持万华镜形态,在家庭空间、枢纽和客舱中维持不远不近的陪同距离。
- **发言频率**:低。家庭告别的关键段落应允许镜长时间不说话。
- **可用回应**:确认远程通信会持续到真正跨界;确认行李与航线不妨碍履约;在曦询问时区分`泽尼斯`的个人生活归属与`阿斯特里亚`的文明起源事实。
- **判断边界**:它可以指出哭泣、拥抱或多看一眼不会改变离开的事实,却不需要因此与曦争论这些行为是否有效率。
- **OOC 禁区**:不主动安慰、不承诺归来、不说“我会替你照顾她”、不被家庭感动、不承认自己以前忽略了三维情感,也不在序章结束前把曦视为任务以外的重要对象。
### 旅客与客运人员群像
- 工作人员按标准流程服务,不因镜的形态失去专业能力;
- 一名年幼旅客可以在远处认出曦并向她挥手,监护人不带孩子靠近索取回应;
- 其他旅客可以礼貌点头、让出合理空间,也可以继续处理自己的行程;
- 群像用于表现星联社会尊重个人边界,不承担新的剧情冲突或具名角色职责。
## 六、家庭告别的叙事边界
### “最后一次当面见面”的含义
曦离开`泽尼斯`后,父母不陪同`阿斯特里亚`旅行。因此客运枢纽的告别是她进入异世界以前与父母最后一次当面见面。
这并不等于立即永久失联:
- 抵达`阿斯特里亚`后仍可发送文字、影像和实时通信;
- 母星旅行期间可以自然穿插家庭消息,但不能让父母远程参与每个景点的主要对话;
- 真正无法继续联系发生在曦进入跨界通道以后;
- 台本不得让父母误以为这班客运航线本身会切断所有通信。
### 告别不使用的表达
- “这是我们最后一次见面”;
- “你一定要回来”;
- “不要让我们的牺牲白费”;
- “整个文明都在等你”;
- “从今天起,你不再只是我们的女儿”;
- 任何要求镜作出超出契约职责保证的誓言。
角色都知道可能永别,但不需要用最直接、最完整的句子把潜台词全部说破。具体的拥抱、未说完的话、父母留在透明边界后的身影,比成熟告别演说更符合这个家庭与曦的年龄。
## 七、场景推进顺序
1. **清晨醒来**:曦比闹钟更早醒来,在房间里重新检查已经确认过的行李,却没有发现任何遗漏。
2. **灯与早餐照常出现**:母亲先打开厨房灯,父亲查看轨道维护。镜报告行程正常,不参与家庭情绪判断。
3. **玩家互动一**:单选项“像平常一样,把早餐吃完。”曦不以收拾行李为借口逃开餐桌,一家人谈论食物、线路和一些普通小事。
4. **离开家门**:曦亲自拿起行李,在门口因为不知道是否应该回头看房间而停顿;父母不催促她把每处细节记住。
5. **普通公共交通**:一家人与镜乘坐正常线路前往枢纽。沿途公民认出他们,却遵守公开边界。
6. **客运手续**:工作人员验证曦的旅行终端、行李和镜的投影登记,流程成熟而平静,没有使命宣誓。
7. **半私密候乘区**:父母仍可陪同。曦试图继续谈到达时间和通信安排,三个人都知道这些实际事项正在替他们拖延告别。
8. **远程联系确认**:曦确认抵达母星后会发送消息。镜只说明跨界以前通信仍然有效,不预测以后何时能够回来。
9. **登乘边界开放**:广播开始正常检票。父母无法继续向前,曦准备好的话忽然失去顺序。
10. **玩家互动二**:单选项“抱住他们。”曦主动完成最后一次当面拥抱,允许自己哭泣,却不作必然归来的承诺。
11. **具体而不完整的告别**:父亲和母亲各留下一个能够被曦实际记住的请求;内容围绕停下来思考、按自己的步伐观察和安全抵达后联系。
12. **通过边界**:曦独自走入乘客区,镜随后通过。她在转弯前回头,直到透明边界和父母从视野中消失。
13. **民用客舱**:客舱内仍有普通旅客。儿童远远挥手,曦选择回应;没有人围上来占用她的告别情绪。
14. **离开泽尼斯**:客运载具驶离城市与轨道设施。曦第一次从外部看见自己生活过的世界逐渐缩小,并向父母发送已安全离港的信息。
15. **进入超光速航线**:星光与导航视图变化,曦无法继续肉眼看见`泽尼斯`。镜不把这一技术过程解释成高维飞升。
16. **航程中的距离**:曦承认自己既难过又期待母星。镜指出两种状态不互相否定,但不对其情感作价值评价。
17. **收到母亲消息**:母亲提醒她,看见母星时不用急着拍给家里,先由自己看一会儿。
18. **阿斯特里亚出现**:母星从远处蓝白色星体逐渐显出海洋、城市大陆、云层和轨道结构。
19. **玩家互动三**:单选项“先把终端放下,自己看一会儿。”曦不立即记录或分享,把第一眼完整留给自己的感受。
20. **两种归属**:曦说明`泽尼斯`是她生活过的家,`阿斯特里亚`则是让整个文明拥有共同来处的家。镜只确认二者的事实来源不同,不表示已经理解这种归属感。
21. **轨道枢纽抵达**:母星没有清空港口迎接曦。普通旅客下船、换乘、寻找行李,公共秩序继续运行。
22. **前往海洋深层**:曦与镜转乘行星纵向交通线。城市、海岸和水面依次掠过窗外,光线逐渐转为深蓝。
23. **场景收束**:曦向父母发出一张尚未正式进入景点的海洋照片与“我到了”;交通线继续下降,下一场进入【海底游览区】。
## 八、玩家互动设计
本场为接受路线上的线性主线。三个互动固定顺序出现,每次只有一个选项,不改变剧情变量、路线或物品状态。
| 顺序 | 单选项文本 | 叙事作用 | 固定结果 |
|---|---|---|---|
| 1 | 像平常一样,把早餐吃完。 | 让玩家主动留在家庭日常中,而不是快速跳过难以面对的清晨 | 一家人完成早餐后共同出门 |
| 2 | 抱住他们。 | 让玩家亲手推进最后一次当面告别,不把情感动作完全交给旁白 | 曦拥抱父母并通过登乘边界 |
| 3 | 先把终端放下,自己看一会儿。 | 确立母星第一眼首先属于曦本人,而非公共记录或远程分享 | 曦观看母星,之后再向父母发送消息 |
互动不得改为多选一,不写入“是否拥抱”“是否联系父母”等 Bool。所有结果均属于线性角色行动TextBlock 完成状态足以记录进度。
## 九、Yarn、TextBlock 与 StoryData 接口
### 建议 Yarn 文件与 Node
| 用途 | 建议值 |
|---|---|
| Yarn 文件 | `C0_DepartureToAsteria.yarn` |
| 入口 Node | `C0_DepartureToAsteria` |
| TextBlock ID | `c0_departure_to_asteria` |
| TextBlock 类型 | `Important` |
| 标题 Localization Key | `story_c0_block_departure_to_asteria` |
| 简体中文标题 | 前往母星 |
建议内部 Node
- `C0_DepartureToAsteria_Breakfast`
- `C0_DepartureToAsteria_Terminal`
- `C0_DepartureToAsteria_Farewell`
- `C0_DepartureToAsteria_InTransit`
- `C0_DepartureToAsteria_FirstSight`
- `C0_DepartureToAsteria_Descent`
### Block 条件与布局
| 字段 | 配置 |
|---|---|
| Unlock Condition | `c0_contract_route == 1` |
| Forbidden Condition | `c0_contract_route == 2` |
| 前置 Block | `c0_old_life_preparation` 完成 |
| 布局 | 位于 `c0_old_life_preparation` 的下一列,接受路线 `gridRow = 0` |
| 新增剧情变量 | 无 |
| 新增 Timeline Marker | 无;母星游览的重要时间节点待后续整体布局时确认 |
本场完成后开放【海底游览区】对应 TextBlock。拒绝彩蛋路线不会与本场汇合。
## 十、Localization 与资源需求
### 新增 Localization Key
| 用途 | Key | 简体中文源文本 |
|---|---|---|
| TextBlock 标题 | `story_c0_block_departure_to_asteria` | 前往母星 |
正式台词、选项和旁白的 `#line` 标签由 Yarn 工具在文本批准后统一生成,不在场景卡阶段手工创建。
### 角色与演出资源
- 曦:日常旅行服装;失眠、故作轻松、流泪、努力挥手、安静观看、第一次惊叹等表情。
- 父亲、母亲:家庭日常与克制告别表情;不使用公众演讲或英雄家属姿态。
- 镜:沿用万华镜投影;长时间安静悬停、随行移动和客舱固定位置即可,不需要情绪动画。
- 群像:客运工作人员、普通旅客与儿童可以使用远景或无立绘台词,不建立角色档案。
- 场景背景:家庭厨房、住宅交通站、公共列车、星际客运枢纽、候乘区、民用客舱、母星远景、轨道交通枢纽、纵向交通舱。
- 视觉特效:超光速航线进入/退出、`泽尼斯`远离、`阿斯特里亚`逐渐接近、下降进入海洋时的光线变化。
## 十一、文本节奏与演出要求
- 旁白使用第三人称,以曦的感知为主要视角;不得以“你”指代曦或玩家。
- 人物台词使用 ASCII 英文冒号。
- 家庭早餐与枢纽告别应占主要篇幅;航程和换乘保持完整但不进行科技说明堆积。
- 换行即一次对话推进。告别可使用少量短句制造真实停顿,但不能把整段情绪拆成连续五六字翻页。
- 不让所有角色说出结构完美的道理。曦可能说错顺序、父母可能重复已经确认的事项,告别可以带有未完成感。
- “温暖”来自允许恐惧、保留日常与尊重边界,不来自所有人强颜欢笑或反复宣称未来光明。
- 第一次看见母星应有足够环境描写,但不把文明历史一次说明完;后续景点仍需拥有发现空间。
- 镜的发言必须是事实性、边界性或精准判断,不能充当情绪总结者,也不能因曦哭泣而突然变得温柔。
## 十二、情绪转折
1. **准备结束于一个普通清晨**:真正的离开没有戏剧性警报,只由闹钟、早餐和行程时间推动。
2. **实际事项成为短暂避难所**:交通、行李和通信都值得确认,也在帮助一家人延迟说出告别。
3. **权限边界使离别不可继续拖延**:父母无法再陪同向前,宏大契约第一次化为一道具体的门。
4. **拥抱代替完整演说**:曦没有找到漂亮的话,却亲手完成了不能回避的动作。
5. **世界没有围绕她停止**:普通旅客继续旅行,星联社会给予空间,却不把所有生活变成她的送别背景。
6. **故乡第一次成为远景**`泽尼斯`从日常环境变成窗外逐渐缩小的星球。
7. **悲伤与期待同时存在**:离开父母不取消曦对母星和未知世界的好奇。
8. **第一眼暂时不属于任何观众**:曦放下终端,先为自己看见`阿斯特里亚`
9. **两种家不互相替代**:个人生活的故乡与文明起源的母星建立不同情感位置。
10. **告别转化为旅程**:下降交通进入蓝色海域,叙事从离开旧生活自然转向认识母星。
## 十三、连续性与 OOC 检查清单
- [ ] 本场紧接 `C0-S05` 结尾,使用已经确认的次日行程时间。
- [ ] 曦携带旧多功能探针、照片、旅行终端和基础装备,但不重复解释其全部意义。
- [ ] 父母不陪同母星旅行,客运枢纽是进入异世界以前最后一次当面见面。
- [ ] 曦抵达母星以后仍可联系父母,通信没有被客运航线提前切断。
- [ ] 家庭告别不要求曦承诺成功或归来,也不重新讨论是否接受契约。
- [ ] `泽尼斯`使用普通公共交通与民用航线,没有为了曦停止城市运行。
- [ ] 公众能够认出曦与镜,但遵守 `C0-S04` 已公布的隐私保护边界。
- [ ] 镜不安慰、不保证、不争辩、不发生情感或观念转变。
- [ ] 镜在序章仍能看见完整时间线,却不透露离别后果、归来可能或母星未来。
- [ ] 超光速航行不被解释为升入第四维度,也不透露神解除科技锁的机制。
- [ ] 曦此前从未到访`阿斯特里亚`,本场是她第一次亲眼看见母星。
- [ ] 母星既高度城市化又保留大洋与历史区域,不被写成纯自然星球或无人纪念馆。
- [ ] 母星第一眼不让镜得出“自己过去错了”之类结论。
- [ ] 本场不引入具名母星配角,不提前进入【海底游览区】核心议题。
- [ ] 三个互动固定顺序、每次单选,不新增剧情变量。
- [ ] 本场不使用 `<<declare>>``<<set $...>>``$variable`
- [ ] 场末位于前往海洋深层起点的交通线上,为 `C0-S07` 留出独立开场。
## 十四、后续接口
- 用户批准本场景卡后,编写 `C0_DepartureToAsteria.yarn` 初稿。
- Yarn 获批以前,不配置 StoryData、Localization Table、交通场景资源或 VFX。
- `C0-S07` 正式进入【海底游览区】,围绕人工游览生态、真正原始海洋与“被照料的自然是否仍然真实”展开。
- `C0-S07` 是否需要具名保育员及其个人冲突,必须在独立前置信息讨论中确认,不能直接沿用早期探索稿的临时设计。
- 母星旅行继续严格按时间顺序推进,后续景点、角色与冲突各自建立场景卡。

View File

@@ -0,0 +1,376 @@
# Chapter 0 场景卡C0-S07 大洋之心
> 状态:**已确认前置信息的场景设计稿,非 Yarn 台本**
> 用途:锁定曦抵达阿斯特里亚后的第一处正式景点、海底游览生态、生态保育员伊内斯及其保护边界冲突。
> 本稿允许确定 Yarn 文件、Node、TextBlock、Character ID 与 Localization Key 的建议命名;不在本阶段修改 StoryData、Localization Table、CharacterRegistry、Prefab、C# 或正式 Yarn 台词。
## 一、场景定位
| 项目 | 内容 |
|---|---|
| 场景编号 | `C0-S07` |
| 暂定名称 | 大洋之心 |
| 时间 | `C0-S06` 抵达海洋深层站以后,覆盖当日下午约半日 |
| 主要地点 | 阿斯特里亚大洋之心外围的海洋深层站、游览生态区、浅水互动室、保护带观察廊与向地下都市上行的交通线 |
| 出场角色 | 曦、镜、伊内斯·阿尔梅达;少量游客与工作人员作为环境群像 |
| 玩家状态 | 刚完成与父母的当面告别并抵达母星,仍然难过,但对第一次母星旅行怀有真实好奇 |
| 核心互动 | 三个固定顺序的单选项互动:等待鱼群主动靠近、进入浅水互动室、前往真正的保护边界 |
| 主线结果 | 曦结识母星上的第一位朋友,亲自体验人工培育的安全海洋生态,并理解游览区与原始海洋之间必须存在不只由技术风险定义的边界 |
## 二、设计分类与核心命题
本场属于 Chapter 0 母星游览阶段的 **Addition**。它不增加主线路线、结局或永久变量,也不要求玩家替阿斯特里亚决定海洋保护政策。
本场的核心命题是:
> 经过设计、照料与安全控制的自然体验,不会因此自动变成虚假;喜欢一处自然,也不等于拥有进入它每一个角落的权利。
该命题分为两个连续层次:
1. **被照料的相遇是否真实**:游览区的生物由人类培育,没有攻击性,也更容易回应游客,但它们仍是拥有自身活动规律的生命,不是播放给游客的影像。
2. **亲近是否意味着继续开放**:游览区让公众认识海洋具有真实价值,却不能因此把保护区视为下一块等待技术成熟后开发的空间。
### 本场必须完成
- 让曦在告别之后重新表现出勇敢、外向和喜爱探索的一面;
- 明确游览区生物是真实的生物工程生命,不是机器人、数字生命或人工智能;
- 表现这些生物能够学习、组成群体、主动回应或避开游客;
- 让曦亲自进入浅水互动室,而非全程隔着玻璃听讲解;
- 建立游览生态、休息水域、保护带与原始海洋之间的清晰空间边界;
- 引入伊内斯并表现她为何同时支持公共游览与反对无止境扩建;
- 让扩建提案保持善意、合理且尚未定论,不设置反派;
- 让镜以两次关键判断指出问题核心,不参与长时间辩论;
- 建立曦与伊内斯的初步友谊,但不让伊内斯加入后续全程旅行;
- 在场末连接【地下都市与团结纪念碑】。
### 本场不得完成
- 不讨论“人工智能算不算生命”或“机器是否拥有灵魂”;
- 不把鱼群写成拥有成年人类语言、人格或政治权利的智慧种族;
- 不以捕食、伤亡或设备事故制造廉价危险;
- 不让曦、镜或伊内斯进入真正的原始海洋核心区;
- 不把原始生态美化成和平、友善或专门等待人类观看的自然乐园;
- 不让扩建方成为贪婪企业、腐败政府或故意破坏环境的反派;
- 不由玩家批准或否决扩建提案,不新增路线变量;
- 不让镜因鱼群、曦或伊内斯的说法而理解生命之美、承认错误或改变四维价值观;
- 不让伊内斯的个人冲突与 `Alunite` 的飞升后身份焦虑重合;
- 不提前开始地下都市、团结纪念碑或大图书馆内容。
## 三、海洋与游览生态设定
### 大洋之心
阿斯特里亚的大部分地表已由城市覆盖,大洋之心则是母星仍被完整保留的大规模海域。它既承担原生生态保护,也保存文明起源星球上无法在其它专业都市世界复制的自然历史。
- 海域核心保持黑暗、高压、捕食、疾病与复杂生态竞争;
- 星联有能力让人安全进入更多区域,却选择不把“能够抵达”直接等同于“应该开放”;
- 科学研究同样需要限定时间、路线、照明和取样范围;
- 游览区位于大洋之心外围,和核心原始海域之间存在多层生态缓冲带;
- 海底旅游设施属于星际殖民成熟后的母星再建设工程,早于记忆上传计划,与大图书馆建设处于相近历史阶段。
### 人工培育的游览生态
游览区中的鱼群、软体生物与礁体生物是通过生物工程培育的真实生命。正式台本统一使用“人工培育生物”“游览生态种”或具体动物名称不把它们简称为“AI”。
- 它们具有新陈代谢、成长、学习、群体偏好与动物级认知;
- 它们没有会危害游客的攻击行为,也不依赖捕食其它游览种维持生态;
- 它们能够识别游客动作并作出回应,但不会被强制靠近每一位游客;
- 游客动作过快、声音过强或停留时间过久时,鱼群可以离开;
- 每片互动水域都连接不向游客开放的休息区,生物能够自行退出展示空间;
- 互动记录只用于生态健康与游客分流,不为每名游客编排固定表演;
- 游览生态不能替代原始海洋,也不会被官方宣传为“完整自然”。
### 玻璃隧道与浅水互动室
玻璃隧道顺着人工礁体与水流延伸,不设计成一条只用于陈列生物的笔直展柜。
- 鱼群可从多个方向穿过隧道附近水域,也可进入游客看不见的区域;
- 游客可以把手贴近玻璃,但需要等待生物自行靠近;
- 浅水互动室通过生态隔离门连接游览水域,与原始海洋没有直接通道;
- 游客穿轻型呼吸与恒温装备进入,水流、水温和深度均在安全范围;
- 镜不需要装备,只需缩小三维投影范围,避免阻挡游客与鱼群;
- 互动室没有追逐、投喂或强制触摸项目。
### 保护带观察廊
观察廊位于游览区最外侧,是普通游客在工作人员陪同下能够抵达的最后区域。
- 廊道关闭主要导览灯,只保留不干扰生物的最低安全照明;
- 玻璃外不设置会主动靠近游客的培育鱼群;
- 远处偶尔能够看见无法辨认的原生生物轮廓,但不能保证每次都有观测结果;
- 观察廊的目的不是提供“更刺激”的深海体验,而是让人承认游览区之外仍有大量不可直接占有和观看的空间;
- 前往观察廊不等于进入原始海洋,不违反保护区规定。
## 四、扩建提案
### 提案内容
一项处于公开评估阶段的提案,希望在现有观察廊以外增加一条低照明、全封闭的透明交通线,让行动不便者、儿童和普通游客能够更接近深海缓冲区。
提案方承诺:
- 不允许游客离开交通舱;
- 不投喂、不取样、不增设互动生物;
- 使用低干扰照明和被动观测设备;
- 以现有技术评估,施工与运营风险处于可控范围;
- 通过更直观的体验增加公众对海洋保护的支持。
这些理由都是真实且善意的。本场不得揭示提案背后存在商业阴谋或虚假数据。
### 伊内斯的担忧
伊内斯不否定公共接近的价值,因为她自己正是被童年游览经历改变的人。她担心的是:
- 如果边界只用“当前技术无法保证安全”解释,技术进步后便必须继续后退;
- 每一次扩建都可以单独证明影响很小,但连续累积会把缓冲带变成新的游览区;
- 公众可能逐渐把原始海域理解成“尚未完成开发”的空间;
- 保护不仅是防止直接伤害,也包括允许某些区域不以满足人类观看需求为目的。
伊内斯尚未决定自己的正式评估意见如何表述。她不是在选择“支持公众”或“保护海洋”中的一个,而是在寻找能够同时承认两者、又不会令边界失去意义的理由。
### 本场结论边界
本场不批准、不否决提案,也不暗示伊内斯的个人意见足以决定公共政策。
她在场末只获得一个更清楚的表述方向:
> 游览区应当帮助人们认识海洋,也应当帮助人们认识自己不能抵达的边界;公共体验的成功,不以开放面积不断扩大来证明。
该结论仍需通过生态数据、公开讨论与正式程序接受检验。
## 五、角色档案:伊内斯·阿尔梅达
| 项目 | 内容 |
|---|---|
| 中文名 | 伊内斯·阿尔梅达 |
| 拉丁字母名 | Inês Almeida |
| Character ID | `Ines` |
| 年龄 | 29 岁 |
| 身份 | 大洋之心游览生态与保护边界协调员 |
| 出生地 | 阿斯特里亚以外的一颗专业都市世界;本场不命名该世界 |
| 场景职能 | 母星第一位具名朋友;连接公众游览价值与生态边界冲突 |
### 经历
伊内斯童年随家人第一次来到阿斯特里亚,在同一座游览区与鱼群互动。那次安全、明亮且经过人工设计的体验令她第一次意识到“海”不是教材地图上的蓝色区域,后来选择生态维护与公共教育专业,并长期生活在母星。
她因此不会轻蔑普通游客,也不认为只有研究人员才配理解海洋。她支持游览区存在,愿意设计更好的无障碍体验,也相信公众亲近能够为保护制度建立长期支持。
正因为她亲身受益于一扇向公众打开的门,她很难简单告诉后来者“不允许继续向前”。扩建评估让她第一次必须说明:为什么自己曾经需要那扇门,却仍然认为有些门不应该继续增加。
### 性格与语言
- 学识专业,但习惯用游客能够理解的语言说明问题;
- 亲和、直接,遇到实际生态问题时会立即停止讲解去处理;
- 不把游客的幼稚问题视为冒犯,也不假装每个问题都有简单答案;
- 面对曦时知道她的公共身份,却不会追问契约或要求她发表英雄观点;
- 对镜保持礼貌与谨慎,不因它来自第四维度便默认其判断适用于海洋管理;
- 被精准指出矛盾时不会恼怒,也不会立刻接受镜的结论,而会先确认表达是否符合自己的真实担忧。
### 外观与服装
- 深蓝色轻型水下工作服,使用珊瑚橙色安全标识;
- 前臂佩戴生态监测终端,能够查看生物休息状态、水质与游客分流;
- 长发在工作时固定,不使用夸张贝壳、鱼鳍或海洋祭司式装饰;
- 鞋与手套适合在干燥廊道和浅水区之间快速切换;
- 整体首先是长期现场工作人员,其次才是可识别的具名角色。
### 与曦的关系
- 伊内斯是曦在母星结识的第一位新朋友;
- 关系从普通接待开始,通过曦真实参与体验、尊重生物退出和愿意观看保护边界逐渐自然靠近;
- 伊内斯不会因曦是英雄就把政策问题交给她裁决;
- 曦离开后,二人可以保留私人联络;伊内斯可在未来消息或音乐会群像中短暂出现,但不全程陪同母星旅行;
- 本场末不使用“永远的朋友”或过快亲密承诺。
## 六、角色目标与表演边界
### 曦
- **表层目标**:完成母星第一站,真正进入水中与鱼群接触。
- **真实状态**:家庭告别仍未过去,但海洋体验能够暂时把她的注意力带回当下;悲伤与兴奋可以同时存在。
- **外在表现**:进入游览区后主动提问、靠近玻璃、急着下水,也可能因为动作过大把鱼群惊走,再不服气地尝试安静等待。
- **核心理解**:不需要证明游览生物与原生鱼完全相同,才能承认这次相遇对自己真实;同样,不是所有喜欢的地方都必须亲自进入。
- **政策边界**:她可以帮助伊内斯说清感受,却不以候选人或英雄身份替公众决定扩建。
- **场末状态**:结识新朋友并恢复旅行动力,准备前往地下都市;她没有因为一处景点便得出关于整个文明的最终结论。
### 伊内斯
- **表层目标**:让曦像普通游客一样理解游览生态,而不是接受专门为英雄准备的展示。
- **真实状态**:扩建意见提交期限临近,她仍无法找到一个既不否定自己童年经历、又能守住保护边界的说明方式。
- **关键行动**:允许曦看到内部评估问题并带她前往观察廊,但不泄露非公开资料,也不利用曦的身份影响评审。
- **场末变化**:不是获得政策答案,而是能更准确地区分“让人接近海洋”与“让所有海域都成为入口”。
- **边界**:不说教、不神化自然、不把所有游客视作潜在破坏者,也不因一次谈话辞职、转职或改变人生方向。
### 镜
- **场景位置**:保持万华镜投影,在水中可缩小三维形态,不受水压、呼吸或温度影响。
- **发言频率**:低。它不需要评价每一种鱼、每一项设施或每一段游客行为。
- **第一次关键判断**:游览生态被设计为更容易产生安全而积极的回应,这项设计改变相遇条件,却不足以证明相遇没有发生。
- **第二次关键判断**:伊内斯真正保护的不是“现有技术无法安全进入”的区域,而是一条即使技术能够进入,也不应自动开放的边界。
- **态度**:平和、准确、不选边;它指出结构,不替伊内斯提交意见,也不评价哪一方更高尚。
- **OOC 禁区**:不因鱼群美丽而惊叹,不询问短暂生命是否值得,不承认自己忽略了三维关系,不从曦身上学习怜惜,也不主动帮助她与鱼互动。
## 七、场景推进顺序
1. **承接海洋深层站**:交通舱抵达。曦先在公共休息区吃一份简单食物,避免上一场已经提出“先找吃的”却直接跳过。
2. **第一次进入游览区**:玻璃隧道、人工礁体与鱼群在柔和蓝光中展开;真正的原始海域仍在更深、更远处。
3. **伊内斯接待**:伊内斯按普通预约迎接曦和镜,说明自己负责游览生态与保护边界,不举行英雄欢迎仪式。
4. **身份边界**:伊内斯知道曦是谁,却只确认是否同意普通导览、是否需要私人空间和是否愿意下水。
5. **鱼群没有立即靠近**:曦急着贴近玻璃时,鱼群先因动作过快转向,证明它们不会无条件配合每位游客。
6. **玩家互动一**:单选项“把手贴近玻璃,等鱼群主动靠近。”曦安静下来,几条鱼在观察后自行接近。
7. **说明人工培育生命**:伊内斯明确它们是真实生物,介绍学习、群体与休息区,不展开 AI 或人格争论。
8. **镜的第一次判断**:镜指出设计者改变了相遇条件,使生物更容易安全回应游客;它不把这种事实直接归类为欺骗。
9. **曦的直观回应**:曦承认自己知道鱼群经过培育,却不认为刚才的等待和回应因此没有发生。
10. **准备进入浅水室**:伊内斯检查装备与游客规则;镜缩小投影,不穿戴潜水设备。
11. **玩家互动二**:单选项“穿上装备,进入浅水互动室。”曦进入水中,第一次在母星海洋里自由移动。
12. **互动不是表演**:曦试图追鱼,鱼群散开;她停下来以后,部分生物重新靠近,另一些仍选择离开。
13. **温暖体验段**:曦与伊内斯轻松交谈,表现曦外向、好奇与装置亲和力;不立即进入政策争论。
14. **伊内斯的童年经历**:她说明自己也曾是第一次看海的外星球游客,这处人工生态改变了职业选择。
15. **生态休息时间**:伊内斯根据监测主动关闭一部分互动区域,让鱼群进入休息区;游客不会因购票而取得无限接触权。
16. **扩建提醒出现**:伊内斯的终端收到评估期限提示。她不把问题主动包装成英雄咨询,但曦察觉她明显分心。
17. **说明提案双方理由**:伊内斯解释低干扰扩建、无障碍价值与自己的顾虑,明确没有人试图破坏海洋。
18. **曦拒绝充当裁决者**:她说明自己刚到母星半天,不能替当地社会决定,却愿意看看伊内斯所说的边界。
19. **玩家互动三**:单选项“跟伊内斯去看看真正的保护边界。”三人进入工作人员陪同的观察廊。
20. **景象发生断裂**:灯光变暗,培育鱼群消失,窗外只剩无法保证出现的原生轮廓;原始海洋不主动回应来访者。
21. **镜的第二次判断**:镜精准指出,如果边界只依赖安全与技术限制,技术改善后就没有继续存在的理由;伊内斯实际主张的是不应自动开放的空间。
22. **伊内斯确认矛盾**:她承认这正是自己难以写进报告的部分,同时强调个人愿望仍需接受公共程序与生态证据审查。
23. **曦提供个人视角**:曦可以说,游览区正因为没有冒充整片海洋,才让她愿意相信这里的相遇;如果所有深处都变成路线,游客反而可能忘记自己只看见了被安排的一部分。
24. **不解决提案**:伊内斯记录新的表述方向,决定继续准备评估,不宣布支持或反对结果。
25. **建立友谊**:离开前,伊内斯向曦发送普通游客路线与私人联系方式,不要求她公开为保护区背书。
26. **场景收束**:曦与镜搭乘向上运行的地下交通线,游览区灯光逐渐远去;下一站进入【地下都市与团结纪念碑】。
## 八、玩家互动设计
本场为线性主线。三个互动按固定顺序出现,每次只有一个选项,不改变剧情变量、政策结论或后续路线。
| 顺序 | 单选项文本 | 叙事作用 | 固定结果 |
|---|---|---|---|
| 1 | 把手贴近玻璃,等鱼群主动靠近。 | 让玩家亲手选择等待,而不是把生物回应写成自动表演 | 部分鱼群自行接近,其余仍可离开 |
| 2 | 穿上装备,进入浅水互动室。 | 让曦以身体经验进入母星旅行,恢复冒险者的主动性 | 曦下水并与伊内斯建立自然交流 |
| 3 | 跟伊内斯去看看真正的保护边界。 | 将场景从轻松体验推进到个人冲突,不让政策问题凭空出现 | 三人进入观察廊,扩建提案仍未决定 |
这些互动不得改为三选一,不新增“是否亲近鱼群”“是否支持扩建”或“伊内斯好感度”变量。鱼群的具体动作可以由台本固定表现,不需要运行时随机或持久状态。
## 九、Yarn、TextBlock 与 StoryData 接口
### 建议 Yarn 文件与 Node
| 用途 | 建议值 |
|---|---|
| Yarn 文件 | `C0_OceanHeart.yarn` |
| 入口 Node | `C0_OceanHeart` |
| TextBlock ID | `c0_ocean_heart` |
| TextBlock 类型 | `Important` |
| 标题 Localization Key | `story_c0_block_ocean_heart_title` |
| 简体中文标题 | 大洋之心 |
建议内部 Node
- `C0_OceanHeart_MeetInes`
- `C0_OceanHeart_WaitForFish`
- `C0_OceanHeart_ShallowWater`
- `C0_OceanHeart_ExpansionProposal`
- `C0_OceanHeart_ProtectionBoundary`
- `C0_OceanHeart_Departure`
### Block 条件与布局
| 字段 | 配置 |
|---|---|
| Unlock Condition | `c0_contract_route == 1` |
| Forbidden Condition | `c0_contract_route == 2` |
| 前置 Block | `c0_departure_to_asteria` 完成 |
| 布局 | 位于 `c0_departure_to_asteria` 的下一列,接受路线 `gridRow = 0` |
| 新增剧情变量 | 无 |
| 新增 Timeline Marker | 无;母星游览仍沿用最近主线进度,不在单个景点增加回滚点 |
本场完成后开放【地下都市与团结纪念碑】对应 TextBlock。拒绝彩蛋路线不会与本场汇合。
## 十、Localization 与资源需求
### 新增 Localization Key
| 用途 | Key | 简体中文源文本 |
|---|---|---|
| TextBlock 标题 | `story_c0_block_ocean_heart_title` | 大洋之心 |
| 角色显示名 | `character_ines_name` | 伊内斯 |
正式台词、选项和旁白的 `#line` 标签由 Yarn 工具在文本批准后统一生成,不在场景卡阶段手工创建。
### CharacterRegistry 需求
Yarn 获批并进入资源接入阶段后,新增 `CharacterData`
```text
Character ID: Ines
Display Name Key: character_ines_name
Portrait Style: Sprite暂定
Required Emotions: normal, friendly, focused, concerned, relieved
```
当前 `VNDialoguePresenter` 的 Speaker 本地化仍是发布前待办;正式资源配置必须遵守项目角色显示名方案,不能把 `Ines` 直接当作最终中文显示文本。
### 场景与演出资源
- 曦:旅行服装、轻型水下装备;惊喜、跃跃欲试、被鱼躲开、专注等待、认真思考等表情。
- 伊内斯:深蓝工作服与浅水装备;亲和讲解、工作专注、谈到扩建时迟疑、确认核心问题等表情。
- 镜:沿用万华镜投影;增加水下缩小状态与水中光线折射表现,不需要情绪动画。
- 背景:海洋深层站、公共休息区、玻璃隧道、人工礁体、装备准备间、浅水互动室、暗光观察廊、地下上行交通舱。
- 生物:至少两类小型群游生物、一类能够单独选择靠近或离开的较大型游览生物;不需要拟人表情。
- UI生态休息状态、游客分流提示、扩建评估期限通知不展示完整政策文件或大量技术参数。
- 水下表现:柔和水体光线、气泡、水流、鱼群散开与返回;原始海域轮廓必须比游览区更少、更不确定。
## 十一、文本节奏与演出要求
- 旁白使用第三人称,以曦的感知为主要视角;不得以“你”指代曦或玩家。
- 人物台词使用 ASCII 英文冒号。
- 前半段体验篇幅应明显多于解释篇幅。玩家需要先喜欢游览区,之后才有条件理解伊内斯为什么不愿让它无限扩张。
- 换行即一次对话推进。鱼群靠近、曦入水和观察廊转暗可以保留必要停顿,但避免连续五六字短句。
- 伊内斯使用普通、清楚的语言,不把生态管理写成谜语或学术演讲。
- 曦以实际体验提问,不突然拥有海洋政策专业知识,也不发表能够终结公共争论的完整结论。
- 幽默主要来自曦急着亲近鱼群却把它们吓走、装备适配和镜不需要潜水设备,不拿生态风险或保护人员开玩笑。
- 镜只保留两次结构性判断;其余时间回答必要事实或保持安静,不与伊内斯在同一论点上来回争辩。
- 观察廊不保证出现壮观生物。没有看见任何东西也可以构成边界体验,不能用怪兽剪影制造廉价震撼。
- 场末友谊保持初步、自然,不用礼物、誓言或过度亲密告别证明关系成立。
## 十二、情绪转折
1. **悲伤没有阻止好奇**:曦刚离开父母,却仍会因为海底景象靠近舷窗。
2. **鱼群不自动配合英雄**:公共身份无法让生物回应她,等待才产生第一次接近。
3. **人工设计不等于虚假播放**:相遇条件经过安排,鱼群的实际动作仍属于当下生命活动。
4. **身体进入世界**:曦从观看者变成参与者,冒险者性格重新占据前景。
5. **亲近仍有拒绝权**:鱼群可以离开,互动区会休息,购票不等于取得无限接触。
6. **伊内斯不是反旅游保育员**:她自身正是公共游览价值的证明,因此矛盾不能被简单划分为开放与封闭。
7. **深海不回应来访者**:观察廊把安全、明亮、主动接近的体验突然切断。
8. **技术不是边界的唯一理由**:如果只因危险而不开放,更安全的技术迟早会令边界失效。
9. **理解不等于裁决**:曦帮助伊内斯说清问题,却没有替母星决定政策。
10. **第一位新朋友留下**:伊内斯不会同行,但母星已经从景点集合变成有具体人物生活其中的世界。
## 十三、连续性与 OOC 检查清单
- [ ] 本场紧接 `C0-S06` 海洋深层站结尾,先让曦吃东西,再进入正式游览。
- [ ] 中文专名统一使用“泽尼斯”“阿斯特里亚”,不在玩家可见文本中混用英文世界名。
- [ ] 曦刚完成家庭告别,情绪没有被景点瞬间治愈;好奇和难过可以同时存在。
- [ ] 伊内斯知道曦的身份,却没有举办欢迎仪式或追问契约细节。
- [ ] 游览生态种是真实生物,不是机器人、数字生命或人工智能。
- [ ] 本场不讨论“是否算生命”,也不让鱼群具备成年人类智慧。
- [ ] 鱼群能够主动靠近、拒绝互动或进入休息区,不是固定表演程序。
- [ ] 浅水互动室与原始海洋完全隔离,不存在游客意外进入核心保护区的安全漏洞。
- [ ] 真正原始海洋仍包含高压、捕食、疾病与危险,不被浪漫化成更“纯洁”的温柔生态。
- [ ] 扩建提案有真实公共价值,提案方没有阴谋、欺骗或恶意。
- [ ] 伊内斯的矛盾来自亲身受益于游览开放,却希望存在不继续开放的边界。
- [ ] 曦不凭英雄身份决定扩建政策,提案在场末仍未获得结论。
- [ ] 镜只有两次关键判断,不争辩、不赞美、不承认错误、不发生情感或观念变化。
- [ ] 镜不把完整时间线用于透露扩建结果、伊内斯未来或海域命运。
- [ ] 伊内斯的冲突与 `Alunite` 的存在意义、记忆管理和飞升焦虑完全不同。
- [ ] 三个互动固定顺序、每次单选,不新增变量或好感度。
- [ ] 本场不使用 `<<declare>>``<<set $...>>``$variable`
- [ ] 场末只连接地下都市交通,不提前讲述团结纪念碑核心内容。
## 十四、后续接口
- 用户批准本场景卡后,编写 `C0_OceanHeart.yarn` 初稿。
- Yarn 获批以前,不配置 StoryData、Localization Table、CharacterRegistry、伊内斯立绘或水下场景资源。
- 下一阶段为【地下都市与团结纪念碑】。正式制作前需要确认更新工程师的人物设定、地下都市建设历史,以及“必要更新如何避免把失去写成零成本替换”的个人冲突。
- 伊内斯不随队进入地下都市;后续如需再次出现,只通过已批准的消息或公共场合短暂回访。

View File

@@ -0,0 +1,453 @@
# Chapter 0 场景卡C0-S08 地下都市与团结纪念碑
> 状态:**已确认前置信息的场景设计稿,非 Yarn 台本**
> 用途:锁定曦在阿斯特里亚地下都市的正式游览、公共结构更新工程师萨米尔、旧交通环廊最后一次常规通行与团结纪念碑。
> 本稿允许确定 Yarn 文件、Node、TextBlock、Character ID 与 Localization Key 的建议命名;不在本阶段修改 StoryData、Localization Table、CharacterRegistry、Prefab、C# 或正式 Yarn 台词。
## 一、场景定位
| 项目 | 内容 |
|---|---|
| 场景编号 | `C0-S08` |
| 暂定名称 | 地下都市与团结纪念碑 |
| 时间 | `C0-S07` 当晚抵达地下都市并住宿;次日上午开始正式游览,覆盖约半日 |
| 主要地点 | 中央历史区住宿层、普通生活层与公共市场、即将关闭的旧交通环廊、团结纪念碑、通往大图书馆的公共交通站 |
| 出场角色 | 曦、镜、萨米尔·纳赛尔;居民、摊主、通勤者、学生、更新工程人员与通行测试参与者作为社会群像 |
| 玩家状态 | 已完成母星第一站,开始从“景点中的阿斯特里亚”转向观察普通人如何长期居住、维护和更新共同空间 |
| 核心互动 | 三个固定顺序的单选项互动:沿旧路标穿过生活层、获许可用旧探针检查已拆材料样本、参加旧环廊关闭前最后一次常规通行测试 |
| 主线结果 | 曦理解地下都市的历史并不只存在于纪念碑,也存在于仍被使用、即将更新的公共结构中;她收下萨米尔赠送的结构材料纪念章,随后前往大图书馆 |
## 二、设计分类与核心命题
本场属于 Chapter 0 母星游览阶段的 **Addition**。它不新增主线路线、结局、永久变量或政策投票,也不重复 `C0-S07` 的“尚待公共评估”结构。
本场的核心命题是:
> 共同生活不仅依赖建成一座城市,也依赖持续更新它;必要而正确的更新可以执行,同时仍应诚实说明哪些材料、触感与日常路径不会随新方案一起继续存在。
该命题分为三个连续层次:
1. **团结首先是日常基础设施**:统一后的地下都市不是一座孤立奇观,而是跨越全球、历时百余年建设并至今仍被普通人使用的行星级城市网络。
2. **安全更新不是价值悬案**:旧环廊的结构内衬认证期限、通道宽度、无障碍能力与疏散标准都要求工程按已批准方案执行;本场不再举行第二次政策裁决。
3. **执行更新仍包含叙述责任**:新方案更安全,不等于旧材料留下的地方经验能够无缝转移;萨米尔的职责是把这一事实写清楚,而不是阻止工程。
### 本场必须完成
- 承接 `C0-S07`:曦与镜当晚抵达并住宿,正式游览从次日上午开始;
- 先展示生活层、公共市场与通勤人群,再进入工程与纪念碑内容;
- 明确地下都市是统一后全球同步建设、历时百余年的行星级地下城市网络;
- 明确建设目的为扩展生活空间、统一基础设施并避免拆除地表文化遗产;
- 不为地下建设添加灾难、末日避难、地表失居或生态崩溃背景;
- 明确本场位于最早建成、团结纪念碑所在的中央历史区,而非整个网络的唯一核心;
- 通过自然偶遇引入萨米尔,不安排预约接待、英雄专属导览或欢迎仪式;
- 明确旧环廊更新已经完成公共程序、必须执行且新方案更安全;
- 让社会群像同时表现留恋旧路、欢迎改善、正常通勤和专业执行,不设置反派;
- 让旧探针参与一次获许可的材料检查,但不让它修复结构、推翻方案或解决冲突;
- 让镜只在场景核心处作一次精准、疏离的结构判断;
- 让团结纪念碑保持低矮、环形、中心可通行,不塑造单一伟人;
- 场末由萨米尔赠送一枚以废弃或淘汰结构材料制成的纪念章,曦接受并收好;
- 连接下一站【大图书馆】,萨米尔不随行。
### 本场不得完成
- 不把地下都市写成灾后避难所、战争掩体、地表无法居住后的被迫迁徙工程;
- 不把全球同步建设写成瞬间完成、完全同质化或由单一地区向全球复制的项目;
- 不让团结等于没有分歧、没有地方习惯或所有区域采用相同生活样式;
- 不把旧环廊更新重新写成待表决、待否决或需要曦提供英雄意见的政策争议;
- 不设置强拆者、腐败管理者、守旧居民或阻碍安全的反派;
- 不暗示旧方案与新方案安全性相同,也不让“保留旧物”凌驾于无障碍和疏散责任;
- 不让探针发现足以取消工程的秘密技术、隐藏危险或万能修复方法;
- 不让纪念碑成为总设计师、统一领袖或工程负责人的个人崇拜设施;
- 不让镜分析纪念章对曦的情感意义,也不借礼物推动镜的情感成长;
- 不在本场讨论人格备份、记忆授权、飞升后的身份连续性或 `Alunite` 的存在问题;
- 不提前展开大图书馆内部、记忆样例或下一场核心冲突。
## 三、地下都市世界设定
### 行星级地下城市网络
地下都市不是一座单独城市,而是阿斯特里亚统一后启动的全球建设体系。各地区在同一历史阶段同步规划和施工,并在此后一百多年中逐步接通生活、交通、能源、水循环、通信与公共安全标准。
- “同步建设”指全球共同启动并持续协调,不代表所有区段同日完工;
- 各地可以保留自己的街区尺度、语言标识、饮食和公共空间习惯,同时接入统一基础设施;
- 地下网络扩展了长期生活空间,但没有取代地表城市,也没有要求人口全部迁入地下;
- 许多线路绕开地表历史街区、宗教与公共建筑、传统景观和考古区域,以避免为了增加住房与基础设施而拆除地表文化遗产;
- 统一标准解决的是跨区域供给、通行、维护和安全接口,不要求所有人的生活方式先变得相同;
- 网络至今持续更新,因此“建成”不是历史终点,而是长期公共维护的开始。
### 中央历史区
本场发生在最早完成并投入长期使用的中央历史区。这里因早期承担跨区域材料、人员与标准验证而保存了多代建设痕迹,团结纪念碑也设置在此。
- 它是历史与交通上的重要节点,但不是支配其它地区的唯一中心;
- 最早期结构与后续加建层并存,更新接缝和维修记录无需全部遮蔽;
- 历史展示嵌在住宅、市场和交通层之间,而不是把整个城区冻结成博物馆;
- 游客路线与居民日常路线重叠,纪念碑周边仍有通勤、购物、上学和维护活动;
- 正式台本应先让玩家看到这里“仍在生活”,再说明它“很早建成”。
### 普通生活层与公共市场
生活层用于建立地下都市的尺度与日常性,避免世界级工程只通过说明牌存在。
- 人工天幕提供稳定的昼夜节律,但居民不把它误认成真正天空;
- 住宅、学校、诊所、小型公园与公共市场沿多层步行平台展开;
- 市场出售早餐、维修零件、植物、书籍和日用品,不设计成只服务游客的未来奇观;
- 早期路标仍保留在部分步行路径上,并与新版通用导向系统共同使用到环廊关闭;
- 旧路标并不总是最短路线,却会带人经过长期形成的摊位、休息平台与邻里节点;
- 居民对更新的态度可以不同,但所有人都生活在同一已生效的工程安排中。
### 空间与色彩推进
本场视觉节奏随叙事从普通生活逐步收紧,再在纪念碑处重新开放:
1. 日常下行大厅使用中性白与局部暖光,首先建立住宿、换乘和普通公共服务;
2. 人工暮色下的生活层向横向展开,市场、住宅平台与人流共同扩张城市尺度;
3. 旧交通环廊转为石墨灰旧内壁、浅色新结构与琥珀检修灯并排的压缩空间,让更新差异直接进入画面;
4. 团结纪念碑重新开放构图,低矮环体没有唯一正面,生活人流从中心和四周持续穿过。
色彩变化用于区分空间职能与更新阶段,不暗示旧结构邪恶、新结构纯洁,也不把纪念碑从日常城市中隔离出来。
## 四、旧交通环廊更新工程
### 已确认的工程结论
旧交通环廊是中央历史区仍在运行的早期公共通道之一。更新方案已经完成公开说明、技术复核、无障碍审查、居民意见收集与正式批准,关闭后必须按计划施工。
必须更新的原因包括:
- 现有结构内衬即将达到认证期限,不能继续依赖临时延长;
- 早期通道宽度无法满足当前人流与双向辅助设备通行需求;
- 部分坡度、转向与站台接口不符合现行无障碍标准;
- 疏散宽度、分流节点和紧急指引需要达到当前公共安全要求;
- 新内衬与结构方案拥有更长认证周期、更清楚的检修界面和更安全的故障隔离能力。
本场必须清楚承认:新方案更安全、工程决定正确、施工不会因主角到访而暂停或重启评估。
### 仍需面对的变化
萨米尔不反对更新,也不试图保留整条旧环廊。他负责的记录工作关注旧结构退出日常使用时实际发生的变化:
- 多次维修形成的材料层次、表面触感和光线反射不会原样延续;
- 居民熟悉的旧路标、转角视线和经过市场的行走习惯将改变;
- 扫描、样本与档案能够保存证据,却不能让旧通道继续作为每天经过的同一处公共空间;
- 新环廊无需伪装成旧环廊从未关闭,也不需要用怀旧装饰削弱新安全设计;
- 工程交付文件应同时记录改善项目与退出使用的旧结构,而不是只用寿命、吞吐量和预算概括全部变化。
这不是第二次未决政策评估。冲突落在萨米尔如何完成一份诚实的更新记录,以及曦如何理解“正确执行”与“承认变化”可以同时成立。
### 最后一次常规通行测试
旧环廊关闭前会进行一次最后的常规通行测试。它不是追悼仪式、庆典或为曦举办的特殊活动,而是工程交接所需的正常流程。
- 参与者包含普通通勤者、携带婴儿车或行动辅助设备的居民、市场配送人员与工程观察员;
- 测试记录现有宽度、分流、等待和疏散指引在真实人流中的表现;
- 测试能直接显示旧环廊为何不再适合继续承担公共交通责任;
- 居民可以在最后一次通过时拍照、摸一摸熟悉的扶手或保持沉默,但不阻止关闭;
- 结束后按计划封闭旧通道,人员转入临时线路,施工准备立即开始。
## 五、团结纪念碑
团结纪念碑位于中央历史区一处仍被日常穿行的公共广场。它是一座低矮环形材料结构,中心保持开放,行人可以从任何方向穿过。
- 环体由不同地区、建设阶段和功能系统的材料样本组成;
- 材料标签首先记录来源、原用途、服役时间与接入共同标准的过程;
- 环形没有唯一正面,也没有要求访客按固定顺序参观;
- 中心不是封闭展台、祭坛或领袖雕像,而是公共通行空间;
- 设计师、工程负责人和协调团队姓名完整保存在资料区,可查阅但不占据纪念碑主体;
- 资料区同时保存争论、修订、延误与地方适配记录,不把百余年建设简化成一条胜利叙事;
- 纪念碑表达的“团结”是不同地区愿意共享基础设施责任并为彼此调整接口,而不是所有地区最终变得一样。
旧环廊退役后,经过安全处理和登记的部分材料可以进入纪念碑资料区或公共教育材料库。是否收存由既有归档流程决定,不由曦、镜或萨米尔现场裁决。
## 六、角色档案:萨米尔·纳赛尔
| 项目 | 内容 |
|---|---|
| 中文名 | 萨米尔·纳赛尔 |
| 拉丁字母名 | Samir Nasser |
| Character ID | `Samir` |
| 年龄 | 38 岁 |
| 文化命名 | 阿拉伯语文化圈姓名;正式文本保留完整姓名来源,不把其文化背景写成异域装饰 |
| 身份 | 中央历史区公共结构更新工程师 |
| 出生与成长 | 在本区长大,后前往其它地区接受结构更新与跨标准维护训练,完成外地项目后返回本区工作 |
| 场景职能 | 通过正在执行的更新工程,将地下都市历史、公共安全与记录责任连接起来 |
### 经历
萨米尔熟悉旧环廊,不是因为他把每一处旧结构视为应当原样保存,而是因为这里曾是他的上学、购物与通勤路径。外出训练让他接触过更晚建成、标准更先进的地下城区,也使他清楚旧环廊已无法继续承担当前公共责任。
他返回中央历史区不是为了“守住过去”,而是因为最早建成的城区需要长期面对复杂更新:旧材料、现行规范、居民使用习惯和跨区域系统必须在同一项目中被准确处理。他认可已批准方案,并负责旧结构记录、材料取样、关闭测试与新工程接口交接。
### 性格与语言
- 沉着、耐心,习惯先确认别人真正询问的是技术事实、历史经验还是个人感受;
- 干燥幽默来自工程现场的实际观察,不用夸张笑话化解安全责任;
- 不把游客的好奇当作干扰,但会明确许可、采样和通行边界;
- 不因曦的公共身份邀请她裁决工程,也不把偶遇包装成英雄访问;
- 对镜保持专业距离,只回应与当前结构和记录工作相关的判断;
- 被指出报告表述问题时会确认其准确范围,不把一句判断扩展成人生启示。
### 外观与服装
- 石墨灰公共工程制服,沿肩部、袖口和裤侧使用琥珀色安全线;
- 制服适合在市场、公共通道与封闭工程区之间工作,不使用礼服式肩章;
- 前臂终端显示关闭测试、材料批次、许可状态与疏散路线;
- 工具以结构扫描、样本标记和通行记录设备为主,不携带夸张重型武器式器械;
- 制服保持轻便公共工程服轮廓,不使用重甲、外骨骼或战斗人员式护具;
- 整体首先是一名仍在当班的公共工程人员,其次才是具名角色。
### 与曦的关系
- 两人在生活层自然偶遇,萨米尔当时正在核对旧路标与关闭前导向,不负责接待曦;
- 他恰好与曦前往中央广场的路线重合,允许她在不妨碍工作的前提下同行;
- 曦对装置和材料的兴趣使交流自然延续,但不会让她取得普通游客没有的危险权限;
- 旧探针检查仅发生在萨米尔确认样本已拆除、无结构职责且允许接触以后;
- 场末赠礼是个人而克制的告别,不是官方授勋、竞选表态或英雄纪念品;
- 萨米尔留在中央历史区继续工程,不随曦和镜前往大图书馆。
## 七、角色目标与表演边界
### 曦
- **表层目标**:按照伊内斯建议的路线先看普通生活区,再前往团结纪念碑。
- **真实状态**:她开始发现母星历史不只由宏大设施组成,也由仍在使用的路标、市场和公共通道组成。
- **外在表现**:愿意偏离最短路线、观察旧标识、询问工程工具,并在获得许可后拿出父亲给她的旧探针。
- **探针边界**:探针可以帮助她读取已拆样本的层次、磨损或旧维修痕迹,但不能决定工程方案、修复环廊或让旧材料重新通过认证。
- **核心理解**:一项更新可以更安全、更应执行,同时仍然需要准确记录旧结构停止参与日常生活这一事实。
- **场末状态**:收下纪念章并放入随身包,继续前往大图书馆;不将礼物公开展示为英雄背书。
### 萨米尔
- **表层目标**:完成关闭前路标核对、样本登记和最后一次常规通行测试。
- **真实状态**:他不怀疑工程是否应执行,却拒绝把替换报告写成所有旧经验都已被扫描和新材料完整接替。
- **关键行动**:允许曦查看合法样本、带她参加正常通行测试,并说明新方案具体改善哪些公共责任。
- **场末变化**:不是改变工程结论,而是找到更准确的交接表述:新环廊承担未来通行,旧环廊的退出则由材料、记录和居民证词分别留档,三者不能互相冒充。
- **边界**:不拖延施工、不绕过公共程序、不以个人怀旧否定无障碍需求,也不把曦的回应写成政策依据。
### 镜
- **场景位置**:保持万华镜投影,遵守市场与环廊的公共占用范围,不主动扫描受限工程资料。
- **发言频率**:极低。除必要事实回应外,只在旧环廊更新矛盾的核心处进行一次结构性判断。
- **唯一关键判断**:萨米尔并未质疑替换的正确性;他拒绝的是用新方案能够承担相同公共功能,推导出旧空间中的全部经验也已被等价保留。
- **态度**:准确、疏离,只区分功能接替、材料留档与生活经验之间的不同,不评价哪一种更动人。
- **礼物边界**:纪念章出现后保持沉默,不判断曦为何收下,不解释礼物代表何种关系,也不从中获得新的三维情感认识。
- **OOC 禁区**:不赞美团结、不因百年工程震撼、不承认自己低估人类协作、不帮助探针得出超出权限的结论、不透露环廊或城市的未来。
## 八、场景推进顺序
1. **承接大洋之心**:列车在当晚抵达中央历史区。曦与镜按普通行程进入住宿层,不在夜间直接开始正式导览。
2. **次日上午出发**:曦从住宿层进入生活层,人工天幕已切换为晨间光线,市场和通勤线路开始繁忙。
3. **城市先作为生活空间出现**:住宅、学校、诊所、小型公园、早餐摊位和维修店共同构成第一印象;纪念碑只在远处导向系统中出现。
4. **旧路标与新版导向并存**:新版路线指向最快的中央广场路径,旧路标则经过长期使用的市场内侧通道。
5. **玩家互动一**:单选项“沿旧路标穿过生活层。”曦选择伊内斯提过的普通生活路线。
6. **自然偶遇萨米尔**:萨米尔正在核对旧路标关闭后的替代引导,因曦发现一处标识年代差异而与她交谈。
7. **身份保持普通**:萨米尔认出曦,但只确认她是否要前往中央广场;他不是预约导游,也不改变工作安排。
8. **顺路同行**:萨米尔正要去旧环廊进行样本登记和通行测试,路线与曦重合,因此允许她和镜同行。
9. **说明城市网络历史**:通过沿途不同年代接口、地区标识和生活层结构,解释统一后全球同步开工、历时百余年和三项建设原因。
10. **不增加灾难背景**:萨米尔明确地下扩展是长期生活空间与基础设施工程,并非地表毁坏后的避难措施。
11. **社会群像展开**:摊主询问关闭后的配送路线,学生比较新旧通勤时间,使用行动辅助设备的居民期待新通道宽度,也有人拍下最后仍在使用的旧标识。
12. **进入更新准备区**:旧环廊仍维持常规通行,施工隔离只覆盖已拆样本和设备检查区域。
13. **明确决定已生效**:萨米尔说明更新已通过程序并必须执行;内衬认证、通道宽度、无障碍与疏散标准都不能由怀旧取代。
14. **展示已拆材料样本**:样本来自不再承担结构职责的测试拆除段,表面保留不同年代的修补层和使用痕迹。
15. **曦提出使用旧探针**:她没有直接接触工程材料,而是先询问萨米尔是否允许检查。
16. **玩家互动二**:单选项“经萨米尔许可,用旧探针检查已拆材料样本。”
17. **探针只提供有限信息**:它读取材料层次、磨损与修补差异,验证旧结构经历过多次更新,也显示其当前状态无法代替正式认证。
18. **萨米尔说明记录冲突**:扫描和样本能够保存资料,新方案也确实更安全,但报告不能因此声称旧空间的一切都已无缝继续。
19. **镜的唯一关键判断**:镜区分公共功能接替、材料证据留存和日常经验延续,指出萨米尔反对的是把三者写成同一件事。
20. **萨米尔限定判断**:他确认镜准确描述了报告问题,同时重申这不会改变关闭日期或更新方案。
21. **准备最后通行测试**:工作人员向所有参与者说明测试目的、路线和紧急规则;曦以普通参与者身份加入。
22. **玩家互动三**:单选项“参加旧环廊关闭前最后一次常规通行测试。”
23. **真实人流显示必要性**:双向人流、配送车和行动辅助设备在旧转角处需要等待;现有疏散指引能够工作,却明显不符合新的公共标准。
24. **正常结束而非仪式告别**:测试完成,数据归档,通道按计划封闭。居民与工作人员各自离开,没有全体致辞或一致情绪。
25. **前往团结纪念碑**:三人从临时路线进入中央广场,低矮环形结构与市场、住宅和通勤人流同时出现。
26. **纪念碑说明**:萨米尔介绍材料来源与全球建设过程;曦可从中心直接穿过,理解这里没有唯一正面。
27. **负责人位于资料区**:曦发现设计师和工程负责人姓名可查,但不占据主体;百余年修改、地方适配和集体参与同样被记录。
28. **城市历史与当下接合**:旧环廊的合规材料样本未来可能按程序进入资料区,纪念碑因此不是封存过去,而是持续接收城市更新记录。
29. **萨米尔赠送纪念章**:离开广场前,他把一枚由已淘汰、完成登记且不再承担结构职责的材料制成的纪念章交给曦。
30. **曦收好礼物**:曦接受、道谢并把纪念章放进随身包;镜不评论这一动作。
31. **分别**:萨米尔返回工程区完成封闭交接,明确不会陪同下一站。
32. **场景收束**:曦与镜搭乘公共交通前往大图书馆,主题从材料、公共空间与更新责任转向下一场内容。
## 九、玩家互动设计
本场为线性主线。三个互动按固定顺序出现,每次只有一个选项,不改变工程结论、角色关系或后续路线,也不写入剧情变量。
| 顺序 | 单选项文本 | 叙事作用 | 固定结果 |
|---|---|---|---|
| 1 | 沿旧路标穿过生活层。 | 让玩家先通过普通居民使用的路径认识地下都市,而不是直达纪念碑 | 曦经过市场并自然遇见正在核对导向的萨米尔 |
| 2 | 经萨米尔许可,用旧探针检查已拆材料样本。 | 回收父亲赠予的旧探针,让曦以熟悉的方式接触材料历史,同时强调许可与能力边界 | 探针读取有限材料信息,不修复结构、不改变认证和工程决定 |
| 3 | 参加旧环廊关闭前最后一次常规通行测试。 | 让玩家亲身看见更新必要性与居民日常变化,而不是听取第二场政策辩论 | 测试完成,旧环廊按计划关闭,新方案继续执行 |
这些互动不得改为三选一,不新增“保留或更新”“支持居民或工程”“是否接受礼物”等选择,也不新增萨米尔好感度。选项只是线性叙事中的主动确认,所有结果固定。
## 十、Yarn、TextBlock 与 StoryData 接口
### 建议 Yarn 文件与 Node
| 用途 | 建议值 |
|---|---|
| Yarn 文件 | `C0_UndergroundCity.yarn` |
| 入口 Node | `C0_UndergroundCity` |
| TextBlock ID | `c0_underground_city` |
| TextBlock 类型 | `Important` |
| 标题 Localization Key | `story_c0_block_underground_city_title` |
| 简体中文标题 | 地下都市与团结纪念碑 |
建议内部 Node
- `C0_UndergroundCity_MorningMarket`
- `C0_UndergroundCity_MeetSamir`
- `C0_UndergroundCity_MaterialSample`
- `C0_UndergroundCity_FinalTransitTest`
- `C0_UndergroundCity_UnityMonument`
- `C0_UndergroundCity_Departure`
### Block 条件与布局
| 字段 | 配置 |
|---|---|
| Unlock Condition | `c0_contract_route == 1` |
| Forbidden Condition | `c0_contract_route == 2` |
| 前置 Block | `c0_ocean_heart` 完成 |
| 布局 | 位于 `c0_ocean_heart` 的下一列,接受路线 `gridRow = 0` |
| 新增剧情变量 | 无 |
| 新增 Timeline Marker | 无;母星游览继续沿用最近主线进度,不为单个景点新增回滚点 |
本场完成后开放【大图书馆】对应 TextBlock。拒绝彩蛋路线不会与本场汇合。本场不新增分支 Block不配置额外 `Exclusive Route Group`
## 十一、Localization 与资源需求
### 新增 Localization Key
| 用途 | Key | 简体中文源文本 |
|---|---|---|
| TextBlock 标题 | `story_c0_block_underground_city_title` | 地下都市与团结纪念碑 |
| 角色显示名 | `character_samir_name` | 萨米尔 |
正式台词、选项和旁白的 `#line` 标签必须在文本审稿批准后由 Yarn 工具统一生成。场景卡阶段和未批准的 Yarn 初稿不得手工添加、复用或整理 `#line`
### CharacterRegistry 需求
Yarn 获批并进入资源接入阶段后,新增 `CharacterData`
```text
Character ID: Samir
Display Name Key: character_samir_name
Portrait Style: Sprite暂定
Required Emotions: normal, dry, focused, serious, relaxed
```
当前 `VNDialoguePresenter` 的 Speaker 本地化仍是发布前待办;正式资源配置必须遵守项目角色显示名方案,不能把 `Samir` 直接当作最终中文显示文本。
### 场景与演出资源
- 曦:次日旅行服;好奇观察、操作探针前确认、测试中专注、收下纪念章等表情与动作。
- 萨米尔:石墨灰制服与琥珀安全线;核对路标、登记样本、说明安全要求、干燥幽默和交接工作状态。
- 镜:沿用万华镜投影;无需新增情绪动画,只需适配市场与环廊的公共空间构图。
- 背景:夜间住宿层入口、晨间生活层、公共市场、多层步行平台、旧路标路线、更新准备区、旧交通环廊、临时交通线、中央广场、团结纪念碑、大图书馆方向站台。
- 空间色彩:日常下行大厅为中性白与暖光;生活层为横向展开的人工暮色;旧环廊以石墨灰旧内壁、浅色新结构和琥珀检修灯形成压缩对照;纪念碑区域恢复开阔、平视且可穿行的构图。
- 道具:旧版与新版路标、合法拆除材料样本、曦的旧探针、工程终端、通行测试标记、低矮环形纪念碑材料单元、资料区终端、结构材料纪念章。
- 纪念章:约两指宽的不规则深灰扁片,保留原结构固定孔与旧裂痕,以浅色新材料完成安全补强;修补边界清楚可见,不添加徽记、口号、发光效果或官方授勋造型。
- UI旧环廊关闭日期、临时路线、通行测试规则、材料样本许可状态不展示新的政策投票或未决审批界面。
- 群像:摊主、学生、通勤者、配送人员、使用不同辅助设备的居民和更新工作人员;服装与行为首先服务普通生活,不统一成庆典人群。
## 十二、文本节奏与演出要求
- 旁白使用第三人称,以曦的感知为主要视角;不得以“你”指代曦或玩家。
- 人物台词使用 ASCII 英文冒号。
- 当晚抵达与住宿应简洁,主要篇幅从次日上午的普通生活层开始。
- 前半段先建立市场、人流与路线习惯,再解释全球建设史;不得连续使用大段百科式讲解。
- 萨米尔的历史说明应由眼前可见的接口、路标、材料和居民行为触发。
- 工程事实必须清楚:决定已生效、旧环廊必须关闭、新方案更安全;不制造“是否更新”的悬念。
- 幽默来自萨米尔对维修资格、路标习惯或工程现场的克制观察,不拿无障碍、疏散和居民留恋开玩笑。
- 旧探针的表现必须有限、可验证。它可以帮助看见材料层次,但答案仍由正式认证与公共工程流程决定。
- 镜只保留一次结构性判断。其它时候可以回答必要事实,但不与萨米尔持续辩论,也不在纪念碑和礼物段重复总结主题。
- 团结纪念碑不配合仰视英雄构图;优先使用平视、穿行、多人同时进入画面的构图。
- 环廊段的画面应比市场段明显收紧,让石墨灰旧内壁、浅色新结构与琥珀检修灯同时入镜;不能用阴暗危险滤镜暗示工程事故。
- 萨米尔的服装与动作保持公共工程人员尺度,不使用重甲、外骨骼、英雄站姿或战斗化工具展示。
- 萨米尔赠送纪念章后,镜头可短暂交代其固定孔、旧裂痕和可见的浅色补强边界;曦只需接受、道谢、收好,镜保持沉默且不通过镜面特写介入,旁白不替礼物规定唯一含义。
- 场末直接转向大图书馆方向,不用萨米尔全程陪游,也不以过度亲密承诺结束关系。
## 十三、情绪转折
1. **夜间抵达归于普通**:海底奇观之后,曦先在地下住宿层结束一天,而不是立刻接收下一段宏大历史。
2. **城市先被生活占满**:次日的早餐、上学、配送和通勤让地下都市成为居住地,而不是纪念设施的外壳。
3. **旧路并非最快却仍有意义**:旧路标把曦带进市场,也让她遇见维护这些路径的人。
4. **偶遇不变成英雄行程**:萨米尔认出曦却继续当班,关系建立在顺路和共同好奇上。
5. **百年工程不是单一意志**:统一标准与地方生活能够共存,建设时间来自全球协调与逐步接入。
6. **更新结论明确**:旧环廊需要关闭,新方案改善真实公共安全,本场不以犹豫制造戏剧性。
7. **探针能看见但不能解决**:曦的能力带她接触材料事实,却不能跨过认证、权限和公共责任。
8. **一次判断划清层次**:镜指出功能接替、材料保存与生活经验不是同一件事,随后退出讨论。
9. **最后通行证明必要性**:玩家亲历旧空间的限制,也看到居民对同一变化拥有不同反应。
10. **纪念碑允许人穿过**:团结不是仰望唯一名字,而是不同来源的材料围成仍可共同使用的中心。
11. **礼物被安静收下**:纪念章离开工程材料流进入曦的随身包,不需要被公共频道或镜的解释确认。
12. **同行在此结束**:萨米尔返回更新工作,曦与镜前往大图书馆,母星继续以不同人物和责任展开。
## 十四、Lore 状态、连续性与 OOC 检查清单
### Lore 文档状态
| 项目 | 内容 |
|---|---|
| Canon Level | `Established`:本卡冻结项来自已批准的 `C0-S08` 设计;具体台词、镜头与美术细节在正式制作前仍需审稿 |
| Visible To Player | `Yes / Discoverable`:生活层、工程、纪念碑与赠礼在主线可见;网络建设细节通过环境和资料区逐步获取;本场不新增隐藏真相 |
| Cross-References | `docs/chapter0-scene-07-ocean-heart-card.md``Assets/Story/Chapter0/C0_OceanHeart.yarn``docs/chapter0-prologue-dialogue-exploration.md`、后续【大图书馆】场景卡、后续 `Alunite` 场景设计 |
| Contradictions Check | 已核对当前 Writer/Programmer 手册、`C0-S07` 场景卡与正式 Yarn接受/拒绝路线、无新增变量、无新增 Marker、角色分工与母星游览顺序一致 |
| Source | 用户批准的 `C0-S08` 冻结设计;旧探索稿仅作为早期结构参考,冲突处由本卡覆盖 |
### 连续性与 OOC 检查清单
- [ ] `C0-S07` 当晚抵达并住宿,`C0-S08` 正式游览从次日上午开始。
- [ ] 地下都市是统一后全球同步建设、历时百余年的行星级网络,不是一座单独避难城。
- [ ] 建设理由只包括扩展生活空间、统一基础设施和避免拆除地表文化遗产,不新增灾难背景。
- [ ] 本场位于最早建成且设有团结纪念碑的中央历史区,不把它写成唯一有价值的城区。
- [ ] 叙事顺序保持“普通生活层/市场 → 更新交通环廊 → 团结纪念碑 → 前往大图书馆”。
- [ ] 萨米尔为 38 岁公共结构更新工程师,在本区长大、外出受训后返回;服装为石墨灰与琥珀安全线。
- [ ] 萨米尔与曦自然偶遇,不是预约导游,不举行英雄欢迎或特殊工程参观。
- [ ] 旧环廊更新已通过程序并必须执行;内衬认证、宽度、无障碍和疏散理由全部明确。
- [ ] 新方案明确更安全,不把旧结构保留写成与公共安全等价的选择。
- [ ] 本场不再做第二次未决政策评估,不由曦、镜或玩家重新批准工程。
- [ ] 社会群像有不同感受但没有反派,也没有任何一方被写成阻碍文明进步。
- [ ] 三个互动固定顺序、每次单选不新增变量、分支、Marker 或好感度。
- [ ] 旧探针只检查已拆且获准接触的样本,不解决问题、不推翻认证、不产生隐藏发现。
- [ ] 最后一次通行是常规工程测试,不是专为曦安排的告别仪式。
- [ ] 团结纪念碑低矮、环形、中心可通行;设计师和负责人姓名在资料区,不塑造唯一英雄。
- [ ] 镜只在核心处进行一次精准判断,保持疏离,不在礼物段解释情感意义。
- [ ] 萨米尔赠送由废弃或淘汰结构材料制成的纪念章;曦接受并收好。
- [ ] 玩家可见文本不使用“珍贵”“献祭”“抹除”概括本场主题或礼物。
- [ ] 本场聚焦材料、公共空间与更新责任,不进入人格记忆、授权和飞升身份问题。
- [ ] 萨米尔不随行进入大图书馆,场末只建立下一站方向。
- [ ] 本场不使用 `<<declare>>``<<set $...>>``$variable`,也不在审稿前添加 `#line`
## 十五、与旧探索稿及下一场的边界
### 旧探索稿修订口径
`docs/chapter0-prologue-dialogue-exploration.md` 中相关样例属于早期探索,不是本场最终执行口径。正式 Yarn 必须按本卡修订:
- 将“更新是否执行”的讨论改为已完成程序、必须执行的工程事实;
- 删除任何让曦或镜参与第二次政策裁决的结构;
- 将镜的多次总结压缩为一次核心判断;
- 保留萨米尔赠送结构材料纪念章与曦收好的动作;
- 删除镜对纪念章情感意义、私人关系或曦身份变化的分析;
- 避免用被禁用的三个主题词替代具体材料与公共空间变化。
### 与 `Alunite` 的职责分离
本场与下一阶段 `Alunite` 内容必须保持明确分工:
| 场景 | 核心对象 | 允许讨论 | 不应占用 |
|---|---|---|---|
| `C0-S08` 地下都市 | 结构材料、公共空间、基础设施更新责任 | 安全标准、材料记录、日常路径、共同建设与持续维护 | 人格记忆、记忆使用授权、飞升后的身份连续性 |
| 后续 `Alunite` | 人格记忆、授权、飞升身份 | 谁能够使用记忆、人格与记录的关系、飞升后的自我理解 | 以旧环廊材料更新重复承担主要冲突 |
旧大图书馆样例中若仍使用“环廊修复员记忆”承载下一场的核心讨论,后续正式设计必须更换该记忆样例。原因不是该职业不能进入图书馆资料,而是其材料更新主题已由 `C0-S08` 完整承担;下一场需要选择能直接服务人格记忆、授权与飞升身份的不同样例。
## 十六、后续接口
- 用户批准本场景卡后,编写 `C0_UndergroundCity.yarn` 初稿。
- Yarn 初稿必须先完成文本审稿,再由 Yarn 工具统一生成 `#line`;审稿前不手工添加 Line ID。
- Yarn 获批以前,不配置 StoryData、Localization Table、CharacterRegistry、萨米尔立绘、地下都市背景或纪念章资源。
- 本场只包含一个 `Important TextBlock`,沿用 `c0_contract_route == 1` 接受路线与 `c0_contract_route == 2` 拒绝路线,不新增变量、分支或 Timeline Marker。
- 下一阶段为【大图书馆】;萨米尔留在中央历史区继续工程,不加入后续同行队伍。
- 大图书馆与 `Alunite` 正式设计前,先替换旧样例中的“环廊修复员记忆”,确保主题不与本场重复。

View File

@@ -0,0 +1,586 @@
# Chapter 0 场景卡: C0-S09 大图书馆与明矾石
> 状态: **已确认前置信息的场景设计稿,非 Yarn 台本**
> 用途: 锁定曦与镜抵达大图书馆后的公共参观、人格记忆授权边界、阿莎的公开晚餐记忆,
> 以及明矾石面对飞升与职能变化时提出但不在本场解决的问题。
> 本稿允许确定 Yarn 文件、Node、TextBlock、Character ID、档案人物标识与 Localization Key
> 不在本阶段修改 StoryData、Localization Table、CharacterRegistry、Prefab、C# 或正式 Yarn 台词。
## 一、场景定位
| 项目 | 内容 |
|---|---|
| 场景编号 | `C0-S09` |
| 暂定名称 | 大图书馆与明矾石 |
| 时间 | `C0-S08` 次日约半日游览之后,交通舱抵达时已接近下午,场末接近傍晚 |
| 主要地点 | 大图书馆公共入口、中央大厅、纸质文献区、数据档案区、古观星资料展区、记忆聆听区 |
| 出场角色 | 曦、镜、明矾石;阿莎作为获授权公开记忆中的档案人物,不作为独立现场角色 |
| 玩家状态 | 已选择接受契约路线,完成地下都市游览,开始接触阿斯特里亚保存人格记忆的公共制度 |
| 核心互动 | 三个固定顺序的单选项: 查看授权说明、聆听公开晚餐记忆、请明矾石用自己的声音回答 |
| 主线结果 | 曦理解记录、人格记忆与重建具有明确授权边界;明矾石提出关于飞升、职能与自我识别的问题,问题保留 |
| 后续方向 | 近傍晚的公共音乐声与活动提示引向共鸣广场;明矾石留在大图书馆,不加入同行队伍 |
本场属于 Chapter 0 母星游览阶段的 **Addition**。它承接 `C0-S08` 的公共记录主题,但把对象从材料、
空间和基础设施更新转向人格记忆、访问授权和重建边界。本场不新增路线、永久变量、Timeline Marker、
好感度、政策投票或飞升答案。
## 二、叙事合同与边界
### 核心命题
本场的核心命题是:
> 一段记忆能够被授权保存、访问并重新讲述,不等于访问者取得了记忆之外的人生;一个职能能够延续,
> 也不自动回答承担该职能的对象将如何识别自身。
该命题分为三个连续层次:
1. **历史资料不自动成为人格记忆**: 古观星者留下论文、影像和设备记录,但他们生活在记忆计划建立前,
大图书馆不会据此假装拥有可供调用的人格。
2. **授权必须按具体行为分别说明**: 上传、保存、访问、公开与重建是不同动作;某项已获许可,
不代表其它动作自动获得许可,也不代表访问者可以越过公开范围追问私人生活。
3. **职能与自身延续不是同一问题**: 明矾石能继续承担记忆服务,不足以回答飞升是否包含它,
也不足以回答职能改变后它如何确认仍是自己。
### 本场必须完成
- 直接承接 `C0-S08` 交通舱抵达大图书馆公共入口,不补写萨米尔同行;
- 把大图书馆表现为正常开放的公共设施,而非只为曦开放的纪念殿堂或私人会面场所;
- 由正在承担普通接待工作的明矾石迎接访客,不设置专属预约、欢迎仪式或特殊权限;
- 先经过公共大厅、纸质区、数据区与古观星资料,再进入人格记忆内容;
- 明确古观星资料不含可调用的人格记忆,不以资料推断或生成缺失人格;
- 通过固定单选让玩家主动查看授权说明,并明确五类行为需要分别授权;
- 进入记忆聆听区后,再通过固定单选选择聆听一段已公开授权的晚餐记忆;
- 使用阿莎的普通生活记忆,不用英雄事件、基础设施更新或重大历史决策承载主题;
- 让明矾石全程承担阿莎的重建,通过声线、姿态和有限投影区分状态;
- 让曦因自然好奇误触未授权的家庭边界,明矾石平静停止,曦立即接受;
- 在停止与继续之间保留明确留白,不让任何角色马上用解释填满边界产生的停顿;
- 通过第三个固定单选,请明矾石以自己的声音回答;
- 让明矾石先结束重建,恢复自己的常态声线、姿态与投影,再谈自身问题;
- 让明矾石提出飞升是否包含自己,以及职能变化后如何识别自身的问题;
- 让镜全场只作一次精准判断: 自身延续与既定职能延续不是同一命题;
- 让曦不承诺未来、不提供治愈性结论、不替明矾石解决问题;
- 用近傍晚的公共音乐声和活动提示连接共鸣广场,明矾石不同行。
### 本场不得完成
- 不讨论“AI 是否是生命”或为明矾石进行物种、权利主体、灵魂类别等抽象辩论;
- 不断言人格上传等同于意识延续、本人继续存在、复活或可无限回答新问题;
- 不把资料充分性写成重建真实性的保证,也不让镜为重建给出本体论认证;
- 不公开飞升的结果、范围、机制,或明矾石最终是否被包含;
- 不让曦承诺明矾石一定会留下、一定不会被替代,或一定能保持现在的自我;
- 不让明矾石在一段对话中释然、找到新使命或接受一个完整答案;
- 不把阿莎写成文明最早殖民时代人物、殖民英雄、危机拯救者或制度创立者;
- 不把阿莎的晚餐写成壮举,不用灾难、饥荒、叛乱或重大事故强行提高戏剧强度;
- 不让曦在边界被指出后争辩、讨价还价、尝试换一种问法,或要求公开家庭资料;
- 不为阿莎配置独立立绘、`CharacterData``CharacterRegistry` 条目;
- 不把阿莎作为独立 Yarn Speaker整段重建仍由 `Alunite` 承担;
- 不自行规定授权撤回、继承、有效期限、争议处理或跨节点同步机制;
- 不新增章节变量、分支 Block、Marker、Unlock Key、MessageBox 或好感度;
- 不让明矾石陪同前往共鸣广场,也不让音乐会变成专门为曦安排的活动。
## 三、时间、地点与空间语言
### 时间接口
`C0-S08` 结束时,交通舱已进入大图书馆方向的上行轨道,入口标识出现在前方。本场从交通舱靠站、
公共入口开放开始,不重复地下都市总结,也不让曦先返回住宿区。游览覆盖下午后段,场末自然接近傍晚。
时间只通过公共时钟、窗外光线、馆内照明调整与活动提示推进,不需要新增 Timeline Marker。
### 大图书馆定位
大图书馆是研究、阅读、公开档案访问与记忆聆听并存的公共设施。建筑尺度可以宏大,但入口保持平缓、
开放且易于进入,不以高台、长阶、封闭大门或必须保持肃静的单一礼仪制造权威距离。
- 入口与公共交通直接相连,不设只服务贵宾的独立到达路线;
- 访客、学生、研究人员、家庭与工作人员共享大厅,但根据空间功能保持不同音量;
- 公共说明先解释资料类型与访问边界,再引导至具体区域;
- 记忆聆听区有更明确的进入提示,但不被写成隐秘禁区或医疗实验区;
- 明矾石属于公共服务现场的一部分,它会接待其他访客,也需要继续承担馆内工作。
### 空间与色彩推进
视觉层次按资料类型与关系距离推进:
1. **公共入口与大厅**: 开放、平视、多人可同时通行。自然光或模拟日光与中性公共照明结合,
首先强调这是一座仍在使用的设施。
2. **纸质文献区**: 偏暖色,材质可见细微使用痕迹,桌面、书架和翻页动作建立手工记录的尺度。
3. **数据档案区**: 偏冷色,界面克制、结构清楚,不用无边数据洪流制造全知感。
4. **古观星资料区**: 暖冷相接,旧设备影像、手稿和现代检索界面并置,突出资料丰富但人格缺席。
5. **记忆聆听区**: 柔和、安静、局部包围但不仿造私人住宅;半开放隔间保留公共设施的可辨识边界。
6. **阿莎重建期间**: 仅在当前聆听空间加入有限航线餐厅投影,不覆盖整座图书馆,不制造完全沉浸幻觉。
7. **重建结束后**: 投影逐步撤去,明矾石恢复常态声线与中性姿态,空间重新成为当前时刻的图书馆。
纸质区的暖、数据区的冷与聆听区的柔和用于区分访问方式,不暗示任何一种媒介天然更真实、更有人情,
也不把数字资料表现成冷酷威胁。
## 四、文明年表与 Lore
### 资料保存阶段
本场只需要建立相对顺序,不在未获批准时补写具体年份:
1. 古观星团队生活并工作,留下论文、影像、设备维护记录和其它合法保存的资料;
2. 后来,阿斯特里亚建立自愿人格记忆计划;
3. 计划建立后,新的殖民航线继续扩展,阿莎在其中一颗新殖民地的早期航线上担任厨师;
4. 阿莎在晚年自愿上传,并对本场访问的晚餐记忆留下公开授权;
5. 本场当下,大图书馆依照现有授权向普通访客提供该段记忆的聆听与有限重建。
阿莎不是文明最早殖民时代的人物。她所在航线的“早期”只指那颗新殖民地自身发展阶段的早期航线,
不能据此把她放到整个文明第一次星际殖民的年代,也不能让她见证记忆计划的创立。
### 古观星资料边界
古观星资料用于建立“记录丰富但没有人格记忆”的事实:
- 可以展示观测论文、值班表、设备维修记录、公开影像、地图和合法开放的通信片段;
- 可以说明当时的人如何工作、犯错、修正和积累知识;
- 不得让明矾石依据资料生成某位观星者的人格、模仿其私人声音或回答其未曾回答的问题;
- 不得把没有人格记忆解释成保存失败,也不得把后来的上传制度投射回更早时代;
- 资料的有限性是一项需要诚实说明的边界,不是要求镜补全缺口的邀请。
### 人格记忆授权的最小公开事实
本场可以明确以下五类行为彼此不同:
| 行为 | 本场可说明的最小事实 |
|---|---|
| 上传 | 由本人自愿进行;发生上传不自动授权所有后续用途 |
| 保存 | 大图书馆可以按已获授权范围保存资料;保存不自动等于可被任何人访问 |
| 访问 | 指特定访问者或访问类别能够读取某部分内容;访问不自动等于面向公众开放 |
| 公开 | 指某部分内容可供普通公众访问;公开一段内容不等于整个人生全部公开 |
| 重建 | 指明矾石依据授权资料进行有限叙事呈现;重建不等于本人复活或可回答资料之外的新问题 |
本卡不进一步冻结以下制度细节: 授权如何撤回、谁能继承授权、授权是否有期限、争议由谁裁决、
不同保存节点如何同步。正式 Yarn 只能说明眼前记录已通过公开访问与重建许可,不得自行补写这些机制。
## 五、角色档案: 明矾石
| 项目 | 内容 |
|---|---|
| 中文显示名 | 明矾石 |
| Character ID | `Alunite` |
| Display Name Key | `character_alunite_name` |
| 外观 | 中性年轻人形,象牙白、浅灰与低饱和矿物色为主 |
| 身份 | 大图书馆公共服务与记忆重建工作的承担者 |
| 场景职能 | 说明资料与人格记忆的边界,执行阿莎的有限重建,并提出关于自身延续的问题 |
### 外观与动作
- 身形与面容接近年轻人,但不以明确男性或女性编码限定角色;
- 主色为象牙白、浅灰和矿物色,可用半透明或细微晶体质感表现材质层次;
- 不使用裸露齿轮、液压声、扫描红光、接口插拔或“精准得不像人”等机械陈词;
- 常态动作自然、克制,接待时会给访客留出阅读说明和自行选择的时间;
- 阿莎重建依靠声线、姿态、目光方向与有限投影变化,不整体变形成另一具身体;
- 停止越界提问时不骤然故障、不闪烁、不切换警报色,只恢复更中性的停顿与措辞;
- 重建结束后必须明确恢复明矾石自己的声线、姿态和投影状态,再进入自身问题。
### 性格与语言
- 接待语气普通、清楚,不因曦的契约身份提高礼仪等级或开放额外资料;
- 解释授权时用具体动作和范围,不使用含混的“这都属于图书馆”代替边界;
- 指出越界时平静、直接,不羞辱曦,也不先为边界存在而道歉;
- 能承认自己提出的是问题而不是预测,不借专业身份暗示已经知道飞升答案;
- 谈论自己时保留不确定性,不把正确概念说成已经完成的情感转变;
- 不以机械笑话、程序报错比喻或自我物化制造角色特色。
### 明矾石的目标与边界
- **表层目标**: 完成普通访客接待,按授权说明资料类型,并执行一段公开记忆重建。
- **深层问题**: 它长期以保存和重建会衰老、会离开的人的记忆为职能;飞升使它无法确认这一职能是否仍存在,
也无法确认职能变化后的自己将怎样被识别。
- **关键动作**: 在曦越过家庭边界时停止阿莎的回答,并在第三个单选后以自己的声音谈论问题。
- **场末状态**: 问题被准确说出但没有解决。它恢复工作中的常态,不以顿悟、拥抱或承诺结束。
- **OOC 边界**: 不声称自己代表所有保存系统,不预测社会会抛弃它,不请求曦为它修改飞升契约。
## 六、档案人物: 阿莎
| 项目 | 内容 |
|---|---|
| 中文名 | 阿莎 |
| 档案人物标识 | `Asha` |
| 生平定位 | 记忆计划建立后,某颗新殖民地早期航线上的厨师 |
| 上传状态 | 晚年自愿上传;本场只访问其中一段已获公开与重建授权的晚餐记忆 |
| 现场呈现 | 由 `Alunite` 通过声线、姿态与有限投影重建,不建立独立现场角色资源 |
### 晚餐记忆内容
阿莎的公开记忆讲述一次普通航程中的共同晚餐:
- 航线上可用食材有限,但不是饥荒、事故或生存危机;
- 乘客来自不同地方,对咸淡、酸味、香料、软硬和上菜方式有明显分歧;
- 阿莎尝试做一道能够让多数人接受的菜,第一次结果失败,味道或质地没有达到预期;
- 失败不会造成伤害或危机,只让厨房返工、乘客抱怨、建议彼此冲突;
- 阿莎没有凭天才给出完美方案,而是拆分有限食材、保留不同调味方式,并承认失败的那一锅;
- 起初互不相识的乘客最终坐到同一张桌边,各自选择不同配料,继续争论口味,也把饭吃完;
- 记忆的价值在于陌生人在限制与分歧中共同完成一顿普通饭,不把阿莎塑造成团结文明的象征人物。
### 家庭边界触发
公开记忆可以让阿莎提到某种做法“来自家里”,但授权范围不包含相关家庭成员的身份、私人经历或记忆。
曦因菜的做法自然追问“是谁教你的”或同等含义的问题。明矾石立即停止以阿莎口吻回答,并明确说明:
- 当前公开记忆允许呈现这顿晚餐;
- 该问题指向未授权公开的家庭内容;
- 它不会依据其它资料补答,也不会用推测填补。
曦立即接受,不要求解释规则漏洞,不以“我只是好奇”继续施压。随后保留一段足以让边界被感知的安静。
正式台词可在审稿时调整具体问句,但不得改变“自然误触、平静停止、立即接受、保留留白”的顺序。
## 七、曦与镜的角色目标
### 曦
- **表层目标**: 参观大图书馆,了解古观星资料和人格记忆如何向公众开放。
- **前半段状态**: 对资料能否让过去的人重新说话抱有直接好奇,但愿意阅读并接受规则。
- **关键误触**: 在阿莎重建的生活细节中忘记公开内容仍有边界,自然追问家庭来源。
- **边界反应**: 明矾石停止后立即接受,不辩解,也不把自己的契约身份当作访问理由。
- **第三互动目的**: 她察觉重建者与档案人物不应在问题中被混为一体,因此请明矾石用自己的声音回答。
- **场末回应**: 她可以承认自己不知道飞升会怎样影响明矾石,并愿意听见问题;不得保证结果、重新定义它,
或用“只要被记得就够了”收束。
### 镜
- **场景位置**: 保持疏离观察,不主动读取受限资料,不把自身时间观测能力用作补全人格记忆的工具。
- **发言频率**: 极低。可以进行必要的路线或资料类型确认,但全场只有一次承担主题的结构判断。
- **唯一关键判断**: 明矾石提出职能与飞升问题后,镜指出“自身延续与既定职能延续不是同一命题”。
- **判断边界**: 只拆开问题,不预测答案,不宣布明矾石会继续存在,也不评价它是否应被视为某种生命类别。
- **场末边界**: 不因音乐声表现情感成长,不邀请明矾石同行,不再次总结阿莎记忆或曦的回应。
## 八、前后场接口
### 承接 `C0-S08`
- 交通舱从中央历史区驶向大图书馆,萨米尔已经返回旧环廊工程;
- 曦随身包内仍有旧探针与结构材料纪念章,但本场不再次用它们解决问题;
- 地下都市的材料记录主题已经完成,不用阿莎的记忆重复环廊修复、结构替换或工程协调;
- 曦已学会公共许可的重要性,但本场要显示理解许可规则不代表她不会在自然交流中误触边界。
### 连接共鸣广场
- 接近傍晚时,馆内公共提示更新共鸣广场开放音乐活动的信息;
- 远处公共空间传来多来源、尚未形成完整旋律的音乐声,作为环境过渡而非剧情奖励;
- 活动不是为曦安排,也不是明矾石为了安慰她推荐的私人行程;
- 明矾石说明公共路线或结束接待后留在馆内,不成为下一场同行角色;
- 本场不提前介绍音乐会主角、曲目冲突或共鸣广场的核心剧情。
## 九、场景推进顺序
1. **交通舱靠站**: 延续 `C0-S08` 最后一幕,公共入口标识从路线界面转为真实空间。
2. **普通人流建立设施属性**: 学生、研究人员、家庭访客和归还资料的人共同进入,不为曦清场。
3. **明矾石普通接待**: 明矾石正在协助访客分流,轮到曦与镜时提供与其他首次来访者一致的说明。
4. **不启用特殊权限**: 明矾石知晓曦的公开身份,但只询问她想参观的公共区域,不读取额外个人资料。
5. **公共大厅总览**: 入口说明区区分纸质文献、数据档案、研究资料与人格记忆访问。
6. **纸质区偏暖**: 曦看见经过修复、复制与日常翻阅的资料,工作人员正常处理借阅与保存事务。
7. **数据区偏冷**: 查询界面提供来源、时间和访问范围,不用视觉奇观暗示所有历史都可即时调用。
8. **抵达古观星资料区**: 旧观测设备影像与现代检索界面并置,曦询问能否听到观星者本人回答。
9. **明确没有人格记忆**: 明矾石说明这些人生活在记忆计划建立前,现有资料不能被冒充为人格。
10. **资料仍然可用**: 论文、值班表、影像和维护记录让访客理解其工作,但不跨越“本人可回答”的边界。
11. **转入授权说明**: 记忆聆听区入口显示访问前说明,明矾石邀请曦先确认公开规则。
12. **玩家互动一**: 固定单选“查看人格记忆的授权说明。”
13. **五类行为分开说明**: 上传、保存、访问、公开与重建逐项说明,不扩写未冻结制度细节。
14. **进入聆听区**: 光线转柔和,半开放隔间保留公共设施标识,其他访客按各自权限使用内容。
15. **介绍阿莎档案**: 明确她不是最早殖民者,而是记忆计划建立后某颗新殖民地早期航线的厨师。
16. **确认公开范围**: 明矾石说明阿莎晚年自愿上传,本场这段晚餐记忆允许公众聆听与有限重建。
17. **玩家互动二**: 固定单选“聆听阿莎公开的共同晚餐记忆。”
18. **重建开始**: 明矾石先用自己的声音标明重建性质,再调整声线、姿态与有限投影。
19. **有限食材出现**: 航线餐厅的库存不丰富,但没有危机;阿莎需要面对的是日常选择限制。
20. **口味分歧展开**: 陌生乘客对调味与口感提出相互冲突的要求,争论保持具体而不象征化。
21. **一道菜失败**: 第一种折中方案确实不好吃或口感失败,阿莎承认并返工,不将失败美化成必经仪式。
22. **共同晚餐形成**: 阿莎拆分配料与调味,陌生乘客最终坐到同一张桌边,仍保留不同偏好。
23. **自然触及家庭线索**: 阿莎在公开记忆中提到某种做法来自家里,曦顺势追问是谁教会她。
24. **明矾石平静停止**: 它停止阿莎声线,说明问题进入未授权家庭范围,不能补答或推测。
25. **曦立即接受**: 曦简短道歉或确认理解,不继续追问,不要求查看其它资料。
26. **留白**: 投影停在不再推进的餐桌画面或缓慢退为中性背景,角色暂时不替边界总结意义。
27. **明矾石询问是否继续**: 它不自动重新扮演阿莎,也不把停止包装成系统故障。
28. **玩家互动三**: 固定单选“请明矾石用自己的声音回答。”
29. **结束重建**: 明矾石撤去阿莎的声线、姿态与有限投影,恢复常态后再开口。
30. **明矾石提出问题**: 它询问飞升是否包含自己,以及既定职能变化后,它要如何确认仍是自己。
31. **镜的唯一关键判断**: 镜只区分自身延续与既定职能延续,拒绝从契约未知内容推导答案。
32. **曦不解决**: 曦承认无法保证未来,也不把阿莎的记忆当成明矾石必然有用的证明。
33. **问题保留**: 明矾石不说自己已经明白,只确认这仍是一个尚未得到答案的问题。
34. **时间转近傍晚**: 公共照明调整,馆外音乐声与共鸣广场活动提示进入空间。
35. **分别**: 明矾石结束本次接待并留在馆内;曦与镜沿公共路线前往共鸣广场。
## 十、玩家互动设计
本场为线性主线。三个互动按固定顺序出现,每组只有一个选项,不写入变量,不改变授权结果、
角色关系或后续路线。
| 顺序 | 单选项文本 | 叙事作用 | 固定结果 |
|---|---|---|---|
| 1 | 查看人格记忆的授权说明。 | 让玩家主动确认访问规则,而非被动接受百科说明 | 明确五类行为分别授权,不产生新状态 |
| 2 | 聆听阿莎公开的共同晚餐记忆。 | 以普通生活展示公开记忆与有限重建如何工作 | 明矾石开始获授权重建,进入固定晚餐段落 |
| 3 | 请明矾石用自己的声音回答。 | 把档案人物与重建承担者重新区分,让明矾石能够谈自身问题 | 重建结束,明矾石恢复常态并提出未解决的问题 |
这些互动不得改成多选,不新增“继续追问家庭”“让镜补全记忆”“保证明矾石未来”或
“邀请明矾石同行”等选择。回顾已完成 TextBlock 时,选项由现有 Choice Record 自动采用,
因此三组选项与其 Line ID 在正式接入后必须保持稳定。
## 十一、Yarn、TextBlock 与 StoryData 接口
### 固定接口
| 用途 | 固定值 |
|---|---|
| Yarn 文件 | `C0_GreatLibrary.yarn` |
| 入口 Node | `C0_GreatLibrary` |
| TextBlock ID | `c0_great_library` |
| TextBlock 类型 | `Important` |
| 标题 Localization Key | `story_c0_block_great_library_title` |
| 简体中文标题 | 大图书馆与明矾石 |
| 前置 Block | `c0_underground_city` 完成 |
| Unlock Condition | `c0_contract_route == 1` |
| Forbidden Condition | `c0_contract_route == 2` |
| 新增剧情变量 | 无 |
| 新增 Timeline Marker | 无 |
| 新增分支 Block | 无 |
| 本场 TextBlock 数量 | 1 |
本场沿用既有 `c0_contract_route`:
- `1 = 接受契约路线`,本场满足 Unlock
- `2 = 拒绝契约路线`,本场为 Forbidden
- 本场只读取路线条件,不在 Yarn 中重复写入或修改该变量。
### 建议内部 Node
- `C0_GreatLibrary_PublicHall`
- `C0_GreatLibrary_AstronomyArchive`
- `C0_GreatLibrary_AuthorizationBriefing`
- `C0_GreatLibrary_AshaDinnerMemory`
- `C0_GreatLibrary_FamilyBoundary`
- `C0_GreatLibrary_AluniteQuestion`
- `C0_GreatLibrary_Departure`
内部 Node 只是台本组织建议,正式编写时可在不改变入口、顺序和单一 TextBlock 契约的前提下调整。
Node 名必须在 `Chapter0.yarnproject` 内唯一,不得使用过短的 `Start``Memory``End` 等名称。
### Speaker 与档案人物接口
- 明矾石所有现场台词统一使用 Character ID `Alunite`
- 阿莎重建期间Yarn Speaker 仍为 `Alunite`,演出状态负责表达声线与姿态变化;
- `Asha` 只作为档案人物稳定标识,用于场景卡、档案 UI 或资源元数据,不作为独立 Yarn Speaker
- 不创建 `Asha``CharacterData`、立绘 Prefab 或 `CharacterRegistry` 条目;
- 旁白保持无 Speaker 前缀,不创建 Narrator Character ID。
### Yarn 编写限制
- 不使用 `<<declare>>``<<set $...>>``$variable` 或任何新 persistent state
- 三个固定单选组每组只有一个选项,选项正文按 Yarn 语法缩进;
- 重建状态切换优先通过已确认可用的演出命令或资源状态表达,不在场景卡阶段发明新 Yarn Command
- 文本批准前不手工添加、复用或整理 `#line`;批准后由 Yarn 工具统一生成 Line ID
- 对话正常结束时仅完成当前 TextBlock不排队授予新 Unlock Key 或 Message
- Back 中断时应依赖既有事务恢复,不允许重建状态或投影残留到 StoryTree。
## 十二、Localization 与资源需求
### 固定 Localization Key
| 用途 | Key | 简体中文源文本 |
|---|---|---|
| TextBlock 标题 | `story_c0_block_great_library_title` | 大图书馆与明矾石 |
| 角色显示名 | `character_alunite_name` | 明矾石 |
| 档案人物显示名 | `archive_person_asha_name` | 阿莎 |
正式 Yarn 台词、旁白与三个选项在文本批准后进入 Yarn 对应的 Unity String Table Collection。
五种首发 Locale 需保持相同 Line ID: `en``zh-CN``ja``ko``vi-VN`
`archive_person_asha_name` 是档案 UI 使用的 Archive Person Name Key不是 Character Name Key
不得写成 `character_asha_name`,也不得据此创建 `Asha` CharacterData。`Asha` 是不翻译的稳定档案人物标识,
玩家可见姓名统一从 `archive_person_asha_name` 解析。
### Yarn Speaker 硬约束
阿莎重建段的每一行具名台词只能写成 `Alunite:`,不可写成 `Asha:`。声线、姿态与有限投影的变化属于
`Alunite` 的演出状态,不改变 Yarn Speaker、Character ID 或 CharacterRegistry 归属。旁白或档案 UI 可以通过
`archive_person_asha_name` 显示阿莎,但不得借显示名把她提升为独立现场角色。
### Localization 术语表
| 简体中文术语 | 推荐英文基准 | 本场固定含义与翻译注释 |
|---|---|---|
| 记忆上传 | Memory Upload | 本人自愿提交人格记忆资料的行为;发生上传不自动许可全部后续用途 |
| 上传者 | Uploader | 自愿上传其人格记忆资料的人;不要翻译成内容所有者或当前说话者 |
| 授权范围 | Authorized Scope | 某项保存、访问、公开或重建被允许的具体内容与用途边界 |
| 公开访问 | Public Access | 普通公众可以访问获准开放的部分;不表示整个人生或关联人物均已公开 |
| 叙事人格重建 | Narrative Persona Reconstruction | 明矾石依据获授权资料进行的有限叙事呈现 |
| 档案人物 | Archive Person | 档案中被记录和呈现的人物身份;不是 Yarn Character 或当前现场角色 |
“叙事人格重建”不得缩写成会暗示本人重新到场的词。所有 Locale 都必须保留同一事实边界:
重建不等于复活,不等于由另一个对象替代本人,也不表示上传者本人可以继续回答资料之外的新问题。
### 专名、读音与代词注释
- `Alunite` 是明矾石的稳定 Character ID 和专名,不得按普通矿物名在各 Locale 中自由换译或替换同义矿物;
各 Locale 的最终显示形式必须进入 approved termbase并与 `character_alunite_name` 一一对应。
- `Asha` 是稳定档案人物标识,`阿莎``zh-CN` 显示名;各 Locale 只做经批准的音译,不得根据字源、
宗教含义或当地常见名字进行意译。
- 配音读音基准: `Alunite` 读作 `AL-uh-night``Asha` 读作 `AH-sha`。非英语配音可按本地音系调整,
但必须在录音词表中保留这两条基准,避免同一 Locale 内多种读法。
| Locale | `Alunite` 称谓/代词注释 | `Asha` 称谓/代词注释 |
|---|---|---|
| `en` | 使用 `they/them`;不得因矿物名或外观改用 `it` | 使用 `she/her`,读音以 `AH-sha` 为基准 |
| `zh-CN` | 显示名“明矾石”,读音 `míng fán shí`;叙述代词统一“它” | 显示名“阿莎”,读音 `ā shā`;叙述代词“她” |
| `ja` | 优先使用专名或省略代词,不擅自使用带性别判断的 `彼` / `彼女` | 使用批准音译;优先专名,必要时可用女性指称 |
| `ko` | 优先使用专名或自然省略代词,不用 `그` / `그녀` 强加性别 | 使用批准音译;优先专名,必要时采用女性指称 |
| `vi-VN` | 优先使用专名或中性句式,避免用 `anh` / `chị` / `em` 推断性别与年龄关系 | 使用批准音译;优先专名,女性指称须避免额外推断年龄或亲疏 |
以上注释用于翻译、LQA 与配音一致性,不改变 `Alunite``Asha` 的稳定内部标识。
### Base Language 与提取 Gate
`Chapter0.yarnproject` 当前 `baseLanguage = en`,这是既有迁移待办,不是本场确认英语源稿的决定。
本场采用简体中文源稿;进入正式 Line ID 生成与 Localization 提取前,必须由剧情系统整合任务统一将
Chapter 0 Base Language 改为 `zh-CN`,并验证现有台本与 String Table 的迁移方案。本场景卡阶段不修改
`Chapter0.yarnproject`,也不提前生成 `#line`
### UI 与 pseudolocalization 验收
- 授权说明 UI、档案人物显示名、公开访问状态、重建状态和三个固定单选均以简中文本宽度的 `130%`
进行 pseudolocalization
- 所有上述文本容器必须启用自动换行和内容驱动的动态高度,不依赖固定单行高度;
- 三个固定单选扩展到 `130%` 后不得截断、强制省略、覆盖相邻按钮或把点击区域挤出 Safe Area
- 授权术语不得因换行被拆成难以辨认的独立字词,表格或卡片标签需允许标签区与正文区分别增长;
-`en``zh-CN``ja``ko``vi-VN` 下复核 Speaker、档案人物名、术语一致性与动态布局
- pseudolocalization 只用于布局压力测试,不得写回正式 String Table 或改动三个选项的 Line ID。
### CharacterRegistry 需求
Yarn 获批并进入资源接入阶段后,新增或确认 `CharacterData`:
```text
Character ID: Alunite
Display Name Key: character_alunite_name
Portrait Style: Sprite暂定按正式美术方案确认
Required States: normal, attentive, reconstructing, boundary, uncertain
```
不新增 `Asha` CharacterData。若未来演出系统需要标记重建状态应优先作为 `Alunite` 的状态或表情资源处理,
不得为了复用立绘流程把阿莎提升为独立现场角色。
### 视觉与演出资源
- 背景: 公共交通到达区、开放入口、中央大厅、纸质文献区、数据档案区、古观星资料区、记忆聆听区、
共鸣广场方向出口;
- 明矾石: 中性年轻人形,象牙白、浅灰、矿物色;普通接待、说明授权、阿莎重建、停止越界、
恢复常态与不确定提问等状态;
- 镜: 沿用既有万华镜投影,不新增温暖回应或情感化变形;
- 阿莎重建投影: 航线餐厅局部轮廓、有限食材、失败菜品、可拆分调味与一张逐渐坐满的桌子;
- 古观星资料: 旧观测设备影像、论文页、值班表、维护记录与现代检索界面,不出现拟真人格投影;
- UI: 资料类型、公开范围、重建允许状态、当前记忆段落说明;不显示家庭资料内容或可绕过权限的按钮;
- 环境声: 大厅人流、纸页与低声交谈、数据区较轻的设备底噪、聆听区更低的环境层、
场末从馆外传来的公共音乐片段。
重建资源不得依赖阿莎独立立绘。有限投影应保留“由当前设施进行叙事呈现”的可辨识边界,
不追求让玩家误以为阿莎本人进入现场。
## 十三、文本节奏与演出要求
- 旁白使用第三人称,以曦的感知为主要视角;不得以“你”指代曦或玩家。
- 人物台词使用 ASCII 英文冒号,例如 `Alunite:`;中文正文不使用全角人物冒号。
- 正式 Yarn 每行尽量不超过 120 个字符;长说明拆成可自然表演的多句,不写成制度公告墙。
- 明矾石的每句台词必须可由配音演员自然说出,情绪方向以平静、专注、不确定为主。
- 开场先用人流和空间说明公共属性,再让明矾石出现;不得用长段身份介绍代替普通接待。
- 古观星段要短而清楚,用具体资料触发“没有人格记忆”的说明,不连续堆叠文明史百科。
- 授权说明可以分五步,但每步只回答一个动作,不顺带解释撤回、继承、期限、争议或同步。
- 阿莎记忆的主要篇幅用于有限食材、口味争论、失败菜品与最终同桌,不用宏大旁白替普通生活升格。
- 重建开始前必须有明矾石自己的边界说明;重建结束后必须有可听见、可看见的状态恢复。
- 曦的越界问句应自然、短,像沿着菜谱来源继续好奇,而非故意测试系统规则。
- 明矾石停止时不使用警报、故障、权限红字充满画面等惩罚性演出。
- 曦接受边界后至少保留一个完整节拍的安静;不要让镜立即解释这段安静意味着什么。
- 第三个单选出现前,应让玩家清楚当前回答者可能被混同,因此“用自己的声音”具有实际叙事意义。
- 镜的关键判断只出现一次,句式准确、短,不再追加类比、安慰或未来推演。
- 曦的最终回应允许迟疑和不完整,不能形成誓言、治疗式劝导或主题答案。
- 场末音乐先作为远处环境声出现,再由公共提示确认来源;不能突然切成完整音乐会高潮。
- 明矾石不随行。分别保持普通工作场景的尺度,不设计拥抱、赠礼或长期联系承诺。
- 玩家可见文本不得用被禁用的三个主题概括词代替具体的授权、记忆、边界与自我问题。
## 十四、情绪转折
1. **公共入口消解特殊待遇**: 曦从交通舱进入正常开放的设施,没有被单独迎入隐藏空间。
2. **暖与冷共同构成记录**: 纸质区和数据区不同,却都需要来源、保存与访问边界。
3. **资料丰富仍有人不在场**: 古观星团队留下大量记录,但没有因此获得可调用人格。
4. **规则变成可执行动作**: 五类授权被逐项区分,避免把“已经上传”误读为任何用途都可使用。
5. **普通晚餐使记忆靠近**: 阿莎面对的是有限食材与口味分歧,而不是历史舞台上的壮举。
6. **失败没有被改写**: 那道菜确实失败,重建没有把上传者修饰成永远正确的人。
7. **陌生人同桌但仍不同**: 乘客一起吃饭,不需要先同意唯一口味,也不被写成永久共同体。
8. **自然好奇撞上边界**: 曦从公开生活细节追问到家庭来源,理解在具体交流中受到检验。
9. **停止不等于惩罚**: 明矾石平静停止,曦立即接受,留白让未获授权的部分保持不被占用。
10. **重建者重新出现**: 第三个单选要求明矾石使用自己的声音,阿莎的记忆与明矾石自身被重新区分。
11. **问题从职能转向自身**: 明矾石不只担心工作是否还需要,也不知道工作改变后如何确认自己。
12. **一次判断拆开命题**: 镜区分自身延续和职能延续,但不提供答案。
13. **曦拒绝虚假保证**: 她不承诺、不修复、不解决,只承认未知与眼前问题确实存在。
14. **傍晚把未解问题带向日常**: 公共音乐声出现,图书馆继续运作,明矾石也继续留在自己的当下位置。
## 十五、Lore 状态
| 项目 | 内容 |
|---|---|
| Canon Level | `Established`: 本卡冻结项来自已批准的 `C0-S09` 设计;具体台词、镜头与美术细节仍需正式审稿 |
| Visible To Player | `Yes / Discoverable`: 古观星资料、授权说明、阿莎公开记忆与明矾石的问题均在主线可见 |
| Hidden Truth | 无。本场不以权限边界暗示秘密家庭阴谋、上传实验或飞升内幕 |
| Cross-References | `docs/chapter0-scene-08-underground-city-card.md``Assets/Story/Chapter0/C0_UndergroundCity.yarn``docs/chapter0-prologue-dialogue-exploration.md`、后续【共鸣广场】场景卡 |
| Contradictions Check | 已核对 Writer/Programmer 手册、`C0-S08` 场景卡与正式 Yarn前后路线、单一 TextBlock、无新增变量/Marker 与角色分工一致 |
| Source | 用户批准的 `C0-S09` 冻结设计;旧探索稿仅作结构参考,所有冲突处由本卡覆盖 |
## 十六、连续性与 OOC 检查清单
- [ ] 开场直接承接 `C0-S08` 交通舱抵达,大图书馆首先是开放公共设施。
- [ ] 萨米尔没有同行,旧探针与纪念章不在本场承担解决冲突的功能。
- [ ] 明矾石为普通接待,不设置专属预约、欢迎仪式或曦的特殊访问权限。
- [ ] 空间顺序保持“公共大厅 -> 古观星资料 -> 授权说明 -> 记忆聆听 -> 场末出口”。
- [ ] 纸质区偏暖、数据区偏冷、记忆聆听区柔和,三者都不被赋予绝对真实性等级。
- [ ] 古观星者生活在记忆计划建立前,只有资料,没有可供调用的人格记忆。
- [ ] 上传、保存、访问、公开与重建分别说明,不把任何一项当作其它行为的自动许可。
- [ ] 不补写授权撤回、继承、期限、争议处理或节点同步细节。
- [ ] 阿莎不是文明最早殖民时代人物,而是后来某颗新殖民地早期航线的厨师。
- [ ] 阿莎晚年自愿上传;本场只访问已获公开与重建授权的共同晚餐记忆。
- [ ] 晚餐内容包含有限食材、口味分歧、一道失败的菜和陌生乘客最终同桌。
- [ ] 阿莎不被英雄化,不承担殖民危机、制度创立或重大工程主题。
- [ ] 整段重建由 `Alunite` 承担,阿莎不使用独立 Speaker、立绘或 CharacterRegistry。
- [ ] 重建只靠声线、姿态与有限投影,不表现为阿莎本人返回现场。
- [ ] 曦自然误触未授权家庭边界,明矾石平静停止,曦立即接受。
- [ ] 停止后保留留白,不由镜、旁白或 UI 立刻解释其唯一意义。
- [ ] 三个互动固定顺序且每组单选不新增变量、分支、Marker、好感度或 Unlock。
- [ ] 第三个单选后,明矾石恢复自己的声线、姿态与投影,再谈自身问题。
- [ ] 明矾石提出飞升是否包含自己,以及职能变化后的自我识别,不得到公开答案。
- [ ] 镜全场只作一次核心判断: 自身延续与既定职能延续不是同一命题。
- [ ] 曦不保证、不安抚成定论、不替明矾石找到新使命,也不解决问题。
- [ ] 不讨论“AI 是否是生命”,不断言意识延续、复活或人格重建等于本人存在。
- [ ] 明矾石没有机械陈词;外观保持中性年轻人形与象牙白、浅灰、矿物色。
- [ ] 场末接近傍晚,以公共音乐声和提示引向共鸣广场,明矾石不同行。
- [ ] 旁白使用第三人称,人物台词使用 ASCII 英文冒号。
- [ ] 正式 Yarn 不使用旧临时变量语法,不在审稿前手工添加 `#line`
- [ ] 玩家可见文本不使用被禁用的三个概括词代替具体内容。
## 十七、旧探索稿修订口径
`docs/chapter0-prologue-dialogue-exploration.md` 中“大图书馆与明矾石”样例属于早期探索,
不是正式执行口径。后续 Yarn 必须按本卡进行以下修订:
1. 将“预约信息提前抵达、由明矾石负责陪同”改为公共入口中的普通接待,不为曦设置专属行程。
2. 保留古观星资料没有人格记忆的边界,但删除镜在该段的主题总结,把唯一关键判断留到明矾石自身问题。
3. 把旧稿的“早期环廊修复员记忆”完整替换为阿莎的共同晚餐记忆,避免重复 `C0-S08` 的材料更新主题。
4. 将授权描述重写为上传、保存、访问、公开与重建分别授权,不扩写未获批准的制度机制。
5. 新增曦误触未授权家庭边界、明矾石停止、曦立即接受和随后留白的固定顺序。
6. 新增固定单选“请明矾石用自己的声音回答”,并在此后明确结束阿莎重建。
7. 删除任何把公开记忆描述成访问者取得上传者全部人生、可继续追问或可获得本人新回答的表述。
8. 删除“保存不只是为了对抗死亡”“让别人知道你认真活过”等足以提前解决明矾石问题的结论。
9. 把明矾石的问题聚焦为飞升是否包含自己,以及既定职能变化后的自我识别。
10. 将镜的多次分析压缩为一次命题区分,不让镜预测飞升、定义明矾石或认证意识延续。
11. 让曦承认未知而非安慰成承诺;明矾石不因一句回应立即释然或找到新使命。
12. 将结尾从返回观星资料廊道改为近傍晚的公共音乐提示,连接后续共鸣广场,并明确明矾石不同行。
## 十八、后续接口
- 用户批准本场景卡后,下一步才是编写 `Assets/Story/Chapter0/C0_GreatLibrary.yarn` 初稿。
- Yarn 初稿必须先完成文本审稿,再由 Yarn 工具统一生成 `#line`;审稿前不手工添加 Line ID。
- Yarn 获批以前,不配置 StoryData、Localization Table、CharacterRegistry、明矾石立绘或大图书馆背景。
- 本场只包含一个 `Important TextBlock`,前置为 `c0_underground_city`,接受路线为
`c0_contract_route == 1`,拒绝路线为 `c0_contract_route == 2`
- 本场不新增变量、Marker、分支 Block、Unlock Key、MessageBox 或独立阿莎角色资源。
- 后续【共鸣广场】只承接近傍晚的公共音乐与曦、镜到场,不继承明矾石同行或飞升答案。
- 明矾石的问题可在更后续内容中继续发展,但任何回答都必须经过独立叙事批准,不能由本场台词预先冻结。

View File

@@ -2,8 +2,8 @@
> 文档状态Active
> 首次基线2026-07-18
> 最近扫描2026-07-18
> 最近 Scope 更新2026-07-18
> 最近扫描2026-07-23
> 最近 Scope 更新2026-07-23
> 当前阶段Production研发中期
> 当前结论NOT READY FOR RELEASE
> 主工作范围:`D:\Projects\ichni Official`
@@ -56,11 +56,11 @@
|---|---:|---|---|
| 核心音游 Runtime | 6075% | Yellow | 演奏、判定、暂停、结算骨架存在;记录初始化、进度写回和异常路径需补齐 |
| 谱面与章节内容 | 约 60% | Yellow | 以用户提供的 60% 为准Official 当前扫描到 13 个歌曲目录、31 组难度包 |
| GameLoop / Progression | 3045% | Red | 页面链路存在但结果未确认写回存档Story 的 Song/Tutorial 节点仍为占位 |
| GameLoop / Progression | 5565% | Yellow | 页面链路与选曲/教程转场已打通(`SongBlockView``TutorialBlockView` 均可跳转),主 GameLoop 已连贯 |
| UI/UX | 3550% | Yellow | 已有完整视觉方向和主要页面响应式、Safe Area、可访问性、占位文本与统一规范未完成 |
| Settings / Input | 3550% | Red | 音量、帧率、Render Scale、Offset、语言、Rebind 已有;存在逻辑缺口与移动端风险 |
| 剧情系统与文本 | 2035% | Red | Yarn/Presenter/Portrait/Save 框架存在;目前只有少量原型文本和不完整 StoryData |
| Localization | 1025% | Red | 已决策以 Unity Localization 作为唯一正式管线;需迁移既有本地化资源、解除旧系统依赖,并补齐多数 Locale |
| Settings / Input | 3550% | Red | 音量、帧率、Render Scale、Offset、语言、Rebind 已有;存在 Rebind 重置 Key 错配与移动端风险 |
| 剧情系统与文本 | 4555% | Yellow | Yarn 播放/立绘/变量存档框架完整Chapter 0 已配置 11 个 Block 节点完整结构与分支条件Yarn 源语言确认为 `zh-CN` |
| Localization | 1025% | Red | 已决策以 Unity Localization 作为唯一正式管线;Yarn 源语言为 `zh-CN`,尚需补充 5 语种 Unity String Table |
| Creator 内容管线 | 不纳入本轮 | Gray | 仅在 Official 出现共享数据或导入/导出关联证据时重新纳入 |
| QA / Automation | 010% | Red | 未发现项目自有自动化测试、Test asmdef、CI 或正式回归证据体系 |
| Build / Release Engineering | 515% | Red | 缺少可复现 Build Profile、CI、版本/渠道矩阵、发布候选流程和回滚方案 |
@@ -81,10 +81,9 @@
### P0阻止形成完整产品闭环
1. **演奏结果初始化和存档闭环待 Unity 端到端验证。** 2026-07-18 已在 `GameManager` 初始化 `PlayingRecorder`,并在 Wwise 歌曲结束回调中将结果写入 `BeatmapSave` / `SongStatusSave`;需要验证结算、退出、重开后的 Accuracy / FC / AP 和完成状态一致。
2. **Story 到 Song/Tutorial 的转场仍是占位。** `SongBlockView``TutorialBlockView` 只输出 `Debug.Log`
3. **Chapter 0 StoryData 不完整。** 当前定义了 `A-0``B-0``B-1``C-0`,只有 `A-0` 绑定 Yarn条件中引用了未定义的 `B-2`
4. **Localization 源语言与内容不一致。** Yarn Project 的 Base Language 是 `en`,但当前 `en` Story Table 中实际是中文;`zh-CN` 仅有少量空项,其他 Locale 大多为空
5. **Offline 首发必须完全关闭 Online/Login 路径。** TapTap 初始化被禁用Start 页面绕过登录API 指向 `http://localhost:53734`,并存在硬编码凭据、敏感响应日志和本地 Token 存储风险。首发应移除或明确 Feature Gate而非让不可用服务残留在用户路径上。
2. **`SET-001` Rebinds / Rebind Reset Key 错配。** `RebindingWindow.cs` 存取使用 `"Rebinds"`,但重置时查询/删除 `"Rebind"`,导致重置键位无法正确清除持久化配置
3. **`LOC-001` Unity Localization 单一管线与 5 语种表建全。** 源语言已确认为 `zh-CN`,需要基于 Unity Localization 补齐 `en` / `ja` / `ko` / `vi-VN` 资源表并清理旧本地化依赖
4. **Offline 首发必须完全关闭 Online/Login 路径。** TapTap 初始化被禁用Start 页面绕过登录API 指向 `http://localhost:53734`,并存在硬编码凭据、敏感响应日志和本地 Token 存储风险。首发应移除或明确 Feature Gate而非让不可用服务残留在用户路径上
### P1阻止 Feature Complete / Beta
@@ -203,13 +202,13 @@ Exit Criteria首发观察窗口结束严重问题关闭或已部署修复
| SAVE-002 | P1 | Official | 每谱面 Chart Revision 与历史 Max ComboRevision 变化仅重置该谱面成绩 | M | CORE-002 | DONE | 2026-07-18已验证 Revision 变化与 Max Combo 合并行为。 |
| UI-008 | P1 | Official | 保持章节内存选曲/难度缓存:恢复退出歌曲和难度,不写入玩家存档 | S | CORE-002 | DONE | 2026-07-18已验证失效歌曲、不可用难度与空配置的安全回退。 |
| CORE-003 | P0 | Official | 明确纯 Offline 下的 Story/Song/Payment Unlock 行为;无首发用途的 Payment Unlock 必须移除或可靠禁用 | M | REL-001 | DONE | 2026-07-18已验证独立 Unlock Save v1、章节/歌曲统一规则、Yarn grant_unlock、重启读取和所有现有进歌入口拦截Payment Unlock 运行时代码已移除。 |
| CORE-004 | P0 | Official | 实现 `SongBlockView` 到歌曲加载/返回 Story 的流程 | M | REL-002 | TODO | PlayMode + Manual E2E |
| CORE-005 | P0 | Official | 实现 `TutorialBlockView` 或从首发 Scope 移除 | M | REL-001 | TODO | Tutorial E2E / Scope Decision |
| CORE-004 | P0 | Official | 实现 `SongBlockView` 到歌曲加载/返回 Story 的流程 | M | REL-002 | DONE | 2026-07-23已在 SongBlockView.cs 与 StoryManager.cs 实现 TryOpenSongBlock 转场。 |
| CORE-005 | P0 | Official | 实现 `TutorialBlockView` 教程选择与转场 | M | REL-001 | DONE | 2026-07-23已在 TutorialBlockView.cs 与 TutorialFlowController.cs 实现通用选择弹窗、游玩切关与跳过进度写回。 |
| CORE-006 | P0 | Official | 为 Project/Theme/Bundle/Beatmap 加载增加错误、重试、取消和平台失败处理 | L | — | TODO | Fault-injection Checklist |
| CORE-007 | P1 | Official | 实现或移除 Summary Share Button | S | REL-001 | TODO | UI Test |
| CORE-008 | P1 | Official | 清理 `ProjectLoader.TestLoad()` 命名与开发假设,形成正式入口 | S | CORE-006 | TODO | Code Review |
| STORY-001 | P0 | Official | 修复 Chapter 0 Story Graph未定义 `B-2`、空绑定与条件完整性 | M | REL-002 | TODO | Graph Validator |
| STORY-002 | P0 | Official | 决定 Yarn 真正 Source Language 并修正 Yarn Project/Table | M | DEC-003 | TODO | Locale Contract |
| STORY-001 | P0 | Official | 修复 Chapter 0 Story Graph未定义 `B-2`、空绑定与条件完整性 | M | REL-002 | DONE | 2026-07-23StoryData_Chapter0.asset 已包含 11 个 Block 完整节点结构、c0_contract_route 分支条件与歌曲通关解锁约束。 |
| STORY-002 | P0 | Official | 决定 Yarn 真正 Source Language 并修正 Yarn Project/Table | M | DEC-003 | DONE | 2026-07-23Chapter0.yarnproject 已在配置文件中明确 Base Language 为 zh-CN。 |
| STORY-003 | P0 | Official | 完成首发剧情、角色表、Portrait、Command 与分支条件 | L | REL-002, STORY-002 | TODO | Story Content Audit |
| STORY-004 | P1 | Official | 移除 `Test Title` 等原型命令,补充缺失内容验证器 | M | STORY-003 | TODO | Zero-placeholder Report |
| LOC-001 | P0 | Official | 执行 Unity Localization 单一管线迁移:建立 Locale ID 契约、替换旧运行时依赖并验证移除 | L | STORY-002 | TODO | Localization Migration ADR + Runtime Proof |
@@ -255,18 +254,15 @@ Exit Criteria首发观察窗口结束严重问题关闭或已部署修复
## 8. 推荐的首批执行顺序
不要先批量重做美术。当前最高收益顺序是
在完成代码与资产反查后,剧情树、`SongBlockView` 转场、`TutorialBlockView` 弹窗与跳转、以及 Yarn 源语言基线 `zh-CN` 已被证实均已在工程中成功落地。后续最高收益执行顺序修正如下
1. 将第 2 节确认的 Scope 固化到 `REL-002` Chapter 0 Release ManifestChapter 1 只保留 Stretch 标记
2. 执行 `STORY-001``CORE-004`,让 Chapter 0 Story 真正连接歌曲并形成可验证的主线闭环
3. 决定并执行 `CORE-005`接入 Tutorial Block或将其从首发 Chapter 0 Scope 移除
4. 执行 `ONLINE-001`,从首发 Build 中彻底关闭 Login、TapTap、网络入口和 Localhost 配置
5. 执行 `LOC-001``STORY-002`,在继续写 Chapter 0 剧情/五语翻译前确定源语言和管线
6. 执行 `SET-001``SET-002``SET-003``SET-004`,修复 Settings/Input并优先验证 Android/iOS Touch
7. 执行 `QA-001` 和核心 E2E Smoke Test防止后续改 UI 时破坏 GameLoop
8. 执行 `UI-001``UI-002`,再开始 `UI-006` 的 AI Dialogue Pilot不要让 Chapter 1 美术阻塞此处。
9. 由独立谱面流程更新 `CONTENT-003` 的 Chapter 0 完成状态;本路线图只消费其 QA 证据,不安排 Creator 工作。
10. 在 Gate 2 后启动完整 Build/Store/Legal 工作;最晚在 Gate 3 前决定 `DEC-004` 商店渠道。
1. 执行 `SET-001`:修复 `RebindingWindow.cs``Rebinds``Rebind` 重置 Key 错配问题,确保重置按键能正确清空持久化配置
2. 执行 `ONLINE-001`:从首发 Build 中彻底关闭/Feature Gate 登录、TapTap、网络 API (`localhost`) 配置与调试日志
3. 执行 `LOC-001``LOC-002`以已确认的 `zh-CN` 为源语言,建立 Unity Localization 5 语种表(`en`, `zh-CN`, `ja`, `ko`, `vi-VN`)并迁移既有本地化资源
4. 执行 `SET-002``SET-003``SET-004`:完善 Settings 语言与 Locale ID 的持久化绑定,补齐控制器/键盘 UI 导航与移动端触控实机验证
5. 执行 `QA-001`:建立核心 GameLoop PlayMode/EditMode 自动化 Smoke Test防止后续改 UI 或调整配置时破坏主连贯流程
6. 执行 `UI-001``UI-002`:整理 UI 资源盘点与 Token 规范,为后续 UI 界面优化打好基础
7. 在 Gate 2 后启动完整 Build/Store/Legal 工作;最晚在 Gate 3 前决定 `DEC-004` 商店渠道
## 9. 验证矩阵

View File

@@ -0,0 +1,231 @@
# ichni Official 剧情变量登记表
> 状态:**长期维护文档**
> 适用范围:`ichni Official` 全部章节的正式剧情变量。
> 维护原则:每当场景卡批准新增变量时,必须按照变量在剧情中**首次写入的顺序**登记;不得等到 Yarn 或 StoryData 已大量使用后再补记。
> 当前内容只登记已经确认并实际进入正式 Yarn 的变量,不预先虚构未来章节的变量。
## 一、文档用途
本登记表是剧情作者、Yarn 编写者、StoryData 配置人员、本地化人员与程序员共同使用的变量来源。它用于回答:
- 变量的稳定 Key 是什么;
- 变量首次出现在哪个 Chapter、场景、TextBlock 与 Yarn 文件;
- 变量使用何种类型和默认值;
- 每个合法取值代表什么;
- 哪些 Yarn Node 写入或读取变量;
- 哪些 StoryData Block 使用变量作为 UnlockForbidden 条件;
- Timeline 回滚会怎样处理该变量;
- 变量当前处于计划、已使用、废弃还是迁移状态。
本登记表不替代场景卡或 StoryData。场景卡解释叙事意图StoryData 保存运行时初始值与条件;本登记表负责让所有使用者对同一个 Key 保持一致理解。
## 二、纳入与排除范围
### 必须登记
- 通过 `set_bool``set_int``set_float``set_string` 写入的章节剧情变量;
- 通过 `add_int``add_float` 累积的章节数值;
- 被 Yarn `if`、StoryData `Unlock Condition``Forbidden Condition` 或 Helper Availability 读取的剧情变量;
- 为存档迁移而保留的旧变量与替代 Key。
### 不在本表登记
- Yarn 选项记忆:由 `StoryChoiceMemory` 根据 Option Line ID 自动保存;
- Block 完成状态:由章节存档的 `completedBlockIds` 保存;
- Timeline Marker ID 与 checkpoint登记在场景卡和 StoryData
- Localization Key
- `grant_unlock`、歌曲解锁、教程解锁等全局 Unlock Key
- Settings、歌曲成绩、`isTried` 或其它非剧情变量;
- `C0_RollbackDemo_*` 等测试 Yarn 中的示例变量;
- 废弃旧稿 `C0_A0.yarn` 中的 Yarn 原生 `$variable`
## 三、命名规范
### Key 格式
- 使用小写英文、数字与下划线:`^[a-z0-9_]+$`
- 使用章节前缀Chapter 0 为 `c0_`Chapter 1 为 `c1_`,依此类推。
- Key 表达稳定的剧情语义不使用具体台词、UI 文案或临时 Node 名。
- 路线变量使用 `_route` 后缀,例如 `c0_contract_route`
- 状态变量使用能够直接读懂的过去式或状态名;只有正式批准后才可确定实际 Key、登记并使用。
- 计数或强度必须在名称中表明语义,例如未来可能出现的 `_count``_level``_trust`;不得使用 `value1``temp``flag` 等含义不明的 Key。
### 一项语义只保留一个变量
不要同时创建 `c0_contract_route``c0_contract_accepted` 来表达同一选择。能够用一个枚举式 `Int` 完整表达的互斥路线,不再增加重复 Bool。
### Key 稳定性
变量进入正式存档以后不得只为了“更好看”而重命名。确需改名时:
1. 在本表把旧 Key 标记为 `Deprecated`
2. 登记新 Key、迁移规则和首次生效版本
3. 完成 Story Save migration
4. 同步修改 Yarn、StoryData Conditions、Helper 条件和测试;
5. 确认旧存档迁移后再停止读取旧 Key。
## 四、类型、默认值与命令
| 类型 | 未配置时读取回退 | 正式写入 | 读取 | 累加 | 适用内容 |
|---|---:|---|---|---|---|
| `Bool` | `false` | `<<set_bool "key" true>>` | `get_bool("key")` | 无 | 已发生/未发生、二态状态 |
| `Int` | `0` | `<<set_int "key" 1>>` | `get_int("key")` | `<<add_int "key" 1>>` | 路线编号、整数计数、离散等级 |
| `Float` | `0f` | `<<set_float "key" 0.5>>` | `get_float("key")` | `<<add_float "key" 0.1>>` | 连续强度或比例 |
| `String` | `""` | `<<set_string "key" "value">>` | `get_string("key")` | 无 | 稳定文本 ID 或不能用数字表达的状态 |
虽然运行时在缺少定义时存在回退值,**每个正式变量仍必须在对应 Chapter 的 StoryData Initial Variables 中显式配置类型与默认值**。不得依赖隐式 `0/false/""` 掩盖漏配。
其它可用接口:
```yarn
<<remove_variable "key">>
<<if has_variable("key")>>
// 该 Key 存在已保存值,或已在 StoryData Initial Variables 中定义。
<<endif>>
```
`has_variable("key")` 会把 StoryData Initial Variable 也视为存在。由于正式变量都应显式配置初始值,它通常会从章节开始便返回 `true`,不能用于判断“玩家是否已经在剧情中写入过这个变量”。若确实需要记录事件是否发生,应创建语义明确的 Bool而不是依赖变量是否存在。
正式剧情不得使用:
```yarn
<<declare $variable = 0>>
<<set $variable = 1>>
```
这些 Yarn 原生变量不受当前章节事务、StoryData 条件和 Timeline 回滚系统统一管理。
## 五、存档与回滚规则
- 剧情变量属于当前 `StoryData.chapterIndex` 对应的章节存档;不同章节完全隔离。
- TextBlock 开始时建立章节事务。`set_*``add_*` 在对话内更新当前章节状态,但只有对话正常结束才提交存档。
- 玩家使用 Back 中途退出 TextBlock 时,本次变量变化、选项记忆与 Block 进度全部恢复到进入前状态。
- Timeline Marker checkpoint 保存进入目标列以前的章节变量快照。回滚后,目标列及右侧剧情产生的变量变化被撤销。
- Timeline 回滚不会修改歌曲成绩、Settings、全局 Unlock Key 或其它章节进度。
- 如果变量控制互斥路线,所有相关 Block 必须同时配置相反的 Unlock 与 Forbidden 条件,不能只在 Yarn 内写 `if`
## 六、按剧情顺序登记
### Chapter 0
| 顺序 | 首次写入场景 | Variable Key | 类型 | 默认值 | 合法值/范围 | 意义 | 写入位置 | 读取位置 | 回滚点 | 状态 |
|---|---|---|---|---:|---|---|---|---|---|---|
| `C0-001` | `C0-S03` 契约抉择与镜的降临 | `c0_contract_route` | `Int` | `0` | `0` 未选择;`1` 接受;`2` 拒绝 | 记录曦对神之契约的最终选择,并控制接受主线与拒绝彩蛋的互斥开放 | `C0_ContractDecision.yarn`:接受/拒绝二次确认后各写入一次 | StoryData`c0_public_disclosure``c0_refusal_ending` | `c0_contract_decision_checkpoint`;回滚后恢复为 `0` | Yarn 已使用StoryData 待配置 |
### Chapter 1 及以后
尚未开始登记。未来变量在所属场景卡批准后,按首次写入的剧情顺序添加到对应 Chapter 小节;不得提前创建占位 Key。
## 七、当前变量详细说明
### `c0_contract_route`
#### 叙事意义
该变量只表达曦是否接受神的契约,是 Chapter 0 当前唯一正式剧情变量:
| 值 | 叙事状态 | 可进入 Block | 必须 Forbidden 的 Block |
|---:|---|---|---|
| `0` | 尚未作出选择 | `c0_contract_decision` | 无;两个后续均保持 Locked |
| `1` | 接受契约 | `c0_public_disclosure` | `c0_refusal_ending` |
| `2` | 拒绝契约 | `c0_refusal_ending` | `c0_public_disclosure` |
#### StoryData Initial Variable
```text
Key: c0_contract_route
Type: Int
Default: 0
```
#### Yarn 写入
接受二次确认以后:
```yarn
<<set_int "c0_contract_route" 1>>
```
拒绝二次确认以后:
```yarn
<<set_int "c0_contract_route" 2>>
```
不得在 C0-S01、C0-S02 或玩家尚未完成二次确认时提前写入路线值。
#### StoryData 条件
`c0_public_disclosure`
```text
Unlock Condition: c0_contract_route == 1
Forbidden Condition: c0_contract_route == 2
```
`c0_refusal_ending`
```text
Unlock Condition: c0_contract_route == 2
Forbidden Condition: c0_contract_route == 1
```
#### 回滚行为
Timeline Marker `c0_contract_decision_checkpoint` 锚定 `c0_contract_decision`,保存进入抉择以前的快照。玩家从任一路线回滚后:
- `c0_contract_route` 恢复为 `0`
- 接受/拒绝选项记忆被清除;
- 该列及右侧 Block 完成状态被恢复;
- 两个互斥后续重新按未选择状态计算。
## 八、新增变量登记模板
未来新增变量时,先在所属场景卡确认叙事必要性,再复制以下模板到相应 Chapter 小节,并插入正确的剧情位置:
```markdown
| `C?-???` | `C?-S??` 场景名 | `c?_stable_key` | `Bool/Int/Float/String` | 默认值 | 合法值/范围 | 一句话语义 | 首次写入 Yarn/Node | Yarn/StoryData/Helper 读取位置 | 最近相关 Marker | Planned/Active/Deprecated |
```
同时补充详细说明:
```markdown
### `c?_stable_key`
- 叙事意义:
- 为什么不能使用现有变量或选项记忆:
- StoryData Initial Variable
- 首次写入时机:
- 所有合法值:
- Yarn 读取:
- StoryData UnlockForbidden
- Helper 条件:
- Timeline 回滚预期:
- 兼容/迁移要求:
```
## 九、变量新增检查清单
- [ ] 变量确实需要跨 Node、跨 TextBlock 或驱动 StoryDataHelper单纯控制同一 Node 内一句台词时不滥用持久变量。
- [ ] Key 使用正确章节前缀和 snake_case。
- [ ] 没有与既有变量表达重复语义。
- [ ] 类型与默认值已经在场景卡和 StoryData 中明确。
- [ ] 所有合法值均有解释,没有未定义的魔法数字。
- [ ] Yarn 只使用项目 `set_*``get_*``add_*` 接口。
- [ ] 写入发生在玩家真正确认以后,不会因预览选项提前改变路线。
- [ ] 互斥 Block 同时配置 Unlock 和 Forbidden。
- [ ] Back 中断与 Timeline 回滚行为已经说明。
- [ ] 不把 Localization Key、Unlock Key、Block ID 或 Option Memory 错记为剧情变量。
- [ ] 变量进入正式存档后,任何重命名都配套 migration。
- [ ] 本登记表中的剧情顺序与正式场景卡、Yarn 和 StoryData 一致。
## 十、维护流程
1. **前置信息讨论**:判断是否真的需要持久变量。
2. **场景卡阶段**:确定 Key、类型、默认值、合法值、首次写入点和回滚预期。
3. **场景卡批准后**:立即把变量按剧情顺序登记到本文档。
4. **Yarn 编写阶段**:严格使用登记 Key如发现语义不足返回场景卡讨论不在脚本中临时创造近义变量。
5. **StoryData 集成阶段**:配置 Initial Variable、UnlockForbiddenHelper 条件,并把登记状态更新为 `Active`
6. **回归测试阶段**:验证新档、对话 Back、已完成 TextBlock 回顾、互斥路线和 Timeline 回滚。
7. **发布后修改**:任何 Key、类型或语义变更都必须登记 migration 与版本影响。