close

由於之前的心得被人說拖垮了BLOG文章水平

這次就來寫一些有點技術性的東西好了

 

第三人稱射擊遊戲有個很難避免的現象:穿牆

最嚴重的是槍口穿牆,因為有可能會造成射擊時發生異常!

戰爭機器裡面有一些防範的方法,像是:

1. 貼著牆移動時,若移動方向會撞牆,主角會停止下來直到改變方向

2. 會停下來的原因是,主角持槍站立姿勢會把槍斜放在懷裡,槍口穿牆的可能性當然大減

即使如此,還是沒辦法做到100%不穿牆

這時候不得不提到瞄準計算方式

用簡單的圖示來說明一下好了

1. 從攝影機方向(玩家看的方向)為基準,例如發哥的槍神

2. 從槍口為起點,一樣方向為朝向目標點,此方法在視覺上會較自然

3. 特殊情形,一樣以槍口為起點,方向卻是遠處的假想點

戰爭機器一般射擊時使用的是方法2

證據是當槍口前剛好有障礙物時(體積不大,不會遮蔽視線)

即使視覺上好像可以打中目標,子彈卻直接打在障礙物上!

這樣的方式,在槍口穿牆的時候就會有危險

因此穿牆的時候計算方式會改為方法3

否則依照方法2的計算,彈孔會出現在『錯誤的目標點』!

 

第二個想寫的是碰撞

碰撞的用途很多,最重要的就是『偵測』

主角攻擊時打不打得到目標,就是一種碰撞偵測

主角哪些路能走,哪些牆可以穿越,就是對環境的碰撞偵測

由於偵測複雜的場景碰撞會消耗許多效能

最高原則當然就是『能省則省』

這點可以從遊戲中看出些端倪

1. 你一定可以發現地上有些小東西是沒有碰撞的,很明顯可以看到腳會直接穿進去

但是朝門上的欄杆射擊,子彈卻可以從縫隙中穿過去,或是打在欄杆上而發出火花

這是為什麼呢?

簡單來說就是以『遊戲性』為準則

移動的時候腳會穿過地上的木板,可能會有人覺得奇怪,卻不會太在意

但是對著欄杆開槍,卻沒辦法穿過縫隙打到對面的怪物,應該會有人開罵吧!

2. 你一定可以發現場景上有些地方,好像可以走過去,卻有隱形的牆擋住了

這又是為何呢?

這樣做其實有兩個好處

一來明確的告訴你,這裡就是不准走,省得你白白走一趟

二來這裡會擋起來,就代表後方不是你該去的地方,

與其做一些看起來和環境不搭的牆壁或是放一座山來擋住路

不如直接用隱形碰撞擋起來省得麻煩

以上兩點是在告訴我們

寧可讓玩家覺得有些奇怪的小地方,但是不影響遊戲性

可是卻可以讓遊戲獲得更高的效能!

 

大家應該對遊戲中的攝影機印象深刻吧

尤其是主角衝刺時的晃動,相當有身歷其境的感覺

攝影機一直是遊戲中的靈魂,特別是射擊遊戲

要做得好真的很不容易(這可是切身之痛啊......)

在這款遊戲裡面倒是看不到什麼缺點

一些小細節更讓它顯的更佳自然生動

像是轉動攝影機加的Motion Blur效果

貼牆掩護或是起身離開時FOV的變化

移動時若不開槍,過一陣子攝影機會自動恢復為平視的角度

翻滾時自動將焦點移動到下半身的位置等等

更別提打爆敵人時血肉會濺到鏡頭上

下雨的時候雨水會淋在鏡頭上

以上總總是在告訴我們

遊戲賣的好不是沒有原因的!

全站熱搜
創作者介紹
創作者 kgsprogrammer 的頭像
kgsprogrammer

太陽系後援會

seeulin 發表在 痞客邦 留言(0) 人氣()