LoginSignup
5
2

More than 1 year has passed since last update.

[UE5]Chaos Cacheを使ってChaosで壊したものを直してみる

Last updated at Posted at 2022-08-26

こんな感じのをどうやって作ったかを雑に書いていてくよ。
適当に見てね。(ほぼ未来の自分のためのメモ)

qiita_-_Unreal_Editor_2022-08-27_00-04-54_Trim_AdobeExpress.gif

はじめるにあたって必要なこと

まず今回の作るのに必要なものを書いていこう。

・プラグイン "Chaos Caching"

・スタティックメッシュ "壊してから直したいもの"
(スタティックメッシュをジオメトリコレクションに変えるのでもうある場合は大丈夫)

・UnrealEngine 5.0.3

・後その他もろもろ()
 
なんかこれだけ見るとめっちゃ楽そう。
けど実際一人で考えながらやったらなんかめんどくさかった。(初心者がやることじゃないよ…)

こっから下はプラグインの入れ方を書いてるからわかる人は本題まで
 
 

まずやるにあたって"Chaos Caching"っていうプラグインを追加しておくよ。

image.png
これがないとそもそものCacheが使えないので最初のうちに入れておく。

本題

1.スタティックメッシュをジオメトリコレクションにする。+BP_Actor作成

さて、ここから実践です。
まず上で選んだスタティックメッシュをフラクチャモードを使ってジオメトリコレクションにしていくよ。
これ自体は超簡単

まず適当はスタティックメッシュを出して…(今回はスターターコンテンツの中のSM_Rockってやつを使ってるよ)
image.png

左上にあるフラクチャを押す。

image.png

後はスタティックメッシュを選んだ状態で”新規”ボタンを押せば作成されるよ。

image.png

次に伏線となるBP_Actorを作っていくよ。最後のところで使うんだけど正直これしか方法思いつかなかったんです。
まぁ作っていこう。

BPのActorを用意して...

image.png

中にメッシュを用意して自分の用意したスタティックメッシュを置くだけ!

image.png
後はコンパイルして保存しちゃいましょ。
ほんとにこれだけ。けど重要になりますこの子。

2.ジオメトリコレクションをフラクチャモードを使ってボコボコにする。

ジオメトリコレクションをぼこします。というか破壊します。

まずはさっきジオメトリコレクションを選択した状態でツールバーを見るといろいろと選択できるようになってるよ。
(ツールバー閉じちゃったらフラクチャモードを選択モードにした後、またフラクチャモードを選択したら出るはず)
image.png

その中のFractureから適当なのを選ぶ(自分はクラスタを選んだよ)
image.png

するといろいろな数値が出るけど今回はデフォルトのままフラクチャをポチッ!
image.png

そしたら破壊量ってとこの数値をいじるとどんな風に割れてるか確認できるよ
Qiita用01.gif

ついでに"Show Bone Colors"っていうチェックボックスを外すともともとのマテリアルが見れるよ。便利だね。
(カオス物理の中にあるGeneralの中にあるよ)
image.png

3.Chaos Cacheを作成して壊れ方を"記録"する。

こっから少しややこしくなるよ。

まずジオメトリコレクションを選んだら上にあるアクタからChaos、そこからキャッシュマネージャーを名前を付けて作成するよ
(ここでChaos Cachingを入れてないとChaos自体出てこないから、入れてない人は上のほうに書いてあるプラグインの入れ方を参考にしてみてね。 )

image.png

そしたらコンテンツブラウザに自分が名前を付けたキャッシュマネージャー
アウトライナーに"ChaosCacheManager"って名前の二つができてるはず

image.png

次に壊れ方を記録するためにアウトライナーの"ChaosCacheManager"が赤文字の記録ってなってるのを確認したら一旦ゲームをプレイするよ。

ちなみに四角とかのジオメトリコレクションだと壊れない場合があるから、その場合は今使ってるジオメトリコレクションを開いて、Impact Typeってやつをいじってあげるといろんな壊れ方するはず
image.png

・Convex

Conbrt.gif

・Sphere

Sphere.gif

・Capsule

Cps.gif

プレイを押したら好きなタイミングでゲームを止めていいよ。
これをすることでプレイしていた時間分、ジオメトリコレクションの動き(壊れ方)がキャッシュとして保存されちゃうってことなんです。(多分)

4.シーケンサーを使ってキャッシュの中を再生してみる

ChaosCacheを使ってキャッシュを保存出来たら、保存した映像をシーケンサーを使って再生してみるよ。

まずはChaosCacheManagerにあるキャッシュの欄のCache Modeをスタティックポーズ、Start Timeをキャッシュに保存してる時間より多く設定するよ
(例えば上でプレイを押してゲームを止めるまでの時間が5秒なら、5秒以上ならOK)

こんな感じ
image.png

次にシーケンサーを設定するよ。上のシーケンサーのマークから、レベルシーケンスを作成

image.png

トラック追加から”シーケンサへのアクター”を押して、アウトライナーにある"ChaosCacheManager"を選択。
そこからStart Timeを選択するよ。これで動的にStart Timeが動かせちゃう。

image.png

後はシーケンサーの最初と最後にStart Timeをセットしてあげるともうほぼ完成
(gifに収まりきらなかった...)
StartTime.gif

5.TrigaerBoxとかで再生してあげる

ここまで来たらあとはシーケンサーを再生してあげるだけ!
まぁ少し手間なんだけどね。

適当にトリガーボックスを出してから...
image.png

シーケンスにジオメトリコレクションを追加、ジオメトリコレクションのトラックからイベントを追加して、最後のところにキーフレームを打つよ。
image.png

あとは全体のBP組んで...

・Level BP
image.png

・Seq_Rock BP (イベントで出したキーフレームをダブルクリックすればこの画面行けるはず)
image.png

再生!!

qiita_-_Unreal_Editor_2022-08-27_00-04-54_Trim_AdobeExpress.gif

めっちゃ長かった気がする...
記事書きながら動画の部分とか作ってたからもしかしたら不備があるかも...

懸念点

さて、ここまでやってきたんですけど実はできないことが割とある。

・再生前の状態(壊れてるとき)にコリジョンを持たせることができない
・汎用性がない

考えるだけでも割と出てきちゃう...
けど個人的に壊れたもの直すときとかはムービーの最中だからまぁいいかなぁなんて思ってたり

最後に + おまけ

使う場面が限定的すぎて、こんなコアなことやるの僕くらいじゃないかなとか思ってるけど同じ道歩む人は参考までに...

・BP_ActorとDestroy Actorがないと…

qiita_-_Unreal_Editor_2022-08-27_00-18-12_Trim_AdobeExpress.gif

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2