ヒマがあるならゲームつくってね

こんなとこ見てないでゲームをつくろう

UE4:BPからDestructibleActorにダメージを与えて壊す。

DestructibleActorを外から壊す。

  • DestructibleActorにDamageを与えて壊すときは、Destructible(Component)用のApplyDamageをつかうと壊せた。
  • 厚みのあるメッシュの場合、ApplayDamageのHitLocationの位置によっては壊せなかった。

HitLocationをうまくメッシュのポリゴンの付近に設定しないと壊れないのかもしれない。厚みのあるメッシュの場合は、ApplayRadiusDamageでダメージエリアをメッシュで囲うことで確実に壊せた。

  • Destructibleに対してはApplayRadiusDamageを使ったほうが確実なのでよさそう。

通常Actorなどに対して使うApplyDamageをDestructibleActorに対して使ったが、なぜか壊れなかった。DamageTypeのプロパティーにもDestructible関連のパラメータがあるので壊せる設定がある気がするがわからなかった。

追加したDestructibleComponentを指定のタイミングで壊す。

  • カスタムのActorにDestructtibleComponentを追加して、壊す前までは、コリジョンが無くて、Actorがダメージ受けた時に、コリジョン有効にして、破壊する場合、いくつかつまづいた。
  • DestructibleComponentにダメージを与えるには、そのActor内でダメージを受けたイベントが発生した時に、自actorからDestructibleComponentに対してApplyRadiusDmageしないと、勝手には壊れない。当たり前といえば当たり前なんだけど。
  • DestructibleComponentのコリジョンの有効無効の変更は、Detailsから指定する初期値のCollisionEnabledは有効状態にしておき、BeginPlayで無効にして、破壊したいときに有効にすればうまくいった。初期値をNoCollisionにして破壊したいときに有効にすると、なぜかヒット抜けした。


動的にDestructibleを変更することはできなかった。

  • BeginPlayでDestructibleComponentに対してSetDestructibleMeshを行っても無視される。

DestructibleComonentをAddしても反映されない。BPの関数はあるけど、反映されないというのは、開発途中ということなのか?

  • クラスを継承して、子供のクラスでDestructibleMeshを変更するのもできなかった。
  • StaticMeshはBeginPlayなどから変更できた。

モバイルだと使えない。

  • モバイルプレビューでDestructibleが壊れたので、期待して、試しにiOSで動かしたら、壊れなかった。ドキュメントに書いてある通りだった。