本帖最后由 ljffdb2 于 2012-5-25 02:58 编辑
四、关于BUG的原理
和E大一起讨论了半晚,因为没法分析数据,所以这个原理只是最大限度的猜测。 但我觉得和我测试出的结果很符合,感兴趣的朋友一看,不过这不是科普文,只是为开发研究更多有趣BUG找个理论基础。而且原理是否正确还有待验证。
BUG的成功率
在几种利用平台边缘卡墙的BUG里,排除掉一切操作变动的因素,最稳定最容易定位的应该是乔纳森的音速冲刺。在音速冲刺前利用出鞭来固定位置,不会因为搓招变动,在出鞭过程中使用音速冲刺,所以可排除掉操作带来的位置变化。
实验:在H7的出城点位,站位精确到同一个像素的位置,使用音速冲刺,成功发动BUG并不是100%,有时成功,有时不成功。
地面距离是不可能变的,人物招式的移动距离应该也不可能变动吧(每次冲刺距离不一样?这点不是很确定,但考虑能够说得通的情况,这个可能性不太大),E大给出的解释是:可能是由于定点数取整的原因。比如人物此时的横坐标是1.0000或1.9999,代表的都是那个像素点的位置,BUG发动成功的条件如果是1.0000~1.5555,那在1.8888可能就不会成功。当然这都是猜测,具体的证据没办法拿出来。
总之,结论就是想要成功,就要在那个像素点或相邻的像素点站位,但同时,即使精确到像素点位也不一定成功,得看运气。(相邻像素点,是实验可行后得出的)
为什么会加速后飞?
他的解释是,和白夜协奏曲类似(连名字都如出一辙的HoD、、、)由于游戏里会不断检测水平速度,当速度为0或小于0时强制归0,也就是人物会水平状态停止。而BUG发动时,不管是斜下踢还是小乔的音速冲刺或者是苍真的人偶变位,都会有一个减速时间。
斜下踢:斜踢 - 碰到地面 - 硬直向前滑动 - 受到反向加速 - 停止 音速冲:冲刺 - 收招时受到反向加速 - 停止 扔人偶:跳起 - 2段跳扔人偶 - 向右斜下踢 - (一段很短的时间后)人偶变位 - 硬直向前滑动 - 受到反向加速 - 停止
这些过程中,都需要按住“跳”,很可能是这个操作跳过了检测人物水平速度的那个指令,使人物继续保持水平反向加速度,在平台边缘处再次点跳后会反向后飞。(他分析数据得到的白夜协奏曲平台急退悬浮BUG正是这个原理)所以在游戏中,我们只能看到后飞,而不是前飞。加速度是负的。
用速度卡进墙壁
小乔音速冲的后飞速度越来越快,可以观察在H9机关上方用BUG。于是大胆猜测,速度是越来越快的,因为加速度不变,始终是离开平台前的那个反向加速。不过同时也没有一个“背后无限大、无限远的地形”来证明后飞可以无限飞下去,并且越飞越快。
小乔后飞最快,可能是因为他的音速冲刺初期速度很快,停止就是一瞬间的事,所以受到的反响加速度很大,后飞速度也就很快。
H9小乔后飞:
H9苍真后飞:
斜下踢和人偶变位都是利用45度下踢,在硬直时向前缓慢移动直到停止,从碰到地面到停止,整个过程的时间比小乔的音速冲刺的停止时间长的多,说明受到的反向加速度也小,所以后飞初始速度不是很快。
在PSN版本中,H10开场的城门飞升,很难在单人游戏里做到。(可以后飞卡到墙上,但是无法飞升,只会下落到地面)只有通过多人联机才可以飞升,人越多越容易飞升,可能是多人模式有延迟吧。
结论是卡进墙壁靠的就是后飞的速度(和白夜协奏曲一样)。
出城后的位置
http://v.youku.com/v_show/id_XNDAwNjQ4ODI4.html
这个视频里,苍真在第7关飞升卡出屏幕外身上开启蓝魂火圈,可以看到高度大约是屏幕最顶部向外一点点,最后人物被H7下落的石头碰死侧面也能说明石头的下落初始位置。被动移动时左右的距离没办法测试,估计高度一样,就是飞出屏幕外了。
一般情况下挂了以后,骷髅复活的位置会同时有墓碑在,但在这里被落石碰挂后并没有出现,很有可能最顶部城外地形是一个“地面”,墓碑在那里。而且人物的小状态框里也显示了人物是下蹲的,说明受到挤压。
因为其他关卡用苍真BUG飞出屏幕需要多人联机,视频暂时没做。但估计出城后地形和挂了以后(如果能挂的话)情况与H7相同。 |