跳轉到

D-20260830-01|可編輯 GLB 保存作者倍率血緣

背景與驅動力

整體相對倍率已採匯入結果為 1、從 p 到 q 只套 q / p,但倍率只存在記憶體。 可編輯 GLB 移除 canonical marker 後重新匯入會被當成一般外部來源,再做來源單位換算與 provisional fit;作者無法由匯出檔回到相同尺寸基線,也可能讓已正確的最終幾何被二次縮放。

考慮過的選項

  • 只保存原始 mesh 與倍率 transform:通用檢視器與外部 DCC 不一定套用相同語意,否決。
  • 把作者倍率寫入 canonical schema:作者工作狀態不是 runtime/鏈上物理真相,否決。
  • 可編輯檔保留已烘焙最終幾何,另帶非 canonical 的 editor provenance(採納)。

決定

  • 可編輯 GLB 的 mesh/node transform 直接呈現最終正確尺寸;通用檢視器不需理解 Open4WD。
  • 預設 scene extras 另寫 open4wd_editor,固定包含版本、normalized_meters=true 與正值 author_scale_factor。此欄位只表示目前幾何相對原作者基線的倍率,不是第二份幾何。
  • 重新匯入合法 provenance 時,跳過來源單位換算與 provisional fit,只把 author_scale_factor 還原到 UI;不得再次乘進幾何。之後從 p 改 q 仍只套 q / p, 包含 q=1 回到作者基線。
  • 保留欄位存在但格式、版本或倍率不合法時封閉式拒絕,不降級成一般未標記來源。
  • canonical finalizer 以權威 root extras 整組替換,因此 open4wd_editor 不進本機測試、鏈上 或 runtime 成品;從既有 canonical 資產另行下載可編輯檔時作者倍率以 1 起算。
  • 一般零件 mesh 與 mount 不使用節點 scale gizmo;零件尺寸只由整體相對倍率控制。節點 scale 只保留給 Checkpoint、KillZone 與具有明確尺寸語意的場地 entity。

後果與影響

匯出後關機、再匯入可編輯 GLB 會重現相同最終尺寸與倍率欄位;外部工具仍只需處理標準 GLB 幾何。canonical bytes、CID、PhysicsManifest 與鏈上格式不增加作者工作欄位。