D-20260612-04|節點名唯一+順序語義改 extras 承載¶
背景與驅動力¶
第四輪複審聚焦「以名稱為 key 的識別系統」死角:全系統以節點名稱為 key(materials[].mesh_node、weapon_main_mesh_node、Mount 配對、Axis/Pivot、route/checkpoint、entity node),但 glTF 不保證名稱唯一、corpus 也無重名檢核;同時順序語義靠節點名編號承載,衍生出「依編號順序 / 編號連續 / 跳號重編」一整套脆弱機制。
考慮過的選項¶
- 維持編號承載順序:命名同時背負識別與排序雙重語義,重排即重命名。
- 使用者方案——順序改掛 extras 陣列(採納)。
決定¶
- A1 鐵則:節點名稱全 GLB 唯一,Stage 1 拒收重名。
- A2 命名與順序分離:route 順序 =
track.route[](明文權威);checkpoint 通過順序 = 新欄位track.checkpoints[](有序名稱陣列、與節點 1:1 檢核、孤兒拒收);鏈序 = 同父 children 陣列相對順序(比照 bullet 既有先例)。 - 名稱僅需唯一,
<n>只是顯示慣例;「依編號順序 / 編號連續 / 跳號重編」整套廢除,HUD 序號 = 陣列 index + 1。現況見 建模參數.md 與 UGC上傳.md。
後果與影響¶
checkpoint 有序關卡(D-20260525-01)與 route spline(D-20260528-01)的順序載體自此換軌到 extras;編輯器重排 = 改陣列、不動命名。名稱唯一性成為所有以名為 key 的檢核(材質指派、Mount 配對、actuator 宣告)的共同前提。