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