熱門
使用Unity制作類似“三維彈球”的解謎類游戲大作
當鐵門打開,一顆表面銹跡斑斑的鐵球滾落下來,,等待它的將是一次次的洗禮,。滾燙的鋼水,寒冷的冰凍,,一道道工序完成加工之后,,這枚鐵球?qū)⒊蔀楹教炱魃系囊幻蛾P鍵零件。
這是最近使用Unity制作的一款3D 寫實類解謎游戲《滾滾人生》當中的一個關卡,,根據(jù)游戲設定,,玩家要操縱鐵球,經(jīng)過有鋼水的路面,、木板,、冷凍、電磁機等機關通道,,到達終點,,完成游戲中設定的“加工”工藝,最終經(jīng)過去銹,、拋光,、充能等關卡后最終通關。
令人印象深刻的是,,這款看起來神似微軟經(jīng)典游戲《三維彈球》的游戲 Demo 雖然只有一個關卡,,但游戲中的每一個模型動畫的塑造已經(jīng)可以媲美很多同類型的游戲大作。
特別是場景中的機械臂模型,,鐵球通過鋼水時表面顏色的變化,,以及表面保持高溫的鐵球在木板上滾動讓其消融的動畫都栩栩如生。
當然這歸功于美術技術芮士辰同學的設計,。
“當我們確定了《滾滾人生》是一部寫實工業(yè)風格的游戲后,,我就找了大量類似的參考資料,包括現(xiàn)有的工廠機械圖片,,已經(jīng)做好的模型機械圖片等等”,。來自Unity集訓營的芮同學說道。
芮同學參考的美術資料中不乏近年來的 3A 史詩大作,,可見《滾滾人生》一開始就要站在最優(yōu)秀作品的肩膀上,,在建模方面追求精益求精。
芮同學說,,作為一位擁有經(jīng)驗的建模師,,他已經(jīng)對場景搭建相當熟悉了,。用 Maya 模型 Mudbox 制作貼圖,《滾滾人生》對基礎模型搭建和貼圖制作沒有太復雜的操作,,芮同學還用 Unity 自帶的粒子系統(tǒng)添加了些許特效,。
在模型數(shù)據(jù)資產(chǎn)做好后,下一步就是把它們導入 Unity 中制作模型渲染,。眾所周知高清渲染管線 HDRP是 Unity 引擎中效果最強大的可編程渲染管線,,其強大的性能足以渲染游戲中的每一個細節(jié)。
“用Unity HDRP渲染后的場景看上去更有動態(tài)感,,而其中的制作流程也和我之前接觸的基于物理燈光的渲染器(mental ray ,、arnold、VR渲染器)很類似,,這也讓我很容易上手”,。
“在光照方面,導入模型后默認天光,,先設置一個環(huán)境光,,從窗外引入物理天光,然后手動打光照亮場景中的主要物體,,之后在全局光下用 AO 和反射探針給場景增加一個比較大的反差,。最后經(jīng)過后處理給整個場景進行校色,并通過添加場景霧氣效果拉開前后關系與色彩對比,?!避峭瑢W解釋道。
而材質(zhì)部分,,HDRP 提供的 Lit 材質(zhì)球可以模擬非常多的材質(zhì),。“場景中很大部分模型都是金屬,、硬表面材質(zhì),,Unity 的 HDRP 中的材質(zhì)球可以模擬大部分的基礎材質(zhì),有些地方還使用了層材質(zhì)來模擬多種材質(zhì)混合在一起的效果,?!避峭瑢W說道。
場景方面,,芮同學還增加了一些貼花效果來豐富場景中的特殊部分,,比如灼燒的鐵皮、冰霜區(qū)域等,,同時編寫了一些帶有特定動態(tài)效果的 shader graph 貼花,并用腳本來控制它們的動態(tài)效果,。
負責游戲策劃的姜子健同學專門給小球設計了發(fā)光時的變化效果,,其中改變小球的是 Emisson color,,他們認為小球不管是變藍還是變紅都有一種發(fā)光的效果,本來是想用 lerp 顏色模式處理,,后來發(fā)現(xiàn)達不到指定的顏色效果就改用了moveforword 顏色模式進行了處理,。
只是大量的模型和渲染的疊加也會影響到游戲的運行,因此芮同學在游戲性能和畫面效果之間做了相應的妥協(xié),,比如在模型精度上本著能省就省的原則,,制作模型時芮同學就比較少使用模型細分、倒角,、卡線等功能,,也沒有使用高低模烘焙手段來制作貼圖,效果的呈現(xiàn)大多以各個通道的材質(zhì)貼圖為主,。在渲染方面,,芮同學場景渲染上使用了大量的燈光烘焙,但考慮到后處理的多項效果對性能的要求頗高,,他最終砍掉了鏡頭景深,、燈光霧、運動模糊,、光線追蹤等畫面效果,。
逼真的建模也給游戲的軟件程序和 UI 動畫的實現(xiàn)帶來挑戰(zhàn)。
在測試游戲的時候,,Unity 編輯器中運行的木板消融動畫符合預期,,但發(fā)布游戲程序之后發(fā)現(xiàn)居然出錯了。經(jīng)過多次調(diào)整之后依然沒有成功,,在制作工期緊張的情況下,,制作團隊只能重新制作一個新的 Shader 并測試提交。
再比如模板移動的動畫又遇到一個奇怪的 bug,,之前編寫的腳本在 120 赫茲刷新率的電腦上可以正常運行,,但到了 60 赫茲刷新率的電腦上則無法順利運行,模板無法到達指定的地點,。
另外還有一些奇怪的 bug,,比如小球模型移動時無法爬坡的問題,團隊也著實找了不少教程來處理這些?bug,。但這樣頻繁出現(xiàn)的 bug 問題,,勢必會影響整個團隊的開發(fā)效率。
為了減少游戲程序開發(fā)中 bug 的出現(xiàn)之后對其他成員的影響,,《滾滾人生》使用了game Framework 游戲框架,。它是基于 Unity 引擎開發(fā)的一款開源游戲框架,擁有完善的擴展模塊,包括場景,、文件,、聲音、網(wǎng)絡與對象池,。方便開發(fā)者對開發(fā)資源進行管理“雖然目前在開發(fā)上用到的不是特別多,,但這個框架可以減少程序 bug 問題的出現(xiàn),可以讓團隊的開發(fā)效率有所提升,?!?/p>
除了 game Framework 游戲框架,團隊還引入了 Unity 自帶的代碼管理工具Plastic hub,,“它為每個參與游戲制作的團隊成員都建立了分支,,比如像我們團隊,有 5 個分支,,你可以看到上面記錄了 52 次的提交合并工作,。”陳同學在和團隊成員的協(xié)作中體會到了 Unity 引擎帶來的便利,,他稱贊道:“對于我們多程序開發(fā)人員包括美術技術來說 Plastic hub 是很好的代碼管理工具,。”
當然我們現(xiàn)在見到的游戲這只是一個教學關,,要想把鐵球變成真正的零件,,還需要經(jīng)過去銹、拋光,、充能等關卡,,第二關的游戲場景將會是教學關的三倍,小球也將經(jīng)歷更多的考驗,,隨著關卡難度的進一步提升,,鐵球需要經(jīng)過的機關會越來越多。
游戲還會加入一些聯(lián)動開關和變形內(nèi)容,,比如水+電就會觸發(fā)電擊開關,,熱量+水會觸發(fā)升溫開關。小球還會在原片和球形之間轉(zhuǎn)換,,玩家需要根據(jù)游戲通關的具體要求觸發(fā)聯(lián)動機關,,或者變成相應的形狀。
相信聯(lián)動機制和球形狀態(tài)變換的加入,,會使《滾滾人生》的玩法會變得更有趣,,它不在限于三維彈球式的單一通關,讓考究的工業(yè)美術設計變得更有意義,,就像這款游戲最初的意義:一個普普通通的鐵球,,也能通過改變成為尖端材料,。
作為游戲愛好者的你,是不是也想做出這樣的改變,,像《滾滾人生》團隊一樣,,做出自己心儀的游戲。
?
電話:010-50951355 傳真:010-50951352 郵箱:[email protected] ,;點擊查看區(qū)域負責人電話
手機:13811546370 / 13720091697 / 13720096040 / 13811548270 /
13811981522 / 18600440988 /13810279720 /13581546145