How to change collision response on Chaos geometry collection

Here’s how I managed to do it:

1 - Go to ProjectSettings->Collision->Preset and create a new preset, use the same settings as the Destructible profile, with the exception of the Pawn = Ignore (I created it with the name “DestructibleNoPawn”)
2 - In the level viewport, select your chaos geometry collection, go to the Details panel, find the CollisionProfilePerLevel, Add two entries, the first one should be “Destructible” and the second one should be the new one you just created, like “DestructibleNoPawn”

6 Likes

Don’t know if my issue is similar but I wanted to just add the geometry collection component after triggering collision of the actor with the player. I used the “Add Geometry Collection Component” node and by just clicking it, in the details panel, I saw the collision presets option. Hope it helps

1 Like

just calling OnActorEnableCollisionChanged() worked! Thanks!

This worked ! Thanks a lot for your answer.

This took me forever to figure out and I came across this thread in my research. I wanted to come back and say if the Geometry Collection is in your blueprint as a component, you can just select it and under Details window, set Collision Presets to IgnoreOnlyPawn.

Yeah but does this make it so the broken off pieces don’t affect the pawn but also if there is a remaining half-wall it will still block pawn movement?

That’s my issue with chaos destruction, really hard to have a half broken wall that blocks movement but also having the flying pieces not block movement.

I’ve managed to do this with a specific setup at the geometry collection:
Level0: Root
Level1: Cluster
Level2: Leaves

The hierarchy looks like this:

And then in CollisionProfilePerLevel I’ve set it like this: {Destructible, Destructible, DestructibleNoPawn}. This way it works for me. (Note that DestructibleNoPawn is a custom CollisionProfile I’ve made, just like Destructible but with the Pawn collision disabled).

You could also check UGeometryCollectionComponent::SetPerParticleCollisionProfileName as it takes precedence over UGeometryCollectionComponent::SetPerLevelCollisionProfileNames and you can set the specific there.

Something that confused me a bit at the gegginning is what “BoneIds” or Particles. They are all int32 and they refer to the index of the destructible piece. It’s the same as the number on the leftmost column at the Fracture Hierarchy in my image.

Then you also have “Facades” like FCollectionHierarchyFacade or FGeometryCollectionDynamicStateFacade among others that let you query the info for different particles. You can see usage examples in the codebase and use them to query some state you may be interested in.

Disclaimer: I’m still learning this system so I might be wrong! I thought I could give at least some direction though.

1 Like

What I need is to set Collision to the pieces,and not effect the root geocollicetion。
I search the whole internet but still can’t achieve it.
However,I found a new way to set Collision ,and this can solve my problem.



Through this “Set Per Particle Collision Profile Name” function, i can set pieces to any collision preset I want.
Hope this will help somebody who struggling with same issue. :kissing_closed_eyes:

1 Like

(post deleted by author)

This does not work when the collision style is set to “Implicit-Implicit” in the geometry collection. It ends up still affecting my character. It will work with Particle-Implicit, but then the broken pieces don’t interact with the other broken pieces.

Is there a way to use Implicit-Implicit and change the collision of the broken pieces? Or make particle-implicit pieces interact with eachother?

EDIT: Nevermind. Changing some of the collision particle settings seems to have fixed it.

But still, is there any way to change the collision of Implicit-Implicit for the performance boost of using implicit instead of particle?

I m using “Implicit-Implicit” way,and it seems the problem is irrelevant with this.