《最后的守护者》的开发技术猜想
引文:之所以寫下這篇文章,不僅僅是通關(guān)了這個(gè)游戲,被游戲傳達(dá)的情感所震撼,而且作為一個(gè)正在進(jìn)行主機(jī)游戲開發(fā)的程序員,被這游戲中大鷲的羽毛、身體動(dòng)作和AI,以及攝像機(jī)的部分所深深吸引。我不得不承認(rèn),他們的首席程序員Makoto Izawa的技術(shù)水平,夠我花個(gè)五年到十年的時(shí)間追趕的,不過,現(xiàn)在游戲引擎的發(fā)展,也給我的壓力減少了很多。
(事先聲明,本文游戲圖片來自于PlayStation官網(wǎng),貓圖來自我家雪靈,少量技術(shù)圖片來自谷歌,本文不會(huì)劇透)
首先說說這個(gè)游戲中制作人的創(chuàng)作來源。根據(jù)2009年6月3日IGN上一篇對上田文人的采訪,可以獲知一些基礎(chǔ)信息,中文翻譯的游戲名稱“食人的大鷲”確實(shí)是日文的原版翻譯,早期的英文名稱叫做"The Giant Man-Eating Eagle Toriko." 。Toriko的名字來源于兩種動(dòng)物:鳥(Tori)和貓(Neko)。而且上田文人本人也提到,這些動(dòng)物是受到小時(shí)候接觸過的寵物的影響,這些動(dòng)物不僅是貓和狗,也包括鴨子和猴子。所以游戲中的巨獸明顯體現(xiàn)了貓的主要行為特征,身體又包裹著羽毛,腳也采用鷹的形式。
?
先來說說我猜想的羽毛制作方式,根據(jù)目前的物理引擎技術(shù),全身的羽毛估計(jì)是以帶角度限制的關(guān)節(jié)連接方法,安裝到大鷲身上的。經(jīng)過觀察,羽毛和周圍的物體并沒有實(shí)際的碰撞,所以羽毛受到的物理影響,基本上是大鷲身體的帶動(dòng)和風(fēng)場的力學(xué)運(yùn)算。
?
有一些羽毛炸起的動(dòng)作,用來表現(xiàn)大鷲的情感,估計(jì)是程序做了特殊的運(yùn)算處理,施加到每根羽毛一些反向力。按照我很隨便的估算,全身的羽毛應(yīng)該不會(huì)超過1000片,故此,遍歷所有羽毛,并進(jìn)行一些物理運(yùn)算,對目前的PS4主機(jī)來說,并不會(huì)帶來太大壓力。人物爬上大鷲的時(shí)候,局部的羽毛飄動(dòng),我認(rèn)為也是依靠小范圍的影響羽毛的物理運(yùn)算的方式實(shí)現(xiàn)的。題外話,我發(fā)現(xiàn)游戲中掉幀,主要是由于要?jiǎng)討B(tài)加載和卸載新場景導(dǎo)致的,如果場景已經(jīng)加載完成,死掉再次返回,同樣的位置就不會(huì)掉幀。
?
另外,飄落的羽毛,應(yīng)該都是單獨(dú)的模型,在開場的時(shí)候,地上散落的羽毛,非常類似小灌木的做法,用幾個(gè)面片做十字交叉。空中飄落的羽毛,應(yīng)該是類似粒子系統(tǒng)的方式來實(shí)現(xiàn)的,由于數(shù)量非常少,所以也不會(huì)增加太多的計(jì)算。
?
再來分析一下身體的動(dòng)作,大鷲的身體,如果我來設(shè)計(jì),大概會(huì)分為這么幾個(gè)主要部分:頭,耳朵,脖子,前肢,后肢,軀干,尾巴。作為貓的代表動(dòng)作,二手手游買號(hào)平臺(tái)耳朵一定是傳達(dá)情感的很重要元素,根據(jù)外界的環(huán)境和人物的互動(dòng),兩只耳朵可以躲避墻壁,前后抖動(dòng),豎起來傾聽呼喚。脖子用來連接頭和身體,仔細(xì)觀察可以發(fā)現(xiàn),大鷲在狹窄的空間中轉(zhuǎn)身時(shí),和貓的動(dòng)作非常相似,先是接近180度的轉(zhuǎn)頭,然后身體可以用一種類似折疊的方式,原地轉(zhuǎn)身。再說說尾巴,大鷲的尾巴減少了很多貓的行為特征,比如開心時(shí)貓會(huì)豎起尾巴,但是大鷲不會(huì),大鷲的尾巴除了在游戲中特有的很多功能以外,平時(shí)的動(dòng)作,就是增加跳躍時(shí)的視覺平衡感。最后再說說大鷲的爪子,據(jù)我觀察,爪子的每跟手指都是采用了單獨(dú)的多段骨骼,再加上IK(骨骼反向動(dòng)力系統(tǒng)),爪子可以實(shí)現(xiàn)踩在一些尖角上時(shí),手指完全抓牢,再加上地磚碎裂的效果和AO(光影遮蔽系統(tǒng)),呈現(xiàn)出真的踩在環(huán)境中的感受,并且體現(xiàn)出巨獸的重量感。
還有AI的部分,我覺得大鷲的AI部分,最難做的應(yīng)該是狹小空間的動(dòng)作判定,很多時(shí)候如果大鷲的姿勢不對,或者執(zhí)行動(dòng)作的空間不夠,會(huì)導(dǎo)致大鷲完全沒有反應(yīng),或者原地跺腳,順帶產(chǎn)生的時(shí)間延遲和失控感,也正好符合設(shè)計(jì)師要表達(dá)的情緒。了解到這一點(diǎn),大家也可以測試一下,大鷲在獲得了正確的指令時(shí),其實(shí)反饋還是很迅速的,明顯的特征是,接收了正確的指令,會(huì)先原地叫一聲,然后開始后退,開始執(zhí)行指令。
?
再說說攝像機(jī),由于設(shè)計(jì)的需要,在非常狹小的空間中,主角還要能擠到大鷲和墻之間,導(dǎo)致完全沒有攝像機(jī)的位置。現(xiàn)代游戲的第三人稱攝像機(jī),都是要通過碰撞運(yùn)算,盡量避免出現(xiàn)穿越模型的情況出現(xiàn)。所以,大鷲中的攝像機(jī)在躲避碰撞的動(dòng)作瞬間會(huì)黑屏一下,導(dǎo)致很多極限情況下,攝像機(jī)卡在一個(gè)位置,不停的黑屏,完全失控。這里我想出了一個(gè)解決方案,就是如果出現(xiàn)這種情況,應(yīng)該把攝像機(jī)的拍攝焦點(diǎn)切換為大鷲,然后在大鷲周圍尋找可以停留攝像機(jī)的空間。由于主角爬上大鷲或者從大鷲身上下來,并不一定需要視覺觀察,玩家可以連續(xù)推上,完成爬上,連續(xù)按X鍵實(shí)現(xiàn)下落。所以,應(yīng)該讓玩家視覺盡量處在一個(gè)舒適的位置,盲操作,我想,也會(huì)比現(xiàn)在連續(xù)黑屏閃爍的體驗(yàn)好很多。
?
最后,我還想說說一個(gè)特別傳神的技術(shù)點(diǎn),實(shí)現(xiàn)起來雖然不難,但是也會(huì)占用大量的開發(fā)時(shí)間,這個(gè)就是手柄的震動(dòng)。PS4 DualShock手柄從字面上也可以看出,這個(gè)手柄有兩個(gè)振動(dòng)器,一個(gè)高頻一個(gè)低頻,分別位于手柄的左右兩側(cè),大鷲這個(gè)游戲,全程使用手柄振動(dòng)來增強(qiáng)大鷲的生物感。撫摸大鷲脖子時(shí),會(huì)獲得像貓一樣的呼嚕振動(dòng),大鷲揮動(dòng)小翅膀時(shí)也會(huì)獲得發(fā)力感。如果能夠采用XboxOne手柄的4個(gè)振動(dòng)器,那全程立體的振動(dòng)體驗(yàn)估計(jì)會(huì)更棒一些吧?
?
我猜想的這些技術(shù)點(diǎn),說起來輕松,真的從無到有的都實(shí)現(xiàn)出來,并且做到現(xiàn)在游戲中的狀態(tài),是非常困難的,需要大量的學(xué)習(xí)和研究,并且這種技術(shù)點(diǎn)的突破,是無法靠增加團(tuán)隊(duì)人數(shù)提高速度的。進(jìn)行了這些思考以后,也非常能夠理解為何這個(gè)游戲從PS2時(shí)代一直開發(fā)到了PS4時(shí)代,換我來做,估計(jì)要開發(fā)到PS5時(shí)代吧,哈哈~
最后放上幾張我家“雪靈”的照片,對比一下大鷲的姿態(tài):
?
總結(jié)
以上是生活随笔為你收集整理的《最后的守护者》的开发技术猜想的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何用行为树开发游戏AI以及任务系统?
- 下一篇: 揭秘《死者之书》之环境资源及特效创作