騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

遊資網發表於2019-05-15
近期由騰訊聯合動視推出的大型多人線上射擊手遊《使命召喚手遊》開啟預約,短短几天,預約人數已破兩百萬。

就在5月12日Unity主辦的Unite Shanghai 2019開發者大會上,騰訊天美工作室技術副總監郭智先生以《使命召喚手遊,引擎技術升級與演化》為主題分享了《使命召喚手遊》在技術方面的開發歷程和經驗。

以下是演講實錄:

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

我先介紹一下自己,2011年入職騰訊,在騰訊天美工作室任職技術副總監、技術專家,負責整個工作室的手遊客戶端的研發和一些管理工作。我有數十年從業經驗,今年剛好是第11年,負責過不同品類的專案的開發,用過一些自研和商業的引擎,做過幾款FPS遊戲,有比較深厚的積累。

下面是我所參與過的遊戲。主要涉及MMOG、FPS品類,以及各種端手遊,涉及的引擎首先是最左邊的一些產品,用的是自研引擎,第二款是用的gamebryo,第三款是unreal,後面涉及到Unity5的一些專案的開發,用Unity用得比較多,也做過Unity的整個引擎升級。

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

挑戰主機畫面,《使命召喚手遊》如何建立3A手遊畫面標準?

2017年大家都知道是手遊畫面升級的元年,所以今天,對於引擎技術來說,我們首先要聊一聊畫面。對於整個遊戲的畫面來說,我先要談一下整個畫面呈現標準的建立。我相信各位以前從來沒有聽過什麼叫做畫面標準,說的都是要用哪幾張貼圖,怎麼做,畫面標準都是美術師去定的。COD目標是打造3A手遊畫面呈現畫面,所以必然要探索普PBR時代畫面呈現的最佳實踐與升級。

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

對於整個IP產品來說,首先是要定義製作的主基調。在一開始COD立項的時候,我們為了效能經歷過一整段時間的糾結,我們曾經糾結要不能使用Phong的模型,要不要使用最經典的手繪模式。去年我們對COD的遊戲畫面做了重大的翻新,使用PBR去復刻整個主機的畫面效果。能達到主機的品質,這個遊戲才能上線。我們需要挑戰的是達到整個主機畫面的豐富度和還原度,去滿足整個IP高階使用者的主機情懷。

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

既然我們要做PBR,我們首先要做的第一個事就是需要統一製作管線和技術管線。對於製作管線來說,美術需要的所有的貼圖資源都需要線上性空間進行計算,無論你用任何工具去製作任何貼圖,都需要是線性的。對於技術管線來說,需要為引擎定義統一的渲染管線,也就是說我們的渲染管線是通過技術做Scalable的HD渲染管線,對於高配進行HDR的RT輸入,對於低配來說為了節省效能不能做任何的後處理,就使用OnePassHDR的管線,使用Tonemapping在最終的shader做相應的數學擬合,來擬合我們的目標曲線。

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

整個的製作管線和技術管線建立之後,我們再說畫面標準的建立。對於畫面呈現來說,我們需要一致的畫面標準,比如這個角色,每個畫素我們都要定義得非常標準,在國際標準上,任何的3A遊戲裡面都會這麼定義,要定義Material Model,Lighting Model,Shading Model。

標準建立了,就可以用同樣的語言說話,如果沒有這個標準,美術同學會說我要這樣貼圖,這裡面畫點光上去,要做一些陰影的效果。

統一標準之後,在團隊裡面,每個場合裡面就不會再有分歧和異義,討論起來非常簡單。這些標準都是具有物理意義的引數和基於真實物理的定律,也就是遵循PBR的。

還有一點是全場景物理一致的光照環境,也就是說我們要使用動態的光影+PBR+IBL。

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

接下來介紹這三個方面,materiallightingshader,在COD手遊裡面到底是什麼樣的。

先看一下shading Model是什麼。我們構建了完整的手機平臺的PBR光照方案,用分級對PBR進行近似,我們提出4級的PBR的數學擬合,最高階肯定是給現在的835這些系列的高階的GPU去用的,3級就是在520這種機器,2級給更低端的機器,最後一級為那種相容型是有問題的機器去使用,解決所有的相容型的問題。而人物在高中低配都使用最完整的PBR方案,也就是說不會做Shader LOD的切換。直接光用了GGX specular+lambert diffuse,間接光用cubemamp做GI Specular,用SH probe做GI diffuse。

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

對於建築來是,出於效能的考慮,低端會簡化一些光照的部分,就是剛才說的Shader LOD。直接光會在遠景用shadowmask,直接光不會烘焙進lightmap,直接光用純動態的光照,間接光用的是IBLcubbmap+GPU bake的lightmap。

再來看material,固有色、一張法線+粗糙度合併的貼圖,金屬度+AO放在另外一張貼圖。材質接受了lightprobe的間接光照和一個直接光,還有來源於environment的間接光,最後得到我們整體的呈現,這就是我們的material model和lighting model。

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

定好前面之後整個團隊所有場景每個人就基本確定了。確定這些東西之後我們要討論的是製作本身,對於COD這樣一個3A級手遊裡面的一些製作管線,我相信可能對於程式設計師或者是一些開發者來說,不怎麼在意怎麼製作管線,但是由於2017年之後大家知道TA比較吃香還有我認為所有的技術人員都要了解美術的工作甚至要了解所有策劃的一些工作,這樣才能把這個遊戲製做好,所以我們來聊一聊對於3A級手遊裡面的製作管線是什麼樣子的。

3A級手遊管線製作:PBR管線量產之路

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

我們看看製作裡面的核心因素:

第一個是量產。所有的遊戲現在需要最慢也要3年出來,但是往往我們沒有那麼多錢或者是那麼多的時間,我們需要做大量的外包,所以第一個因素是量產,量產能保證我們所有的外包,所有的人員,所有的開發,所有的美術標準都統一,才能達到量產;

第二個是引擎,所以現在對於任何引擎我們都覺得要做成我們自己認為一兩年後所看到的最好的樣子。

最後一個方面是效能,無論是主機平臺還是PC平臺到現在的手機平臺都是非常重要的,不可能讓玩家玩得很卡頓,肯定要有最流暢的體驗。這三個因素決定了我們整個製作管線。

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

對於製作管線來說,我覺得使用流程與工具去保證美術素材的正確性與合理性,原則有兩個:

一個是美術素材輸入一切都符合PBR標準的,也就是說你不能畫各種陰影,你的色彩,你的明暗不能大於我們所認為推薦的值範圍;

原則二:我們需要統一所有的生產規格和生產環境,這一切達到之後才能量產化。達到統一規格之後你的畫面才是統一的,才是你們認為能夠把握的樣子。

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

PBR的初衷在歐美那邊提出來的,它的初衷不是為了效果,而是為了量產。

量產的策略有幾個:一個是驗證,我們能儘可能地驗證;一個是文件,我們需要有各種各樣的白皮書,各種各樣的地方去闡述我們的思路;最後一個是科學性,PBR誕生本身是工業化的產物,不是美術或者是藝術的產物,所以當你一味強調各種各樣的hack強調美術不同的製作方式,強調每個TA做各種各樣的畫面的雕琢之後就不可能再科學,這個遊戲就不可能可控,你的這個團隊就會很失控,就不可能把這個遊戲做出來,所以也不可能有量產,所以如果要做PBR就一定要遵循這三個原則。

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

先說一下整個的驗證。我們需要在sp裡面提供一系列的光照環境給美術做驗證,因為所有現在做PBR生產以前都是在photoshop裡面做的,但是在裡面做的任何貼圖都可能是錯的的,都可能讓美術製作失控,所以我們整個場景製作要符合三大要點:一個是圖形技術的保證,在同樣的一個PBR的光照環境,有95%以上是一致的,怎麼保證一致?大家看sp裡面的再看Unity的渲染管線就可以保證一致;另外一個是製作環境約束,美術製作者使用的渲染環境必須與標準的光照環境是一致的;再下來是驗收標準的約束,任何人討論素材的本身的效果品質的時候,只能參考標準的光照環境,你不要在max或者是MAYA裡面開啟,或者是任何引擎或者是其他裡面開啟,我們就要在標準環境裡面開啟,這樣討論才有意義,要不然管線不一致,討論的結果也會有差異。

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

剛才說驗證的標準場景包含一個主場景,用於驗證固有色的明暗色相,不同粗糙度表面的鏡面反射情況還有金屬材質的鏡面反射情況。六個輔助場景檢驗包括室內外環境光源,暖色調環境下效果,強對比度的明暗光照還有典型室外光照下效果或固有色是否太黑的環境。我是參考裝修裡面的原則還有各種各樣抽象出來的環境,這樣能幫助美術師在做各種各樣的驗證討論的時候有一些可以讓他們去看到製作問題的場景。

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

有驗證環境之後要定義好詳細規則的白皮書,這裡面是我們裡面的白皮書,比如說輸出是什麼樣子,環境是怎麼配置的,還有一些漫反射還有鏡面反射率是什麼樣子的,基本是一些數學原理。同時會有一些黑科技作為素材驗證的參考工具,包括了螢幕校色器還有照度儀,包括一些標準的色彩,通過這些去做校驗。同時也出去測量SH或者lightmap環境,以保證你在房間色調也是一致的,不至於美術在調各種各樣的色彩甚至是光照值都是感性的認識,我們需要給他們一個非常標準和標量的參考。

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

以下這個標準就是能保證我們在製作整個PBR的時候有所參考,有所依據。最後才能呈現得到現在這樣的很好的畫面效果。

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

顛覆與擴充,《使命召喚手遊》或成3A手遊引擎技術標杆

說完這些說一下《使命召喚手遊》的引擎技術的沉澱,上面兩個部分摻雜一些TA和美術以及工程師的一些工作,下面就是一些相關的純技術人員的工作。就是顛覆或者說是去擴充整個Unity引擎之路,會作為未來的3A手遊的引擎實踐的一些標杆。

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

首先我們需要做的是補齊遊戲裡面所缺的渲染的東西,比如說頭髮怎麼做,皮膚怎麼做,角色怎麼做,這些都要儘可能做補齊。我們可能對於一些包含地形的地圖或者是其他技術方案要做擴充,比如說地形裡面我認為我們應該是在國內工作室中Unity結合houdini應用最多工作室,我們有這個組合的工作流,還有不同地貌的Drawcall合併,還支援Vertex fetch texture,當我們使用地形的時候,我認為是現在手遊最佳的地形方案,所以我們對地形系統做了深度的改造。

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

再接下來是烘焙,烘焙使用了GPU烘焙,當你的地形非常複雜的時候如果用Enlighten就等著通宵吧。現在我們烘焙複雜度非常高的場景就只需要3-5分鐘,以前烘焙是需要4-6個小時,這是不能接受的。當你出現bug的時候發現同一天就要卡十張圖,就會出現無限的加班時間,這個迭代時間非常重要。再接下來用GPU烘焙可以做更多的效果的提升,計算正確性和引數科學性有了更強的依據。甚至於可用到一些AI技術對烘焙結果做一些降噪和演算法上的改造,所以我們這邊用了整套GPU的烘焙方案。

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

接下來是我們對烘焙做了深度的定製,也就是結合houdini做了自動的部署,以前我相信所有美術人員這些Light probe是用手工一個一個去擺的,而且擺的純屬人體勞動力並且不準確,所以我們擴充了我們的整體演算法,然後使用程式化自動生成Lightprobe,讓這些迭代更加快速,所有的這些光影可以看到是非常密集的,我相信各位如果要做這種遊戲的時候也可以做這樣的嘗試,演算法不是特別複雜。

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

接下來對植被製作,原來完全是用美術做製作的,我們現在很多場景都要用到很多的植被,以前我們的生產方式都是美術逐棵逐棵地做,我們現在程式化去生產他的AO和法線,這樣原來兩週的工作量等於節省到兩天。這些都是很有意義的,省掉大量的製作成本和人力成本,也省掉很多外包的工作,所以現在無論製作什麼,我們都要積極地去擁抱整個PCG的技術,用這些技術去助力我們的整個生產過程。

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

最後,我們生產了很多很多的遊戲,大家可以看到製作標準和美術規格也是非常高的,我們如何保證整體制作和引擎和效能能夠保證一體化呢?我們所有程式和管線的製作都是要後期去進入的。比如我們用了4張貼圖都是零散的貼圖,我們肯定要有自己的一些技術,美術原來做的所有的都是零散的貼圖,事後會對它的圖進行整理和整合,這樣避免一開始就定規範和美術去討論我的貼圖如何分配,我如何去做這種效能的保證,對於美術人員來說他們根本不敏感或者是會出現問題,所以對於技術人員本身來說需要包括這一個。

最後我們會用一些Texture streaming之類的技術保證包括iPhone6的機型也要做相容。所以整個的製作過程都不會打亂美術的工作流,直到後續再做優化,我們會用很多比如說Texture atalas,Texture streaming,PbrShader的shaderlod等一系列的技術去助力我們後續進入優化階段也能做到效能的動態收縮。

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

最後一部分會更加重要,就是在做任何引擎的改動的時候,需要了解引擎技術的演化

最近面試了很多候選人,聊了很多行業裡面的大咖,對不同層次的開發人員做討論。大家在做任何修改的時候,我覺得很多時候是沒有依據的,或者是在翻部落格時突然發現一個技術我就用。

在我們的技術裡面。對我們團隊來說非常注重引擎技術的演化,包括最重要的三個方面:

一個方面是引擎技術的移動端化。

可以認為從2017年到現在,所有的客戶端PC Game裡面的技術在移動端已經可以使用,如果現在不能使用,我相信未來兩三年也可以使用,比如現在流行使用線性空間的運算,做PBR的渲染,做霧和大氣的效果,會做渲染標準的一些更新,這一些在端遊我記得在8年前就做過了,但是現在手遊裡面再次使用,所以現在所有技術的本身都是端遊往手遊做演化,我們只是做相對的數學擬合和科學性的一些探索。所以大家做手遊移動端化的時候一定要注意端遊技術的移動端化。

騰訊郭智:從技術角度打造3A級高品質《使命召喚手遊》

再下來引擎技術與工具的升級,引擎版本不斷升級

我在第一次使用Unity的時候是4.5的版本,現在這個遊戲基本上可升到五點幾,現在也在升級2018年,2019,這些引擎的不斷升級對底層的改造比較大,比如現在Unity ECS,各方面的烘焙方式的先進還有各方面的技術也在做升級,所以你要升級引擎的時候你要想到用引擎升級的哪一個遊戲,你做一些你自己最穩定的技術的演化,再加上現在的工具也在不斷地發展。近幾年用Substance與Houdini,之後這一系列的美術工作在團隊裡面普及越來越明顯,所以我們需要使用所有的工具做配合進行遊戲的製作。

最後就是晶片的發展

晶片發展會更加快,可以認為現在晶片可以達到了五六年前渲染的一些量級,只是功耗沒有跟上來而已,所以我們基於現在晶片發展趨勢可以做的事會越來越高,我們團隊現在也在做一些PRT的動態GI的效果,我覺得這些將來都會變成可能。

大家在一些高階平臺上做這些特性,可以讓你的遊戲得到加分。再加上現在業界一些前沿技術的推進,也會讓你整個手遊更邁進一步,比如說RTX光線追蹤,基本上現在已經在討論要不要用RTX做光線的一些烘焙方案,我們自己用過光線追蹤的渲染技術,會發現它的理想效果會大有增益,可以做很多的你想不到的東西。再加上過程化製作,我前面演示了很多過程化製作的方面,有些部分沒有在這裡講,但是2018年開始,過程化製作已經深入到我們每一個製作過程比如說植被立型、任務、AI還有玩法本身都可以參與到過程化製作。

再加上最後一點可能有點對國內來說有點前沿,就是Machine Learning,現在整個匹配演算法還有後面的AI是各方面,我們都會嘗試使用Machien Learning做探索,這些所有的技術都會推動我們引擎技術不斷演化。

今天講的就這麼多,謝謝大家。

相關文章