Re: [閒聊] 王國之淚去年延期時已接近完成

看板C_Chat作者 (19s)時間11月前 (2023/05/22 11:54), 編輯推噓31(31050)
留言81則, 30人參與, 11月前最新討論串3/7 (看更多)
→ spfy: 雖然有人解釋但我還是想不通倒轉要怎麼實作 不可能把林克附 → spfy: 近所有物件的軌跡都長期記錄起來吧? 記錄一個物件在空間中的姿態(pose: 包含位移跟旋轉) 一般是用一個4x4的浮點數(float: 有小數點的數字, 4 byte)矩陣 也就是說紀錄一筆位置, 記憶體大小是4x4x4=64 byte 假設他每秒記錄30筆pose (30fps), 並假設每個可移動物件都紀錄10秒 則一個物件的時間倒轉記錄是64x30x10=19.2 kbyte 超過一定距離的物件不能時間倒轉, 甚至都不會載入 所以假設他同時間最多有1000個物件會被載入(實際上應該沒這麼多) 他用來存時間倒轉資訊的總記憶體用量在每個時刻都不會超過19.2mbyte 由此可知時間倒轉其實負擔並不大 對於一個現代的系統來說, 19mb通常是可以忽略的大小 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.15.2.1 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_Chat/M.1684727690.A.120.html

05/22 11:57, 11月前 , 1F
這個學校有教嗎
05/22 11:57, 1F

05/22 11:58, 11月前 , 2F
推專業
05/22 11:58, 2F

05/22 11:58, 11月前 , 3F
老任厲害的地方在其他物件都還是正常運行,而且會跟倒轉
05/22 11:58, 3F

05/22 11:59, 11月前 , 4F
推專業,紀錄座標真的耗的資源還好
05/22 11:59, 4F

05/22 11:59, 11月前 , 5F
的那個東西產生各式互動
05/22 11:59, 5F

05/22 11:59, 11月前 , 6F
感覺是業界人士
05/22 11:59, 6F

05/22 11:59, 11月前 , 7F
你還要考慮朝向跟旋轉吧,雖然理論上也不會差太多
05/22 11:59, 7F

05/22 11:59, 11月前 , 8F
是說這系統任天堂不是有申請專利? 記得有公開作法
05/22 11:59, 8F

05/22 11:59, 11月前 , 9F
喔 沒事看錯
05/22 11:59, 9F

05/22 11:59, 11月前 , 10F
可以倒轉時光同時還能用究極手根本神
05/22 11:59, 10F

05/22 11:59, 11月前 , 11F
旋轉基本上都是記錄在那個矩陣內了
05/22 11:59, 11F

05/22 12:01, 11月前 , 12F
可以究極手+倒轉+通天術同時使用
05/22 12:01, 12F

05/22 12:01, 11月前 , 13F
比較麻煩的是每frame所有物件可能都要把矩陣資料push進去
05/22 12:01, 13F

05/22 12:03, 11月前 , 14F
倒轉引力+究極手
05/22 12:03, 14F

05/22 12:03, 11月前 , 15F
倒轉的物體還要維持物理邏輯就爆炸了
05/22 12:03, 15F

05/22 12:04, 11月前 , 16F
朝向跟旋轉就是pose喔,用一個轉換矩陣描述。或者另一種
05/22 12:04, 16F

05/22 12:04, 11月前 , 17F
方法是用translation跟quaternion(四元數)兩組vector(3+
05/22 12:04, 17F

05/22 12:04, 11月前 , 18F
4個浮點數)描述。但這兩種東西其實是等價的,在這邊用轉
05/22 12:04, 18F

05/22 12:04, 11月前 , 19F
換矩陣程式寫起來是比較簡單的。
05/22 12:04, 19F

05/22 12:08, 11月前 , 20F
聽起來很簡單實際上很難設計吧
05/22 12:08, 20F

05/22 12:10, 11月前 , 21F
我也是這麼想的(裝
05/22 12:10, 21F

05/22 12:11, 11月前 , 22F
不過問題還是在發動倒轉物件互動上的設計
05/22 12:11, 22F

05/22 12:12, 11月前 , 23F
to 13F: 要把資料push可以用一個長度30x10的circular qu
05/22 12:12, 23F

05/22 12:12, 11月前 , 24F
eue來存,但因為要先進後出,所以要把它當stack用。
05/22 12:12, 24F

05/22 12:12, 11月前 , 25F
能夠互動還不出大bug真的是這系統最可怕的地方
05/22 12:12, 25F

05/22 12:13, 11月前 , 26F
有別的遊戲在做過倒轉嗎?
05/22 12:13, 26F

05/22 12:13, 11月前 , 27F
to 20F: 這邊只討論軌跡資料儲存,他怎麼呈現,物理怎麼
05/22 12:13, 27F

05/22 12:13, 11月前 , 28F
運算要看有沒高手解答。
05/22 12:13, 28F

05/22 12:14, 11月前 , 29F
單獨物件位移倒轉的沒印象 但整體場景時間倒轉機制的有
05/22 12:14, 29F

05/22 12:14, 11月前 , 30F
360時代有一片Braid 有各種時間相關的技能
05/22 12:14, 30F

05/22 12:14, 11月前 , 31F
確實 軌跡紀錄不算負擔太大的東西 但跟其他系統/物理
05/22 12:14, 31F

05/22 12:14, 11月前 , 32F
每frame推應該拉個queue放一丟一就好
05/22 12:14, 32F

05/22 12:14, 11月前 , 33F
Braid記得是全畫面倒帶那種
05/22 12:14, 33F

05/22 12:14, 11月前 , 34F
疊加就是很可怕的東西了
05/22 12:14, 34F

05/22 12:15, 11月前 , 35F
Braid啊 那可是把時間要素玩出花來的神作了
05/22 12:15, 35F

05/22 12:15, 11月前 , 36F
喔喔用Circular Queue來存的確是可以降低不少效能消耗 學
05/22 12:15, 36F

05/22 12:15, 11月前 , 37F
到了
05/22 12:15, 37F

05/22 12:15, 11月前 , 38F
Braid全場景倒轉 不過記得主角還是可以正常活動? 太久沒玩
05/22 12:15, 38F

05/22 12:16, 11月前 , 39F
一個是倒轉的物體有限,另一個是範圍,基本就在林克的可
05/22 12:16, 39F

05/22 12:16, 11月前 , 40F
視範圍,所以其實沒多少
05/22 12:16, 40F

05/22 12:16, 11月前 , 41F
問就是時間鉗型攻擊(?)
05/22 12:16, 41F

05/22 12:17, 11月前 , 42F
另外其實可以觀察到 林克沒有觸碰到的物件 實際上應該是
05/22 12:17, 42F

05/22 12:18, 11月前 , 43F
沒在持續的在寫入資訊
05/22 12:18, 43F

05/22 12:18, 11月前 , 44F
大部分有倒轉的遊戲都全畫面,不然就是設計好的固定
05/22 12:18, 44F

05/22 12:18, 11月前 , 45F
位置倒轉
05/22 12:18, 45F

05/22 12:19, 11月前 , 46F
推專業 不懂程式的我完全看不懂討論 XD
05/22 12:19, 46F

05/22 12:19, 11月前 , 47F
這遊戲可以隨時隨地倒轉調位置附加,這種無限制的空間怎
05/22 12:19, 47F

05/22 12:19, 11月前 , 48F
麼定位超好奇的
05/22 12:19, 48F

05/22 12:21, 11月前 , 49F
推專業
05/22 12:21, 49F

05/22 12:21, 11月前 , 50F
其實難的不是倒轉本身 而是倒轉中可以用究極手 通天
05/22 12:21, 50F

05/22 12:22, 11月前 , 51F
倒轉中的物件也有物理法則和其他物件互動
05/22 12:22, 51F

05/22 12:22, 11月前 , 52F
例如拿兩顆石頭一根木頭組成的東西在空中轉
05/22 12:22, 52F

05/22 12:22, 11月前 , 53F
然後倒轉 就能把在軌跡中晃的西諾克斯打爛這件事情
05/22 12:22, 53F

05/22 12:25, 11月前 , 54F
倒轉中本體似乎無視物理法則 但互動的物件仍然會被物理系
05/22 12:25, 54F

05/22 12:25, 11月前 , 55F
倒轉中還能維持物理運作是最難的 難以想像開發期間發
05/22 12:25, 55F

05/22 12:25, 11月前 , 56F
生多少的bug
05/22 12:25, 56F

05/22 12:25, 11月前 , 57F
另外要最佳化完全可以兩三幀或更多幀才存一筆資料,其他
05/22 12:25, 57F

05/22 12:25, 11月前 , 58F
幀的pose用內插法算,人類肉眼很難看出差別。實際遊戲使
05/22 12:25, 58F

05/22 12:25, 11月前 , 59F
用時間倒轉時可以觀察到物件在時間軸上有很多個節點,說
05/22 12:25, 59F

05/22 12:25, 11月前 , 60F
不定他真的沒有全部存,而是用內插法補。
05/22 12:25, 60F

05/22 12:25, 11月前 , 61F
統影響 這遊戲不管甚麼東西 只要力量*重量夠大就能造成
05/22 12:25, 61F

05/22 12:25, 11月前 , 62F
就是這些看似簡單系統之間的互相疊加效果太有趣才可怕
05/22 12:25, 62F

05/22 12:25, 11月前 , 63F
傷害
05/22 12:25, 63F

05/22 12:26, 11月前 , 64F
也因為這個特性可以把東西黏上去再倒轉 只要不要超過黏膠
05/22 12:26, 64F

05/22 12:27, 11月前 , 65F
的支撐上限(如果力矩不對黏膠是會斷掉的)就能帶著東西走
05/22 12:27, 65F

05/22 12:27, 11月前 , 66F
這種叫做Emergent gameplay 薩爾達在設計上的頂峰領域
05/22 12:27, 66F

05/22 12:28, 11月前 , 67F
然後這還是運行在一台機能有限的掌機 遊戲容量不到20G
05/22 12:28, 67F

05/22 12:33, 11月前 , 68F
用 4x4 沒錯啊,只記旋轉是可以用四元數
05/22 12:33, 68F

05/22 12:35, 11月前 , 69F
https://tinyurl.com/mpm9vry5 當初申請的內容
05/22 12:35, 69F

05/22 12:40, 11月前 , 70F
玩起來應該沒紀錄動量跟速度 所以應該只記錄transformat
05/22 12:40, 70F

05/22 12:40, 11月前 , 71F
ion沒錯
05/22 12:40, 71F

05/22 12:41, 11月前 , 72F
難的在一拖拉庫系統混在一起的時候怎麼迴避cache miss
05/22 12:41, 72F

05/22 12:43, 11月前 , 73F
應該是沒有,因為中間黏了東西,照樣是回去原來的位置
05/22 12:43, 73F

05/22 12:45, 11月前 , 74F
算動量我就不能年呀哈哈在木柴上了
05/22 12:45, 74F

05/22 12:46, 11月前 , 75F
原po說到重點 不需每筆資料都記錄 只需選擇一區間再用cub
05/22 12:46, 75F

05/22 12:46, 11月前 , 76F
ic spline去推估區間內數值 出來結果一樣平滑
05/22 12:46, 76F

05/22 12:48, 11月前 , 77F
容量還好 遊戲容量會大基本都是材質包語音包這些 程式沒差
05/22 12:48, 77F

05/22 13:07, 11月前 , 78F
感謝解釋 我這種拉基工程師實在讚嘆
05/22 13:07, 78F

05/22 13:32, 11月前 , 79F
王國之淚已經導論到這種層面了嗎…(讚嘆
05/22 13:32, 79F

05/22 13:45, 11月前 , 80F
物理沒做好其他東西都是負加成 一代打磨的很精緻了二代才
05/22 13:45, 80F

05/22 13:45, 11月前 , 81F
有辦法這樣玩
05/22 13:45, 81F
文章代碼(AID): #1aQkUA4W (C_Chat)
討論串 (同標題文章)
文章代碼(AID): #1aQkUA4W (C_Chat)