跳轉到

歷史記錄 · 2026-06-12

月份索引歷史記錄

重大重構里程碑

2026-06-12 ─ 材質表 複審(第二輪):10 項全執行(含材質 append-only 廢止流程定案)

決策檔:D-20260612-03

背景:2026-06-09 第一輪後,本週多輪建模參數表 / 算式表變更與材質表咬合處全面對檢。A3 / B8 經使用者查證後定案。

變動 位置
⭐ A1 Stage 1 剃除政策對齊 §4「Stage 1-3 拒收」×2 + §1.1「Stage 1-3 強制執行」與定案政策(Stage 1 剃除 → Stage 2 重指 → Stage 3 拒收殘留;UGC機制 §2.2/§4.2、UGC上傳流程 §3)矛盾 → 改寫 + 補「違規處置三階段分工」段 材質表 §1.1 / §4
A2 §8.3 殘句 「mesh-local +Z 軸自動推導」為 n_pole_direction 廢除時代(05-18)殘句、與表面法向(05-20 後)矛盾 →「依磁源類型自動推導」 材質表 §8.3
A3 entity 過熱幽靈(查證定案) 環境影響全清單(遊戲機制 §8):地面材質僅影響 rolling / friction / restitution;溫度僅 weather + fluid deploy zone(皆寫 part.temperature、無懸案);entity 無溫度模擬 → §10.1 row 2 去「或過熱」、註明過熱路徑僅車輛部件 材質表 §10.1
A4 磁源範圍常數 0–10 N 掛 MAGNET_SOURCE_STRENGTH_N_MAX 材質表 §8.2
A5 鐵磁吸力 generic 「武器 strength」→「磁源 strength_n」(磁鐵地板等場地磁源同理) 材質表 §7
A6 錨點 「遊戲機制 §破壞模型」→「§4 過熱 / 破壞模型」 材質表 §9
⭐ B8 固體 bullet 落地定案 使用者回憶定案 + 有界驗證:fluid → deploy zone(body 移除);固體 → 永久留場障礙物(Dynamic、依材質 fatigue / 一擊可破壞、破壞後淡出釋放 body);≤ 8 車 × 8 = 64 顆/場、打完即空 → 有界(預算帳 64 涵蓋飛行 + 落地同一批、總帳 452 ≤ 512 不變) 建模 §3.7.3 + 程式參數表 §2 註
C9 過熱判定精確化 「用材質 thermal_limit」→「用 pre-bake auto_thermal_limit(§7)」(runtime 不做 sub-mesh 重算) 材質表 §10.1
C10 一擊重傷補齊 §10.3 entity 觸發補「或一擊重傷(stress > ultimate × K_STRESS_BURST_FACTOR)」 材質表 §10.3

| ⭐ A7 材質廢止流程定案(append-only)| 原「刪除材質」兩個結構性問題:「確認無已上鏈使用」於 permissionless P2P 不可驗證;材質 id 內嵌於 CID 鎖死內容、B 軸遷移機制不適用 → 材質清單 append-only、永不物理刪除。廢止 = 驗證層 DEPRECATED_MATERIAL_IDS 清單(不在 src/material-params/ 路徑、不觸發 path-based 雙 bump、materials.ts 一字不動)+ Stage 2 不可選 + Stage 3 拒新上鏈;舊資產照常載入;版本 = client minor、builtin / derive 不動(公版若用到 → 先走公版變更,bump 屬該前置步驟);rename 雙步改「新增 + 廢止」;§11.2 懸空 fallback 指標(指向遊戲機制但該檔無此定義)改 runtime fail-fast 純防呆 | 材質表 §11.1 / §11.2 |

另:使用者追問廢止流程操作面(「是改程式上 git 還是要額外跑什麼」)時發現 治理事件流程 §6 變更類型對照缺「公版資產變更」列(它是唯一「治理紀錄 + 發版生效」混合型)→ 補列(BuiltinAssetsUpdateEvent 僅授權 / 審計紀錄、實際生效隨推版)。再追問 git 工作流後補 builtin-assets §7「操作順序」註:分支 / PR 可先行、治理多簽與 PR 平行、merge 進 main(= 自動部署)前須完成簽章達 quorum + 事件上鏈;建議事件 rationale ↔ PR 互相引用;上線前(無 ledger / signer set)公版變更純走 git。

2026-06-12 ─ 建模參數表 第五輪保險複審:4 處措辭微修、全檔結案

整檔重讀 + 殘留措辭掃描(依編號 / 跳號 / 剛體中心點 = 0 殘留)+ 25 個引用常數交叉核對全數在程式參數表就位。僅餘措辭級微瑕:①§10.1 補「檢核時點」(結構 / 尺度 Stage 1 即檢;volume Stage 2 wave A 實算、備援皆敗視同 type 定案失敗退回);②§5.4 孤兒前綴精確化(RoutePoint_ / Checkpoint_ 含底線);③§10 Stage 2「依 type 走 §2+§3」補場地分支(§2+§8+§9);④§8.5 補「entity node 不得列入 materials[]」就地提醒。建模參數表五輪複審(47+4 項)結案。

2026-06-12 ─ 建模參數表 第四輪複審:13 項全執行

決策檔:D-20260612-04D-20260518-01

背景:第四輪複審聚焦「以名稱為 key 的識別系統」與「檢核表跨檔鏡像」死角。A2 採使用者方案(順序掛 list);C10 經查證複用既有概念;C12 採使用者操作性定義(討論後補裁)。

變動 位置
⭐ A1 node 名稱唯一性 全系統以節點名稱為 key(materials[].mesh_node / weapon_main_mesh_node / Mount 配對 / Axis / Pivot / route[] / checkpoints[] / entity node),glTF 不保證唯一、原 corpus 無重名檢核 → §2 鐵則「全 GLB 唯一、Stage 1 拒收」+ Stage 1 拒收表補列 建模 §2 + UGC上傳流程 §3
⭐ A2 命名與順序分離(使用者方案) 順序語義一律改由 extras 陣列承載:route 順序 = track.route[](明文權威)、checkpoint 通過順序 = 新欄位 track.checkpoints[](有序名稱陣列;1:1 檢核、孤兒拒收)、鏈序 = 同父 children 陣列相對順序(比照 bullet 既有先例);名稱僅需唯一、<n> 為顯示慣例;廢除「依編號順序 / 編號連續 / 跳號重編」整套機制(HUD 序號 = 陣列 index + 1) 建模 §2 / §3.7.2 / §5.3 / §5.4 / §8.1 + UGC機制 §9.3 + 零件與場景 + 編輯器操作 ×3
A3 碎片視覺 / 物理分流 零件碎片僅 broken 視覺破裂(本體凍結留車、不生 body、不計碎片池,遊戲機制 §10);entity 碎片才是物理 body(§9.3 池規則)——body 預算帳不算零件碎片的前提明文化 建模 §4.1
A4+B8 player_max 檢核 UGC機制原「1 ≤ auto_player_max ≤ 8」下限改 PLAYERS_PER_RACE_MIN(2)(=1 的場地永遠開不了房、上鏈即死資產;本地測試不需上鏈);檢核鏡像進建模 UGC機制 §9.3 + 建模 §7.2 / §8.6
A5 kinematic / conveyor 範圍 原全無上下限(瞬移牆 / 千米輸送帶合法)→ 新常數 KINEMATIC_PERIOD_MS_MIN(500) / KINEMATIC_AMPLITUDE_MM_MAX(20000) / CONVEYOR_VELOCITY_M_S_MAX(10)(初估);反癱瘓表補列;零件與場景 conveyor「沿 forward 軸」對齊「entity 自身 −Z」 程式參數表 §3 + 建模 §9.2 ×3 + 零件與場景 + UGC機制
A6 材質宣告優先序 node-level extras material(entity / bullet)為該 node 權威;同一 node 同時列於 root materials[] → Stage 3 拒收(禁雙重宣告) 建模 §2
A7 Checkpoint containment 鏡像 第三輪建模 §5.4 已加、UGC機制 §9.3 檢核表漏鏡像 → 補列 UGC機制 §9.3
⭐ B9 launch 彈藥模型 原全 corpus 未定(打完之後?速率?)→ 定案:彈藥有限、Hold 期間每 LAUNCH_FIRE_INTERVAL_MS(250ms,初估)依子節點序發 1 顆、打完即空reset_for_new_match 回滿(已射出 bullet 清除) 程式參數表 §7 + 建模 §3.7.3 + 算式表 §11 + 遊戲機制 技能表 + 零件與場景 §9
C10 車輛位置基準 通過判定「剛體中心點」(多 body 車歧義)→ chassis 組合體質心(複用 算式表 §4 武器反作用力的既有基準點)×2 處 建模 §5.4
C11 normal 不可填 patch weather.type: normalpatch.* 不可填(Stage 3 拒收;比照 open_duration_ratio 慣例) 建模 §8.3
⭐ C12 幾何解析操作性定義 「幾何解析符合 type」=「該 type 必要解析產物全部可取得」(使用者定義,非外觀分類;產物清單錨定本表 §4 required ✅ 欄位 = 單一權威):共通 = volume(watertight → voxel 備援皆敗 = 不符)+ AABB 非退化;零件 = PART_AABB 尺度擋點;track 小尺度不擋(Stage 3 player_max 兜底)。幾何相似 type(battery vs chip)皆放行 = by design(UI 選擇即意圖宣告、權威在 Stage 3 schema);失敗訊息指明缺何產物;演算法屬實作層 建模 §10.1
C13 措辭 open_duration_ratio「amplitude 終點」→「位移 / 旋轉終點」(旋轉模式引入後的洞) 建模 §9.2
待 playtest 收納 其他.md §5 補掛:body 預算族(與 512 預算帳連動註記)+ kinematic 三常數 + LAUNCH_FIRE_INTERVAL_MS 其他.md §5

2026-06-12 ─ 建模參數表 第三輪複審:12 項全採納執行(A6 直修 + B2 裁決 + C4 小項)

背景:第三輪整檔複審(前兩輪 + 當日軸向 / ambient 修正全數驗證健康)。12 項發現使用者全採納建議執行。

變動 位置
A1+B8 MAX_CHAIN_SEGMENT 進駐 §3.7.2 / §5.3「預估 32、見程式參數表」為斷指標(5 月命名後未進駐)→ 常數進駐 §3,值依 body 預算帳定 16(8 車滿鏈 = 128);編輯器操作 hardcode「32 段」同步 程式參數表 §3 + 建模 §3.7.2 / §5.3 + 編輯器操作 §3.2
A2+C12 場地約束常數化 TRACK_TRIANGLE_COUNT_MAX(名稱蓋不住 visual / collider 之分)→ 改名 TRACK_COLLIDER_TRIANGLE_COUNT_MAX(500K)+ 新增 TRACK_VISUAL_TRIANGLE_COUNT_MAX(3M)/ TRACK_GLB_SIZE_MAX_MB(80)/ TRACK_TEXTURE_BUDGET_1K_MAX(16)/ TRACK_TEXTURE_BUDGET_4K_MAX(4)/ TRACK_ENTITY_COUNT_MAX(100)/ TRACK_DESTRUCTIBLE_ENTITY_COUNT_MAX(50)/ WEATHER_PATCH_COUNT_MAX(50)/ WIND_SPEED_N_MAX(10)/ MAGNET_SOURCE_STRENGTH_N_MAX(10);§7.2 表逐列標常數名(「詳見程式參數表」自此為真) 程式參數表 §3 + 建模 §7.2 / §8.3 / §9.4 + 編輯器操作 ×2
⭐ A3 Checkpoint AABB containment Checkpoint 缺「在場地 AABB 內」檢核(KillZone / RespawnPoint 皆有)——AABB 外 Checkpoint 永遠點不亮 = 全場無法完賽 → §5.4 補位置 + scale 必須在場地 AABB 內(Stage 3 嚴格檢核) 建模 §5.4
A4 lenient 小特徵優先序 ±2mm 絕對帶與 ±15% 相對帶在小特徵(15% < 2mm)翻轉矛盾 → 明文「≤ ±2mm 一律通過;拒收 = > ±15% > ±2mm」 建模 §7.3
A5 wind_direction 定義補全 「0 = +X、逆時針」缺旋轉平面 / 軸 / 吹向語義 → 「水平 X-Z 面內繞 +Y、俯視逆時針(0 = +X、90 = −Z);= 風的吹向(力的方向)」 建模 §8.3 + 編輯器操作 §4.4
A6 amplitude_mm 框架定錨 未定 local / world → entity local frame(與 conveyor 沿 entity 自身 −Z 同邏輯) 建模 §9.2 + 編輯器操作 §4.3
⭐ B7 kinematic_move 旋轉模式 用途列「旋轉門」但參數只有位移、旋轉表達不出來 → 新增 rotation_axis(entity local 單位向量、過 node 原點、normalize 同 gravity_direction 慣例)+ rotation_amplitude_deg360 = 連旋:等角速、period = 一圈、motion_curve 不適用 / < 360 = 往返:依 motion_curve;語義比照 weapon_max_angle_deg);與平移至少填一、可並用(= 螺旋運動) 建模 §9.2 + 零件與場景 §10 + 編輯器操作 §4.3
⭐ B8 物理 body 預算帳 MAX_RIGID_BODIES_PER_RACE = 256 蓋不住最壞情況(8 車 × 鏈 32 已 = 256)且碎片 count / 壽命全 corpus 未定 → 256→512 + 計入規則明文(動態 + kinematic;fixed / static 不計)+ 新常數 VORONOI_FRAGMENT_COUNT_MAX(8 / object)/ FRAGMENT_LIFETIME_MS(5000,到期轉純視覺淡出)/ FRAGMENT_POOL_MAX(64,FIFO 最舊先轉視覺)/ LAUNCH_AMMO_COUNT_MAX(8,bullet 子節點上限);帳:8×12 + 8×16 + 8×8 + 100 + 64 = 452 ≤ 512(§2 註)+ §19.2 CI 不變式 程式參數表 §2 / §3 / §19.2 + 建模 §3.7.3 / §4.1 / §9.3
C9 contact_area 綁軸 六向 {front,…} 補 part local 軸對應(front = −Z / back = +Z / right = +X / left = −X / top = +Y / bottom = −Y) 建模 §4.1
C10 narrowest margin 常數化 兩處裸 50mm → NARROWEST_PATH_MARGIN_MM(50;與起跑 margin 同值不同用途、不共用名) 程式參數表 §3 + 建模 §8.6 + 比賽進行流程 §1.3
C11 chain joint 推導註 Revolute vs Spherical 規則屬 convert script 實作層、結果烘焙進 auto_chain 各 peer 同份(比照 §4.2 aero 演算法處理方式) 建模 §5.3
連帶掃除 physics-engine「場地物理」列殘留「環境散熱率」(§10.5 當日已刪) 程式架構/physics-engine §7

2026-06-12 ─ 軸向慣例定錨(車頭 = −Z / 高 = +Y)+ ambient_temp 散熱模型去疊床

決策檔:D-20260612-01

背景:第二輪複審末兩題裁決。軸向:程式參數表 AABB 三元組標「x/y/z 上限」,但 runtime 為 GLB Y-up(預設重力 [0,-1,0]),字面讀會把車寬 130 放垂直軸、場地「高」500 m;數值實為 [長, 寬, 高] 語義序,且 §4.2 aero 對角 +X+Z 30° 為 X-forward / Z-up 舊框架殘留。aero 本就需要前向軸慣例(runtime 要知道哪個係數是車頭迎風),使用者裁定定死軸對應(優於排序比對:「高就是高 ≤ 100」忠實設計意圖)。ambient_temp:算式表 §10.5 為 per-part 熱重構(2026-05-15)前遺骸——「場地宣告(℃,預設 25)」欄位不存在(唯一來源 weather.temperature、創作者可調、normal 預設 20)、base_rate 全 corpus 無定義、與 §6.1 牛頓冷卻重複計算、§11 註解錯;裁定整條刪除。

變動 位置
⭐ 全域軸向慣例 §5 速查補「全域框架 = runtime GLB(Y-up):高 = +Y(重力反向)、車輛車頭 = −Z(同 RoutePoint 前向慣例)」+ Blender Z-up 建模由 glTF exporter 自動轉 Y-up 註 建模 §5
AABB 軸對應定死 VEHICLE_AABB_MAX_MM [250,130,100]「x/y/z 上限」→「[長, 寬, 高]:長 = Z(車頭 −Z)/ 寬 = X / 高 = Y」;TRACK_AABB_MAX_MM 同步(500×500 占地 × 100 m 高、高 = Y);值不重排 程式參數表 §3
aero 對角換框架 §4.2 +X+Z 30° / -X+Z 30°−Z+Y 30° = 前仰 / +Z+Y 30° = 後仰 建模 §4.2
引用點補軸註 整車 AABB 補「長 Z × 寬 X × 高 Y」 建模 §7.1 + 車輛組裝 §3.4
auto_track_aabb_mm 檢核語義 補「x / z ≤ 500 m、y(高)≤ 100 m」 建模 §8.6
checkpoint trigger 軸語義 TRACK_CHECKPOINT_TRIGGER_MIN_MM 補「z = 行進向深度(防高速穿隧)」 程式參數表 §3
⭐ §10.5 環境溫度散熱率刪除 heat_dissipation_rate = base_rate × (1 + (25 − ambient_temp) × K_THERMAL) 整節刪(§10 餘 §10.1–§10.4、無編號連動);冷快熱慢由 §6.1 溫差項天然涵蓋 算式表 §10.5
K_THERMAL 退役 常數行刪(TBD 未實作;本檔 §2 彙整有記錄) 程式參數表 §18 + 其他.md §5
ambient_temp 單一來源化 「由場地決定(含 burn/freeze zone 加成)」→「= weather.temperature(創作者可調,normal=20 / rain=15 / snow=-5 預設);burn / freeze deploy 流體走 §6.4 直接加減零件溫度、不改 ambient」 算式表 §6.1 + 遊戲機制 §4.4 + 建模 §8.3
連帶修正 §11 reset 註解「(含三天氣 + 場地 K_THERMAL)」→「(= weather.temperature)」;遊戲機制天氣段指標「散熱率/風力/雨雪 §10.2–§10.5」→「風力/雨雪 §10.2–§10.3 + 散熱 §6.1」、設計理由「散熱率」條改錨 §6.1 牛頓冷卻 算式表 §11 + 遊戲機制 §8.3

2026-06-12 ─ chip slot 體積階梯門檻定錨(CHIP_SLOT_VOLUME_THRESHOLDS_CM3

決策檔:D-20260612-02

背景:第二輪複審待裁決題之一。slot 上限 4 與「體積 = 自然物理懲罰」設計散文跨 6 檔皆有,但 1→2→3→4 的 cm³ 門檻全 corpus 無權威值;編輯器操作 §3.3 已承諾 UI 顯示「下一階 slot Y+1 需 ≥ Z cm³」且指向建模參數表 §3.6(當時該處無門檻 = 斷承諾)。使用者裁決採納定錨提案。

變動 位置
新常數 CHIP_SLOT_VOLUME_THRESHOLDS_CM3 = [1.5, 3, 6](< 1.5 → 1 槽、≥ 1.5 → 2、≥ 3 → 3、≥ 6 → 4;初估、待 playtest) 程式參數表 §3
初估值校準 原對話提案 [2, 4, 8] → [1.5, 3, 6]:對齊公版 chip 視覺定調 30×20×6mm ≈ 3.6 cm³ → 3 槽(= speed / heavy 公版組合);control 4 槽公版需 ≥ 6 cm³(更大顆、視覺可辨識)
spec 落點 §3.6「Skill slot 數」desc 補階梯門檻 + 常數連結(編輯器操作 §3.3 的既有指標隨之成立、免改) 建模參數表 §3.6
跨檔引用 slot 數推導處補門檻指標 零件與場景 §8.1 / UGC機制 §3.4
公版對接 「公版 chip canonical 尺寸需達標(speed / heavy 3 槽 ≥ 3 cm³、control 4 槽 ≥ 6 cm³)」 程式架構/builtin-assets §5
待 playtest 清單 補掛此常數 其他.md §5