ぼっちプログラマのメモ

UE4とかUE5とかについて書いたり書かなかったり。

UE4のDestructible Meshを使ってみる その2

前回の記事からの続き
UE4のDestructible Meshを使ってみる その1(?) - ぼっちプログラマのメモ

自由落下からの破壊…だけではつまらないので、
Destructible Meshに弾を当てて破壊します。

f:id:pafuhana1213:20140731105455g:plain
こんな感じ

方法はたぶん2種類

色々と試した結果、以下の二通りで実現可能です…たぶん。

  • 物理に任せる方法
  • BluePrintのHitイベントを使用する方法

説明には、FPSのテンプレートを使用します。

物理に任せる方法

physics神に全てを任せる方法です。
物理を有効にするだけなので、とても楽ちん。

FPSテンプレートの場合だと、弾のBluePrint (MyProjecttile) 内の
コンポーネントにあるCollisionComponentSimulate Physicsを有効にします。
f:id:pafuhana1213:20140731111623j:plain

以上。これだけ

Hitイベントを使用する方法

↑の方法はとても楽なのですが、物理を有効にしたくない場合は
使うことが出来ません(プレイヤーなど)。
その場合は、BluePrintのHitイベントを使用します。

まず、Hitイベントが発行されるように、コンポーネントにある
CollisionSimulation Generates Hit Eventsを有効にします。

次に、以下の画像のようにノードを組み立てます
f:id:pafuhana1213:20140731113037j:plain

  1. 何かに当たった際に           (イベントHit)
  2. その相手が破壊可能なオブジェクトなら (キャスト)
  3. 相手に対してダメージ1を与える     (Apply Damage)

これでDestructible Meshを破壊することができるのですが、
さらに、破壊後の破片に対しての処理も実装する必要があります…
  (試しに破片に対して撃った際の挙動を比較してください。
   物理版では破片を弾き飛ばしますが、Hitイベント版では破片は動きません)


肝心の実装方法についてですが…まだ分かっていません…ダレカタスケテ!
(分かり次第、追記なり別記事を用意します。中途半端で申し訳ないです…)


Hitイベントは破片でも来ているんだけどなぁ…
Add Impulse系じゃダメなんだよなぁ…何を使えばいいんだろう…