I noticed that the BreakableActor Pot with a GeometryCollection will move when colliding with other pots or fractured pieces. Tried setting the Geometry Collection Chaos Physics Object Type to Static, but that prevents it from breaking. Is there anyway to make the pot static/fixed until actually broken? Tried increasing Mass to the max, turning off pulse on damage, increasing linear/angular damping to the max, lock position/rotation constraints, but nothing has worked so far
#Geometry Collection moves when colliding with other geometry collections
4 messages · Page 1 of 1 (latest)
Geometry Collection moves when colliding with other geometry collections
the only workaround I've found (but not really a solution) is to disable collision with Destructibles, and any other type that might fall or bounce into the pot, but then they'll just go through the object - and I can't make the Capsule Component block Destructibles as it will collide with itself and seems there's no way in UE5 to remove collision with a specific actor
ah I found an actual "working" workaround - the geometry collection component ignores all (except visibility/WorldStatic so it doesn't fall through floors and allows traces), while the capsule component blocks all (except visibility as that's left to the geometry, and camera to prevent jittery camera when rotating):
GeometryCollectionComponent->SetCollisionResponseToAllChannels(ECR_Ignore);
GeometryCollectionComponent->SetCollisionResponseToChannel(ECC_Visibility, ECR_Block);
GeometryCollectionComponent->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Block);
// Prevent Geometry Collection from colliding with Capsule Component
CapsuleComponent->SetCollisionObjectType(ECC_PhysicsBody);
// Query Only will physically block character, but not ran in the physics simulation
CapsuleComponent->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
CapsuleComponent->SetCollisionResponseToAllChannels(ECR_Block);
CapsuleComponent->SetCollisionResponseToChannel(ECC_Visibility, ECR_Ignore);
CapsuleComponent->SetCollisionResponseToChannel(ECC_Camera, ECR_Ignore);