Cannot move Geometry Collection with Chaos?!

I’m trying to implement a simple interaction where picking up an object (ex: flowerpot) and dropping it would break on impact using unreal’s chaos destruction. However, moving the geometry collection component or its parent actor in any way is somehow simply visual. As the actual collision mesh remains unmoved and upon collision, will teleport the purely visual geometry collection back to its original location. So attaching component, setting component location, actor location, world offset, etc… all result in the same weird behavior of teleporting back upon contact.

After some testing, I’ve discovered that turning off simulate physics for the geometry collection, THEN moving the geometry collection component, THEN turning back on simulate physics will result in the correct behavior. However for some silly reason, the “set simulate physics” node only works for turning ON simulate physics and does not do anything when leaving the boolean as false, trying to turn OFF simulate physics. So I’m only able to do this in editor while playing and not in blueprints.

Is there something fundamental I’m missing here?
Thanks!

1 Like

same question here. please update this thread if you figure it out.

1 Like

No, i have not found anyway to move a Chaos Actor. However there is a way around this problem.

What you basically must do is to use SpawnActor function to spawn in a blueprint containing the the Geometry Collection Component which will be replacing you actor that is to be destroyed.
So you need to create a blueprint that has a Geometry Collection Component, where you choose the chaos actor to be played when the actor gets destroyed.
When you spawn in the chaos actor you can simply hide the actor that has been replaced by the blueprint containing Geometry Collection Component.

An example of the SpawnActor functions is:
// Get the transform of current actor we wish to replace with a Geometry Collection Component
FTransform Transform = StaticMeshComponent->GetComponentTransform();

// Spawn in the Geometry Collection Component where the actor is that you wish to destroy
AObjects* Object = GetWorld()->SpawnActor(GCC, Transform);

where GCC is in the .h file:
TSubclassOf GCC;

In GCC you choose the blueprint containing the Geometry Collection Component (chaos actor).

I might have explained this rly bad. I can make a yt video explaning it if its not understandable.

Cheers!

2 Likes