Strange Shift Studio是一家個人獨立游戲工作室,,由Matthieu Fiorilli于2022年在蒙特利爾成立,。
《Chasing the Unseen》是一款關(guān)于攀爬巨型生物并探索異世界環(huán)境的游戲。游戲中的環(huán)境都是用分形數(shù)學(xué)生成的,。作為一名個體游戲開發(fā)者,,我知道開發(fā)這樣一個野心勃勃的項目需要合適的工具,。在這篇技術(shù)博文中,我將概述自己是如何應(yīng)對《Chasing the Unseen》中的這些挑戰(zhàn)的,。
過去幾年,,那些賦予獨立開發(fā)者強大能力的工具取得了長足的進步,最近,實現(xiàn)這類項目終于成為了可能,。感謝Epic和SideFX等公司的不懈努力,,讓任何人都能取得這些強大的工具,這個項目也因此得以實現(xiàn),。
為了完成這個雄心勃勃的項目,,我知道合適的工具是必不可少的,而我正是在虛幻引擎和Houdini相輔相成的關(guān)系中找到了我所需要的東西,。
生物
首先,,我們來看看生物和攀爬系統(tǒng)。
我的生物是在Houdini中使用各種工具制作而成的,。以章魚為例,,我使用了Houdini的傳統(tǒng)工具,以程序化方式為它建模,,然后使用Houdini最近推出的多解算器Vellum進行模擬,。模擬為我?guī)砹朔浅W匀缓土鲿车淖冃巍=酉聛淼奶魬?zhàn)就是將它導(dǎo)入虛幻引擎,,并添加可攀爬功能,。為了完成這項任務(wù),我使用了Dem Bones這款強大的工具,。我在Houdini中的章魚模擬太過復(fù)雜,,幾何體的每個點都有自己的動畫,所以此時,,我不能簡單地將它放到游戲引擎中,。Dem Bones的作用是以程序化方式生成一組骨骼和皮膚,以便使用對游戲引擎友好的數(shù)據(jù)重建模擬,。這樣一來,,章魚的128000個頂點/點就不需要都具備動畫了,我只需確保大約600根骨骼擁有動畫即可,。
使用Dem Bones烘焙的Vellum模擬
然后,,我可以將這只生物導(dǎo)入虛幻引擎,并實時回放,。我在這里使用狀態(tài)機混合了不同的動畫,。基于通過Dem Bones生成的皮膚信息,,我能夠以程序化方式生成用于碰撞的凸包,,然后通過自定義工具將其導(dǎo)入虛幻引擎。
虛幻引擎中的碰撞網(wǎng)格體
我生成了較低分辨率的網(wǎng)格體,,將它導(dǎo)入虛幻引擎,,實現(xiàn)攀爬功能,。為了將角色連接到生物身上,我結(jié)合使用藍圖和C++,,讓攀爬系統(tǒng)能夠使用較低分辨率的網(wǎng)格體,。
使用藍圖和C++的攀爬系統(tǒng)
環(huán)境
在環(huán)境方面,我使用了分形數(shù)學(xué)和其他程序化技術(shù),。分形是一些簡短的數(shù)學(xué)公式,能夠生成無限自我重復(fù)的形狀,。其中最著名的是曼德博集合,。
曼德博集合是以本華·曼德博的姓氏命名的2D分形。在它被發(fā)現(xiàn)的數(shù)年后,,人們又發(fā)現(xiàn)了一個類似的3D版本:曼德爾球,。
這就引出了一個問題,如何將分形添加到游戲中,?通過將Houdini和虛幻引擎結(jié)合起來,,我成功地解決了這個問題。在Houdini中,,我使用Juraj Tomori的畢業(yè)項目“視效分形工具包”生成分形,,然后圍繞它開發(fā)了一套幾何體制備管線,為在虛幻引擎中添加分形做好準(zhǔn)備,。這套管線可用在分形和其他程序化網(wǎng)格體的生成方法中(取決于關(guān)卡),。
為游戲關(guān)卡生成的分形網(wǎng)格體
為了做好準(zhǔn)備,將分形添加到虛幻引擎中,,我必須完成許多不同的任務(wù):去掉非常小的細節(jié),;創(chuàng)建平坦的可行走斜面;將網(wǎng)格體分割成塊,,以便在UE中實現(xiàn)正確的遮蔽,;簡化網(wǎng)格體;生成LOD,、UV和光照貼圖,;等等。這個過程是完全自動化的,,并且經(jīng)過定制,,符合虛幻引擎的要求。
最后,,在完成所有這些過程之后,,我會在虛幻引擎中構(gòu)建關(guān)卡,并使用光照系統(tǒng)烘焙光照貼圖,。由于關(guān)卡被分成了多個部分,,虛幻引擎的遮蔽系統(tǒng)只會繪制我們在攝像機中看到的網(wǎng)格體,,這樣很好。而虛幻引擎的LOD系統(tǒng)會根據(jù)與攝像機的距離,,以我所需的密度繪制網(wǎng)格體,。對于碰撞,我生成了單獨的低分辨率網(wǎng)格體,。
結(jié)束語
我在這里概述了我如何處理游戲中的生物,、攀爬和關(guān)卡。以上就是我在整個游戲開發(fā)中所使用的核心工作流程,,在需要時,,我也可以為每個生物或關(guān)卡引入不同的變體。
為這些項目挑戰(zhàn)想出解決方案非常不容易,,但是作為一名獨立開發(fā)者,,我可以自由、靈活地使用最新工具實現(xiàn)我的目標(biāo),。我希望這篇文章至少能夠在總體上幫助大家了解這個項目的技術(shù)流程,,并對大家有所啟發(fā),讓大家認(rèn)識到現(xiàn)有工具的能力范圍,。
本文轉(zhuǎn)自虛幻引擎官網(wǎng)~