→ 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物理没做好其他东西都是负加成 一代打磨的很精致了二代才有办法这样玩