接觸Houdini不久,屬於菜雞系列,看見UOD上西山居的自動化島嶼生成很感興趣,做個筆記,如有書寫和理解錯誤還請大佬扶正。
本篇比較基礎沒有用很複雜的節點(因為複雜的用不明白.......)
首先新建一個 Heightfield節點
根據官方文檔給出的尺寸,修改heightfield的 Size的大小
官方文檔:
然後建一個測試用的Curve節點 ,把曲線上所有點的Y軸強制歸位到0(@P.y =0;),以免操作起來會把點拽飛。然後使用Convert 節點把曲線轉換成Poly 模式。再用Heightfield_maskbyobject節點把 由曲線生成的模型映射到地形的Mask上。
把Curve以外的節點框選打包一下,打包內容既為我們將要製作的HDA文件(打包圖標右上角的黃色小盒子)
製作基礎島嶼地形
製作島嶼上的小山
製作島嶼周圍的地形
合併兩個地形(heightfield_layer)
添加一個可以自定義物體,疊加在地形上,用於控制山體的形狀。
最後,輸出HDA文件並添加相應參數,以便在引擎中進行調節。回到最上級,最開始創建的heightfield節點,單擊右鍵找到CreateDigitalAsset。
可以拖動我們想要的參數到輸出列表。也可以新建變數,把變數賦給我們參數。
當我們想再次操作時可以重新打開這個界面,通過菜單欄Assets,進行編輯和保存。
保存輸出,導入UE4中,確保UE4的Houdini插件已經正確安裝,把地形拖進場景中,調節輸入為曲線輸入(CurveInput)。
拖動曲線創建島嶼生成的區域,最後封閉曲線。
節點解釋參考:
heightfield_maskblur: 節點參數很少 主要有 模糊模式與模糊半徑以及對邊界模糊的處理,可以自己調節試試。
heightfield_distortByNoise: 根據雜訊創建高度場的扭曲
heightfield_pattern: 可以根據形狀擠出,可以創建斜坡。
(RampRemapping 可以根據頂點確定 那個點的高度為多少,可以創建自定義高度比例)
heightfield_resample:
heightfield_maskbyfeature: 根據特徵製作Mask,可以根據地形斜坡(Slop),高度(height),方向(direction),曲率(Curvature),遮擋(Occlusion)生成可定製化的Mask。
heightfield_scatter: 可以生成隨機的點,可以根據不同的模式來生成點。確定點的數量,位置,縮放等參數的調節。
heightfield_noise:提共各種雜訊可以生成各種各樣的山體,以及提高相應的參數,例如高度,雜訊的平鋪,偏移,縮放,迭代次數和粗糙度等。
heightfield_clip:將值限制在某個最小值或最大值直之間,剔除掉一些我們不需要的地方。
heightfield_layer:合併兩個高度場,並可以對被合併高度場進行一些基本操作,偏移,縮放等。
heightfield_project:將3D幾何物體投射到高度場中。