ue4 用武器切割物體.

我們這裏使用UE4自帶的第三人稱的模板開始我們的遊戲。

切割物體嘛,所以這裏我們需要一把武器和人物的武器攻擊動畫

武器我們可以從官方商城的免費資源獲得:

 

人物攻擊動畫我們可以從下面這個網站獲得,這裏面有各種人物動畫和模型,完全免費,業界良心啊,就是可能網站比較卡:

https://www.mixamo.com

隨便找一個你喜歡的攻擊動畫,下載下來,這裏我選這個: Sword And Shield Slash on ely_k_atienza

然後將動畫重定向到官方人物身上(關於如何重定向動畫可以看這裏:https://www.youtube.com/watch?v=xy9aLbZLdeA&list=PLfWCacrXuIS-EZGldfemhkkfQwPFhAYXd&index=3 附送免費chrome vpn插件: https://www.windmillvpn.net/

 

首先我們設置人物:

 

打開官方人物的骨骼,然後預覽我們的攻擊動畫。在手部骨骼上加入武器槽位和我們需要預覽的武器,調整武器位置直到動畫表現良好爲止。

之後我們需要在我們的攻擊動畫中,加入真正攻擊開始與結束的通知,同時可以修改動畫爲根節點動畫,防止播放動畫時,還能移動:

然後使用攻擊動畫創建動畫蒙太奇

 

修改ThridPersonCharacter藍圖,給人物加入武器:

需要修改武器的碰撞屬性,將碰撞預設值設置爲OverlapAll,也建議將骨架網格體的碰撞也設置爲OverlapAll,防止肢體對物理模擬物體碰撞導致物體突然飛了。。。

 

修改項目中的輸入綁定,添加攻擊綁定按鍵:

然後在ThridPersonCharacter藍圖中,加入攻擊按鍵的響應:播放攻擊動畫蒙太奇,並在完成和被打斷時,設置isAttacking變量爲false,並清空已重疊過的切割組件。

同時修改ThirdPerson_AnimBP 中的動畫圖標,加入播放蒙太奇的插槽:

做完上面的一系列操作,我們就可以看到按攻擊鍵是,播放攻擊動畫的效果了。

 

 

然後我們需要設置進行切割的物體:

切割物體,我們需要用到一個組件:ProceduralMesh(也即是程序化的網格體生成組件),該組件可以讓我們根據需要自己生成需要的網格體。其中有一個便捷的方法就是可以對當前程序化生成的網格體進行切分操作

我們創建一個派生自Actor的藍圖,隨便起個名字,這裏我就用SplitActor表示,然後添加一個ProceduralMesh組件作爲根組件

這裏我們需要一個StaticMeshComponent用來生成ProceduralMesh用的,生成完以後就不再需要了。

我們可以在構建腳本中設置如下:

 

然後我們設置ProceduralMesh開啓物理模擬,同時將Use Complex as Simple Collision設置爲false(因爲當設置爲true時,物理模擬不會生效,具體請看 http://api.unrealengine.com/CHN/Engine/Physics/SimpleVsComplex/index.html)。

ProceduralMesh只接收碰撞凸包,不接受盒體,膠囊體,球體簡化碰撞,所以我們需要檢查一下用來切割的mesh的碰撞信息,如果Convex Elements是空的,表示沒有設置凸包碰撞,同時如果需要在遊戲運行中切割網格體,則需要將網格體的 Allow CPUAccess 設置爲true

然後我們設置武器攻擊時對物體進行切割的一些設置:

在ThirdPersonCharacter 中,添加武器的BeginOverlap函數,爲了表現切割效果,加入了一定的衝力:

其中最主要的就是用到了下面這個函數

如果CreateOtherHalf不是true,那麼只會生成一半網格體,而不是切割成兩部分。

Cap Option控制切割面的生成信息。分別是沒有切割面,用cap Material 材質生成切割面,和使用原有材質生成切割面。

 

基本是執行完上面的設置,差不多就可以看到切割物體的效果了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章