《動物森友會》跳躍與穿牆判定分析
看到了隱形牆的機制讓我有了一些想法。最近正好在建水迷宮,也發現了一些穿柱子的規律,但是穿兩道牆著實太離譜,十分懷疑是開了,忍不住想錘,研究了一下午也算是有一個比較合理的猜想了。
先說初步結論:內鬼是牆。然後再順便整理一下關於跳躍的一些判定吧,希望能幫助大家成為一個真正的閘總。
跳躍判定
我們一般將動森的跳躍分為撐桿跳和無桿跳躍,而分開來講是因為兩者的判定其實是有很大區別的,主要原因在於那根桿子。
撐桿跳
目前測試下來撐桿跳的判定有幾個關鍵點,一個是最小1*2大小的水坑。(1*1沒有成功過,而且截圖發現桿子落點會在1*2水坑的中間點)
另一個就是沒有障礙的跳躍軌跡。此外撐桿跳的落腳點必定在地塊的中心,不會在兩格地板中間或者半格的三角形地面上。
但是雖然人物的落點會有修正,桿子插的點遊戲卻不會幫我們修正,而且判斷的邏輯似乎是先判斷桿子落點再判斷人物落點,只有兩者都符合遊戲上面的條件才能成功跳躍。
而這就能讓我們設計一些角度非常刁鑽的跳跳樂,畢竟人物的朝向是自由的,中間的水坑非常小的時候要刻意地對準斜對面的一格平臺一次成功幾乎不可能。
無桿跳躍
無桿跳躍的判定就相對比較模糊,首先角色需要在水邊(撐桿跳不一定要在水邊),其次朝向的180度範圍內有可跳躍的平臺(有時甚至不止180度),滿足這兩點就能成功跳躍。
跳躍極限與盲點
兩種跳躍的範圍是相互獨立的,某一個可跳躍點要麼只能撐桿跳,要麼只能無桿跳。兩者加起來的跳躍距離如下圖所示,從黑色點出發,黃色區域為無桿跳躍的範圍,綠色區域測試撐桿跳的範圍。
可見範圍還是非常大的,特別是豎直方向常常能超出視角,結合上述的撐桿跳精準判定,再在路線上加一點點障礙物就能達到讓挑戰者看也看不到蒙也蒙不著的絕妙效果。
而紅色點是兩種跳躍都沒辦法到達的盲點,相信許多做過跳跳樂迷宮的閘總同僚也經常利用,能製造出明明就在眼前但是怎麼A也夠不著的跳臺。
下方兩個平臺都沒辦法跳,右側遠處的平臺卻可以,但是正解在下方視野外的一個平臺。
優先級
目前的測試發現各個跳臺的優先級是通向的優先近的跳臺,而不同向的優先精確方向的撐桿跳,其次模糊匹配周圍的無桿跳臺。
由於前面說的要對準撐桿跳的方向很多時候只能不停地嘗試,假如在本就碰臉的點側向再擺一個無桿跳臺,就能讓挑戰者每次嘗試都會自動跳到跳臺上。
當然推薦最好還是用在豎直或者水平的跳躍處,給他們一點希望。
穿牆判定
接下來就是為什麼會產生穿牆的現象了。
一個假說
我們首先能發現動森裡的角色其實是能擠的,就是在兩個對角擺放相差0.5格的傢俱中間是能側身通過的,而相對於撐桿跳嚴格的一格軌跡,無桿跳更可能沿用走路時的通行判定,也就是說只要對角空出0.5格的空間我們也可以寄過去,那麼這個空間誰給的呢?只能是那兩堵成對角的牆了!因此大膽假設:被水淹沒的柱子會悄摸摸不知所措地縮出0.5格的空隙,讓我們擠過去。
驗證
要驗證這個假說首先就要知道0.5格的空隙到底能不能讓我們穿過去,因此請出我們yyds,0.5*1的簡單壁板。 首先我們試著將兩者對角豎向緊密排列
發現並沒有辦法穿過,確認了簡單壁板並不是托。
其次我們將其中一個挪開0.5格,驚了居然還是過不去。
先別急讓我們試試挪另外一個。
從上面的實驗我們知道遠離角色方向的0.5格空隙確實能讓角色穿過去,但是怎麼確定牆壁也是一樣的機制呢?就讓我們給牆壁壯壯膽。
可以發現,在給牆壁上方擺放了傢俱的時候牆壁的體積會被強行設為1*1,這時候我們就沒有辦法再穿過去了!可見關於牆壁怕水的猜想還是十分靠譜的。最後一個問題,它有多怕?在簡單壁板的例子中我們發現用地上的水坑也能達到穿牆的效果,那水坑能不能嚇到柱子縮呢?測試發現也是可以的,看來柱子不但怕被水淹沒,連水坑都頂不住,而整個穿牆結構的最簡化模式應該是這樣:
或者再把左下的柱子也去了,不過那樣就不是穿牆了。
應用
知道了原理,我們自然就能有更多的應用啦!
單向門
我們知道穿牆的必要條件是遠離角色的方向的空隙,因此適當採用一些差異化設計當角色通過之後就沒有辦法回來了!至此我們終於擁有了第一個能讓挑戰者徹底死關的設計,除了減號投降外無解!當然過於影響遊戲體驗建議還是放在關底吧。
把右邊的草叢道具去了就是有趣無回的單向門。
簡單壁板的暗路
測試中發現簡單壁板雖說體積是0.5*1,然而實際上他的橫向判定體積也並不是1,也就是兩面水平放置的簡單壁板同樣能達到牆壁一樣的效果!相信有才的大佬們又能有許多新的思路了呀。
來源:NGA
作者:godaxigua