すり抜ける問題。UE5、弾のメッシュにコリジョン付けたら一瞬で解決した?話。

タレットから発射した弾(BP_Bullet)がレベルに配置した仮置きの建物をすり抜けることに2時間ぐらい苦戦したので備忘がてらメモしておきます。またまだ完全に分かったわけでもないのでまた経験値が増えたらここに記載するか?新たに記事を作ります。

→ 新たに調査しました。「 UE当たり判定。コリジョンとヒットの判定を徹底的に調べた。 」まだまだ完全に理解した訳では無いですが少しづつ分かってきたような、そうでもないような気がします。(241013追加)

解決方法 (暫定?)


この様なコリジョンの設定では、ActorOverlapEventも発生せずに弾はCubeをすり抜けます。ここに弾自体のメッシュファイルを編集してコリジョンを追加すると、ActorOverlapEventは発生するようになりました。

 

最終的にプールシステムを使うので・・・

ActorOverlapEventは動くけど・・・

普通にキャラクターがCubeにぶつかったときみたいに弾がCubeにぶつかってくれれば良いのですが、速度が早すぎる(初速900m/s)のか?弾がCubeをすり抜けます。そこでActorOverlapEventで弾自体をDestroyすれば見かけ上はすり抜けてないような挙動になりました。

今回は最終的にプールシステムで弾の管理を行うのでこのActorOverlapEventを使用した方法で良いのですが、普通にキャラクターがCubeにぶつかったときみたいにすり抜けないようにする方法を採用したい人にとってはこの解決方法では問題ありです。

 



 

BlockAllDynamicですり抜けないようにするには?

キャラクターがCubeにぶつかったときみたいに弾がCubeにぶつかるように、弾のコリジョン設定をBlockAllDynamicにしてみたりもしたのですが、何故かCubeをすり抜けます。

弾の速度が速い場合の、コリジョンを正確に検出するために「Continuous Collision Detection(CCD)」を有効にしてみたりもしましたが、やはりすり抜けます。

 

無念

今日は少し忙しいのでこれで話を切り上げますが、また時間のあるときに色々検証してみたいとおもいます。

 

 

コメント

タイトルとURLをコピーしました