→ spfy: 雖然有人解釋但我還是想不通倒轉要怎麼實作 不可能把林克附
→ spfy: 近所有物件的軌跡都長期記錄起來吧?
記錄一個物件在空間中的姿態(pose: 包含位移跟旋轉)
一般是用一個4x4的浮點數(float: 有小數點的數字, 4 byte)矩陣
也就是說紀錄一筆位置, 記憶體大小是4x4x4=64 byte
假設他每秒記錄30筆pose (30fps), 並假設每個可移動物件都紀錄10秒
則一個物件的時間倒轉記錄是64x30x10=19.2 kbyte
超過一定距離的物件不能時間倒轉, 甚至都不會載入
所以假設他同時間最多有1000個物件會被載入(實際上應該沒這麼多)
他用來存時間倒轉資訊的總記憶體用量在每個時刻都不會超過19.2mbyte
由此可知時間倒轉其實負擔並不大
對於一個現代的系統來說, 19mb通常是可以忽略的大小
作者:
w2776803 (台南假面騎士HUNGER)
2023-05-22 11:57:00這個學校有教嗎
作者:
hohiyan (海洋)
2023-05-22 11:58:00老任厲害的地方在其他物件都還是正常運行,而且會跟倒轉
作者: ronga (幻影蒼紫) 2023-05-22 11:59:00
推專業,紀錄座標真的耗的資源還好
作者:
hohiyan (海洋)
2023-05-22 11:59:00的那個東西產生各式互動
作者:
w2776803 (台南假面騎士HUNGER)
2023-05-22 11:59:00感覺是業界人士
作者:
tv1239 (路過的)
2023-05-22 11:59:00是說這系統任天堂不是有申請專利? 記得有公開作法
作者:
WiLLSTW (WiLLS)
2023-05-22 11:59:00旋轉基本上都是記錄在那個矩陣內了
作者:
hank81177 (AboilNoise)
2023-05-22 12:01:00可以究極手+倒轉+通天術同時使用
作者:
WiLLSTW (WiLLS)
2023-05-22 12:01:00比較麻煩的是每frame所有物件可能都要把矩陣資料push進去
作者:
bestadi (ADi)
2023-05-22 12:03:00朝向跟旋轉就是pose喔,用一個轉換矩陣描述。或者另一種方法是用translation跟quaternion(四元數)兩組vector(3+4個浮點數)描述。但這兩種東西其實是等價的,在這邊用轉換矩陣程式寫起來是比較簡單的。
作者:
w2776803 (台南假面騎士HUNGER)
2023-05-22 12:08:00聽起來很簡單實際上很難設計吧
作者: ms0302610 2023-05-22 12:10:00
我也是這麼想的(裝
作者:
WiLLSTW (WiLLS)
2023-05-22 12:11:00不過問題還是在發動倒轉物件互動上的設計
to 13F: 要把資料push可以用一個長度30x10的circular queue來存,但因為要先進後出,所以要把它當stack用。
作者:
tv1239 (路過的)
2023-05-22 12:12:00能夠互動還不出大bug真的是這系統最可怕的地方
作者:
nisioisin (nemurubaka)
2023-05-22 12:13:00有別的遊戲在做過倒轉嗎?
to 20F: 這邊只討論軌跡資料儲存,他怎麼呈現,物理怎麼運算要看有沒高手解答。
作者:
cloud0607 (Just-cloud)
2023-05-22 12:14:00單獨物件位移倒轉的沒印象 但整體場景時間倒轉機制的有
作者:
tv1239 (路過的)
2023-05-22 12:14:00360時代有一片Braid 有各種時間相關的技能
作者:
Slas (å²é›·æ–¯)
2023-05-22 12:14:00Braid記得是全畫面倒帶那種
作者:
WiLLSTW (WiLLS)
2023-05-22 12:15:00喔喔用Circular Queue來存的確是可以降低不少效能消耗 學到了
作者:
tv1239 (路過的)
2023-05-22 12:15:00Braid全場景倒轉 不過記得主角還是可以正常活動? 太久沒玩
作者:
Bugquan (靠近邊緣)
2023-05-22 12:16:00一個是倒轉的物體有限,另一個是範圍,基本就在林克的可視範圍,所以其實沒多少
作者:
Pegasus99 (天馬行空...的天馬)
2023-05-22 12:16:00問就是時間鉗型攻擊(?)
作者:
WiLLSTW (WiLLS)
2023-05-22 12:17:00另外其實可以觀察到 林克沒有觸碰到的物件 實際上應該是沒在持續的在寫入資訊
作者: sniperex168 2023-05-22 12:18:00
大部分有倒轉的遊戲都全畫面,不然就是設計好的固定位置倒轉
作者:
s921619 (麻糬)
2023-05-22 12:19:00推專業 不懂程式的我完全看不懂討論 XD
作者:
w2776803 (台南假面騎士HUNGER)
2023-05-22 12:19:00這遊戲可以隨時隨地倒轉調位置附加,這種無限制的空間怎麼定位超好奇的
作者:
cn5566 (西恩)
2023-05-22 12:21:00其實難的不是倒轉本身 而是倒轉中可以用究極手 通天倒轉中的物件也有物理法則和其他物件互動例如拿兩顆石頭一根木頭組成的東西在空中轉然後倒轉 就能把在軌跡中晃的西諾克斯打爛這件事情
作者:
WiLLSTW (WiLLS)
2023-05-22 12:25:00倒轉中本體似乎無視物理法則 但互動的物件仍然會被物理系
倒轉中還能維持物理運作是最難的 難以想像開發期間發生多少的bug
另外要最佳化完全可以兩三幀或更多幀才存一筆資料,其他幀的pose用內插法算,人類肉眼很難看出差別。實際遊戲使用時間倒轉時可以觀察到物件在時間軸上有很多個節點,說不定他真的沒有全部存,而是用內插法補。
作者:
cloud0607 (Just-cloud)
2023-05-22 12:25:00就是這些看似簡單系統之間的互相疊加效果太有趣才可怕
作者:
cloud0607 (Just-cloud)
2023-05-22 12:27:00這種叫做Emergent gameplay 薩爾達在設計上的頂峰領域然後這還是運行在一台機能有限的掌機 遊戲容量不到20G
作者:
tv1239 (路過的)
2023-05-22 12:35:00作者:
jackyT (Ubuntu5566)
2023-05-22 12:40:00玩起來應該沒紀錄動量跟速度 所以應該只記錄transformation沒錯難的在一拖拉庫系統混在一起的時候怎麼迴避cache miss
作者:
Bugquan (靠近邊緣)
2023-05-22 12:43:00應該是沒有,因為中間黏了東西,照樣是回去原來的位置
作者:
WiLLSTW (WiLLS)
2023-05-22 12:45:00算動量我就不能年呀哈哈在木柴上了
作者: shi0520 (shi0520) 2023-05-22 12:46:00
原po說到重點 不需每筆資料都記錄 只需選擇一區間再用cubic spline去推估區間內數值 出來結果一樣平滑
作者:
strlen (strlen)
2023-05-22 12:48:00容量還好 遊戲容量會大基本都是材質包語音包這些 程式沒差
作者:
spfy (spfy)
2023-05-22 13:07:00感謝解釋 我這種拉基工程師實在讚嘆
作者:
dennisN (dennisNism)
2023-05-22 13:45:00物理沒做好其他東西都是負加成 一代打磨的很精緻了二代才有辦法這樣玩