问题
交付帧的脚线几何在前端和后端各存了一份 0.92。
后端 postprocess/pack.py 的模块注释已经写明为什么它是模块常量:「入口预检要按同一套几何判母版能不能装下……抄一份数字过去就等于埋下『改了这里、那边阈值不动』的静默分歧」。
而前端导出正是抄了一份:
|
const FOOT_LINE_RATIO = 0.92 |
anchor 与 footY 两个字段都由这个常数算出来,后端从不交出真值。两份不同步的后果是角色不站在地上,而帧数、时长、成色全部正常 —— 没有任何一道会红。
导出契约里这两个字段是必填且带范围校验的(footY 必须落在画布内),所以它们不是可选装饰,是引擎播放要用的量。这也是 #192 子项 1 里「引擎播放必需的逐帧几何量(地面锚)」那一半。
范围
- 引擎把对齐那一步实际用的几何报进出参,服务端随任务结果交出
- 前端导出改读后端报的那份;后端没报时明示回落,不静默给 0
- 不改画布尺寸、不改脚线数值本身
- 不动位移轨(root_motion MVP 不做)与图集
验收
- 后端报的 anchor / footY 与
postprocess.FOOT_LINE 同源,测试断言用的是该常量而不是字面量 0.92
- 前端用例给一个故意不等于 0.92 的几何,读出来必须是后端那份
- 缺几何时回落值可测,且删掉「优先用后端几何」那一步时前端用例失败
问题
交付帧的脚线几何在前端和后端各存了一份 0.92。
后端
postprocess/pack.py的模块注释已经写明为什么它是模块常量:「入口预检要按同一套几何判母版能不能装下……抄一份数字过去就等于埋下『改了这里、那边阈值不动』的静默分歧」。而前端导出正是抄了一份:
Windup/frontend/src/features/export-package/progressive-export.ts
Line 19 in 51f4018
anchor与footY两个字段都由这个常数算出来,后端从不交出真值。两份不同步的后果是角色不站在地上,而帧数、时长、成色全部正常 —— 没有任何一道会红。导出契约里这两个字段是必填且带范围校验的(
footY必须落在画布内),所以它们不是可选装饰,是引擎播放要用的量。这也是 #192 子项 1 里「引擎播放必需的逐帧几何量(地面锚)」那一半。范围
验收
postprocess.FOOT_LINE同源,测试断言用的是该常量而不是字面量 0.92