BLOGブログ

2017.12.16UE4/Mesh

[UE4] 手軽にオブジェクトを破壊する


今回は4.18からひっそりとプラグインに変更されていた「Destructible Mesh」を使って
簡単に、触れると爆発する岩を作りたいと思います。

 

1.準備

New ProjectからThird Personを使用します。
4.18からは初めに「Destructible Mesh」のプラグインを有効にする必要があります。


「Edit」から「Plugins」を選択。


「Apex Destruction」の「Endbled」にチェックを入れて「Restart Now」で再起動させます。
これで「Destructible Mesh」のプラグインが有効になりました。

使用するアセットは「StarterContent」から
1.「SM_Rock」  ←岩
2.「P_Explosion」 ←爆発エフェクト
3.「P_Steam_Lit」 ←爆発後の煙エフェクト
この3つで作成していきます。

 

2.Destructible Meshの作成


Static Mesh(今回はSM_Rock)を右クリックし、コンテキストメニューから「Create Destructible Mesh」を選択します。


すると「SM_Rock_DM」が作成されるので開きましょう。


①「Enable Impact Damage」にチェックを入れ、接触時に破壊されるようにします。

②「Voronoi」にある「Call Site Count」の数値を変えると破壊時の破片数を変更出来ます。

③「Fracture Mesh」をクリック、④「Explode Amount」のスライダーで壊れる様子を確認できます。


「Destrucible Settings」の「Skeletal Mesh」内で破片の内側にもマテリアルをセットします。

これで設定は終わりです。
次にエフェクトを付けてみましょう。

 

3.Buleprint Actor の作成と、破壊時のエフェクト設定


右クリックしてBlueprint Classを選択。


Classは「Actor」を選択します。


名前を入力して「BP_Rock」を作成しました。


作成した「BP_Rock」を開き、「Compnents」に「SM_Rock_DM」を入れておきます。

次にBlueprintで接触時の処理を作成します。


【破壊時のイベントをバインド】
ゲームプレイ開始時に破壊された時に発生するイベントを取得するようにします。

・Event BeginPlay
→ゲームプレイ開始にイベントが実行されます。
・Bind Event to OnComponentFracture
→「Destructible Mesh」の破壊イベントをカスタムイベントから発行されるようにします。
※ターゲットはSM_Rock_DMを指定しています。

【接触】
・CustomEvent_0
→破壊時のイベントが発行されます。

【爆発・煙エフェクト】
・Spawn Emitter Attached
→指定したComponentの場所にエフェクトを発生させます。

パラメータ
・Emitter Template
→エフェクトの指定
ここに最初に選んだ爆発と煙エフェクト「P_Explosion」「P_Steam_Lit」を指定します。

・Attach to Component
→指定するComponent(SM_Rock_DM)

・Location、Rotation、Scaleの値を入力することで、エフェクトの座標、角度、スケールを指定できます。

・Auto Destroy
→自動でエフェクトを消すか指定できます。

これでエフェクトの設定ができました。

レベルに「BP_Rock」を配置して試してみましょう。

派手に壊れました!

この様に「Destructible Mesh」を使用することで簡単に破壊することができます。
まだお試しでない方は是非やって見てください。気持ちいい!