跳轉到

D-20260612-04|節點名唯一+順序語義改 extras 承載

背景與驅動力

第四輪複審聚焦「以名稱為 key 的識別系統」死角:全系統以節點名稱為 key(materials[].mesh_nodeweapon_main_mesh_node、Mount 配對、AxisPivot、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。現況見 建模參數.mdUGC上傳.md

後果與影響

checkpoint 有序關卡(D-20260525-01)與 route spline(D-20260528-01)的順序載體自此換軌到 extras;編輯器重排 = 改陣列、不動命名。名稱唯一性成為所有以名為 key 的檢核(材質指派、Mount 配對、actuator 宣告)的共同前提。