Unreal Engine 4 動態切割模型實現
《合金裝備:復仇》裏面,有一個很有趣的設定,遊戲裏大部分的場景和物件都可以用主角的刀動態切割。
UE4中的ProceduralMeshComponent這個組件可以很容易的就實現這種功能,下面介紹下實現的方法。
準備模型
首先我們準備一個模型。
我做了一個簡單的圓柱體,用來測試。注意需要切割的地方,爲了保證細節,多放點頂點。
爲了能夠動態切割,我們要勾選這個模型的Allow CPUAccess選項。
新建藍圖
新建一個Actor藍圖,爲它添加兩個組件,一個是StaticMeshComponent,一個是ProceduralMeshComponent,在Construct Script中,將StaticMesh的模型數據拷貝到ProceduralMesh中去。
調整ProceduralMesh參數
出於優化的目的,ProceduralMeshComponent默認勾選了UseComplexAs SimpleCollision這個屬性,爲了實現我們切割下來的能正常的進行物理模擬,需要把這個屬性給取消勾選。
實現切割
SliceProceduralMesh實現模型的切割。說下幾個參數:
* PlanePosition是切割平面的位置
* PlaneNormal 是切割平面的法線,也就是朝向
* Create Other Half 切割下來的部分,是否創建新的ProceduralMesh
* Cap Option No Cap,切面不縫合,Create New Section For Cap; 縫合,使用自定義的材質來貼補縫合的面; Use Last Section for Cap,使用模型的材質來貼補縫合的面。
具體效果如下: