UE4.26-Chaos プレビューを触ってみた

# はじめに
この記事は「[Unreal Engine 4 (UE4) Advent Calendar 2020](https://qiita.com/advent-calendar/2020/ue4)」24日目の投稿記事です。

今回はUE4のChaosを触ってみました。

できあがったもの
![ezgif.com-gif-maker.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536845/b72caa98-2ef4-89b5-3b5e-9b61ddd56eff.gif)

プロジェクトは[こちら](https://drive.google.com/file/d/10IQrAjPOf0MlO3pe-trS9RWK7vUjVQJ6/view?usp=sharing)、バージョンは「UE4.26-Chaos プレビュー」で作成しました。

## Chaosとは
UE4.23からベータ版として導入されている「リアルな表現ができる物理・破壊システム」になります。
[Chaosの公式ドキュメント](https://docs.unrealengine.com/ja/InteractiveExperiences/Physics/ChaosPhysics/ChaosDestruction/ChaosDestructionOverview/index.html)
4.23～4.26はエンジンをビルドをしないとChaosを使用できませんでした。
※UE4.26Preview1～5はビルドしなくても使えていたようです。
しかし、2020年12月17日に[Unreal Engine4.26-Chaosプレビュー](https://twitter.com/UnrealEngineJP/status/1339381509212438528?s=20)が公開されエンジンをビルドしなくてもChaosを使用できるようになりました！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536845/b0003597-28a4-a46c-b343-6e47bfad98c7.png)

## さっそく使ってみる
モードタブから「フラクチャ」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536845/dd48bac1-0cb2-bcaf-6899-baab70c86c69.png)
下記のようなタブが出てくるので、破壊したいスタティックメッシュを選択して「New」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536845/0645b903-e915-e8ed-f259-371fa0d3e9b7.png)
今回は[ChaosDestructionデモ](https://www.unrealengine.com/marketplace/en-US/product/chaos-destruction-demo?lang=en-US)に入っていた下記アセットをスケールで約7.5倍にして使用しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536845/6b7c2dab-7ec3-4224-07d1-ab0897043131.png)
Newを押下するとジオメトリをどこに保存するかを聞かれるので、適当なフォルダに保存してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536845/a6278eb6-55a8-adf2-8a65-0197f27cdecf.png)
保存をしたら、先ほど配置したスタティックメッシュがGeometryCollectionActorになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536845/d3c97821-2222-9666-9050-e7868ff08a98.png)
作成したジオメトリアセットを開き、CollisionType、Implicit Typeを下記のように変更します。
（スケールを入れた影響か、見た目と違うコリジョンになるので正確に当たりを取れるようにしています。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536845/d1380e69-9d9f-5c79-8178-fe59156220bb.png)
「Fracture」タブに「一様化、クラスタ化済み」等の項目があり、どう壊れるかの設定ができます。
お好みの壊れ具合になったら、左側の「フラクチャ」ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536845/1b76ece6-9d39-77c4-5862-0c6e346084e4.png)
フラクチャタブのビュー設定「Show Bone Colors」で色変え、「Explode Amount」でどう壊れるかがプレビューで見れます。
![ezgif.com-gif-maker.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536845/0b98e0a9-ae77-b74e-0cb1-b1f8e78d227e.gif)
これでプレイインをすると下記のように壊れるかと思います！
![ezgif-3-75ac3bcf0cdf.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536845/72a002a9-f567-e097-6c15-fce5eaa8a0ab.gif)

## 壊れる演出ができたのでパラメータを弄ってみる
Damage Threshold：壊れやすさ、数字が低いほど壊れやすく、高いほど壊れにくいです。
![ezgif.com-gif-maker (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536845/a9483fd9-dec2-db73-0b64-05c5825e8871.gif)
Cluster Group Index：別アクターの数値と同じにすることにより、グループ化できます。
![ezgif-3-3eb39a89a051.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536845/aba3ad7b-4841-cc30-02a3-1be495b507a6.gif)


## フィールドシステム
Chaosにはどのくらいの力で飛ぶかなどを定義する空間があり、その概念がフィールドとなっています。
フィールドシステムは自作もできますが、「Field System」プラグインを有効にする必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536845/5c25e676-4e51-8aec-8cd6-7dd6c05c55bf.png)
有効にしたら下記の場所に出てきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536845/b9b30d79-6805-8bb0-9e33-9d1c53f61b32.png)
自作を試してみましたが、思ったようなフィールドシステムが作れなかったので･･･今回は、Chaos Destruction Demoに入っているフィールドを流用しています。

FS_Strain_Radial_Trigger_Blueprint：空間内のジオメトリに対して力を発生させます。
プロジェクトに入っているBPは少しだけノードを弄っています。
![ezgif-3-c71c45bdfc65.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536845/51b5315a-dcfa-3cd8-8707-ed5d506dc94b.gif)
FS_AnchorBox_Blueprint：ジオメトリをロックできます。
![ezgif-3-2ef971356585.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536845/c366a063-ce31-e765-980f-d78166c1cef0.gif)
今回はこここまで紹介した機能を組み合わせて、冒頭のタワーを崩すものができました。


## おわりに
Chaosを触ってみた感想として、機能を使いこなせればこれまで以上の表現ができそうでした。
まだまだ機能を活かしきれていないので、少しずつ触ってみようかと思います。
まだプレビュー版なので、動作が不安定ですが、ビルドなしで起動できるようになったので是非触ってみてください。

## 参考サイト
[公式ドキュメント](https://docs.unrealengine.com/ja/InteractiveExperiences/Physics/ChaosPhysics/ChaosDestruction/ChaosDestructionOverview/index.html)
[まめお様：UE4 新しい物理破壊システムChaos Destructionを使ってみよう](https://papersloth.hatenablog.com/entry/2020/09/26/161913)