<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>《叙事策划与叙事工艺》卷三《叙事体验与路径度量》· 全书目录与章节索引（50 篇） on PlumePHP</title><link>https://plumephp.com/posts/books/%E5%8F%99%E4%BA%8B%E4%BD%93%E9%AA%8C%E4%B8%8E%E8%B7%AF%E5%BE%84%E5%BA%A6%E9%87%8F/</link><description>Recent content in 《叙事策划与叙事工艺》卷三《叙事体验与路径度量》· 全书目录与章节索引（50 篇） on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Fri, 16 Oct 2026 18:00:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/posts/books/%E5%8F%99%E4%BA%8B%E4%BD%93%E9%AA%8C%E4%B8%8E%E8%B7%AF%E5%BE%84%E5%BA%A6%E9%87%8F/index.xml" rel="self" type="application/rss+xml"/><item><title>《叙事策划与叙事工艺》卷三《叙事体验与路径度量》目录</title><link>https://plumephp.com/narr-metric-toc/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-toc/</guid><description>《叙事策划与叙事工艺》卷三《叙事体验与路径度量》目录：16 章 48 节，把玩家路径变成可度量的对象——路径的表示与采样、分支覆盖率与缺口、结局分布熵、张力曲线与 MAE、后果可见性、节奏密度、好感度曲线形状、一致性残差，以及反推与演化回归。本页给出分工说明、六档可运行性口径与全书 16 章 48 节完整清单。</description></item><item><title>1.1 一次通关的轨迹</title><link>https://plumephp.com/narr-metric-01-1-playthrough-trajectory/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-01-1-playthrough-trajectory/</guid><description>一次通关可以被拆成三种表示：玩家按下的选择序列、引擎走出的节点序列、以及每一步之后的完整状态轨迹。本节用《雾港夜航》的首选项确定性策略走完一条 25 步路径，逐步骤打印好感度、置位 flag、持有物品与 FNV-1a 状态摘要，并给出节点数等于选择数加一的整数不变量。</description></item><item><title>1.2 路径的表示与编码</title><link>https://plumephp.com/narr-metric-01-2-path-representation-encoding/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-01-2-path-representation-encoding/</guid><description>同一条路径可以写成三种编码：人可读的规范串、机器可比的紧凑整数元组、以及只对状态算的 FNV-1a 摘要。本节给出三种编码的构造规则，并用 Python 与 TypeScript 两侧对同一条路径算出逐位一致的结果，说明摘要绑定的是编码串而不是文本。</description></item><item><title>1.3 路径的回放与复现</title><link>https://plumephp.com/narr-metric-01-3-path-replay-reproduce/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-01-3-path-replay-reproduce/</guid><description>同一条选择序列推进两次，走出的状态必须逐位一致。本节用三条证据钉死这件事：确定性序列回放两次摘要相同、每个前缀从零重放等于全程记录、500 条采样序列各自回放两次逐条一致，并说明「回放无隐藏状态」到底在保证什么、为什么它是本卷所有度量的前提。</description></item><item><title>10.1 纯 xml.etree 出曲线</title><link>https://plumephp.com/narr-metric-10-1-xml-etree-curve/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-10-1-xml-etree-curve/</guid><description>把前几章算出的张力曲线用纯 xml.etree 手写成 SVG：ET.Element / ET.SubElement 建树、ET.tostring 落盘，再用 ET.fromstring 回读校验合法性并断言元素计数。16 个节拍里一条确定性路径命中 11 个、跳过 5 个，全程整数、无浮点、不依赖任何第三方绘图库。</description></item><item><title>10.2 分支图的可视化</title><link>https://plumephp.com/narr-metric-10-2-branch-graph-visualization/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-10-2-branch-graph-visualization/</guid><description>把 48 个对话节点 / 56 条去重对话边按场景分层画成一张 SVG 分支图，边按是否被一条确定性路径走过着色：走过 25 条（446‰），未走过 31 条；随机采样 200 条即可铺满 56/56。布局坐标由场景序号与场景内序号直接算出，纯 xml.etree 建树、回读校验。</description></item><item><title>10.3 路径热力图</title><link>https://plumephp.com/narr-metric-10-3-path-heatmap/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-10-3-path-heatmap/</guid><description>把 96 条采样路径在各场景上的经过次数画成 14×96 的矩阵热力图，cell 为整数、颜色按整数档位查表（档位定义在 config/nm_10_3_heatmap.json，全程无浮点调色）。矩阵元素之和 2544 恰等于所有路径的节点数之和；按结局排序后同结局的路径聚成一块。</description></item><item><title>11.1 模拟玩家的策略</title><link>https://plumephp.com/narr-metric-11-1-simulated-player-strategy/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-11-1-simulated-player-strategy/</guid><description>给采样装上「策略」这个旋钮：随机（可播种 PRNG 选可用选项）、贪心（总是最大化好感度增量）、覆盖导向（优先走尚未覆盖的边）三种模拟玩家策略，在同一份规格下各走 10 与 200 条路径，对照覆盖率、结局数与路径长度区间。全部指标都是 proxy。</description></item><item><title>11.2 策略对路径分布的影响</title><link>https://plumephp.com/narr-metric-11-2-strategy-effect-on-path-distribution/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-11-2-strategy-effect-on-path-distribution/</guid><description>同一份规格、同一个种子，只换「怎么选」这一条规则：随机、贪心、覆盖导向各跑 5000 条路径，量结局分布、结局分布熵与路径长度分布。实测贪心 5000 条里一次都没走到「真相」，而随机与覆盖导向都到达全部 5 个结局；再把三种策略按 7 档混合比扫描，只有纯贪心丢结局。全部指标都是 proxy。</description></item><item><title>11.3 与玩家动因模型的分工</title><link>https://plumephp.com/narr-metric-11-3-motivation-model-division/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-11-3-motivation-model-division/</guid><description>本章的「模拟玩家」是采样器，不是玩家模型：它只做路径选择策略（随机 / 贪心 / 覆盖导向），不建模动因、不做玩家分型。本节把这条分工写成一份可 lint 的 D 层声明表，再用 S 层脚本做硬断言，并与 11.1、11.2 真跑产物交叉核对，证明声明与脚本做的是同一件事。</description></item><item><title>12.1 目标与假设</title><link>https://plumephp.com/narr-metric-12-1-goal-and-hypothesis/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-12-1-goal-and-hypothesis/</guid><description>一次可玩性测试如果没有假设，就只是点着玩。本节把《雾港夜航》这次测试要验的东西落成四条可证伪的命题——覆盖率、结局覆盖、跨宿主一致、分布熵，每条都给出可测整数、判据与证伪条件，并算出零假设基线 446‰。真人玩家测试需真实业务环境，命令行不可复现，标 X。</description></item><item><title>12.2 W 层路径批跑与断言</title><link>https://plumephp.com/narr-metric-12-2-w-layer-path-batch-run-assert/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-12-2-w-layer-path-batch-run-assert/</guid><description>把规格与内核内联进单文件 HTML，用 Playwright 无头注入 24 条选择序列真玩：逐条断言终局节点、结局与状态摘要与 Python 侧一致，两遍确定性 24/24，覆盖率 982‰，截图与批跑 JSON 落盘。真人玩家测试标 X。</description></item><item><title>12.3 从测试到决策</title><link>https://plumephp.com/narr-metric-12-3-test-to-decision/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-12-3-test-to-decision/</guid><description>假设被证伪之后必须二选一：改规格还是改假设。用样本量扫描 N=24/100/500/2000/8000 诊断 H4（结局分布熵）——熵在 N=100 起越过 1500 毫比特、N≥500 稳定在 1718–1747，判定为测试设计缺陷、改假设而非改规格，story_spec.json 一行不改；真人测试标 X。</description></item><item><title>13.1 曲线的异常点定位</title><link>https://plumephp.com/narr-metric-13-1-curve-anomaly-localization/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-13-1-curve-anomaly-localization/</guid><description>曲线偏离目标时，怎么把它落到具体的节拍下标与场景？本节用残差向量做定位，造三个漂移场景：在路径上的单点、两个异常点，以及离路径的隐藏点。实测发现路径口径看不见没经过的节拍——b10 从 5 降到 4 时路径 MAE 仍为 0 毫，全曲线 MAE 才抬到 62 毫。可观测性决定了可识别性。</description></item><item><title>13.2 参数到曲线的反推</title><link>https://plumephp.com/narr-metric-13-2-parameter-to-curve-inversion/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-13-2-parameter-to-curve-inversion/</guid><description>给定一条目标张力曲线，反过来能求出哪些节拍标注？本节把「MAE 不超阈值」化成 sum 绝对值不超过 16 的整数约束，用逐位 DP 精确计数：达标解集有 6072047140 个，占全空间 5 的 16 次方的 39.8 千分。随机搜索 200000 次的经验命中率与精确比例吻合，而收紧到 62 毫时随机搜索一次都命不中。</description></item><item><title>13.3 反推的稳健性</title><link>https://plumephp.com/narr-metric-13-3-inversion-robustness/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-13-3-inversion-robustness/</guid><description>解集有多大是一回事，稳不稳是另一回事。本节用两条轴量反推的稳健性：把目标曲线的 b10 从 5 挪到 4，在可枚举的预算上精确求新旧解集的交集与 Jaccard 千分；再把 MAE 阈值从 0 毫扫到 2000 毫看解集规模的相变。结论是解集近稳但规模巨大，曲线达标推不出唯一标注。</description></item><item><title>14.1 规格演化的影响面</title><link>https://plumephp.com/narr-metric-14-1-spec-evolution-impact/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-14-1-spec-evolution-impact/</guid><description>改一处规格，哪些路径与指标会变？本节用集合差回答：拿卷二 4.3 的 500 条采样序列当基线，在改动后的规格上重放，逐项量被阻断路径数、终局状态集差、结局集差与边/节点/场景/节拍集差。五处小改动各自给出实测数字，并说明为什么影响面不能靠重跑穷举来算。</description></item><item><title>14.2 路径与指标的回归</title><link>https://plumephp.com/narr-metric-14-2-path-metric-regression/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-14-2-path-metric-regression/</guid><description>上一节算出了影响面，这一节把「改动前 / 改动后」做成一张回归对照表：分支覆盖率、结局分布熵、张力 MAE、一致性残差各一列，增量各一行，并对着写在 metrics 里的声明阈值逐格判越阈。五处改动全是「变了但未越阈」，表同时落成 JSON 与 CSV，供后续每次演化重跑比对。</description></item><item><title>14.3 演化的告警</title><link>https://plumephp.com/narr-metric-14-3-evolution-warning/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-14-3-evolution-warning/</guid><description>指标变了不等于指标变坏了。本节把 14.2 的增量按三级分类：OK（没变）、DRIFT（变了但未越声明阈值）、CROSS（越过阈值才判得动方向）。再以 B 层把两处规格参数连续扫一遍，扫出相变点，全程只发软告警、始终 exit 0——扰动不该让构建硬失败。</description></item><item><title>15.1 指标的定义与口径</title><link>https://plumephp.com/narr-metric-15-1-metric-definition-caliber/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-15-1-metric-definition-caliber/</guid><description>全卷七条代理指标第一次被收成一张总表：分支覆盖率、结局分布熵、张力曲线 MAE、好感度曲线 MAE、一致性残差、节奏密度偏差、整数不变量残差，每条给全定义、量纲、真源字段、实测值与首见小节。脚本从规格重算六条并与各章产物逐条对账，落 out/nm_15_1_metric_catalog.json。</description></item><item><title>15.2 指标的可比性与局限</title><link>https://plumephp.com/narr-metric-15-2-metric-comparability-limitation/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-15-2-metric-comparability-limitation/</guid><description>同一张指标表里的数不能随便比：量纲不同的指标不能相加，七条指标合成不出一个总分；同一份规格加删一条选项，覆盖率就从 446 漂到 438 / 454；熵对样本量敏感，n=50 缺最稀有结局反而算出更高的熵。本节用三个可复现实验把可比性的边界钉死。</description></item><item><title>15.3 指标不能声称什么</title><link>https://plumephp.com/narr-metric-15-3-what-metric-cannot-claim/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-15-3-what-metric-cannot-claim/</guid><description>命令行量不出玩家情绪，本卷七条指标全是 proxy。本节把「不能声称什么」写成可执行的 lint：八类禁声称（更感人、更好玩、玩家满意度、更优秀、玩家实际、读起来、绝对达标、提升 N 倍）、五条正面清单，以及 12 条候选结论的逐条判定与改写。指标能声称的只有相对变化与结构量。</description></item><item><title>16.1 三卷的装配检查表</title><link>https://plumephp.com/narr-metric-16-1-three-volume-assembly-checklist/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-16-1-three-volume-assembly-checklist/</guid><description>三卷共用一份真源。本节把「装起来能不能用」拆成四组共 17 条断言：真源字段齐、卷一结构过、卷二引擎三处消费一致（跨语言锚点摘要 4162796975 逐位相等）、卷三六项代理指标量得出。每条都给出本机实跑值与可重跑命令，任一 FAIL 即非零退出。</description></item><item><title>16.2 三种消费的总联调</title><link>https://plumephp.com/narr-metric-16-2-three-consumption-full-chain-integration/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-16-2-three-consumption-full-chain-integration/</guid><description>让穷举、执行、度量三种消费跑同一份规格并断言彼此不矛盾：BFS 穷举的可达集（9895423 个状态）包含全部采样路径，同一条选择序列在 Python / TS / 浏览器三处推进出逐位相同的状态摘要 4162796975。含 Playwright 无头真玩。</description></item><item><title>16.3 交付与后续</title><link>https://plumephp.com/narr-metric-16-3-deliverable-and-next/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-16-3-deliverable-and-next/</guid><description>本卷交付四类东西：真源与内核、度量工具链（S/P/W/B 共九件脚本）、可复算产物、六项代理指标口径。给出接手五步与「本套不做」清单——真人玩家测试、真实配音成本等需真实业务环境，命令行不可复现，逐处标 X，并列出后续可做的三个方向（多规格回归 / 度量反演 / 真人数据接入）。</description></item><item><title>2.1 采样策略：随机、贪心、穷举</title><link>https://plumephp.com/narr-metric-02-1-sampling-strategy-random-greedy-exhaustive/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-02-1-sampling-strategy-random-greedy-exhaustive/</guid><description>一张 48 节点、115 个选项的故事图，一条确定性路径只走 25 条边（446‰），远低于 850‰ 的目标。本节把随机、贪心、穷举三种采样策略放进同一路径预算对照，量出各自覆盖多少条对话边、到达几个结局，并解释为什么穷举是覆盖率的基准而不是一种采样。</description></item><item><title>2.2 分支覆盖率的度量</title><link>https://plumephp.com/narr-metric-02-2-branch-coverage-metric/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-02-2-branch-coverage-metric/</guid><description>分支覆盖率是一个整数千分比：走过的对话边 × 1000 整除全部对话边。本节先声明两层分母口径（去重边 56 与选项 115），再把单条确定性路径、采样 N 条、BFS 穷举三个来源放进同一张表，量出边、节点、场景三层覆盖，并给出 446‰ 与 1000‰ 的口径来源。</description></item><item><title>2.3 覆盖的缺口与告警</title><link>https://plumephp.com/narr-metric-02-3-coverage-gap-warning/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-02-3-coverage-gap-warning/</guid><description>覆盖率给一个总数，缺口给一张名单。本节对随机采样 N=100 条路径逐边计数，定位那条从未被走过的边——门条件为 bell_rung 的真相结局入口，源节点访问了 100 次却没选中它；再用采样规模与种子的参数扰动给出软告警口径，低于 850‰ 只记 WARN、恒 exit 0。</description></item><item><title>3.1 结局分布的熵</title><link>https://plumephp.com/narr-metric-03-1-ending-distribution-entropy/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-03-1-ending-distribution-entropy/</guid><description>结局熵有四个数，混在一起就错。本节把上界 2321 毫比特、单路径 0 毫比特、路径采样 1714 毫比特、状态枚举 1888 毫比特分开报，并讲清「上界不是实测值」——一条路径只到一个结局，它的熵恒为 0。全部整数、毫比特取整，seed=20261016 可复现。</description></item><item><title>3.2 分支的平衡与偏斜</title><link>https://plumephp.com/narr-metric-03-2-branch-balance-skew/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-03-2-branch-balance-skew/</guid><description>20000 条路径逐边计数，把「分支被走得均不均匀」变成整数：分支覆盖率 1000‰、进入次数中位 4173、偏斜度 gini 373‰、头部集中度 29‰。再用偏置强度 b 从 0 扫到 1000 看相变——覆盖先掉、偏斜先抬、稀有结局先消失，软告警恒 exit 0。</description></item><item><title>3.3 结局可达性的回归</title><link>https://plumephp.com/narr-metric-03-3-ending-reachability-regression/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-03-3-ending-reachability-regression/</guid><description>回归的精确含义是「基线可达、改动后不可达」。本节用 BFS 精确口径枚举基线可达的 5 个结局，掐断真相的唯一入边后静态死条件分析报出回归；再把灯守的阈值门从 0 扫到 101，用 Y*=100 定位它由可达变不可达的临界点，软告警恒 exit 0。</description></item><item><title>4.1 后果可见性</title><link>https://plumephp.com/narr-metric-04-1-consequence-visibility/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-04-1-consequence-visibility/</guid><description>后果可见性量的是：一个选项写下的状态差量，要隔几步才被下游的条件读到。本节把 115 个选项逐个算成整数距离——34 个立即可见、37 个延迟、28 个写进状态却永不被读到，另有 16 个根本没有差量；平均 2.42 步、最远 12 步。全程结构 BFS，不出现浮点，也不预测玩家感受。</description></item><item><title>4.2 假选择的检测</title><link>https://plumephp.com/narr-metric-04-2-fake-choice-detection/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-04-2-fake-choice-detection/</guid><description>两个不同选项在同一状态下推进出的状态逐字段相等，就是一对假选择。本节用完整 BFS 精确枚举 9895423 个可达 (节点,状态) 对，检出 3 对静态假与 10 对状态级假；其中 d_fg_3 的一对在全部 1036900 个可用状态下都相等，静态判据会漏掉它。再用三个合成规格证明检测器会开火。</description></item><item><title>4.3 选择密度与节奏</title><link>https://plumephp.com/narr-metric-04-3-choice-density-rhythm/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-04-3-choice-density-rhythm/</guid><description>选择密度量的是：一条路径上每隔多少节点出现一次有分量的选择。采样 500 条路径实测——选择密度 962 千分，有分量选择占 917 千分，相邻有分量选择的间隔均值 1.094 步、最大 3 步；三幕占比 433 / 296 / 270，第一夜最密。全程定点整数，与第 7 章的节奏度量共用同一套口径。</description></item><item><title>5.1 张力从哪里来：叙事节拍</title><link>https://plumephp.com/narr-metric-05-1-tension-source-narrative-beat/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-05-1-tension-source-narrative-beat/</guid><description>张力在本卷里不是从机制里长出来的，而是作者在规格里标注的：真源的 beats 是 16 个节拍，每个带一个整数 1 到 5 的 tension。本节只读这份标注，不跑任何仿真，就把它按幕切开、算出分布直方图与峰值位置，并给出 beats 字段表与三条整数不变量，全部数字来自本机实跑。</description></item><item><title>5.2 张力与释放的节拍计算</title><link>https://plumephp.com/narr-metric-05-2-tension-release-beat-computation/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-05-2-tension-release-beat-computation/</guid><description>把节拍张力沿一条真实路径串成曲线：走确定性首选项策略，取出路径经过场景上的 11 个节拍，得到张力曲线 1 2 3 2 3 4 4 3 4 4 2，再切出上升段、平台段与回落段，定位峰值与谷值，并算它与目标曲线的 MAE。本节如实说明：当前规格下 MAE 恒为 0，因为标注与目标逐项相同。</description></item><item><title>5.3 与机制张力的分工</title><link>https://plumephp.com/narr-metric-05-3-mechanic-tension-division/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-05-3-mechanic-tension-division/</guid><description>本章的张力来自叙事节拍结构，不是机制动力学。本节把这条边界跑成可核对的数：递归展开真源，叙事侧词元命中 143 次，机制侧词元 hp、damage、resource、turn 等命中 0 次——机制张力在这份规格上根本无法计算。分工不是一句口号，而是输入清单的差集。</description></item><item><title>6.1 情感曲线的构造</title><link>https://plumephp.com/narr-metric-06-1-emotion-curve-construction/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-06-1-emotion-curve-construction/</guid><description>情感曲线不是凭感觉画的，它由一条路径唯一决定：路径经过的节点落到场景，场景命中作者标注的 beats[].tension（整数 1–5），序列即成曲线。本节把确定性路径的 26 个节点构造成 11 槽场景序列与 11 点张力曲线 1 2 3 2 3 4 4 3 4 4 2，全程整数、不出现浮点。</description></item><item><title>6.2 目标曲线与 MAE</title><link>https://plumephp.com/narr-metric-06-2-target-curve-mae/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-06-2-target-curve-mae/</guid><description>把 6.1 的曲线与真源 metrics.target_tension_curve 逐项比，按千分位整数地板除算 MAE（毫），阈值 1000 毫。真源里两条曲线当前逐项相同，故路径口径与全量口径的 MAE 都是 0；本节用反事实探针把目标挪动 1 得到 62 毫，证明这个 0 是自洽证据而非指标失效。</description></item><item><title>6.3 代理指标的口径声明</title><link>https://plumephp.com/narr-metric-06-3-proxy-metric-declaration/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-06-3-proxy-metric-declaration/</guid><description>张力曲线 MAE 是 proxy：它度量的是作者标注与设计目标的偏离，不是玩家实际感受到的情绪。本节把这条边界写成一份可机器检查的声明 config/nm_06_3_proxy_declaration.json，用 lint 钉死字段、口径类型、单位与禁声称清单，再把实测的 0 毫填进报告，落 out/nm_06_3_proxy.json。</description></item><item><title>7.1 叙事节奏的度量</title><link>https://plumephp.com/narr-metric-07-1-narrative-rhythm-metric/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-07-1-narrative-rhythm-metric/</guid><description>节奏是叙事推进的快慢：沿路径每单位节点推进了多少剧情量。本节给 16 个节拍量出三幕分布 5/6/5，用 500 条采样路径算出节奏 384 千分、首次进入场景的间隔均值 3.080 步、命中节拍的三幕占比 345/297/357，全程整数千分位并显式声明为 proxy。</description></item><item><title>7.2 叙事密度的控制</title><link>https://plumephp.com/narr-metric-07-2-narrative-density-control/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-07-2-narrative-density-control/</guid><description>密度是单位节点上新增了多少信息：新场景、新 flag、新物品、有意义选择各算一件。本节用滑窗 W=5 把 500 条路径切成 10680 个窗口，实测全局密度 409 千分、窗口区间 200~600 千分、偏疏窗口 62 个（5 千分）、偏密 0 个，可读区间 [250,750] 是设计参数，全程整数并声明 proxy。</description></item><item><title>7.3 节奏冲突的检测</title><link>https://plumephp.com/narr-metric-07-3-rhythm-conflict-detection/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-07-3-rhythm-conflict-detection/</guid><description>节奏冲突是密度与张力的错配：张力峰值处信息却极稀。本节用两条判据在 500 条路径上检出 4310 次节拍命中——峰值节拍处平均密度 373 千分、谷值处 502 千分、基线 406 千分；绝对错配仅 3 次，方向错配 2810 次（651 千分），全程整数千分并显式声明为 proxy。</description></item><item><title>8.1 好感度随路径的变化</title><link>https://plumephp.com/narr-metric-08-1-affinity-curve-over-path/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-08-1-affinity-curve-over-path/</guid><description>好感度不是一局战斗里的数值，而是沿玩家路径推进的整数序列。本节沿一条确定性路径把 4 个变量 yan/hui/shen/mu 的曲线画出来：起点值、增量点、峰值、终点值，再采样 2000 条路径给出终点值分布。实测确定性路径上 yan 从 20 升到 65、升了 5 次，shen 全程停在 50；终点均值显示单条路径只是分布里的一个样本。</description></item><item><title>8.2 阈值触达的分布</title><link>https://plumephp.com/narr-metric-08-2-threshold-hit-distribution/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-08-2-threshold-hit-distribution/</guid><description>把 14 道好感度阈值门（13 条选项门 + 1 条结局门）抽平，定义路径触达为「变量沿路径最大值 &gt;= 门限」。实测 5000 条采样路径里 18 条（3‰）从未触达任何门，yan&gt;=25 的触达率最高 858‰。B 层把每道门限 ±10 后重走路径：14 道门全部改变了触达率，只打印软告警、exit 0。</description></item><item><title>8.3 关系曲线的形状分类</title><link>https://plumephp.com/narr-metric-08-3-relationship-curve-shape-classification/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-08-3-relationship-curve-shape-classification/</guid><description>把每条「路径 × 变量」的曲线按整数规则分类成六种形状：平台型 / 单调上升 / 单调下降 / 先升后降 / 先降后升 / 震荡型。实测 5000 条路径 × 4 变量 = 20000 条曲线里，单调上升占 359‰ 最多、震荡型 181‰ 次之、单调下降只有 74‰。shen 的单调下降为 0 条、yan 的平台型为 0 条，这两处零值各有成因。</description></item><item><title>9.1 一致性残差的度量</title><link>https://plumephp.com/narr-metric-09-1-consistency-residual-metric/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-09-1-consistency-residual-metric/</guid><description>把「声明」与「行为」对齐后统计失配计数：声明来自角色的 affinity / secret、派系 stance 与规则，行为来自选项的 when / effects 与采样路径。本节把一致性残差量成四个整数——声明域 D、秘密 K、立场 S、规则 R，并沿 2000 条路径量路径实现率，全部显式声明为 proxy。</description></item><item><title>9.2 设定-行为对齐的回归</title><link>https://plumephp.com/narr-metric-09-2-setting-behavior-alignment-regression/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-09-2-setting-behavior-alignment-regression/</guid><description>一致性残差只有能在规格改动后朝正确方向移动，才是可用的回归信号。本节在内存克隆上做七种规格变异——补声明域、给秘密与禁则加门、清掉立场提供者，以及一次故意的回归——把残差重算成一张回归表，再用修复阶梯与信任门两条扫描检查单调性。残差全部是代理指标，只做相对比较。</description></item><item><title>9.3 失调的告警阈值</title><link>https://plumephp.com/narr-metric-09-3-dissonance-warning-threshold/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-09-3-dissonance-warning-threshold/</guid><description>残差算出来了，可超过多少才算告警？本节把阈值写成一条显式策略：先算声明基数当分母，取它的四分之一作默认阈值，再把上一节的七种规格变异逐个判定；最后扫描阈值的取值区间，看清阈值过紧与过松各自把告警变成什么样。残差与残差率全部是代理指标，只做相对比较。</description></item><item><title>附录 A 情感模型公式、参数表与数据集索引</title><link>https://plumephp.com/narr-metric-appendix-a/</link><pubDate>Fri, 16 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/narr-metric-appendix-a/</guid><description>卷三《叙事体验与路径度量》的附录：把度量侧的规格输入、六个代理指标的口径、五个定义式与本卷工作区的文件清单汇成一张可核对的总表，并给出可运行性命令与排错顺序。全部数字均来自本机实跑，随正文各章一并更新，便于在写新章节或修改叙事规格时随时对照、重跑与核对。</description></item></channel></rss>