今天,我們將研究遊戲中用於子彈的兩種主要技術。
遊戲中射擊技巧的原理是什麼?使子彈起作用的方法是什麼?如何使用槍支增加真實感?讓我們看一下可用於在遊戲中設置項目符號的兩種主要方法。
Hitscan
一切都始於一種稱為“raycasting射線投射”的技術,該技術允許遊戲引擎將3D環境渲染到2D圖像上。可以使用相同的技術來定義射線與哪個對象相交。過去,遊戲開發人員發現了另一種使用此技術的方法。這個想法是在槍口中設置一條射線來模仿子彈。他們稱這種新穎的方法為Hitscan。
射擊時會發生什麼?首先,遊戲引擎定義槍支指向的方向。然後,引擎從槍口投射預定範圍的射線。光線投射非常方便,因為它可以使引擎定義初始光線是否撞擊物體。如果答案是肯定的,並且有物體在火線中,則引擎會知道目標被子彈擊中。
還可以進一步增強此方法:開發人員可以使射線擊中多個目標,例如,添加反射效果以使子彈彈起,使射線可見等。
稍後我們將討論更高級的內容,但是要了解有關Hitscan的主要內容之一是該技術的速度非常快,這意味著它不會花費您的處理能力。這一切都始於經典的《德軍總部》和《毀滅戰士》,但在《決勝時刻》和《鬥陣特攻》等遊戲中仍然可以找到相同的技術(至少有些槍支是基於這種方法)。
該技術便宜且易於設置,因此為什麼有人需要開發其他方法。Hitscan子彈基本上是射線-它們具有無限的行進速度,這意味著它們可以立即到達最終目標,因此無法躲避子彈。而且,該方法缺乏現實性,因為根據基本物理學,子彈通常受外力影響。您可以添加聲音以獲得更好的效果,但不能修改槍口和目標之間發生的情況。
Projectile Ballistics
這就是導致開發人員嘗試使用Projectile Ballistics的原因。第二種方法使每個子彈成為遊戲場景中的物理對象,具有自定義質量,速度和其他參數,供遊戲引擎考慮。
Max Payne是使用彈道學的最受歡迎的例子之一。通過在遊戲中將子彈變成單個物體,開發團隊可以添加著名的“子彈時間”機制並達到射擊不同槍支的真實效果。這種方法還允許開發人員在玩家的武器庫中添加火箭發射器和其他花式槍。
這裡的優勢非常明顯:沒有射彈彈道就無法做出逼真的射手,因為這是增加外力的理想方法。戰地迷們也喜歡這項技術,因為它可以修改彈丸的飛行時間,因此使用狙擊步槍進行長距離射擊時,您就不得不考慮目標與目標之間的距離,風和其他因素,因此感覺超現實。
第二種方法當然需要更多的計算能力,因為引擎必須定義每個子彈的位置並避免衝突。有趣的是,與Hitscan相比,Projectile方法更老,因為沒有Projectile就不會有經典的街機遊戲。
有第三種方法嗎?
當您可以同時使用兩種方法時,為什麼會用一種方法解決呢?讓我們再看一次《鬥陣特攻》。士兵76和奪命女是Hitscan的忠實擁護者,而法拉這樣的角色如果沒有Projectile就無法想像他們的玩法。結合兩種方法並創建混合解決方案,使開發人員可以設置不同的機制供玩家進行實驗和掌握。