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