大量の弾アクターのprojectile movementの最適化

大量の弾をアクターで再現しており、それらをprojectile movementで制御しています。

しかし、それらがスポーンすると、stat unitのgame項目が大きくなってしまいます。

調べてみたところ、それらのアクターのprojectile movementが原因のようです。

そこで、projectile movementの最適化、あるいは代替案をいただけないでしょうか。

何卒よろしくお願いいたします!!

用途に合うかどうかわかりませんが、Niagaraを使うというのはいかがでしょうか?


EPIC DEV COMMUNITYのLearningの下記が参考になると思われます。
(このLearningでは、他アクタとの衝突は扱っていないのですが、UE5攻略リンクさんの Niagara Collision あたりが参考になるかと…)


以下、私の環境で、ProjectileMovementとNiagaraで500個動かしてみた結果です。

500個のアクタをProjectileMovementで動かしてみた

ProjectileMovementMany

500個Niagaraアクタで動かしてみた

NiagaraMany


また、ProjectileMovementの「コンポーネントティック」-「Tick Interval(secs)」を調整すると負荷は下がると思います…、その分、動きはカクカクするので、あまり実用的ではないと思いますが…

ありがとうございます!!

Niagaraで試してみましたが、どうしても衝突判定に甘さが目立ちました。

いかんせん、自分の使っているゲームの速度が速いもので、そのせいでNiagaraのコリジョンに悪さをしてしまっているようです。

他の方法を模索してみます。

1つのマネージャーActorで全ての弾の座標を計算する方法、「自作の弾管理マネージャー(ISM方式)」でうまくいきました。

仕組み:

1. 弾を Struct(構造体)として定義(座標、速度、寿命など)。

2. 1つのマネージャーActorが、TArray(配列)に入った全ての弾の座標を For Loop で一括更新する。

3. 見た目はNiagaraで描画。

4. 衝突判定は LineTrace(ライントレース)を自前で毎フレーム回す。