バージョン

  • UE 5.6 以上

射撃で破壊を試してみよう

Chaos Destruction を試すサンプルとして、First Person ビューで射撃をして破壊できるようにします。

今回はできるだけ簡単に射撃での破壊を実現するために既存のテンプレート及びバリアントを使います。

UE 5.6 より前は?

UE 5.6 からテンプレートが変更になったため、それより前のバージョンでは方法が異なります。

Unreal Engine 5.6 向けゲーム テンプレートがアップデート。今すぐ利用可能 - Unreal Engine

手順

First Person (一人称) テンプレートにバリアントを追加して作成

破壊対象

「一様化 (Uniform)」で細分化した 2 階層の GeometryCollection です。 これを Lvl_ArenaShooter レベルに配置します。

物理的な衝撃だけで破壊

Geometry Collection であるため、アリーナシューターの弾 (Projectile) での破壊には調整が必要になります。

具体的には Enable Damage from Collision が有効になっている状態で、 Damage Threshold を破壊できるようように調整します。

上記の数値であれば、 Rifle を拾って数十発打てば破壊できます。 Pistol で破壊する場合には Damage Threshold5.0 ぐらいまで下げる必要があります。

ひずみ (Strain) を使って破壊する

Strain を使ってより簡単に破壊します。

BP_ShooterProjectileBase を開く

Variant_Shooter/Blueprints/Pickups/Projectiles フォルダにあります。

イベントグラフの Process Hit イベントが今回の変更対象です。

Process Hit に Hit Item を追加

以下のように Integer 型で Hit Item を追加します。

そして、利用箇所の一つに Break Hit Result があるので、そこの Hit Item をつなぎます。

もう一箇所利用している場所がありますが、Explode On Hittrue の場合なので一旦スルーします。

Apply External Strain を使うイベントを作る

- `Strain` の `5000` は `Damage Threshold` に合わせていますが、`Geometry Collection` の `Enable Damage from Collision` が有効になっている場合にはそれより小さくても破壊できます。 - `Apply Linear Velocity` は `Apply External Strain` での破壊後に破片を吹き飛ばす力を与えるためです。

Process Hit に接続する

元々繋がっていた部分から、先程作成した Apply External Strain to Geometry Collection に接続します。

実行する

Pistol でも一発打つだけで破壊できます。

Enable Damage from Collision を有効にしておけば以下のように同じ力でもさらに吹き飛ばせます。

Strain とは何か

Geometry Collection は最初にやったように物理で駆動しているので、Impulse や Force でも動かすことはできますが、以下のように破壊される前の Geometry Collection は破片が接続されています。 衝撃でこれを破壊するには、先程のように多くの力を加えなければいけません。

一方で、「ひずみ (Strain)」 はその接続に強い負荷を与えることができるため、弾一発で破壊できました。 Strain には External 以外にも Internal もあり、Internal の方は「蓄積」する負荷です。

先ほどの Apply External Strain To Geometry CollectionApply External StrainApply Internal Strain に変えてみます。

Apply External StrainDamage Threshold より小さい力 (例えば 2500) では何発打っても破壊できません。(Enable Damage from Collision が無効の場合)

一方で Apply Internal Strain は蓄積するため、2500 x 2 できっかり 2 発で破壊できます。

参考