使用Unity引擎打造賽博朋克之城!CIGA Game Jam 2019 48小時獨立遊戲開發挑戰

遊資網發表於2019-07-16
使用Unity引擎打造賽博朋克之城!CIGA Game Jam 2019 48小時獨立遊戲開發挑戰

一年一度的CIGA Game Jam 48小時極限開發挑戰賽結束了,作為開發獨立遊戲的愛好者和玩家的我們在這次活動中紛紛展現出了自己獨特的才華。同樣作為開發者中的一員,我們團隊參與了這次比賽,而這次,我們開發了一款賽博朋克風格的,以敘事為主的互動電影型遊戲:《MOOD》。

在遊戲中,主角將以第一人稱的形式,扮演一名缺少能量核心的機器人,經過一系列冒險故事最終收穫到自己的能量核心。

故事的開場是一段CG,簡單的展示了一下主角如何拿到能量核心,以及其生活的城市環境,隨後玩家將主角與酒吧老闆溝通,得到門票,進入酒吧,並破譯了酒吧內的加密機器,獲得了自己的核心,由於時間關係,故事非常簡單無聊,因為我們基本將大部分的精力都放到了畫面表現上,因此在本篇文章中,我們將著重介紹在畫面的表現方面所做的工作,以及一些或小或拙劣的技巧。

我們將從4個方面詳細闡述畫面的渲染與製作方法,分別是:

1.引擎與工具的選擇

2.渲染管線的準備

3.場景製作

4.渲染工具的使用流程

1.引擎與工具的選擇:在遊戲引擎上,因為對畫面表現有極高的需求,我們果斷的選擇了Unity3D,其渲染模組的靈活性,可定製性以及執行效率,效果表現等方面與其他商業引擎相比都是遠遠領先的,我們在最終的Demo階段依然能夠在GTX1070上達到每秒百幀以上,這少不了引擎本身的雄厚基礎。為了儘可能提高美術製作效率,我們使用完全基於物理的製作流程,因此Substance Painter,3DSMax等工具的選擇也在情理之中。

2.渲染管線的準備:負責美術開發的小夥伴希望深層的定製渲染流程,因此我們使用了自己獨立研發的渲染管線MPipeline來完成渲染任務,而非引擎提供的HDRP。實際上HDRP在許多方面並沒有辦法滿足我們的渲染需求,而MPipeline的陰影繪製效能,螢幕空間反射質量,多種光照模型的支援,巨量貼花的支援等方面均比HDRP表現更好,由於幾個月之前我們才得知有這麼一個活動,因此管線的開發時間也非常急促,所以有許多功能現在仍然在開發階段,雖然是我們內部自用的管線,但是這裡依然要給出Github下載地址(文件暫時也沒能寫完):

https://link.zhihu.com/?target=https%3A//github.com/MaxwellGengYF/Unity-GPU-Driven-Pipeline

3.場景製作:場景的製作是整個遊戲的大頭,在確定賽博朋克主題之後,我們迅速頭腦風暴出賽博朋克風最顯著最易被抓住的美術風格和特點,如“不分晝夜”“光汙染”“持續下雨”“奇怪的交通工具”“人類與城市機械化”“高度發達的科技與老舊的城市設施鮮明對比”,所以在遊戲CG一開始這種趨向就已經很明顯了:

使用Unity引擎打造賽博朋克之城!CIGA Game Jam 2019 48小時獨立遊戲開發挑戰
破舊的金屬樓梯,霓虹燈,不停的下雨,潮溼積水的地面,整個世界被濃霧籠罩,似乎沒有晝夜之分,太陽也是不正常的藍色

使用Unity引擎打造賽博朋克之城!CIGA Game Jam 2019 48小時獨立遊戲開發挑戰
充滿未來感與科技感的汽車隧道,偶爾經過的懸浮車輛,閃爍的霓虹燈

走進巷子中,凌亂的幫派塗鴉,寥寥幾盞霓虹燈也沒辦法照亮角落,與外邊的燈紅酒綠形成鮮明的對比,這時體積散射的霧效起到了關鍵性作用,霧形成一層天然的色彩屏障,降低了遠處霓虹燈的對比度,使玩家很容易就形成“我與那片樓是隔開的”這樣的感官體驗,進一步深化了賽博朋克的主題效果,即科技高度的發達與生活水平低劣的強烈對比感與隔絕感:

使用Unity引擎打造賽博朋克之城!CIGA Game Jam 2019 48小時獨立遊戲開發挑戰

室內秉承了室外的渲染效果,光與暗在狹小的空間內顯得對比更加強烈,美術人員刻意的調整了光照的間接漫反射引數,配合鏡頭後期的特效表現出了這種效果。

使用Unity引擎打造賽博朋克之城!CIGA Game Jam 2019 48小時獨立遊戲開發挑戰

在進入到酒吧中,走廊上的燈帶將科技感推到了極致,甚至有了一種迷幻感在其中:

使用Unity引擎打造賽博朋克之城!CIGA Game Jam 2019 48小時獨立遊戲開發挑戰

最後就是室內場景了,室內場景的渲染使用藍紫色冷色調的面光源,配合暖色調的暖光源,再目的在於引誘玩家去吧檯進行互動,這是互動電影中常用的打光技巧,並沒有太多奇技淫巧:

使用Unity引擎打造賽博朋克之城!CIGA Game Jam 2019 48小時獨立遊戲開發挑戰
較為明顯的左亮右暗左暖右冷

使用Unity引擎打造賽博朋克之城!CIGA Game Jam 2019 48小時獨立遊戲開發挑戰
為了避免讓場景太過於死黑,需要在最黑的邊緣處加上一些燈帶之類進行點亮

最後互動特效依賴圖形開發人員手擼Compute Shader完成(因為確實沒做視覺化編輯器):

使用Unity引擎打造賽博朋克之城!CIGA Game Jam 2019 48小時獨立遊戲開發挑戰

當然,筆者作為團隊中的TA,對場景設計的理解有限,更詳細的內容還需要請出我們專業的美術Lute Li進行講解。

如果場景素材的製作是保證美術表現下限的“錦”,那渲染工具的運用則是錦上添花。因此我們將詳細闡述在這款遊戲中渲染工具的使用流程。

MPipeline將渲染的每一部分分別提供給了美術人員,並且每一部分可拆卸可組裝,能夠在多人協作中合併,這些部分包括但不限於貼花,體積散射,螢幕空間反射,抗鋸齒,景深,自動曝光,色彩校正等,接下來我們將逐一介紹在開發場景時是如何使用這些工具達到目的的。

從截圖中不難看出,大量的貼花效果被用來表現幫派塗鴉,我們將需要用到的貼花圖片儲存為數張Atlas,並以Render Texture的形式載入,實現了類似Virtual Texture的載入方式,這樣貼花可以實現動態載入等各種奇妙需求,其操作介面對於地編人員也更加友好:

使用Unity引擎打造賽博朋克之城!CIGA Game Jam 2019 48小時獨立遊戲開發挑戰

在體積霧的渲染上,我們必須嘗試使美術人員理解霧效物理渲染的含義,即霧的存在是沒有所謂“亮度”的,相反唯一能決定霧效果的是濃度和光源的亮度,所以在製作時每一塊霧效以方塊的體積形狀擺放在場景中

使用Unity引擎打造賽博朋克之城!CIGA Game Jam 2019 48小時獨立遊戲開發挑戰

使用Unity引擎打造賽博朋克之城!CIGA Game Jam 2019 48小時獨立遊戲開發挑戰

在反射方面,我們選擇使用Stochastic Screen Space Reflection,這是一種物理正確的反射,為了追求物理正確,其在高速運動的攝像頭下表現的並不優秀,好在我們遊戲中攝像頭高速運動的情況並不太多,所以這確實是目前看來最優的選擇:

使用Unity引擎打造賽博朋克之城!CIGA Game Jam 2019 48小時獨立遊戲開發挑戰

對於其他型別的後處理,MPipeline相容了Post-Processing Volume v2的設定介面,因此原生的後處理效果基本都獲得了支援。

材質總是最直觀表現畫面質量的一點,因此我們總要在材質上完成大量的工作,使用Forward+渲染的材質,不僅對多光源支援良好,同樣可以提供數種光照模型供美術人員選擇使用,對於光照模型我們選擇直接照搬Unreal Engine 4提供的4種實現,分別是Default_Lit,Clearcoat_Lit,Skin_Lit,Cloth Cotton,配合基於物理的光照單位,能夠為不同種類的材質提供多樣化的支援:

使用Unity引擎打造賽博朋克之城!CIGA Game Jam 2019 48小時獨立遊戲開發挑戰
MPipeline支援的預設材質

在遊戲中也可以看到一些油漆桶有明顯的Clearcoat材質效果,這也是常被用在金屬或大理石+油漆材質上的效果:

使用Unity引擎打造賽博朋克之城!CIGA Game Jam 2019 48小時獨立遊戲開發挑戰

使用Unity引擎打造賽博朋克之城!CIGA Game Jam 2019 48小時獨立遊戲開發挑戰

總結:

個人認為,Game Jam這樣短時間高強度的開發,是對於開發者一個很好的鍛鍊,俗話講“是騾子是馬拉出來遛一遛”,要在短短48小時內將遊戲有模有樣的開發出來,這對於程式框架,美術生產以及引擎工具鏈等都是一個巨大的挑戰,我們在這次活動中不僅展現出過去的一年裡研究學習的結果,同樣也發現了許多新的問題,相信在未來的活動和比賽中,中我們可以帶來比這次作品劇情更加飽滿,場面更加壯觀,細節更加用心的遊戲!

下載地址:https://www.youxibd.com/gamejam/detail/200

作者:MaxwellGeng
知乎專欄:https://zhuanlan.zhihu.com/p/72818693

相關文章