カニキュラム

映画やゲームの紹介。開発の記録も。

【UE4】VRで物体を切断する処理【メモ】

ぷちコンでも使用した処理。個人用の備忘録として残しておく。

VRじゃない環境でのスライスのチュートリアルが沢山あったので助かった。

先駆者に感謝。

1.斬れるオブジェクトを作成

ActorでBPを作成。

プロシージャルメッシュコンポーネントを追加し、スタティックメッシュをアタッチ。

f:id:kanikanio1:20200403235928p:plain

 

プロシージャルメッシュ内、Use Complex as Simple Collisionのチェックは外しておく。

f:id:kanikanio1:20200404000254p:plain

 

スタティックメッシュには斬りたいメッシュを割り当てる。

非表示にしたいのでHidden in Gameにチェックする。

f:id:kanikanio1:20200404000402p:plain

 

イベントグラフを編集する。

f:id:kanikanio1:20200404000514p:plain

 プロシージャルメッシュにスタティックメッシュのコピーを作成するノードらしい。

 

2.ブレードを作成

BP_MotionControllerのHandMeshに「Plane」のスケルタルメッシュコンポーネントをアタッチする。

f:id:kanikanio1:20200403232526p:plain

どうもPlaneじゃないとダメっぽい?

他の形状にしたい場合は、そのアセットにPlaneをアタッチしてPlaneをHidden in Gameをする。

コリジョンプリセットはOverlapAllに。

f:id:kanikanio1:20200403232912j:plain

 

イベントからOnComponentBebinOverlapとOnComponentEndOverlapを追加する。

緑色のプラスマークをクリックすればOK。

f:id:kanikanio1:20200403232806p:plain

3.イベントグラフの編集

先ほど追加したイベントに以下のようにノードを繋ぐ。

f:id:kanikanio1:20200403233204p:plain

プロシージャルメッシュをキャストして、SliceProceduralMeshで切断面のマテリアルを設定していく。

f:id:kanikanio1:20200403233437p:plain

 

画像では切ったメッシュを変数に入れているが、これは必須ではない。

物理を有効化し、放射状の衝撃を与える。

f:id:kanikanio1:20200403234511p:plain

 

4.実行

 

f:id:kanikanio1:20200404003156g:plain

斬れる!

オブジェクト自体に重力を持たせたい場合は、プロシージャルメッシュとスタティックメッシュのSimulatePhysicsをTrueに。