D-20261016-01|回定位等待空出的實際落點¶
背景與驅動力¶
離道車在淡出中點搬回最後合法位置時,另一台車可能已占用該位置。 直接搬移會從離散的遊戲操作產生深度交疊,不能把它當成連續行駛自然形成的碰撞。 實際八車測例中,落點產生約 24 mm 交疊;只略過那一次搬移,原本耗盡品質預算的影格即可通過。
考慮過的選項¶
- 放寬物理品質或增加求解預算:沒有消除搬入實體內的原因,不採用。
- 暫時取消車間碰撞:改變正常阻擋與傷害,不採用。
- 任意改變回定位位置:會改變最後合法位置與作者指定落點的契約,不採用。
- 在原落點空出前等待(採納):保留落點、碰撞及物理品質,代價是占用時處罰會延長。
決定¶
- 1.0 秒減速與 0.6 秒淡出/淡入是沒有阻擋時的最短流程。淡出中點的目標若被占用, 停在搬移之前,保持既有凍結動作;每個模擬影格重新檢查,空出後才搬移並完成剩餘淡入。
- 以該車全部啟用的實際碰撞外形、完整目標姿態,查詢其他車輛啟用且非 sensor 的實際外形。 接觸、交疊或非有限距離都不能當成空出的證據;單純外接盒重疊不足以拒絕。
- 忽略自己的外形及已停用的物理零件;地面接觸不屬於另一車占用。一般車間碰撞仍然生效。
- 搬移預覽與實際搬移共用整組剛體變換。其他車的位姿從目前 body 與 collider local pose 重建, 不使用可能尚未同步的同幀 collider 世界位姿快取。
- 等待使用現有處罰狀態,不新增獨立時鐘或不受回放控制的預約表。
首次被阻擋時將完整落點保存為 current SavedState 的
pendingRespawn,納入共識 hash; 等待期間即使被碰撞推動,也不重新選點,成功搬移後清空。還原須驗證落點只存在於搬移前的等待狀態。 等待不取得 checkpoint、圈數或額外排名進度,賽程時間上限仍照常生效。 - 本決策不承諾任何被占用的落點必定會空出,也不把合法卡住或限時未完賽當成核心缺陷。
後果與影響¶
占用會延長處罰,不能再向玩家保證固定 1.6 秒恢復。碰撞外形查詢只在搬移時點需要, 其成本仍須在實際多人回合觀察,不可由聚焦測試推論即時效能。 回歸涵蓋占用/釋放、旋轉細長外形、停用形狀、同幀其他搬移及快照還原, 並須以原八車回合驗證,不能把略過搬移的診斷對照當作正式修復。