Made with Unity |《龍之谷2》——MMO遊戲中的動作之王

要說這幾天最熱的手游,那絕對數得上9號剛剛全平台上線的《龍之谷2》。這款由盛趣遊戲研發的開放大世界手游,開服前就有超過1500萬人次預約,上線第一天就空降iOS免費榜TOP 1的位置,人氣爆棚的同時還收穫了無數好評。盛趣遊戲過去近20年在MMO品類有着深厚的研發積累,再加上多年前就風靡端游平台的爆款IP,《龍之谷2》手游的推出可謂是萬眾期待。

這款基於Unity引擎研發的手游最大的亮點,就是其開放大世界的設定加上大型多人MMO的玩法,尤其是美術方面的創新可圈可點。細膩精緻的模型、真實的光照體感、四季變化、晝夜更替、天氣變化等美術表現,從小細節到大場景,無一不為玩家們呈現龍之谷歷代之最的遊戲畫面。而8人冒險團、12V12競技、甚至30V30的公會戰等創新玩法,都極大提高了玩法自由度和社交屬性,同時還能進行爽快的多人動作戰鬥,因此說《龍之谷2》這款手游是MMO中當之無愧的“動作之王”。

那麼《龍之谷2》這款優秀的手游作品是怎麼設計的,創新的開放大世界又是怎麼創作出來的呢?我們特意採訪到了盛趣遊戲《龍之谷2》的美術總監秦雁,為大家帶來美術方向的深度分享。

01/ 遊戲引擎優勢

龍之谷IP的2代續作手游,傳承了IP的Q萌經典畫風、人設、場景,繼續採用3D無鎖定的戰鬥操作模式,強化打擊感和戰鬥表現力,在前作基礎上建立職業多流派BD強化策略性等等深受玩家的喜愛,可以簡單的介紹下選擇Unity引擎開發這款遊戲的原因嗎?

首先Unity的通用性,引擎非常適合手機遊戲開發,且對各個平台的支持都很友好,同時項目組可以自己定製了各類shader和script來滿足各類需求。

Unity的易用性,Asset Store 上插件豐富,可以輕鬆實現一些比較複雜的功能與效果,編輯器友好,開發人員上手很快,極大的縮短了項目的研發周期。

還有一點就是我們整個項目組得到Unity大中華區的Support與TA團隊的有力支持,特別對一些棘手問題,大大提高了解決的速度。

02/ 更激萌的角色

遊戲中人物細節更加精緻,形象清新Q萌,惹人喜愛,可以結合新職業女牧師模型,談談Q萌且精緻的人物形象創作的技巧嗎?

龍之谷是一個經典的IP,在設定方面本身就做的非常的棒,但畢竟是運營10年前的一款網游,現在都已經2020了,龍之谷2如何讓玩家老爺們有那熟悉的感覺,但又比起之前產品更加時尚,就成了我們的追求。角色的原畫設定保留了原先的色彩規劃,製作上借鑒了一些二次元的表現特徵,以次時代3D的方式表現出來,目標就是既要讓IP用戶所接受,又讓廣泛的年輕手遊玩家所喜愛。

以女牧師的設定為例,這個角色的特徵就是呆毛和白毛,誇張的大眼睛,萌萌噠;色彩上白色,藍色為主,搭配黃色,點綴金色和銀色,突出牧師的聖潔與華麗感。

03/ 更強的打擊感

遊戲內各職業的打擊感也是非常棒的,可以簡單的分享下弓箭手的打擊感是如何實現的嗎?

眾所周知,龍之谷是端游裏面打擊感最好的網游之一了,這次龍之谷2的定位就是- MMO遊戲中的動作之王,希望給玩家清晰明確的戰鬥體驗的同時又表現好龍之谷最精髓的打擊感,連擊技是龍之谷2的第一個特色,玩家可以根據自己的喜好,搭配出不同的技能組合,技能配合的好,一套連擊技打下來,對方就GG了;打擊感上,龍之谷經典的擊飛,擊倒,到浮空,倒地等效果,強大而又那麼的樸實無華。

在技術的實現上,我們利用了Unity引擎強大的擴展性上,編寫了一套非線性技能編輯器,非常方便的導入動畫和特效資源,這套編輯器可以讓動畫師所見即所得的進行技能編輯,策劃小姐姐們再也不用在表格上填数字來猜想打擊效果了,大大的提高了工作效率。

舉個例子:我們一個主角包含233套動畫(超豐富的動作表現),在我們的編輯器面板方便查看每一個動作及其幀數

然後,在每一個動作的時間線上,來配置哪一幀出現特效,攝像機動畫,聲效等,所見即所得,非常的方便

04/ 更開闊的遊戲世界

可以簡單介紹下龍之谷MMO大世界,無縫大地圖的製作細節嗎?

一直以來,龍之谷的玩家都對阿爾特里亞大陸只能管中窺豹而耿耿於懷,這次,龍之谷2將會給玩家一個自由,開放的大世界,再也不只是主城+副本了,升級打怪,玩家可以在這個世界策馬奔騰,騎着獅鷲翱翔藍天白雲,也可以釣魚,採礦,輕鬆休閑的在遊戲裏面生活,在我們的美麗的湖心島,擁有6800M * 6800M的超大場景,玩家繞其跑一圈大概需要30分鐘呢。

為了實現MMO大世界的效果,我們專門編寫了地形和植被編輯器,一個大世界場景是由多個Tile平鋪而成,一個Tile就是一個Unity場景,Tile則由多個chunk平鋪而成,如下圖:

這套地形和植被編輯器非常方便的支持以下功能

a. 可以通過高度圖創建地形,且使用自定義筆刷修改地形

b. 支持單場景編輯和多場景編輯

c. 支持4張地形紋理貼圖和法線貼圖

d. 採用多場景烘焙lightmap,可以有效的解決跨域場景的影子,接縫等問題

e. 支持植被系統,可以在編輯器中通過筆刷繪製草地

f. 支持下雨下雪等天氣變化

05/ 更浪漫的淺灘

遊戲中碧藍的海岸淺灘,彷彿遊戲屏幕中有撲面的海洋氣息、潮濕而略帶鹹味,而且海水在太陽的直射下,海水還會泛起點點金色光芒,關於這種真實的海灘效果是如何實現的呢?可以跟大家分享下嗎?

海灘是阿爾特里亞大陸的一個特色,很多故事都發生在海邊,所以我們通過以下3個點展示好海灘:

a. 採用了Genster波的算法模擬海水的起伏,它的算法頂點會不僅有高度分量y的變化,同時在xz平面也會有一定的位移,這樣在控制xz平面頂點位移大小的同時也控制了波峰是尖還是平緩

b. 在光照計算中,我們參考了GDC2011論文的次表面散射算法,然後法線貼圖來模擬波光,同時加入環境反射和菲涅爾的計算,在淺水的散射部分,我們讓它的亮度有一些提高,增加真實感

c. 海灘的泡沫效果,我們單獨用sin波加uv偏移來模擬,同時加了一個pass來模擬海水退下后潮濕的沙灘效果

06/ 更逼真的天氣系統

龍之谷中晝夜交替的擬真天氣系統,讓玩家可以切身的感受到時間的流動和天氣轉換下阿爾特里亞的美景,增加了遊戲的真實性和代入感,可以簡單的分享下龍之谷2中的天氣系統是如何實現的呢?

真實的阿爾特里亞大陸怎能沒有白天黑夜、颳風下雨等天氣變化呢?我們使用了Unity Asset Store 上的uSky插件,同時對其進行了優化,使其在晝夜交替的物理表現非常亮眼,可以讓玩家明顯的感受到天氣的變化與時間的流逝;其次我們又增加了下雨,下雪,沙暴等天氣系統增加了遊戲的真實性和代入感,比如下雨系統,雨幕,雲層的變化,地表積水的變化,雨滴落在場景建築上形成水流的變化等,在24小時的變化都是不同的。我們通過曲線的方式來定義不同天氣效果下不同元素(霧效,水面的反射)的變化,同時為了節省性能,我們把所用的texture都合併到全局變量中,高質量,高效率的實現了天氣變化系統。

07/ 更立體的遊戲場景

與1相比,龍之谷2在場景方面的表現力更加的出色,空間的立體感更強。可以給大家分享下unity場景的搭建、打燈、烘焙的流程嗎?(以凱德拉場景為例)

以凱德拉為例,我們通過以下步驟給玩家呈現了一個龍之谷的小鎮風光

第一階段:我們使用bigworld場景編輯器生成場景,導入高度圖生成地表,同時通過筆刷調整地表細節,建築物件導入,材質球指定,製作成profeb,擺放在場景合適的位置,layer屬性指定,通過筆刷繪製地表植被,大型植物進行合理的排布。

第二階段:為場景布置點光源,烘托場景氣氛,動態物體採用lightprob來插值光照數據,為了更好的效果,我們的烘焙採用了Unity的shadowMask模式,它的最大優勢是近景為實時光,遠處為lightmap(雖然會產生3張lightmap影響性能,我們使用GPU-Instance來支持lightmap,這樣性能的消耗忽略不計),同時搭配PostProcessing后處理,使場景效果美輪美奐。

第三階段:天氣系統參數調整,Navmesh碰撞體製作,為了使人物走在不同的材質上有不同的腳本步,需要對紋理做出命名規範,規範為紋理名稱加后輟,比如:kdl_mud.tga,表示泥地紋理。

08/ 更“冷”的雨

可以簡答的給廣大的開發者們分享下下雨場景中濕滑的地面是如何通過Unity Shader來實現的呢?

a. 首先在場景的地表上繪製乾濕區域

b. 其次通過採樣序列雨滴漣漪的法線圖,在原始地表法線進行擾動

c. 再通過反射Cube和菲尼爾效果來增強雨水的高光

d. 最後插值晴天和雨天的顏色變化達到模擬從晴天到下雨的轉換過程

09/ 企業技術支持

Unity support團隊與TA團隊對項目有那些支持,對項目有何幫助呢?

Unity support團隊與TA團隊對項目有很大的支持。

其中Unity TA團隊:

a. 推薦使用usky插件來幫助我們奠定天氣系統的基礎,同時提供雨雪天氣變化的算法,為我們整個遊戲的美術效果提供巨大的幫助。

b. 預計算海水的genstern波算法和次表面散射算法。

c. 角色上推薦用lut圖來模擬sss效果,節省性能。

Support團隊:

d. 在整個項目周期中,定期的駐廠對整個項目進行性能檢測分析,提出了許多有用的優化建議。

e. 在項目的中後期,幫助我們排查、定位一些閃退等疑難問題。

再次感謝unity團隊給予的支持和幫助。

《龍之谷2》的美術創作就給大家分享到這裏。未來我們將繼續給大家帶來更多Made with Unity的遊戲作品技術分享。