完美動力首頁 > 技術分享 >
Houdini | 那些唯美的游戲場景是如何制作的?
最近幾年國外的開放大世界游戲的不斷推出,背后支撐這種游戲場景開發的程序化技術也被越來越多的國內游戲開發者所了解,特別是Houdini技術逐漸被國內各游戲制作公司了解和接受。
在游戲開發過程中,對于場景的制作要求越來越高,區域也較廣闊,至少是4×4公里的面積,還要包含很多的樹木等障礙物,密集的草地,道路,豐富的建筑群,建筑里面還要有玩家要尋找的武器、道具等———這就就導致了面臨的幾個綜合性問題:
巨大的模型工作量、大量需要手動進行編輯的工作、巨大的模型量導致游戲包體的膨脹,移動端渲染變慢、內存會有很大壓力,意味著不可能把非常豐富的資源全部加載到場景里面。
最好的解決辦法就是模塊化方案。這幾種問題都可以通過Houdini軟件的程序化功能,從而得到很好的解決。
程序化技術的價值不僅在于加速了美術內容生成,同時加速了串聯美術、策劃以及程序的整個流程,創造了游戲世界開發更靈活的迭代方式。
程序化生成,這個技術主要還是依賴Houdini軟件。通過輸入一些簡單線條、或者是多邊形、或者是一些參數,就可以根據預先設定好的處理流程的資產,得到最終的模型資源。管巖石峭壁,還是房屋或者道路河流、甚至一個關卡,都可以直接生成,只需要進行簡單的參數調整,就可以得到不同的效果,而且這種方式是是可逆化的,也就是說,哪里覺得不合適直接就可以進行修改,方便快捷。
我們可以通過資產HDA里面的參數調節得到不一樣形態的模型(圖一、圖二),也可以直接通過參數來控制模型的數量變化(圖三、圖四)。

圖一


圖二


圖三


圖四

1、地形系統
Houdini中的程序化地形生成可以快速獲得可用于游戲引擎的逼真地形地貌資產。主要通過高度場來快速迭代,添加噪波進行變形模擬。
地形數據生成主要來源有以下兩個方面:
在Houdini中基于Heightmap的數據;
游戲編輯期中輸出的2D Mask數據。
經過仔細調節,得到最終需要的形態。
2、以點云為驅動的程序化技術
以點云為驅動的程序化技術,融合Houdini與點云系統,實現產品的高效迭代。
一座建筑的組件是20-30個,我們可以先通過點云組織位置信息,每個點實際上是一個建筑模塊,把建筑模塊和這些點云信息組織完成之后在做細化的替換。
一座樓房也是一樣,如果想改變樓層、大小,只需要調節參數即可。如模型量占用內存過大,也可以優化縮減每個單元模型的面數、貼圖的使用精度等,這樣就給予了我們場景非常便利的優化條件。
通過這種方式,我們整個游戲場景就是一些點云組成。如樹、植被、建筑包括所有的道路都是點云構成,這些點云導入虛幻引擎或者Unity引擎里面,通過實際化渲染,一個批次就可以全部渲染完。優化起來直接調節參數就可以。
總結一下,程序化技術其實是以點云為驅動的程序化技術。正是因為有點云的組織結構,所有的操作、所有的變化是可以通過一個Excel表就知道加了什么、減了什么,也可以通過分析Excel表或者數據表的格式,知道某個單位內的美術資源量到底消耗了多少。也是通過這種方式才有可能把非常大密度的建筑或者社區手機平臺上渲染出來。
Houdini確實是很好流程化軟件。當你的制作人員沒有辦法支持到項目的需求,項目又想在某個點上能夠有自己的突破或者是爆發的時候,那么Houdini確實是一個非常方便的工具。因為只要有策劃、只要有美術,它自己就可以搞定事情,不需要程序做過多的干預。