三、Character
1. 一些動作標準與規范
1.1 靜態idle/pose
1.1.1 槍械大小(絕對大小與屏占比)
在真正遇到這個問題之前,我也不覺得武器大小這件事到底有多復雜,看起來就是一個模型放大和縮小的問題,后來發現原來大家的標準都相對模糊。
![]()
MP5與MP5射手步槍
在寫實框架體系中的CODM也會出現商業化武器的模型大小不好控制的問題,那么在一些科幻題材,缺少現實參考的項目當中,這種問題只會更加嚴重。
關于模型的絕對大小,提供兩個解決思路:
A.基于現實尺寸做標準
寫實類的產品是可以這樣做的,編輯器內人物的高度是確定的,現實當中槍械的尺寸也是固定,對比長寬高做正確的放縮難度并不大;針對商業化的改模資源,確認主體機匣的大小不變,槍管、彈匣、槍托的位置可以在保證比例不失調的情況一定程度發揮。
![]()
機匣主體的大小是相近的
上圖兩把槍機匣的大小仍然是接近的,但是槍托、槍管、彈匣的大小就偏大太多,槍托比機匣都大,問題根源看下來其實是改模槍各部位比例不合理。
B.固定某個部件的大小做標準
在寫實體系下,我們可以很好的找到參考,但如果到一些科幻風格,要大、要粗、要猛,這個時候如何來確定武器的大小。
思路是動作同學提的,我們可以統一槍械某個部件的大小,例如固定寬度的導軌、固定大小的小型核反應爐或者電流產生裝置,當這些部件大小統一、槍械比例正確的情況下,能夠將武器模型大小限制在一定區間內。
![]()
皮卡汀尼導軌
以導軌為例,導軌的寬度固定,那么這把槍在原畫層面給了多長的導軌,就能確保確定槍械大概多長多寬,不至于隨意放縮導致大小無法確定。
除了武器的絕對大小,屏占比也一樣重要。
觀察COD系列的歷代產品,能總結出一個屏幕四分法的概念,一般來說,武器Idle的Pose位置會固定在右下分區,部分體積極大的武器會小幅輻射到左下分區,盡力避免侵占到右上分區影響玩家觀察目標。
![]()
COD18&COD19槍械屏占比
![]()
COD16 M4A1裝鏡前后pose位置對比
第二張圖會更明顯,裝上準鏡之后,槍械的位置還整體向下壓了一段距離,看我框出來紅框的位置會比較明顯。
這個四分區的標準還是比較通用,可以看到連doom這類追求粗、大、吊的游戲都在使用這個原則。
![]()
Doom Enternal
1.1.2 槍械指向
槍械需要指向準心(通常為屏幕中心)位置。
需要注意武器的擺放角度,還有對不齊的情況可能是1P鏡頭和場景鏡頭有角度偏差。
![]()
GDC2015 命運的演示中,即使武器沒有指向屏幕中心,仍然指向畫面中的準心位置
![]()
MW M4A1指向
![]()
CFM M4
CFM看起來指向稍微沒有那么精準,應該是為了美術表現做的一定妥協,這樣擺側面的細節看的更多些,但是持槍的姿勢就會感覺不是特別舒服。
1.2 視野遮擋
動態中主要關注點是視野遮擋問題。
![]()
Destiny 中心視野保證
玩家戰斗的關注點是以準心為軸的圓,左上角的圖為需要保證的最小面積。
局內戰斗相關的動畫,包括位移、技能、近戰、換彈、切槍等,都需要保證這個最小面積不被覆蓋,開闊的面積越大,動畫播放時的安全感越足。
但這個標準是不是必須要遵守呢,有請2077。
![]()
將屏幕中心遮擋的嚴嚴實實的手槍換彈
可以看到2077并沒有這個標準,把屏幕中心擋的嚴嚴實實,一切為了強化表現。
PVE游戲對于視野的遮擋的要求也許沒有PVP游戲那么嚴格,但是從策劃的角度出發,我仍然希望項目初期制定動作標準時,能夠把中心位置的視野空出來,這是一個底線,范圍留多大,可以和動作同學討論。
但如果這里不堅持,那么后續出現遮擋半邊屏幕的換彈動作出現時,自己會很被動。
1.3 動畫切分
動畫前搖時間和后搖時間的概念,在數值篇里講過一遍,當時是針對換彈來描述的。
- 前搖時間:從玩家開始換彈,到子彈數量變化為30的時間,這個時間走完后視為換彈成功。
- 后搖時間:剩余的動畫表現時間,此時玩家可以打斷動畫,換彈仍然視為成功。

MW換彈
因為我一直做射擊,沒有ACT方向的經驗,所以最初我只覺得換彈是有必要的,其他動作讓美術同學根據我給的時間嚴格來卡就行。
換項目之后發現,這個策劃數值上的需求和美術對表現上的需求,二者在很多場景都是有沖突的,除了換彈,切槍、開鏡都有類似的問題,動畫要20幀才好看,但數值上只給了15幀,尋求統一解決的方式就是允許打斷,給美術同學5幀的后搖時間做表現。
是一種“在緊急的情況下追求功能優先,在平常環境下追求美學優先”的默契。
動畫切分在實現方式上會有一個踩坑點:
有一種實現方案是美術主動將動畫切成兩段,然后分別配置,這種情況會導致美術資源被壓縮兩遍,最終的表現跟3Dmax差距很大,所以推薦的方式是美術整段動畫導入,客戶端去打一個標簽,確定動畫播到標簽位置,動畫少壓縮一次,效果會好很多。
2. 一些動作實例踩坑點/拆解
下面只列了很小的一部分,至于跳躍、翻越、滑鏟、走墻、滑索、鉤索、檢視之類的內容,很難用踩坑或者拆解來描述,每一次制作都是艱苦奮戰,因為沒有萬能的解決思路,需要具體問題具體分析。
2.1 奔跑動畫
2.1.1 幀數標準
奔跑動畫建議固定幀數標準,確定好一個擺臂循環的標準幀數。
不確定標準會有一個問題:奔跑擺臂速度和實際移動速度不一致,且表現不可控。
例如美術認為沖鋒槍跑的快,擺臂給15幀,機槍跑得慢,擺臂給20幀,但實際數值上配置的移速差異并沒有這么大,如果機槍還有些百分比減移速的配件,反饋到動畫層面,那么就更夸張,奔跑起來動作會像是在慢放。
確保幀數一致后,武器不同移速下的奔跑表現區間是確定的。
(這里其實可以討論一個數值問題,叫做“不同武器的移動速度屬性,是否需要做差異化”,這其實是PVP游戲中常用的一個數值維度,但我目前做下來會覺得感知并不夠明顯,當感知明顯的時候,數值上就已經出問題了,可以看到目前許多游戲都在逐漸收回這塊數值,從槍與槍移速不同收攏成槍系之間移速不同,甚至移速一致。個人覺得除了硬核PVP游戲,這個屬性其實沒有太大必要保留,否則處理其表現來很麻煩,root motion之類的位移方案也很難應用)。
2.1.2 動作過渡
奔跑過程中最常銜接的動作是舉鏡和開火,這些動作銜接過程中融合表現需要處理。
數值上,需要留夠奔跑到開鏡/開火的過度時間,避免開火穿幫。

槍口朝左開火,子彈卻射向屏幕中心
表現上,需要支持更自然的過度方式或是提前融合,跑動 → 舉鏡,而不是 跑動 → idle → 舉鏡。

奔跑舉鏡過程中明顯的先往右,再往左拉完成舉鏡,表現不夠干脆
2.2 槍擺動畫
槍擺動畫這一塊主要拼品質,簡單聊一下動畫的構成。
我們在討論槍擺的時候,會去掉鏡頭的影響,如果有分不清gunkick和viewkick的同學。
可以看這篇文章,視頻案例很清晰(十年前的文章,都包漿了)。
https://denkirson.proboards.com/thread/5906denkirson.proboards.com/thread/5906

BFV槍擺的疊加(應該不是全部)
![]()
一種槍擺分類形式
武器開火/轉向的槍擺表現是由多個動畫或是程序邏輯共同疊加組成的。
我傾向于分成兩類,一類是基于模型坐標系的旋轉和偏移,一類是基于某個固定軸點的旋轉。
當然也可以分成程序控制的槍擺,和動畫做的資源,但細項都是差不多的。
這邊會以腰射開火為案例,簡單列一些常用的動畫。
2.2.1 基于模型坐標系的旋轉和位移

開火抖動
開火抖動:快速的小幅上下位移,模擬武器開火時的基礎抖動,程序拉曲線來調。
細致一些的做法可以再進一步考慮武器開火和停火時的抖動表現,例如增加槍口的上揚/回正,或是增加槍身的旋轉,參考上面戰地五的例子。

武器開火的前后位移動畫+抖動
前后位移:這是玩家廣泛認知中的后坐力,一般靠動畫出,幾個需要考慮的點:
- 動畫是做純粹的后退,還是加小幅的旋轉,開鏡狀態下加了偏移是否影響瞄準。
- 后退動畫和回正動畫的關系,是播放兩段不同的動畫,還是可以直接反播或插值回去。
- 單發動畫和連發動畫的區別,是靠單發動畫疊加,處理回正幅度實現連發差異,還是連續開火播放一段新的動畫。
至于動畫怎么K更舒服更好看,這個只能看動作師傅的手藝了。

武器開火的偏移+抖動
左右/上下位移:模擬開火過程中與后坐力對抗,轉向/跳躍時的槍械偏移等各種控制武器的表現,動畫出或者程序拉曲線都行。
不過開火的這條曲線最好根據武器做差異化,提供配置選項或者重新上新的曲線,做通用的話一些更笨重,甚至是帶腳架的槍也這么壓,會有些輕飄飄的。
2.2.2 基于固定軸點的旋轉

瓦羅蘭特槍擺
武器開火的過程中由于有散發的存在,我們可以給模型一個旋轉偏移量,使其槍口位置和散發方向一致。
但是這個旋轉需要注意兩點:
- 幅度限制:由于子彈和鏡頭的偏移量可能很大,所以需要給參數限制,確保方向一致即可,不需要和子彈偏移量完全一致,否則你會得到一把旋風沖鋒龍卷風。
- 軸點選擇:之前的槍擺因為以位移為主,所以我沒有強調過軸點的選擇,這里做槍口偏移時,建議新增一個旋轉軸點,建議以槍托抵肩點為軸,這樣槍械擺動起來的角度變化會更自然。
2.3 換彈動畫
之前已經反復講了換彈動畫的切分,空倉換彈與普通換彈的區別,但是在目前這個拼內卷的階段,只做這些是遠遠不夠的,提供一些可以精進的細節:
![]()
換彈與彈鏈細節
- 根據武器狀態的多套換彈動畫:例如98k裝鏡情況下對彈倉的遮擋/假裝快手perk后換彈速度的變化。
- 武器的子彈細節:除了換彈過程本身,換彈前后的武器狀態對比也能強化表現力,例如清晰顯示彈鏈中子彈數量。
- 1P/3P視角換彈的精準同步:3P不使用通用換彈動畫,而是和1P一致。
參考視頻:
https://www.bilibili.com/video/BV1HR4y1N7xS?share_source=copy_web&vd_source=fc61d83944a4020b04775afa12f60a0d
2.4 收/拿槍動畫

R90裝備動畫
還是之前數值篇的時候提到過的,要不要同時做equip和unequip兩種表現。
我的看法依然是除了寫實游戲,盡量避免做uneuip動畫,收槍這個概念就很不干脆,即便做了也需要壓縮收槍的時間,盡量減短對于手感的影響;從數值層面考慮,即便要作數值限制,也可以延長equip的時間,把表現做的更強更充分。
2.5 開鏡/關鏡動畫
2.5.1 開關鏡方案
開關鏡常用的兩個方案分別是模型切換和光瞳。

切模型開鏡

光瞳開鏡
切模型開鏡:在開鏡過程中的某個節點進行模型切換,替換更高的精度的準鏡模型,開啟鏡內視野,同時隱藏槍械的部分位置避免遮擋或者穿幫。
光瞳開鏡:開鏡過程中不切換模型,準心模型和現實一致持續顯示鏡內視野,在開鏡的過程中模擬入瞳和出瞳的表現。
從視覺效果上來看,絕大多數玩家都更喜歡光瞳開鏡效果,開/關鏡過程更流暢,沒有卡頓感,缺點是由于模型沒有切換,開鏡狀態下準鏡的精度不高。
但這世間真的沒有兩全的法子了嗎?一定是有的。
如果我們按照光瞳的標準制作視野沒有遮擋的槍械模型,同時將模型切換的時間提前,從開鏡那一刻就完成模型切換,是不是就可以解決這個問題。

2077狙擊槍開鏡
2077就在開鏡的瞬間在準鏡位置疊加了資源,豐富了表現。
只不過模型精度已經很高了,所以開鏡過程沒有做切換更高精度的模型,一定程度上證明了這個思路的可行性。
2.5.2 狀態機規劃

舉鏡開火/腰射開火無縫切換
開鏡相關的狀態既需要跟人物的站蹲趴移動同時進行,也需要跟武器相關的開火、換彈、拉栓同時進行。
狀態機的設計需要滿足這兩個條件,需要跟客戶端溝通是單獨起一層,還是做更細致的拆分,例如開鏡移動做到base層,開鏡開火做到fire層之類的。
需要提前用3C排查表之類的東西想明白,否則后面不好改。
3.音頻
音效是一個專業程度很深的領域,很依賴音頻策劃的水平,他對游戲玩法的認知,細節的拆解,風格的把控會決定項目的音頻質量。
這個會比較賭運氣,如果音頻同學游戲理解很深,那么合作起來會很愉快,如果音頻同學不怎么玩游戲,細節上覆蓋不全面,那么就需要戰斗策劃掌握音頻相關的概念和基礎常識,為版本質量兜底。
這里主要分享一些基礎概念,同時提一些打擊感優化上容易遺漏的點。
3.1 游戲音頻的基礎概念
了解清楚關于音頻的基礎概念,知道自己想要的是什么,目前缺失的是什么,才能跟音頻策劃做有效交流。
這里用通俗的語言做簡單解釋,更深層次的含義和應用建議移步你們組的音頻策劃處。
音頻事件/節點:
音頻的播放一定建立在某種事件或是節點之上,例如按下開火播放開火音效,按下快慢機播放快慢機切換音效,換彈過程中中拔下彈匣、插入彈匣、插穩彈匣播放不同的音效。
https://youtu.be/BGtLmi8YQPw?t=930youtu.be/BGtLmi8YQPw?t=930
這一段M13換彈的音效包含了許多細節,拔下彈匣、彈匣與彈倉摩擦,插入彈匣,可以是客戶端打時間戳在指定時間播放特定音效(打時間戳的好處時即便是實際動畫會拉伸,但音頻始終是對齊的),也可以音頻根據動畫表現輸出一整段完全對應的音頻。
音頻類型:
從制作的角度出發可以分為下面幾類:
- 音樂(例如BGM、主題音樂)
- 音效(包含電子音效和擬聲音效,例如UI點擊、槍械開火、人物受擊等)
- 語音(角色語音、對白)
- 環境(戰場、街區、天氣的音效)
播放方式:
單次播放/循環播放,這里需要去細致感受差異,同樣一段音效用不同的處理方式都可以實現。
例如連續開火的音頻,可以是不斷的播放單次開火音效,做首槍強化和尾音處理,也可以玩家持續開火的情況下循環播放一段更長的loop音效,這段音效里是連續X發開火的音效。
音效疊加有兩層和微觀兩層含義:
宏觀:我們在聽到某種聲音時,這是由多個聲音疊加同時播放構成的,例如開火命中腿部時聽到的音效,是由環境音效、武器開火和命中反饋音效組成的。
微觀:以武器開火音效為例,這個音效同時也是多個資源疊加組成的,一般包括武器主體槍聲、模擬武器內部組件碰撞的金屬層、模擬槍口爆破沖擊和抵肩表現的低音層、模擬子彈在當前空間飛行的尾音。
這一部分內容很重要,遇到具體問題或是設計時,戰斗策劃需要明白自己想要的是什么音效,這個音效由哪些層級組成,或是這個表現是因為確實什么層級的音效,哪部分音效沒播導致的,對具體音頻素材構成完全把握,才能和音頻策劃有效交流。
你擱著張口閉口就是“不夠豐富”“打擊感不足”“不高級”,那沒有幾個音頻哥愿意心平氣和跟你交流。
空間混響:
混響的概念和聲場有關,不同的聲場環境下,聽到的聲音效果是不同的(浴室唱歌效果好的原理)。
簡單來說就是玩家在游戲各個場景(空曠場地、室內)發出聲音,音效需要做對應的處理。
音效衰減:
3D音效存在傳播范圍,距離越遠聲音越小,需要設定音效的傳播范圍和衰減邏輯。
音效遮蔽:
3D音效在空間內傳播時,透過障礙物會產生衰減,游戲內需要進行還原,尤其是FPS游戲,幫助玩家辨識腳步來自于樓上、樓下,亦或是轉角后方。
3.2 音頻的打擊感優化思路
我們接到打擊感不足的課題時,有兩種處理方式,一種是從60分到80分,直接提升音效品質,同時推動客戶端優化性能,釋放更多的內存空間給音頻。
還有一種是0到60分,去增加音效的豐富度,強化音效的細節,我們主要聊這個。
3.2.1 常見音效精細化
![]()
以前整理的CODMW和APEX的命中反饋/擊殺錄屏
我們以命中反饋為例,首先是對于音效目標的拆解,不同目標下對音效質量要求是不一致的。
最基礎的目標:告知玩家他打中了。
更高級的目標:清楚告知玩家自己的武器狀態、命中狀態、敵方目標狀態,創造良好反饋。
![]()
命中反饋條件拆解示例
將這些條件做組合,那么我們就能把單一的命中反饋音效,延展成了2*2*2*3=24種,再去考慮信息重要程度和玩家理解成本,例如命中頭部不區分護甲狀態,這樣縮減資源數量,實現命中目標時獲得豐富的反饋效果。
3.2.2 高光時刻創造記憶點
![]()
俺最喜歡的音樂盒
從CSGO的音樂盒、COD無畏戰士的BGM,再到OW的全場最佳音樂,valorant一殺到五殺的漸進式擊殺音效,打擊感既來自于每一顆子彈扎實的細節,更來自于玩家戰斗過程中的高光體驗。
找到自己項目的高光時刻,用音效/音樂強化這個時刻,給玩家留下深刻印象。
這也是打擊感優化中性價比很高的部分。
3.3 音頻的優先級規劃
坦白說這是我一直想推進,但是進度十分緩慢的部分,上線項目資源太多太雜,積重難返無法梳理,研發中的項目還在搞核心循環,優先級頂不上去。
不過我覺得這一塊真的很重要,目前暫時也沒看到國內有項目吃透了這部分內容,把優先級和局內玩法結合的特別好,或者規則很清晰,大家都是憑感覺調調響度就糊弄過去了,誰先做好誰先降維打擊。
什么是音頻優先級?
即多個音效同時播放時:
- 以什么樣的規則來控制這些音效的優先級,假設只有5個通道,那么優先播哪5個?裁掉哪些?
- 以什么樣的規則來控制響度,多個音效播放時,誰的響度更大誰的響度更小?
- 以什么樣的規則來處理條件變化,當玩家保持移動,距離音源位置持續變化時,當場景內需要播放新的音效時,這些音效的響度、通道占用如何刷新
需要一套完整的規則來解決這些問題,例如按照音頻的功能性,從高到低進行優先級排列。
避免音頻在局內亂播,天天收到一些爆炸聲把腳步聲蓋了,開火把拆包聲蓋了之類的BUG,修復方式就是把這個調大把那個調小,很不優雅。
![]()
守望先鋒的音效威脅值思路
我自己的方案就不拿出來獻丑了,分享一個守望先鋒的思路,圍繞著威脅值的變化做音效的調整。
核心訴求:玩家優先聽到對戰斗影響最大的音效。
這一套要求局內做大量的條件上報,很有限,但是比較麻煩。
https://youtu.be/60P0hzTTJ4Qyoutu.be/60P0hzTTJ4Q
完整的GDC演講鏈接,給了一些不錯的參考方案和工具呈現,我參考這個提了一些局內音頻響度、通道占用的監控工具的需求,修BUG很好用。
4.特效
4.1同屏特效數量限制/特效優先級及LOD設計
特效模塊就一個東西(主要是寫累了)。
很多人都會下意識覺得,打擊感不夠那咱么就瘋狂的加特效、提升特效表現,這句話本身也沒錯,確實有用。
放在射擊游戲里就是去做彈線、彈孔、爆炸、不同材質的命中,甚至還可以做點斷肢,頭被打飛之類的東西。
但是特效的增加需要一個全局的方案:同屏最大數量,不同lod特效的數量限制,特效停留時間,是否有提前退出機制等。
![]()
特效/表現糊臉
命運2的特效除了這種極少數情況,例如碎盾時大面積的屏幕遮罩加上怪物的投擲道具特效糊臉。
基本做到了特效表現好的同時,效果都相對克制,不會出現滿屏花花綠綠啥都看不清的情況。
主要手段是依靠限制怪物的攻擊頻次、控制特效的殘留時間、以及大量使用邊緣動態模糊。
![]()
王者榮耀 21年5月的表現
這時候再看王者的例子,雖然鏡頭本身沒有特效,但是技能特效多的時候也會出現看不清技能的問題。
解決這個問題除了限制同屏特效數量以外。
還可以和上文提到的音頻一樣,給特效也賦予優先級,同時做更精細的lod分級。
當同屏數量超過X個時,高優先級的特效播放完整,中低優先級的特效播放低LOD版本。
結語
幾件事促成自己相對開放的寫這篇分享。
九月底的時候玩了網易的新游《blood strike》,我發現原來做表現,只要用力卷,大家都能做個八九不離十,但可惜局內真的不是很好玩,手感也不是特別好。
看完邊緣行者回去玩2077,突然發現原來2077的槍做的很不錯,只不過當時并沒有在意表現,只在關注數值、關注義肢、關注怎么把夜之城燒成灰。
MW2022開測了,槍的表現發揮穩定,但是玩起來,3C/數值/系統一起結合一下,這個MP模式真的是這幾年測試中最垃圾的一代。
公司內部一些研發中產品的體驗,發現可能版本連速度加速靈敏度都沒調好,但用人家給的固定速度的版本跑下來,似乎差別也沒有那么大。
再看最近幾年立項的射擊游戲,餅一個比一個大,玩法包羅萬象,武器作為眾多游戲元素中的一個組件,槍械本身的占比是在持續下降的,可能連3C都不再重點為武器服務。
于是我有些悲觀,會覺得對于這些年立項的游戲而言,也許槍并不是很重要,槍械品質過硬只是一個nice to have的選項,游戲的玩法是否有趣,才是項目生死存亡的關鍵。
好處是,武器策劃壓力會小一些,有更多的精力去鉆研表現鉆研效果(雖然可能沒有開發人力)。
壞處是,這種更復雜宏大的玩法框架下,關注武器的表現的玩家并不多,武器模塊搞半天,可能壓根沒人看。
國內的戰斗/槍械/3C這一塊的積累和一線廠差距很大,像是上面提到的跳躍定位方案,那是2017年的GDC,守望先鋒的音頻設計分享,那是2016的GDC,這些廠商五六年前的東西,我們至今都還沒有摸清楚,我們還在反復的造輪子,造一些勉強能跑的輪子,剛跑起來可能就去其他地方再造個一模一樣的輪子。
前景也并不樂觀。
談工期,內容量翻幾倍,做資產都有壓力,還要去磨表現。
談人才,各家廠商都招了很多3A大廠的海歸,似乎也都沒有太大的幫助,看不到太多方案共享和技術開源。
一方面是差距很大,追趕很困難。
一方面是確實性價比不高,必須先看其他模塊。
難免有一種無力感。
所以沒什么好藏著掖著的,國內策劃自力更生的年代,能力提升更需要互相幫助。
做類似東西的時候翻翻這一篇,少踩坑省點時間,去驗證一些更重要的內容,多好。
畢業生看完入行少走一些彎路,更好。
做游戲還是得有些理想主義情懷。
自驅、進取、沉淀。
然后做個大的。
“V,無名小卒,還是揚名立萬?”
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.