天天看點

針對射擊遊戲中吸附類/阻尼類輔助瞄準的平滑性優化探索

作者:GameRes遊資網
針對射擊遊戲中吸附類/阻尼類輔助瞄準的平滑性優化探索

作者:Minke

首發知乎,https://zhuanlan.zhihu.com/p/591802567

一、平滑性有什麼好研究的——如何定義一個好的輔助瞄準

在聊為什麼要研究輔助瞄準平滑性的時候,需要先明确一個概念:究竟什麼是一個好的輔助瞄準?

站在我的角度,結合之前和兄弟們聊的一些觀點,我覺得主要從兩個方向出發去定義這個東西:

  • 手感層面
針對射擊遊戲中吸附類/阻尼類輔助瞄準的平滑性優化探索

靈敏、順暢的角色轉身

針對射擊遊戲中吸附類/阻尼類輔助瞄準的平滑性優化探索

順暢、平滑的瞄準射擊

手指在螢幕上滑動,得到靈敏且符合預期的回報,例如固定視角的人物轉身,或是3P/1P視角的轉向瞄準,都是典型的輸入回報樂趣,是操控感的重要組成部分。

吸附類的輔助瞄準的原理一般都是在玩家目前幀的轉向角速度基礎上,再增加一個朝向吸附點的角速度,如果機關時間增加的量如果過大,玩家能夠感受到自己的鏡頭在被明顯拖拽。

阻尼類的輔助瞄準是在玩家轉向的基礎上,乘上一個縮放系數進而實作在目标碰撞盒内轉向速度減緩,這個減緩的量過大或者插值時間不合理時,也會有明顯的阻滞感。

無論是拖拽還是阻滞的體驗,在我看來都是破壞了操控感帶來的樂趣。

  • 數值層面
針對射擊遊戲中吸附類/阻尼類輔助瞄準的平滑性優化探索

理論TTK、期望TTK、實際TTK對比

輔助瞄準會影響玩家最終的實際TTK

在設計戰鬥預期的過程當中,我們會使用數值歸一的方式,将玩家的戰鬥流程量化,數值歸一是一個比較好的指導思路,也能夠較好的衡量輔助瞄準的強度。

以PVP射擊遊戲為例,一把武器上線後往往會有三個TTK:

  • 理論TTK:武器命中率100%的情況下擊殺敵人的時間
  • 期望TTK:我們設計上武器擊殺敵人的預估時間,考慮到武器操控難度、輔助瞄準水準、玩家操控水準、玩家血量變化等條件,也可以了解為理想戰鬥節奏下的擊殺時間
  • 實際TTK:最終從CE、線上背景拿到的,玩家擊殺目标的真實時間(這一塊各個項目組可以做的很細,除了時間,命中距離、部位、整體命中率等等可以拆的很細來分析)

從這個角度出發,我們來看輔助瞄準的功能,其實是希望将玩家的實際TTK,盡可能向我們的期望TTK上面靠,使整體戰鬥符合我們的預期。

我們希望這個“靠攏”是正向的,是水準一般的玩家通過輔助瞄準,縮短自己的實際TTK,而不是将高水準玩家的TTK加長,輔助瞄準不能影響玩家的主動瞄準。

同時這個靠攏的幅度是去接近我們的戰鬥預期,而不是拉平,即便在輔助瞄準生效的情況下,仍然需要保留玩家技巧進步的空間。

那麼輔助瞄準是否縮短了TTK,縮短了多少,縮短之後玩家之間是否仍然能有水準差異,這些數值化的名額也是衡量輔助瞄準的一環。

*題外話:這裡的理論TTK、期望TTK、實際TTK的比例,是一個比較有趣的局内戰鬥節奏分析角度,目前應該還沒有比較清晰的案例指導,大家都還在當手工匠人自己試的階段,感興趣的兄弟可以自己拆下。

綜上數值和手感兩點,我們得到了一些好的輔助瞄準需要具備的要素:

  1. 避免拖拽感/阻塞感,保留滑屏回報帶來的操控感樂趣——這裡就引出這篇研究的主題:追求平滑
  2. 能夠有效的将新手玩家的偏長的TTK向期望TTK靠攏,同時不影響高水準玩家的實際TTK,更不能抹平玩家技能進步的空間

二、輔助瞄準各階段的平滑性關注點

2.1 總覽

針對射擊遊戲中吸附類/阻尼類輔助瞄準的平滑性優化探索

瞄準各階段輔助瞄準生效案例

這是一個常見的全自動武器的輔助瞄準類型和生效階段案例,不同項目、不同武器的輔助瞄準生效方式不一緻,這裡不擴充,我們把玩家擊殺單個目标的流程,拆分為四個階段:

  • 轉向-預瞄:玩家移動過程中發現目标,并且移動準心開始瞄準的過程
  • 瞄準/開火-拉槍:玩家準心大緻貼近目标,嘗試瞄準或者開火拉槍繼續靠近目标
  • 開火-跟槍:玩家對目标持續開火,将準心跟在目标身上的過程
  • 轉火-逃逸:玩家擊殺目标,或跟槍過程中出現了更高價值目标,需要轉火的過程

2.2 轉向-預瞄階段(開鏡&準心吸附)

玩家從位移狀态過渡到瞄準狀态的階段,這個時候會使用開鏡/準心吸附來幫助輔助玩家瞄準。

針對射擊遊戲中吸附類/阻尼類輔助瞄準的平滑性優化探索

APEXM的開鏡吸附效果

2.2.1 開鏡吸附:

我們也可以把吸附類的生效過程拆解為 開始吸附 → 穩定吸附/吸附成功 → 逃逸 三個過程。

吸附類的建構一般包含幾個條件:生效條件,生效時間,生效區域,吸附點,各距離吸附速度,速度變化曲線,逃逸判定。

由于開鏡過程有明确的開鏡時間,這裡生效時間已經确定了。

剩下的參數配置,讨論的問題其實是幾組預期體驗的問題:

  1. 關于吸附速度大小:一步到位 or 循序漸進 → 玩家開鏡後是否需要進一步瞄準
  2. 關于吸附速度變化:勻速 or 先快後慢 or 先慢後快 → 開鏡時間很短這個可以不考慮,但開火吸附就值得研究了
  3. 關于各距離吸附速度預期:近、中、遠各區間的速度預期,時間控制 or 速度控制 → 不同距離吸附時間/速度的預期是多少,是否需要根據不同的槍型做優勢區間
  4. 關于生效條件:直接生效 or 按住生效 or 滑動生效 → 是否需要一定程度上隐藏開鏡吸附表現,是否針對多武器類型作區分
  5. 關于生效區域:大碰撞盒 or 小膠囊體 → 輔助瞄準的影響範圍,需要和吸附速度配合來看
  6. 關于吸附點:單吸附點 or 多吸附點 or 骨骼吸附 → 輔助瞄準的理想落點,也需要和速度配合來看
  7. 關于逃逸判定:以單幀滑屏速度作判定 or 以一段時間的累計滑屏距離做判定 → 涉及到逃逸的順滑程度,更深一些可以考慮逃逸時速度的變化

參數都是開放的,怎麼調取決于預期是什麼,PVE遊戲是直接鎖定高傷位置,還是鎖定普通位置考驗玩家的微調瞄準能力?PVP遊戲是否需要幫助玩家将準心拖到敵方目标碰撞盒?問自己這些問題,再回到預期TTK和實際TTK中去找答案。

我們一般不會覺得開鏡吸附會出現平滑性上的問題,主要原因是三個:

  1. 玩家開鏡一定是有開鏡時間的,這裡給了一個預設的插值時間,減少鏡頭拉扯的體驗(如果偏移幅度過大,單幀轉向幅度過大也是會有拉扯感)
  2. 開鏡過程中,玩家主動滑屏,疊加FOV的變化、武器模型LOD的切換會分散玩家的注意力,減少對于鏡頭偏移的感覺
  3. 開鏡吸附基本不存在逃逸過程,玩家開鏡結束後整個開鏡吸附的過程就結束了,後續的移動并不涉及逃逸的處理,同時在開鏡階段觸發逃逸的感覺也并不明顯

2.2.2 準心吸附

部分不需要開鏡的武器,為了幫助玩家快速鎖定目标,在轉向-預瞄階段需要做準心吸附:

針對射擊遊戲中吸附類/阻尼類輔助瞄準的平滑性優化探索

CODM準心吸附

準心吸附對比開鏡吸附,少了天然的生效時間,其餘的參數基本一緻。

圖示codm的準心吸附是一個長按觸發的勻速吸附,吸附的速度比較慢,吸附生效框小且逃逸門檻極低,玩家主動滑屏瞄準的情況下準心吸附基本不生效,從遊戲體驗的角度觸發,準心吸附帶來的幫助是比較弱的。

目前也沒有看到哪款遊戲做了比較強的準心吸附,猜測主要的考量是:

玩家長按螢幕的過程中,我們無法判斷玩家是否要去瞄準離準心最近的目标,在怪物數量偏多的情況下,強化準心吸附的效果會導緻滑屏過程不順(阻尼也會有同樣的問題)

是以要麼不做,要麼把吸附速度調小,同時把逃逸的門檻值做的很低。

2.3 瞄準/開火-拉槍階段(開火吸附&阻尼)

2.3.1 開火吸附

拉槍階段的開火吸附,有以下幾個關注點:

針對射擊遊戲中吸附類/阻尼類輔助瞄準的平滑性優化探索

開火吸附跳變

  • 開火吸附生效瞬間的加速過大導緻鏡頭跳變

無論是勻速變化或是加速變化,在吸附力度較大的情況下,觸發開火吸附的一瞬間都有可能導緻鏡頭轉向速度過大。

有一個解決思路是再增加一個過渡時間,過渡時間内的轉向速度做平滑插值,例如單次開火吸附的生效時間是0.5s,那麼最早的0.1s做一個插值加速過程,能夠有效緩解開火瞬間拉扯的問題。

  • 拉槍階段的吸附速度變化

這個本身是跟預期中輔助瞄準帶來的TTK變化相關,又回到了最初的問題,你希望輔助瞄準幫助玩家縮短多少實際TTK。

勻速變化:不會出錯的答案,能夠規避速度曲線變化帶來的種種問題,需要注意的是無論是使用角速度作為變量,還是使用時間來反算速度,都需要歸一到時間上來衡量強度。

先快後慢:期望的體驗是玩家能夠快速接近目标,然後降低吸附速度,玩家通過微調來做主動瞄準,存在一個問題是,玩家有可能在靠近目标周圍持續開火描邊,最終的命中無法保障。

先慢後快(腦補的,沒驗證過):這是在思考APEXM案例的時候兄弟們引申出來的一個思路,優勢在于避免兩個問題:

A.無論APEXM當時做的是勻速亦或是先快後慢,玩家在大緻瞄準目标的情況下秒人速度都太快了,需要拉長作戰的實際TTK,其中一個思路是下調開火吸附的力度。

B.從APEXM的人物機動性考量,一旦玩家前期開火沒有命中目标(前期的開火吸附協助下沒有鎖住目标),敵方的高機動能力+武器的後坐力疊加,是很難再去命中敵人的,是以我自己早期的對戰體驗是要麼把人秒了,要麼根本打不中目标,需要一個持續開火無法命中時的補償手段。

對于高水準玩家而言,輔助瞄準低的情況下依然能夠瞄準目标,不影響實際TTK。

對于普通玩家而言,開火過程中逐漸提升吸附速度和吸附範圍,能夠有效縮短實際作戰的TTK,也沒有子彈保底那麼暴力。

對于整體戰鬥節奏而言,吸附變大的過程留出了高水準玩家和普通玩家之前的TTK內插補點,保留了一定的技巧成長空間,惡意使用這個機制的玩家也會因為彈量不足導緻整體TTK拉長,影響有限。

當然我這裡說話都是放屁,這個手段沒經過驗證,可能問題更大,純粹口嗨。

  • 拉槍階段的各距離的吸附速度差異

不同距離配置配置不同大小的吸附框和吸附速度是吸附類輔助瞄準的标配,但不同距離的框體做多大,吸附速度做多快,也是需要考量的點。

假設吸附配置的速度為角速度,那麼10M和20M的目标吸附到目标位置的時間都是50ms,但武器不同距離的TTK是有差異的,50ms的吸附時間在200ms和500ms的作戰TTK場景下感受不一緻,對于近距離目标,這個速度可能慢了,對于遠距離目标這個速度可能又偏快了,一個精細化調整的路子是根據期望TTK的預期占比來反算時間,例如占比都是20%,再反算到具體的角速度上面去。

雖然目前市面上的産品能做到不同距離的區分,也許就已經足夠了,不太需要摳體驗摳到毫秒級别。

2.3.2 阻尼

針對射擊遊戲中吸附類/阻尼類輔助瞄準的平滑性優化探索

阻尼示意

阻尼類輔瞄按圖示從左到右也可以分成 判定框生效 → 膠囊體生效 → 逃逸 三個過程。

針對射擊遊戲中吸附類/阻尼類輔助瞄準的平滑性優化探索

阻尼的生效框體

常見參數層面包含:生效條件、生效區域,阻尼系數,阻尼變化曲線,逃逸門檻值。

拉槍階段稍微值得聊一下的是生效區域:

A.各區間阻尼系數差異:一般來說會拆成判定框(黃色)和膠囊體(綠色)兩個部分,碰撞盒的位置越靠近膠囊體,阻尼系數越大,進入膠囊體之後,阻尼系數保持一個恒定值。(如果再以中軸線為阻尼最大值,一般來說會導緻膠囊體打高傷害位置的時候滑屏不順暢)

B.阻尼框體大小:生效的區域也需要謹慎考慮,如果生效的框體過大,那麼在怪物數量密集的時候,玩家滑屏會持續的受到各個框體的阻尼系數的影響,直接表現為劃不動螢幕。

針對射擊遊戲中吸附類/阻尼類輔助瞄準的平滑性優化探索

假設這些怪都有阻尼框

同時關于生效條件,有一個還沒有驗證過的想法。

絕大多數場景下,阻尼的出發點都是為了避免高速滑屏時無法定位目标,那麼換位思考,低速的狀态下是否就不需要生效阻尼了,否則在小角度微調的過程中移動會有明顯遲滞感,後續會看看這個好不好用。

2.4 開火-跟槍階段(開火吸附&阻尼&磁力)

2.4.1 開火吸附:

跟槍階段對比拉槍階段,平滑性差的表現會更隐晦。

在拉槍階段,由于有明确的鏡頭偏移過程,可以相對清楚的觀察到每幀偏移的速度差異和異常抖動。

而在跟槍階段,玩家會主動有壓槍行為,整體偏移幅度有限,疊加武器的後坐力和鏡頭動畫,觀察起來相對有難度。

跟槍階段導緻拖拽,影響平滑的常見問題有以下幾個:

  • 吸附點與玩家期望瞄準位置存在偏差

開火吸附一定會有一個最終的吸附目标點,如果點位和玩家和玩家期望的瞄準點位不一緻(吸附點是質心,而玩家想打頭),玩家在持續開火的過程中就會不斷的與吸附做對抗,感受到鏡頭拖拽。

針對射擊遊戲中吸附類/阻尼類輔助瞄準的平滑性優化探索

多吸附點/骨骼吸附示意

一種解決方式是取多吸附點或者骨骼吸附,同時降低逃逸門檻值,玩家在跟槍的過程中手動微調的過程就轉變成了不斷的逃逸吸附,再根據玩家微調後的位置尋找最近的吸附點開始吸附。

還有一種方式更加考驗玩家的微調能力,即人物碰撞盒内部不再生效開火吸附,鏡頭被快速拉到人物碰撞盒周圍後吸附速度插值歸零,碰撞盒内部隻靠阻尼輔助玩家瞄準。對于TTK時間短的項目,可以嘗試這一種方式,能夠徹底杜絕開火吸附對于玩家主動瞄準的影響。

  • 後坐力/受擊上擡的等鏡頭偏移參數影響開火吸附逃逸計算

玩家壓槍/跟槍階段持續開火期間,武器的後坐力會不斷疊加,同時也會收到受擊上擡的影響(如果有),這部分上擡的數值會持續和開火吸附做對抗,正常的對抗吸附沒問題。

但需要注意的是,這部分對抗的數值不能納入逃逸的計算。

某些槍械在設計上可能出現一段後坐力區間累計度數較大,考驗玩家控槍能力的場景,如果不做單獨處理,會出現準心仍然在吸附框内,但是機關時間累計鏡頭偏移或是單幀鏡頭偏移過大,出現被動突破門檻值,開火吸附失效的場景。

2.4.2 磁力吸附:

針對射擊遊戲中吸附類/阻尼類輔助瞄準的平滑性優化探索

磁力吸附示意

磁力吸附實作方式也是吸附類的輔助瞄準,相關參數和上文提到的開鏡吸附類似。

比較大的變化是在 生效條件 和 各距離吸附速度。

A.生效條件

首先我們明确:磁力吸附的意義在于補償持續開火過程中怪物移動帶來的角速度變化。

那麼這裡的生效條件就需要增加辨識條件:怪物移動經過準心時生效,玩家主動滑屏經過怪物時不生效。

否則單純的以準心和怪物的相對位置做判定,就會收獲一個鏡頭向右滑,輔助瞄準把你往左扯的鬼東西。

B.各距離吸附速度

和開火/開鏡吸附這類我們需要手動給到速度的吸附方式不同,既然是補償怪物移動帶來的角速度變化,那麼吸附速度需要和怪物移動速度挂鈎。

簡單來說,怪跑多快,磁力吸附補償多快,但有上限。

建議的實作方式是記錄機關時間内怪物移動的距離,再反算到鏡頭的角速度上去,乘上設定好的系數,算出最終的補償角速度,需要設定最大的角速度上限和最大生效時間控制住磁力吸附的強度。

這裡的強度如何評估,還是從預期的戰鬥體驗出發,也可以歸一到TTK上。

對于PVE遊戲,磁力吸附的力度取決于,我們期望一個移動的怪物,對比不能移動的怪物,能夠多存活多久?

不同類型的怪物,是否都需要考驗玩家控槍的能力,需要考驗的怪物位移角速度需要高于磁力吸附的上限。

對于PVP遊戲,需要考慮的問題也是類似的,我們希望玩家移動起來時,犧牲自己的瞄準精準度獲得多少ms的理論存活時間,或者說,我們希望玩家在對槍過程中,什麼樣的位移行為是有效的,舉鏡位移就能逃逸對手的磁力吸附,還是需要步行,甚至是需要奔跑或者滑鏟才能逃逸。

2.5轉火-逃逸階段(吸附&阻尼的逃逸處理)

針對射擊遊戲中吸附類/阻尼類輔助瞄準的平滑性優化探索

比較流暢的開火吸附逃逸,緩慢加速不拔瓶塞

逃逸階段和開始吸附的階段一樣,都涉及到玩家鏡頭主觀移動和輔助鏡頭偏移的沖突處理,處理不好會有很明顯的“拔瓶塞”的感覺,尤其是在靈敏度設計為速度加速的情況下,玩家一段時間拖不動就會主觀加大力度/速度,而一旦跨過門檻值,用戶端拿到的速度又會偏大,疊加開火吸附的瞬間消失,轉向角度會極大。

2.5.1 阻尼類逃逸處理

阻尼類的逃逸設計相對比較簡單,絕大多數情況下都會采用平滑阻尼的解決方案,也就是從判定框外側到膠囊體,阻尼的速度是線性變化的,可以說阻尼在不設定門檻值的情況下就有比較好的逃逸體驗。

2.5.2 吸附類逃逸處理

逃逸處理主要取決于上文提及了很多遍的門檻值。

門檻值的作用是:當玩家處于拉槍或者跟槍狀态下,避免一些噪點誤操作導緻吸附失效,隻有當玩家機關時間單次或累計的滑屏距離超過設定好的門檻值時,才視為玩家在對抗輔助瞄準,此時關閉掉吸附。

逃逸門檻值自己調下來,有兩個關注點。

A.門檻值的計算:

取玩家單次的位移,還是某段時間内累計的位移。

在門檻值水準較低的時候,可以取單次的位移,這樣的響應會更加靈敏,但如果門檻值設定較大,建議取機關時間内的累計門檻值,避免玩家持續微調的情況下,無法有效關閉吸附。

簡單了解 較高的門檻值 + 單次位移距離判斷門檻值 = 極緻的拔瓶塞體驗。

B.關閉吸附的方式

差別于超過門檻值的瞬間直接關掉吸附,我比較傾向于将吸附逃逸的門檻值,從單個門檻值參數,變成門檻值區間,在門檻值區間内吸附逐漸減弱,到最大值後再關閉吸附。

從單純的1→0,調整為由1插值到0。

三、一些輔助瞄準調試的小tips

3.1 搞一個完善的調試工具,事半功倍

針對射擊遊戲中吸附類/阻尼類輔助瞄準的平滑性優化探索

輔助瞄準調試工具示例

這是目前我所在的項目使用的輔助瞄準調試工具,能夠支援針對單個/多個輔助瞄準的混合調試,實時的碰撞盒、參數顯示(速度、距離、剩餘時間),實時的距離調整等等。

巨TM好用,好用到我一度想去外面搞個手感中台,讓用戶端爸爸把這個工具賣到全國,感謝luchang。

除了工具以外,調試的過程中還需要靈活調整武器的相關屬性,必要時刻關閉後坐力、鏡頭動畫等影響判斷的東西,上面我為什麼一直用nikke舉例,除了确實手感和美術都做得好以外,他們的武器開火沒有鏡頭上擡、準心也不在螢幕中心,能夠更直覺的看準心的變化。

3.2 聚焦成本效益高的内容,做能做的

同樣是做差異化,不同的槍型開啟的輔助瞄準類型是不一緻的,同樣槍型下面不同槍械的輔助瞄準也可以做到不一緻,甚至可以将輔助瞄準開放為武器數值的一部分,包進整個商業化體系。

同樣是做局内強度平衡,可以精打細算算出每一次輔助瞄準縮短了多少毫秒的TTK,也可以參數拍腦袋填一版然後項目下線都沒改過,成為項目不可動搖的magic number。

有精力,就持續打磨

沒精力,就湊合幹活

永遠解決優先級最高的事,别鑽牛角尖

心裡有數,相信自己

繼續閱讀