T3瞄準機制詳解(2)(關於瞄準和射擊的底層邏輯)


3樓貓 發佈時間:2022-07-01 13:37:12 作者:=Aurora= Language

接上文
T3瞄準機制詳解(1)(不是教你怎麼卡牆角,而是為什麼能卡牆角)

所以,為什麼會能夠卡牆角射擊呢?

這時,我們需要了解一個3D編程中的模塊,叫做:


Raycast

(翻譯成中文是光線檢測)

這個情況下此模塊的大致作用就是,從指定視角的屏幕上直線向前射出一道射線,並且能夠檢測到這一條射線碰撞到的物體。檢測到的信息包括第一個碰到的實體,目標的標籤(地面,敵人,隊友什麼的),碰撞的座標等。整個過程一般會在一幀(0.02秒左右)完成。

Raycast詳解

所以,在T3裡,子彈在射擊是飛向玩家射擊的瞬間,從屏幕正中間(也就是準星位置)射出的光線檢測,碰撞到的第一個座標,而不是畫面中槍口朝向的位置。

那為什麼要使用這種瞄準機制呢?

眾所周知,TPS全稱為Third Person Shooter,即第三人稱射擊。既然是第三人稱而不是第一人稱了,那玩家看到的(第三人稱)並不是角色看到的(第一人稱)。所以,除非確定玩家想要瞄準的座標而不是方向,角色並不知道究竟要往哪裡射擊。

T3瞄準機制詳解(2)(關於瞄準和射擊的底層邏輯) - 第1張
只有通過玩家視角準星光線檢測到的座標來確定角色的射擊方向才是最靠譜也是最好的做法。(當然以後就說不定了)否則玩家瞄準和角色射擊有偏差則會大幅度影響玩家手感。(不過能夠向後射擊可能真只是一個忘了優化代碼導致的bug而不是官方特意做的)

光線檢測的子彈的碰撞

看到這裡,雖然有人可能忘了,但是相信還是會有人問:就算瞄準是這樣,但是子彈也不應該穿牆啊?因為避免穿牆就只需要給子彈加一個碰到牆體就消失的腳本就行了。

T3瞄準機制詳解(2)(關於瞄準和射擊的底層邏輯) - 第2張
這又涉及到射擊的底層邏輯了。

其實,在T3的所有光線檢測的射擊裡(不包括大型子彈),射擊造成傷害的並不是子彈,而是瞄準和射擊本身。

這時有人會問:但是傷害命中提示是在子彈飛行後命中敵人才出現的啊?

T3瞄準機制詳解(2)(關於瞄準和射擊的底層邏輯) - 第3張

實話實說:這個子彈碰撞的效果是騙人的。

如果是攻擊移動的目標,你會發現如果你使用常規槍械預判了敵人的位置,反而不會造成任何傷害。

T3瞄準機制詳解(2)(關於瞄準和射擊的底層邏輯) - 第4張(子彈看上去應該命中但沒有造成傷害)

但是如果你只是單純的瞄準敵人當前的位置射擊,就算子彈到達時敵人已經離開了,還是會造成傷害。

T3瞄準機制詳解(2)(關於瞄準和射擊的底層邏輯) - 第5張(視頻中其實準星在維克多頭上時就射擊了,只是射擊動畫看起來有一點內置的延遲)


綜上所述,可以得出結論:

常規子彈不會碰撞,只會根據射擊時光線檢測得出的路徑以自身的彈速飛行,期間無視任何碰撞,並在到達終點時對射擊時瞄準到的敵人造成傷害,無論目標在哪。

這樣的設計有可能是為了減少玩家的瞄準負擔,也是為了響應“瞄到的就是打到的”,或者只是單純的因為子彈移速極快所以不願意考慮太多預判。

忘了說這事了,多謝提醒
T3瞄準機制詳解(2)(關於瞄準和射擊的底層邏輯) - 第6張另外這個現象在用鍾艾莉時也非常常見。如果你在衝刺前被敵人瞄準射擊並且射擊傷害能夠致死,你衝刺後還是躲不開這個傷害,並且有時死亡時會回到衝刺前的位置。這個看起來像個bug但其實是正常遊戲機制。

這時,似乎又回到了最開始的問題:為什麼花翎的子彈看起來也很小,但是無法向上面的角色那樣卡牆角射擊?

讓我們下一期講解遊戲中的第二種瞄準和射擊方式T3瞄準機制詳解(2)(關於瞄準和射擊的底層邏輯) - 第7張

連接集合:
T3瞄準機制詳解(1)(不是教你怎麼卡牆角,而是為什麼能卡牆角)

© 2022 3樓貓 下載APP 站點地圖 廣告合作:asmrly666@gmail.com