😸

[UE5] Chaos Destructionで壁を壊そう

2022/06/21に公開

1.概要

以前よりUE4において試験的にChaosが実装されていましたが、UE5においていよいよ正式実装となりました。そこで今回はChaos Destructionでというベータ機能を使い、壊せる壁づくりに挑戦してみようと思います。

テンプレートはFirstPersonTemplateを使用します。

2. Chaos Destructionでの設定

2.1. プラグインの設定

今回の壊せる壁を作るにあたってChaosの設定以外に設定すべき事項が必要です。
FeildSystemというプラグインを使います。

ベータ版機能の実行にはこのような警告文が表示されます。

2.2. エディタの設定

選択モードの箇所をフラクチャに変更します。

フラクチャモードに設定するとエディタにモードツールバーが表示されます。

ChaosDestructionに使われるアセットはStaticMeshではなく、ジオメトリコレクションとなります。そのため、StaticMeshからジオメトリコレクションを作成する必要があります。
任意のStaticMeshをレベルへ配置します。ここではCubeを使用しています。

ジオメトリコレクションにしたいStaticMeshをクリックし、ツールバーの新規ボタンを押します。

ジオメトリコレクションを保存するダイアログが表示されます。
今回はChaosというフォルダを作成しその中に保存しました。

2.3. ジオメトリコレクションを分割する

Fractureの一様化を選択します。

フラクチャボタンをクリックします。

フラクチャボタンを押すとメッシュが分割されます。
複数回押すとより細かいメッシュへ分割されます。
これでジオメトリコレクションを分割することが出来ました。

2.4. FieldSystemの作成

続いて、銃を撃った時に壁が壊れるような設定を行います。
そのためにFieldSystemというActorが必要になります。
コンテンツブラウザのSettingボタンを押し、エンジンコンテンツを表示をクリック
エンジンのコンテンツが表示できるようになります。

Anchorと検索し、Engineフォルダを開きます。
FS_AnchorField_Genericを以下の画像の通りに配置します。

ジオメトリコレクションを選択し、Initialzation Fieldの+ボタンを押し、配置したFS_Anchorを選択します。
この作業はジオメトリコレクションの位置を固定するために行います。

2.5. Master Fieldの設定

実際に壁を破壊するためにはMaster_FieldというBPを生成する必要があります。
FSと検索し、Engineフォルダを開きます。

FS_MasterFieldを確認後
FirstPersponフォルダよりBP_FirstPerson_Projectileを開きます。

Hitした際のブループリントは当初、このような形になっています。

最初の状態では壁を破壊できませんので、Hitイベントが発生した際にMaster_FieldをSpawnすることで壁を破壊する仕組みを実装します。

Spawn Force Fieldという関数を作成します。
関数の中身はSphereの位置にMaster FieldをSpawnさせるものです。

3. 完成

https://twitter.com/tc_ue4/status/1537751926363791363?s=20&t=oAutenWcXsk1K4pW29xJOA

Discussion