哪些新技術即將影響游戲行業?這里有一份來自Unreal Engine資深技術工程師的答案
作為現階段市面上最有影響力的通用引擎之一,Unreal Engine的新進展也備受關注。36氪也在上海采訪了Epic Games資深技術工程師王禰,了解了Unreal Engine的新進展,及Unreal Engine在游戲與人工智能結合方面的一些嘗試和研究。
王禰有超過10年的虛幻引擎使用經驗,有console游戲、掌機游戲、PC MMO游戲、手機游戲開發經驗。2005-2009年在Ubisoft,?作為引擎程序員參與開發了Endwar和Cloudy項目。此后在英佩游戲開發了xbox游戲,組建了手游團隊。現在是EpicGames China的引擎技術專家,參與和幫助了眾多使用UE3和UE4的項目解決了各種問題。
以下為采訪內容的整理。
Q: 作為通用引擎Unreal 接下來的進展可能會有哪些?
王禰:
有些人認為,Unreal作為通用引擎,實時渲染的畫面已經接近現實,已經到了一個天花板高度,但事實上,目前引擎的實時渲染和離線渲染依然有比較大差距,對于圖形工作者來說,這個差距還是相當明顯的。主要是對于動態的全局光照,以及對于一些特殊的材質,在實時渲染中還有著相當的提升空間。事實上,根據恐怖谷效應,越是接近真實的場景用戶就越會覺得瑕疵明顯,最后這一小點不真實反而是非常難跨越的鴻溝,需要從硬件、渲染等多方面去解決。當然方面硬件本身在提升,使得一些原先很難實時計算的算法可以實時化;另一方面,Unreal Engine和實時渲染領域也在做更多改進,推動實時渲染技術,譬如今年Siggraph我們推出的Meet Mike對于實時渲染寫實人臉起了很好的展示作用。
近期,Unreal Engine的一些新版本中也有一些新的功能。比如,2017年GDC期間,Epic Games與The Mill數字工作室展開合作,為雪佛蘭汽車公司,制作了AR實時短片《人工賽車》(The Human Race)。影片中車輛的本體是一輛名叫Mill BLACKBIRD的實體車,不僅可以任意改變形態,還幾乎可以在所有拍攝環境中模擬出任何車型,期間Unreal引擎幫助在車身實時疊加真實光照環境,十分逼真。此外,值得一提的是,這一過程中車輛的AR鏡頭基本上實時、無縫渲染合成,導演可以立刻查看鏡頭效果,無需再像以往等到數天之后查看。類似的功能在Unreal Engine4.17版本已經實現,其中包括了一些渲染的改進(Bent Normal,Reflection Occlusion),以及整個用于合成AR圖像的Composure插件。
其實在引擎中的很多子模塊,我們都在進行改進,我們稱這些更新換代的模塊為對應模塊的2.0。譬如非線性的影視編輯工具,以前叫Matinee,新的系統叫Sequencer,在近期的版本中有大量的易用性和功能性的改進,讓大家使用Unreal制作影視動畫更方便高效。
另一個新的模塊可能要到今年年底或者明年初才會正式發布,是我們的粒子編輯器。新的粒子系統被稱為Niagara ,從名字中就可以看出是以前粒子系統Cascade的升級版本。事實上上面說道的The Human Race中的粒子特效就是用Niagara的內部版本制作的,新的系統無論是可以達到的效果還是運行效率都有大幅提升。在新的粒子系統中, 每個粒子都有各種定義好以及可以自定義的事件可以用來觸發行為的變化,例如碰撞、或者游戲邏輯事件等,同時粒子的分布規則也有了更強大的定制性,可以根據指定的mesh表面作為分布。為了易用性、靈活性,新的粒子系統會有兩個模塊,一個是Stack模塊,與原有Cascade一樣,每個Emitter都可以由各個預先定制好的子功能模塊控制,疊加到對應的Emitter上,方便快捷做出傳統的效果。但在后端我們會將其轉化為一個Graph,類似藍圖的形式。對于需要更復雜和細致的控制粒子邏輯行為的情況,用戶可以用藍圖的形式來連接Emitter的行為。這些藍圖還會轉成HLSL,這意味著所有的粒子邏輯計算都可以在GPU中完成,GPU粒子可以不再像以前一樣受限,以后可以對每種粒子系統動態生成對應的代碼。即使是CPU粒子,也會做一些優化,把計算的操作數packing稱vector,由相應的vector machine做加速處理,相比于傳統的粒子系統也有2-3倍的提升。
音頻模塊也有比較大的改進。今年GDC也展示了新的音頻模塊。最大的變化是混合計算都是在引擎中的音頻模塊中完成,不再依賴于外部的庫。這意味著,音頻系統的各個功能能擁有更好的跨平臺性,只要計算力足夠,所有的音頻效果在所有引擎支持的平臺上都可以使用。同時音頻引擎也預留有接口給到第三方,可以接入各種音頻功能,例如HRTF的實現之類的。
此外,我們也有嘗試改進直接在引擎中做簡單的人形rigging,刷不了的權重,以及簡單的sculpting功能。例如利用兩個VR手柄在VR環境中實現3D建模。此前,Google、Oculus都有推出類似的繪圖工具,這方面Unreal Engine也有研究。
這些新變化將會隨著之后的版本會推出,預計會在今年年底或者明年會推出,嘗鮮的用戶也可以在GitHub上體驗。這些功能其實開發了很長時間,之所以會這么晚才推出主要是因為Unreal Engine的功能會在在內部所有的游戲都使用驗證,當做到足夠好、足夠穩定、用戶體驗足夠方便的時候才會推出。
Q: Unreal Engine 在人工智能方向有哪些研究和嘗試?
王禰:
借助AI,可以提升游戲的體驗。此前,Epic Games大中華區總經理吳灝在接受采訪時就有提到這點。
ML可以應用在游戲引擎的很多方面。當然對于圖像處理,尤其是后期參數調整之類的功能,可能和內容創作者的意圖直接掛鉤的功能,可能應用ML的意義不太大。
此前的游戲AI更多的是讓NPC、敵人的表現更加自然,讓動作更符合人類感官嘗試。游戲AI還有很大的提升空間,比如,角色動畫方面。在SIGGRAPH上也有一些這方面的論文,比如利用卷積神經網絡可以使復雜的實時游戲環境中玩家角色動畫更為真實。在大多的游戲中,角色動畫是通過手動的方式制作或者通過動作捕捉制作的。這樣一來,當玩家單人通關時,每一位玩家看到的動作周期是一樣的,會重復幾千次。愛丁堡大學的研究人員則開發了面向“Character Control”(角色控制器)的“Phase-Functioned Neural Network”(簡稱PFNN),它是一種全新的角色動畫處理技術,可以使游戲中人物的動作更加真實。
育碧正在與這一團隊合作,我們也有與他們接觸。從目前的效果來看,前景不錯。但是目前的可控性還不夠好。這也是目前很多看起來效果不錯的前沿算法在實際使用中的一些問題。游戲還是有一些設計成分在的,如果游戲和現實世界一樣,玩家可能也不會喜歡游戲,因此游戲中基本都會有設計師指定的成分。但是目前很多前沿的算法,都還不太適合人為控制,到實際應用還有一定距離。
素材內容生成可能還是在DCC工具中實現,但是引擎也可以做一部分。比如,前年的時候,Unreal Engine做了一些嘗試,在引擎中集成了一些相關的功能,我們也展示了相關的Demo,將大量拍攝的照片上傳到了系統,根據模型解析當前的光照環境,生成材質參數,最后生成貼圖。現在,Nvidia等公司也在做類似的嘗試。這其實是一個趨勢,目前寫實類的游戲開發成本越來越高,但是有這樣的工具和方法,成本就可以降低下來。
在游戲制作環節,基本每個環節都可以利用AI提升效果或者效率。除了上面提到的動畫融合,全身的追蹤也是一個方向。目前可以追蹤到的身體部位還是比較少,在通過大量的數據訓練后,可以根據人物的骨骼、身高等信息,推算出更符合人類常識的正常的動作。在人物表情方面,可以基于機器學習,推算出所有的肌肉群的權重,使得人物的表情更加真實,去年SIGGRAPH我們也展示過這方面的Demo。
關于和AI結合,Unreal Engine也有在做嘗試,并且有一些不錯的結果。我們在幾何輔助生成,角色動畫生成,PBR材質參數生成,工具集中海量內容的分類等功能都有探索。
不過,Unreal Engine的關注點還是在實時渲染和邏輯控制。未來,有些功能可能是不會自己做的,但是可以和第三方合作。
Q: 接下來有可能對游戲行業產生推動作用的商用技術可能有哪些?
王禰:
如剛才所說,大量通過AI來輔助做內容生成的的技術都會對行業有推動作用。
對于小團隊來說,可以利用PCG技術(過程自動生成技術)。去年底,Steam上線有一款游戲名為《宇航員》,是一款沙盒游戲。游戲中,所有的星球都是可以探索、甚至挖掘至地心的。這一團隊僅有6名人員,大量使用了PCG技術。對于小團隊來說,這會是一項非常有價值的技術。
另外可能也已經有公司開始嘗試在實時渲染領域使用光線跟蹤。傳統的實時渲染都是使用光柵化的方式來繪制的,并且在這上面積累的大量的算法和經驗技巧,要很快的替換掉是不太可能的。但是在一些特定情況下可能會有幫助,例如在VR領域,通過光線跟蹤的硬件和對應的圖形API,可能可以在鏡片的片元的光線出發來計算場景主光的貢獻。