![]()
作者:Minke某廠搬磚戰斗策劃
首發知乎https://zhuanlan.zhihu.com/p/466420744
前言
寫作動機是刷知乎的時候偶爾會看見關于射擊游戲槍械設計的內容,但是都不太全面,一兩句話就說完了,于是認真搜索了一下,發現整個中文互聯網社區都缺乏系統性的槍械設計文章,確實可以理解,自己辛辛苦苦總結的東西直接分享出去給別人白嫖,既浪費時間寫,又感覺削弱了“個人競爭力”。
不過正巧這兩天在準備晉級答辯,所以想著不然我拋磚引玉寫一篇,數據好的話就過兩天晉級答辯的時候拿去吹一波(數據差就當沒寫)。
本文會涉及到槍械設計需要涵蓋的大部分數值,包括武器數值和3C數值,會做一些簡單的概念講解和踩坑點的總結,主要還是幫助大家理解槍械的數值主要由哪些維度構成;但由于作者的本職工作是做相對傳統的擬真向PVP射擊游戲,所以不會涉及英雄射擊的技能數值、PVE游戲中的數值規劃等。
希望文章對武器策劃同行起到查漏補缺的作用,對剛剛接觸射擊游戲槍械設計的同學一點基礎的數值框架引導,對尚未入行的新人起到最基礎的概念普及,以后拆解武器數值也方便些。
這篇東西注明作者后轉載分享消化都隨意,但別嘗試放到簡歷里。
看的過程中要是覺得我寫錯了,那應該就是我寫錯了。
核心名詞解釋
TTK:Time To Kill
指槍械第一發子彈命中敵人后,子彈連續命中情況下,擊殺敵人所需要的時間;
在人物血量為100的情況下,假設槍械傷害為25,射擊間隔為0.07,不考慮部位倍率加成的情況下,這把槍的理論TTK為210ms。
假設槍械爆頭傷害為100,那么無論射速多少,這把槍的理論極限TTK都是0ms。
TTK分為理論TTK和實際TTK兩個概念,其中理論TTK只用考慮槍械一級數值,實際TTK則需要考慮槍械穩定性、對手移動能力對玩家命中率的影響等,可以這樣理解:最短實際TTK = 理論TTK。
這幾個名詞都只是簡單的概念,具體用哪一個去評估你的武器標準,取決于項目的需要和條件。
TTK的大小會決定游戲的戰斗體驗,后續所有的數值設計都是服務于這個體驗的
舉兩個沒有那么精確的例子:
- valorant——主流步槍極限理論TTK為0,常規TTK200-240
- COD16——主流步槍極限理論TTK133,常規TTK200-250
一些玩家整理的TTK表如下,更專業的團隊會以各距離分段的形式來呈現:
![]()
此處T-ttk指total time to kill = (ads + ttk)
一級數值
定義:與理論TTK直接掛鉤的數值,決定槍械的數值強度。
(只是我習慣于將槍械數值分類為一級數值和二級數值,并不是什么行業共識)
武器的數值設計,用最簡單的說法可以概括為,一級數值確定強度上限,二級數值構建手感差異。
1. 傷害:
定義:每一發子彈命中敵方目標時造成的傷害數額。
常見做法:
分段:0-10M 傷害為33 11-25M傷害為26 25M以外傷害為20。
固定:全距離統一傷害為33。
衰減:從0-60M,傷害以線性的方式遞減。
同時傷害根據項目的需要還可以針對人物/怪物/機械目標/載具等不同的目標配置不同的傷害,需要注意的是傷害數字最好使用浮點數,給數值設計上留足精細化空間。
具體的數值設計需要根據項目戰斗節奏來進行把控,以TTK的形式做評估(為啥不用DPS做評估?當你的目標血量夠大,需要長時間輸出的時候可以這么算,但計算體系就不是這一套了,會增加諸如總傷害上限之類條件來評估)。
2. 傷害倍率:
定義:命中目標的不同部位,在當前距離傷害的基礎上乘以部位倍率,造成不同的傷害數值。
![]()
來源:油管UP主TheXclusiveAce的Modern Warfare Gun Guide系列
以圖示為例,同樣的子彈在命中軀干、手臂和頭部時會造成不同的傷害,圖示中命中手臂為0.88倍,命中頭部為1.6倍,獎勵玩家的精準射擊行為。
在倍率的設計上同樣根據項目的戰斗節奏來評估,可以嘗試解答為什么CSGO的AK一槍頭,但是COD、PUBG的武器沒有這樣做。
3. 射速:
定義:單位時間內能發射的子彈數,或是更簡單的武器上一發子彈射擊完成后,到下一發子彈允許射擊的時間間隔,常見的單位有RPM/RPS或者單純用毫秒。
射速的概念其實沒有什么好講的,比較容易被忽視的點是:
射速對實際TTK會有較大的影響,射速越快,實際TTK與理論TTK越接近。
原理是當玩家出現空槍的時候,射速更快的槍能幫助玩家快速的跟上下一顆子彈,降低空槍懲罰。
這也是我們最后總結出來的,慢射速的槍械理論TTK可以給短一點,高射速槍械的理論TTK則要相對偏長,從而獲得一個強度相對接近的實際TTK效果。
4. 彈速與下墜:
定義:子彈在空中的飛行速度,及飛行過程中受重力影響導致的子彈下落。
這是網上一聊武器設計,大家就都會寫的東西,寫完感覺自己文章的專業性一下子大幅提升。
不用去理解實現方式,可以將hitscan視為彈速無限大從而射出了一條全距離的直線,而projectile則是由于彈速慢受重力影響會下墜的拋物線即可。目前行業內的游戲一般都會同時具備這兩種子彈實現方式,包括《守望先鋒》(根據英雄不同區分)《COD》(根據模式、槍械不同區分)等等。
關于彈速:
理論TTK計算層面,hitscan可以直接計算TTK,而peojectile在計算TTK時,需要考慮到彈速,如下圖所示:
![]()
距離TTK對應表,projectile需要加上彈速
實際TTK計算層面,不考慮單發致死武器,彈速帶來的飛行時間會極大程度上影響中遠距離目標的瞄準,拉大理論TTK與實際TTK的差距,這里就需要策劃根據槍械定位來做評估,例如是否補償近距離作戰能力,或是加快射速減少空槍懲罰等等。
關于子彈下墜:
下墜的量取決于彈速和配置的重力值,這個值建議開放出來分開配置,因為做著做著很可能發現,如果角色的下落速度和子彈下落速度一致,要么是人落得太快,要么子彈下墜不明顯。
整體來看,projectile相對于hitscan要相對麻煩一些,無論是性能耗費,還是各種CS校驗的處理:特殊處理允許停火后造成傷害、放寬射擊間隔與子彈數量變化等,都是開發過程中容易遇到的問題,但多一個數值維度,設計空間會大很多,尤其是有助于把控中遠距離武器強度。
5. 穿透力:
定義:子彈在命中可穿透材質后方的目標時,造成傷害的衰減幅度。
一般來說,武器的穿透力并不僅僅是由武器決定的,同樣受命中材質的影響。
假設做一個最簡單的公式:
穿透材質后的傷害 = 命中材質時的子彈傷害 * 子彈穿透系數 * 材質傷害衰減 * 命中部位倍率
假設做一個最暴力的表:
![]()
一個暴力的穿透計算配置表
如果覺得這個表不過癮,還可以針對每種類型的子彈來做是否支持穿射的配置。
在射擊游戲關卡設計中,掩體的擺放、掩體是否支持穿射是關卡戰斗體驗搭建的重點,在此基礎上,武器兄弟們做好對武器的穿射分類,針對部分武器構建穿射特色,能夠共同營造更富有深度的戰斗體驗。
6. 彈匣容量與換彈時間:
定義:彈匣里能夠裝載的子彈數量與完成換彈需要的時間。
在絕大多數射擊游戲當中,彈量與換彈時間并不能算作一級屬性,因為對單個目標的TTK沒有決定性的影響(當然如果換個角度說影響玩家一打多,那視作一級屬性也沒問題)。但部分游戲(例如APEX)通過投放機動能力,增加護甲等手段大幅提升了玩家的TTD(Time to death),對單個目標的擊殺需要更換子彈,此時就需要考慮彈匣容量和換彈時間的因素。
具體的子彈數量和換彈時間設計還是取決于項目的TTK標準,APEX的血量和機動力下硬去套CSGO的彈量標準肯定是不可取的,換彈時間方面通俗理解為小彈匣換彈快,大彈匣換彈慢即可。
關于彈匣容量:
我們在做多人對抗模式的時候,彈匣容量或者說是彈藥控制是限制玩家一打多的重要手段,有助于控制武器的上限,我們可以看到CSGO或者valorant都會盡量把子彈控制在30發以內,當然圖個爽的COD系列就沒有嚴格的彈量控制概念(我雙持80發馬卡洛夫今天就是要踏平這個裝卸貨場),這里的評估標準是你希望玩家一個彈匣極限情況能造成多少擊殺。
關于換彈時間:
我習慣于把換彈時間拆分成兩部分,動畫換彈時間和邏輯換彈時間(也有人稱之為換彈時間和后搖時間)。

COD:MW CR56空倉換彈
在彈匣插上的瞬間(這個GIF感覺動作時間沒對齊),子彈數量已經變成30,此時可以單擊通過奔跑、雙切等手段提前打斷換彈,部分游戲支持開火打斷換彈動作,從而獲得一點點優勢。
從玩家開始換彈,到子彈數量變化為30的時間,我把他叫做為邏輯換彈時間。
玩家開始換彈,到整個換彈動畫播放完畢,進入idle的時間,叫做動畫換彈時間。
這是目前業內的常規設計方式,最大的好處相對于完整播放換彈動畫,使用插入彈匣的節點上報換彈成功,會使玩家對于武器是否完成換彈有更為清楚的認知(音效、視覺都會更直觀),同時也不影響美術同學對于動作美學的追求,自由自在的去做最后抵肩、槍械搖晃這些收尾動作。
多提一嘴,在行業逐漸內卷的今天,根據彈量不同輸出不同的換彈動畫,例如戰術換彈和空倉換彈動作已經是標配了,要繼續卷的話只能根據槍械配件的不同來輸出不同的動畫,例如MW的98K換彈動畫,我記得有四套還是五套(寫著寫著成16小鬼了我焯)。
二級數值
定義:并不與TTK直接掛鉤,但數值差異會帶來手感差異,進一步影響命中率、續航、TTD等要素,從而影響實際TTK的數值。
穩定性數值:
1. 后坐力:
含義:開火過程中,射擊每一發子彈帶來的鏡頭向不同方向的偏移,通常分為垂直后坐力與水平后坐力兩部分,水平后坐力和垂直后坐力共同構成一個向量方向,后坐力單位一般是角度。
又是一個大家都在寫的部分,我這里沒寫全的網上啥都有。
我們一般使用兩個值來控制后坐力的大小:每一發子彈發射后的后坐力大小 以及 當前槍械的極限后坐力大小。
常見的設計手段一般是分段后坐力,例如:

一張我在全網各地看了不下二十遍的圖
此時我們可以粗淺的認為,這把槍的后坐力骨架是1-3發均勻向上,4-7發向上逐漸加大,8-10發向左上方45度均勻偏移,11發開始達到最大的垂直后坐力,只吃水平后坐力影響,彈道向右偏移,17發達到最大的水平后坐力,子彈開始只吃子彈散布,那么這樣的后坐力骨架(不考慮子彈散布)怎么實現呢?
一張簡陋版的分段后坐力配置圖。
![]()
激動人心的配表時間,我也不會公布正確答案
為了更好的實現單發子彈后坐力可控這個因素,除了傳統的分段后坐力疊加子彈散布,還可以采用分段范圍采用隨機后坐力區間的形式,純后坐力配置來實現相對可控隨機彈道,在等會子彈散布的部分會做進一步闡述。
數值設計層面,需要注意到的是水平后坐力對于玩家手感的影響遠大于垂直后坐力,同時向左的水平后坐力對手感影響大于向右的水平后坐力。垂直后坐力僅有一個方向,無論是平滑的亦或是突變的,玩家只用控制下壓的幅度,而水平后坐力需要玩家判斷子彈偏向的同時輸入相反的拉槍幅度,對技巧的考驗程度更高,向左的水平后坐力還會在一定程度上導致槍焰/槍口遮擋玩家目標,進一步影響瞄準。
2. 后坐力回復:
定義:開火過程中向槍口初始位置方向的持續回復力,常見單位是角度/秒。

CR56的后坐力回復
后坐力回復實際上是在幫助玩家抵抗后坐力,協助玩家壓槍,設計上有兩個注意要點:
- 后坐力回復的生效時間相對于開火時間需要有一定的延遲,不然很有可能出現槍口抬不起來的情況,也能更好模擬先受到槍械后坐力上抬,再主動下壓的過程。
- 對于玩家主動壓槍行為的處理,如果只記錄視角的偏移值來直接做減法,那玩家一旦壓槍,就會出現停止射擊后準心偏下的情況,解決這個問題只需要同時記錄一下玩家操作的變化,做個抵消就行了;跟槍的處理就更復雜一些,建議在做減法的基礎上,如果玩家的操作偏移值大于后坐力回復值,停火后關閉后坐力回復。
3. 子彈散布:
定義:子彈最終落點與后坐力骨架固定點之間的最大偏移值,實際距離為(0——最大范圍】的隨機數。
![]()
固定后坐力框架+隨機散布
結合上文我們可以知道,大多數射擊游戲當中采用的固定+疊加后坐力的實現方式,后坐力骨架是固定,增加子彈散布是為了增添彈道的隨機性,如上圖所示,每一次M4A1-S開火之后的子彈落點都是不一致的。
我們通常為了能夠模擬槍械隨著不斷開火越發不穩定的表現,在子彈散布的設計上會有單發子彈最小子彈散布、子彈散布疊加值、最大子彈散布的設計,從而實現散布由小變大(這種配法其實也可以做散布先大后小)。
0214更新,感謝評論區大佬提示,很重要的各狀態子彈散布變化寫漏了,這里補上:
子彈散布變化:
子彈散布在人物各個姿態下,配置值往往是不同,一般來說:跑動>站立>蹲下>趴下。
這樣的設計是為了避免玩家在跑射的過程中擁有較高的射擊精度,還原現實中武器操作的體驗。
但是跑動狀態下的散布到底比靜止狀態下大多少,這個是根據項目需要決定的。
![]()
CF與CSGO橫移狀態下子彈散布對比
在CSGO/Valorant之類的強調戰術性,追求道具配合和地圖控制的游戲當中,往往會把移動過程中的子彈散布配置的偏大,不鼓勵玩家干拉。
而以跑打為特色的游戲,無論是CF還是COD等,出于降低門檻和打的爽快的考慮,并不會大幅加大移動過程中的散發。
腰射準心:
準心只是子彈散布在游戲界面的具象表現,常見來說我們將開火準心的大小,配置到和子彈散布范圍對齊,清晰的告知玩家當前的子彈散布范圍,玩家觀察到了起步到跑動之間的準心大小變化,就是人物再不同姿態變化時的子彈散布變化。
但子彈散布這個數值有一個比較明顯的缺點,純隨機數會導致整體的彈道不可控,尤其是在子彈散布偏大的情況下,取一個較為極端的例子,假設散布配置較大,整個黃圈內都是散布的隨機值。
![]()
子彈散布極大的情況
當子彈最終落到D點時,玩家會認為這是一個均勻的右上后坐力;落到C點時,玩家會感受到一個可控的后坐力突變;落到B點時,玩家則會感覺到整個后坐力框架發生了變化,射擊體驗很不可控。
把子彈散布的值配小一些可以解決這個問題,但又使得骨架相對固定,策劃的控制維度不是很充足。
建議兩個解決方案,最終效果都是類似于加一個限定向量角度的隨機值,實現有效、可控隨機。
1.剛剛在后坐力層面上提到的后坐力范圍隨機的解決方案,我們將后坐力骨架的大致向量方向確定,通過限定范圍隨機使得具體值有所變化,玩家能夠感受到的依舊是向同一方向的后坐力,子彈不會隨機亂飄,后坐力變化更像是下圖。
![]()
范圍隨機后坐力
![]()
MW的后坐力骨架可能采用了范圍隨機的手段
MW的后坐力目前有兩種說法,有說是讀取開火過程中武器模型的偏移量來疊加在后坐力骨架上從而實現隨機彈道的效果,也有說是確定了后坐力+散發的子彈落點之后,再來做的武器模型偏移,但畢竟大家都不是IW,誰也不知道哪一條是對的,誰先做個1:1復刻誰贏。
2.我們對散發也增加向量控制,限制散發落點由一個正圓,變成后坐力向量方向的一定范圍內。例如限定在當前后坐力方向上,子彈散布的落點范圍只有圖中黃色位置,也就是只有C點是滿足條件的落點。
![]()
對子彈散布范圍做限制實現可控隨機
總而言之,無論武器彈道系統怎么實現,核心目的都是為了構建一個更便捷、更可控的彈道配置方式。
4. 呼吸抖動:
定義:保持開鏡狀態時,為了模擬真實呼吸情況增加的鏡頭偏移。
![]()
在常見的端游當中,往往會給到一個屏息鍵來實現呼吸抖動的對沖,手游平臺上,出于控制按鍵數量的考慮,也有部分游戲采用的時候開鏡后一段時間后才疊加呼吸抖動。
設計上需要開放的參數主要有:是否開啟呼吸抖動、屏息時間/呼吸抖動生效時間、呼吸抖動移動的方向與偏移速度、呼吸抖動范圍;這個值建議往小了做,給一點呼吸抖動有個意思就夠了,數值過大會倒逼玩家去打瞬狙,會大幅提高狙擊槍的上手門檻。
5. 命中減速/子彈沖力:
定義:命中敵方目標時對敵方施加的減速效果,一般和子彈/槍械類型掛鉤。
命中減速效果比較明顯的是valorant和CSGO,命中敵方后的明顯減速有利于玩家的跟槍,對武器的下限提升有一定幫助,對于受擊方而言會有明顯的遲滯感,常見于各類打僵尸的游戲(CF金字塔玩過吧)。
數值設計上取決于項目的狀態,假設是一個跑打為主的項目,這反而是一個限制跑打和身法的手段,會一定程度上破壞游戲特色,理論上不應該添加這個數值,但如果頭部玩家和大眾玩家之間由于身法已經造成了巨大的技巧鴻溝,則又可以增加這個數值做反制;實現上,命中的時候給一個不可疊加的減速BUFF即可。
6. 受擊上抬:
定義:在開鏡狀態下被子彈命中,模擬受擊效果做的小幅鏡頭偏移,常見單位是角度/發,同樣受后坐力回復影響。
![]()
COD:MW HIT FLINCH
一般來說我們在被命中時只需要給一個向上的鏡頭偏移即可,如果細化一點可以做到根據子彈來向做偏移,體驗可能會更細致,也可以做成COD:MW的震屏動畫。
在開火過程中被子彈命中時,受擊上抬會疊加在垂直后坐力上,后坐力骨架會有較大的向垂直方向上的變化,所以垂直后坐力的武器受擊上抬要謹慎配置。
整體而言,受擊上抬需要根據不同槍型(主要受舉鏡FOV和開火垂直后坐力大小影響)、人物的不同姿態來做設計,還可以開放到武器配件當中供玩家選擇(例如腳架之類的東西)。
在實際使用的過程中還會發現一個問題,由于受擊上抬是在開鏡之后才會觸發,開鏡過程中的受擊并不會影響到開鏡后的準心位置,所以對于狙擊槍而言,瞬狙的性價比會進一步提升,這也是如果要使用這個參數需要注意的問題,有需要的情況下可以將判斷區間提前至開鏡過程中。
機動性數值
1. 移動速度
定義:玩家在不同姿態下手持武器,朝向各個方向的移動速度,單位為M/S
這里有三個關鍵詞,一個是不同姿態,一個是手持武器,一個是不同方向。
手持不同的武器,需要有不同的移動速度,已經是行業共識了,我們不浪費時間講這個,聊一些有趣的更靠近3C層面的東西。
1.1不同方向的移動速度
這里不考慮端游鍵盤,WASD帶來的純正八方向處理起來會簡單很多,我們聊更復雜的搖桿。
![]()
向前速度為1,左右后為0.7
不同方向的數值:
一般來說,我們會把向前奔跑速度和其他三個方向的速度做出區分,往前跑會更快,而左右平移和退后會更慢。
這么做有兩個好處:
- 感觀層面上,同樣的速度下人物往前移動和左右移動,會明顯的認為向前速度更慢,左右移動速度更快。這個我很難專業的給出解答,但我猜測是由于FOV的導致場景物件縮放的緣故導致的,現實生活中也是如此,側過來坐自行車/過山車可以感受下。同時由于日常生活中橫移速度和退后速度都更慢,所以也更符合玩家習慣。
- 局內戰斗層面上,橫移速度過快會導致玩家難以跟槍瞄準,對戰斗體驗也有很大的影響。
不同方向的判定:
玩家控制搖桿的時候,受制于手指粗/不靈活的影響,往往會導致推動搖桿時,搖桿并不剛好處于左右45度范圍內,所以需要進一步擴大前進方向的判定,如圖中紅色箭頭位置所示,已經做到了60度。
類似的設計思路我們統稱為操作補償,除了奔跑判定以外,在常見的翻越、攀爬、過門過窗的實現中也會有類似的設計。
1.2. 站蹲趴速度
站立移動、下蹲移動和匍匐前進三種狀態的移動速度不同,常見用系數來直接控制,以站立move的速度為1,蹲下和趴下分別乘上相應的數值。
需要額外提一嘴的是各個狀態過渡階段的速度處理,不僅是站蹲趴,所有過渡動畫播放時角色速度都需要插值。
1.除了站蹲趴三種狀態本身的移動速度以外,每個狀態之間的速度變化需要插值處理,如果過渡時采取瞬切,取任意狀態的速度都會出現遲滯或者突然加速的感觀問題,狀態間的平滑過渡真的很關鍵。
![]()
站蹲趴切換的速度變化
2.原地站立、蹲下、趴下三種狀態之間的轉換,需要給到充足的過渡時間。多人對戰游戲需要進行頻繁的網絡同步和3P模擬,如果過渡時間偏短,玩家可以利用半身掩體持續蹲起,對方客戶端可能上一個包才收到站立,下一個包立刻又蹲下了,如果再出現丟包的情況,則根本不會模擬站立表現。
1.3 奔跑/沖刺/靜步
部分游戲在常規行走的基礎上,賦予了類似于奔跑/沖刺/靜步等特殊的移動形式,這類行為的移動速度依然取決于槍械的基礎移速,乘上響應系數即可。
一些設計要點:
- 奔跑/沖刺的加速度(啟動速度):在CSGO和PUBG當中,人物的奔跑是有一個加速度過程的,同時減速也有減速過程,而在COD當中是瞬間達到最高速度;使用加速度會使整體表現更擬真,直接達到瞬時速度則會使手感更干脆,具體的選擇需要看項目的特性。
- 奔跑/沖刺的持續時間(體力條):在我看來,是否增加沖刺體力條取決于沖刺行為的設計意圖,如果是提供爆發性加速鼓勵玩家迅速到點或者是離開戰區,可以給予體力條限制能力不濫用;如果是單純地圖太大而持槍跑步太慢,那么體力條意義就不是很大。
- 奔跑/沖刺/靜步的觸發方式:戰地和COD之前都是shift沖刺,在vanguard上線后可以發現COD改成了跑步默認沖刺,這也符合COD的沖刺能力定位:快速到達或離開戰區;在手游平臺上,為了省一個按鍵,可以大多數游戲都是給了一個搖桿閾值,高于這個閾值就自動觸發奔跑/沖刺(PUBGM/CODM),或者低于這個閾值就觸發靜步(CFM)。
- 奔跑/沖刺的平衡:常見的設計會給到跑射延遲,后續會聊到。
1.4 跳躍速度
定義:這沒什么好定義的
跳躍的關鍵數值:
![]()
參數實現之后,跳躍的手感就成了玄學了,依賴策劃的手藝,當然也取決于CE的反饋。
如果對跳躍有更高的追求:https://youtu.be/hG9SzQxaCm8
一些設計要點:
- 連跳限制:玩家在短時間內連續觸發跳躍時,需要下調玩家每次跳躍的速度和高度,一定程度上限制連跳行為。
- 空中轉向:玩家跳躍在空中時是否支持空中轉向,人物落地位置是否受轉向角度影響、落地位置最大偏移量等也需要玄學調試。
1.5 翻越速度
攀爬這里數值能說的不多,制作的難點還是在表現側怎么梳理翻越邏輯、怎么判斷障礙物高度厚度、怎么拆分翻越動作,關于翻越的數值:
1.不同高度障礙物的翻越速度規劃
不同高度的障礙物需要播放不同的攀爬/翻越動作,同時也需要匹配不同的攀爬/翻越速度,甚至還可以針對起跳高度、障礙物寬度再來輸出更細致的動作,例如上面美末2視頻的翻越表現。
不同高度障礙物翻越速度需要在前期跟美術定好標準,確定好幀數之后再開工,后期反復溝通幀數加加減減很麻煩。
2.翻越落地后的速度補償
大多數游戲沒有做這玩意,但我認為快節奏戰斗、鼓勵玩家拉扯的射擊游戲可以增加這一部分數值,畢竟玩家翻越障礙物時,相對于平地奔跑,既有被命中無法還擊的風險,平均速度也有所下降,那么在翻越完成后可以適當做加速度補償,同時還能避免翻越落地再加速的遲滯感。
多說兩句關于翻越表現的:
1.翻越的狀態設計要規劃好
翻越前:多高的障礙物、多遠距離、多大角度觸發判定、距離或角度過遠是否有吸附補償,下落過程中是否能觸發判定。
翻越中:不同高度的翻越動作是否兼容其他動作,例如中低高度單手翻越是否支持腰射開火,翻越過程中是否支持回拉搖桿取消翻越,翻越過程中是否支持轉向。
2.1P/3P翻越的矛盾要處理好
越來越多的游戲支持第一人稱和第三人稱的視角切換,但是兩個視角下對于動作速度的感知是有區別的,同樣速度的翻越,在3P看來可能迅捷流暢,在1P只有鏡頭和手臂表現的情況下可能就會覺得拖沓,這一部分到底是保1P的表現還是3P的表現,也需要提前想清楚。
1.6 下落速度
上文在講子彈下墜的時候提過建議將人物下落速度與子彈下落速度區分開,這也是為下落的表現做讓步。
下落速度的設計通常來說有下落加速度值和最大下落速度值。
表現層面上,當玩家下落超過一定時間或者一段距離時,會播放特殊的下落動作和落地表現,參考PUBG就行。
1.7 滑鏟速度
![]()
常見滑鏟速度變化
滑鏟的速度由加速、保持和下降三個階段組成。
數值上簡單點的做法有加速度、加速時間、最大速度、保持時間、衰減速度、最小速度、連續滑鏟懲罰時間、連續滑鏟衰減速度8個參數組成,共同營造一個瞬時爆發加速的效果。
更復雜的一些的做法可以將滑鏟的速度與奔跑速度掛鉤,實現不同武器擁有不同的滑鏟速度與距離。
坡上持續滑鏟(例如apex),則需要增加實時坡度判斷,大于一定坡度的情況下保持固定速度持續移動即可。
表現上相對會復雜一些,涉及到人物動作、鏡頭偏移、鏡頭特效、人物轉向之類的。
1.8 舉鏡/開火移速
武器的使用狀態也會影響移動速度。
槍械在舉鏡狀態下的移動速度需要做單獨的處理,基本思路和持槍奔跑速度一致,仍然是跟武器類型掛鉤。
通常情況下:奔跑速度>步行速度>步行舉鏡速度≈蹲走速度
雖然大多數游戲都沒有做開火減速,因為舉鏡移速已經相對偏慢了,但我還是覺得擬真向游戲可以在開火過程中疊加一個小幅移速衰減,強化開火過程中的武器表現。
2. 跑射延遲
定義:玩家從跑動過程中點擊開火,到槍械觸發腰射開火或舉鏡的時間,在動作表現上是將武器從奔跑時的持槍位置回正到idle狀態所需要的時間。
![]()
來源:油管UP主TheXclusiveAce的 Vanguard Gun Guide系列
這就是我們上文提到的針對于奔跑/沖刺動作的補償,在COD系列中尤為明顯,戰術沖刺狀態下點擊開火觸發的跑射延遲會明顯大于常規奔跑狀態。
數值設計上100——200ms是相對干脆的跑射時長,數值再往上就是針對例如狙擊、機槍等槍型高傷害或者大彈容的跑射懲罰,例如圖示加蘭德的300/450ms。
3. 切/收槍時間:
定義:武器更換過程中,拿出和放回武器的時間:在我們從武器A切到武器B的過程中,需要先經歷收起武器A,再拿出武器B的過程,總時長=武器A收槍時間+武器B切槍時間。
切槍是大家都喜聞樂見能夠接受的東西,我們最喜歡的蝴蝶刀和M9切刀也是在切槍過程中實現的。
但收槍時間并不是大多數國內玩家能夠接受的,體感上會認為不夠干脆,這里見仁見智,從個人出發,非擬真向的項目確實可以縮短時長或是直接去掉,強化切槍動作就行,業內的其他游戲收槍時間存在感也越來越低。
收槍動作很難做出花來,即便是搞一個原地消失的特效,玩家也會覺得拖沓,不如把時間拿去給蝴蝶刀多轉幾圈,換出來的槍多拉幾下栓。
切收槍時間越快,武器在應急狀態下的應變能力也會相對更強。
4. 舉鏡時間:
在開鏡時間的設計上,遵循機動性高的SMG、AR等開鏡時間短,機動性低的SR、LMG等開鏡時間長的特點。
開鏡在設計上有兩個需要注意的點:
- 數值層面上,開鏡過程武器精度的變化,一般的做法是在開鏡過程中由腰射精度插值到開鏡精度,更進一步的可以控制開鏡過程中精準度(子彈散布)的變化曲線,可以有效控制這把武器瞬狙玩法的強度。
- 表現層面上,舉鏡動作先慢后快,關鏡動作先快后慢,保證舉鏡過程中FOV平滑變化。
其他數值
1. 輔助瞄準
輔助瞄準是主機、手機平臺的武器手感核心數值,都屬于各項目組看家本領,此處不談
2. 被強行數值化的表現數值
點名批評Cold War和Vanguard,為了增加數值維度,將準心瞄準敵人時顯示名稱的距離數值化,故意做大槍口火焰從而將槍口火焰抑制的數值權重加大,同樣類別的比較特殊的數值還有類似于塔科夫和地鐵的槍械卡殼率
這里的設計告訴大家,只要膽子大,什么數值都可以挖坑。
數值篇就到此位置了,絮絮叨叨一萬字,還穿插了一些關于3C的東西。
全文很少提到具體的數值應該怎么分配,哪些數值是完全對立的,怎么做槍械梯度的整體平衡,這些東西需要具體情況具體分析,我就不在這里瞎指導誤人子弟了。
這樣一遍梳理下來,對于我自己而言也是再次強化對槍械數值維度的認知。
希望對大家有所幫助,至少了解游戲設計里做槍到底是在做個啥。
希望我爸看完能理解我為啥不能跳槽去北方工業。
希望世界和平。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.