使用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一開始這種趨向就已經很明顯了:
破舊的金屬樓梯,霓虹燈,不停的下雨,潮溼積水的地面,整個世界被濃霧籠罩,似乎沒有晝夜之分,太陽也是不正常的藍色
充滿未來感與科技感的汽車隧道,偶爾經過的懸浮車輛,閃爍的霓虹燈
走進巷子中,凌亂的幫派塗鴉,寥寥幾盞霓虹燈也沒辦法照亮角落,與外邊的燈紅酒綠形成鮮明的對比,這時體積散射的霧效起到了關鍵性作用,霧形成一層天然的色彩屏障,降低了遠處霓虹燈的對比度,使玩家很容易就形成“我與那片樓是隔開的”這樣的感官體驗,進一步深化了賽博朋克的主題效果,即科技高度的發達與生活水平低劣的強烈對比感與隔絕感:
室內秉承了室外的渲染效果,光與暗在狹小的空間內顯得對比更加強烈,美術人員刻意的調整了光照的間接漫反射引數,配合鏡頭後期的特效表現出了這種效果。
在進入到酒吧中,走廊上的燈帶將科技感推到了極致,甚至有了一種迷幻感在其中:
最後就是室內場景了,室內場景的渲染使用藍紫色冷色調的面光源,配合暖色調的暖光源,再目的在於引誘玩家去吧檯進行互動,這是互動電影中常用的打光技巧,並沒有太多奇技淫巧:
較為明顯的左亮右暗左暖右冷
為了避免讓場景太過於死黑,需要在最黑的邊緣處加上一些燈帶之類進行點亮
最後互動特效依賴圖形開發人員手擼Compute Shader完成(因為確實沒做視覺化編輯器):
當然,筆者作為團隊中的TA,對場景設計的理解有限,更詳細的內容還需要請出我們專業的美術Lute Li進行講解。
如果場景素材的製作是保證美術表現下限的“錦”,那渲染工具的運用則是錦上添花。因此我們將詳細闡述在這款遊戲中渲染工具的使用流程。
MPipeline將渲染的每一部分分別提供給了美術人員,並且每一部分可拆卸可組裝,能夠在多人協作中合併,這些部分包括但不限於貼花,體積散射,螢幕空間反射,抗鋸齒,景深,自動曝光,色彩校正等,接下來我們將逐一介紹在開發場景時是如何使用這些工具達到目的的。
從截圖中不難看出,大量的貼花效果被用來表現幫派塗鴉,我們將需要用到的貼花圖片儲存為數張Atlas,並以Render Texture的形式載入,實現了類似Virtual Texture的載入方式,這樣貼花可以實現動態載入等各種奇妙需求,其操作介面對於地編人員也更加友好:
在體積霧的渲染上,我們必須嘗試使美術人員理解霧效物理渲染的含義,即霧的存在是沒有所謂“亮度”的,相反唯一能決定霧效果的是濃度和光源的亮度,所以在製作時每一塊霧效以方塊的體積形狀擺放在場景中
在反射方面,我們選擇使用Stochastic Screen Space Reflection,這是一種物理正確的反射,為了追求物理正確,其在高速運動的攝像頭下表現的並不優秀,好在我們遊戲中攝像頭高速運動的情況並不太多,所以這確實是目前看來最優的選擇:
對於其他型別的後處理,MPipeline相容了Post-Processing Volume v2的設定介面,因此原生的後處理效果基本都獲得了支援。
材質總是最直觀表現畫面質量的一點,因此我們總要在材質上完成大量的工作,使用Forward+渲染的材質,不僅對多光源支援良好,同樣可以提供數種光照模型供美術人員選擇使用,對於光照模型我們選擇直接照搬Unreal Engine 4提供的4種實現,分別是Default_Lit,Clearcoat_Lit,Skin_Lit,Cloth Cotton,配合基於物理的光照單位,能夠為不同種類的材質提供多樣化的支援:
MPipeline支援的預設材質
在遊戲中也可以看到一些油漆桶有明顯的Clearcoat材質效果,這也是常被用在金屬或大理石+油漆材質上的效果:
總結:
個人認為,Game Jam這樣短時間高強度的開發,是對於開發者一個很好的鍛鍊,俗話講“是騾子是馬拉出來遛一遛”,要在短短48小時內將遊戲有模有樣的開發出來,這對於程式框架,美術生產以及引擎工具鏈等都是一個巨大的挑戰,我們在這次活動中不僅展現出過去的一年裡研究學習的結果,同樣也發現了許多新的問題,相信在未來的活動和比賽中,中我們可以帶來比這次作品劇情更加飽滿,場面更加壯觀,細節更加用心的遊戲!
下載地址:https://www.youxibd.com/gamejam/detail/200
作者:MaxwellGeng
知乎專欄:https://zhuanlan.zhihu.com/p/72818693
相關文章
- 成為創意醬人蔘加一場48小時遊戲極限開發挑戰!2019 CiGA Game Jam報名開始!遊戲GAM
- 報名開始!48小時遊戲極限開發活動2020 CiGA Game Jam線上進行!遊戲GAM
- 獨立開發挑戰
- 48小時全球遊戲極限開發Global Game Jam 2021中國站報名開始!遊戲GAM
- Unity遊戲引擎向獨立Android和iOS開發者免費Unity遊戲引擎AndroidiOS
- 遊戲開發者:過半移動遊戲開發者使用Unity引擎遊戲開發Unity
- 3.week 獨立開發挑戰第三週
- [譯]使用MVI打造響應式APP(四):獨立性UI元件APPUI元件
- WebBrowser獨立IE使用代理Web
- 4.week 獨立開發挑戰第四周及一個月記錄
- 助力遊戲夢!2019網易遊戲高校MINI-GAME挑戰賽報名開啟!遊戲GAM
- Global Game Jam 2016廈門站 暨金海豚遊戲開發大賽 報名正式開啟GAM遊戲開發
- GAMEHACK 2021,48 小時遊戲開發大賽報名通道開啟GAM遊戲開發
- 硬之城攜手阿里雲Serverless應用引擎(SAE)打造低程式碼平臺阿里Server
- 對話遊戲開發平臺Unity高管:疫情下的遊戲產業挑戰與機遇並存遊戲開發Unity產業
- 從模組到獨立發行的佳作,《遺忘之城》6年來經歷了什麼
- 40策略時獨立需求的衝減
- 微信小程式系統獨立原始碼部署微信小程式原始碼
- 這個獨立團隊用虛幻引擎5打造休閒策略遊戲《Let Them Trade》遊戲
- 菜鳥直播挑戰:1小時創作多人遊戲遊戲
- 最佳 Game Jam 遊戲之一《消費主義》開發總結!GAM遊戲
- webgl未使用獨立顯示卡報告Web
- 使用前端方式挑戰 Chrome 小恐龍遊戲高分前端Chrome遊戲
- 挑戰30分鐘寫個使用者登入註冊系統(前端)- 我的全棧獨立開發日記前端全棧
- 時尚衣裙外貿獨立站搭建(一)
- 獨立工作流引擎(IWF)越來越被市場看好
- Unity3D 2D實戰遊戲開發Unity3D遊戲開發
- AI實戰 | 使用元器打造浪漫儀式小管家AI
- webgl未使用獨立顯示卡報告2Web
- 互斥與獨立
- 天翼雲實時雲渲染,助力打造世界VR產業大會雲上之城VR產業
- 遊戲開發者2019年最後一波福利:CiGA開發者大會幹貨回顧遊戲開發
- Unity Network 使用小結Unity
- 獨立站運營——獨立站的3種搭建方式
- [極客大挑戰 2019]HardSQLSQL
- [極客大挑戰 2019]BabySQLSQL
- [極客大挑戰 2019]Havefun
- [極客大挑戰 2019]Knife