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