Hello, I was taking a look at the new APIs UGeometryCollectionComponent::SetLinearDamping and SetLinearDampingPerTransform in 5.8, and noticed that internal parents use the default damping. E.g. if you call SetLinearDamping with a really high value like 10 and then break the GC in a way that internal parents are created, you can see clearly that the damping value is not applied to the internal parents. That’s something you might want to change. My suggestion would be to use the original cluster’s value. You might also consider allowing internal parents’ item indexes as input to SetLinearDampingPerTransform, so e.g. if I do a query and want to change the damping of the things that the query hits, I can pass the hit item.
This probably all applies to the angular damping APIs as well, but I haven’t tested them.
Steps to Reproduce
Create a geometry collection, call SetLinearDamping() with a very high value like 10.0, and apply strain to break it in such a way that internal parents are created. The internal parents don’t use the increased damping, and SetLinearDampingPerTransform() does not accept their item indices.
I had a quick look at CreateClusterParticleFromClusterChildren where internal clusters are created and the code shows that the original cluster values should normally be transferred over to the internal cluster
Hi, thanks for taking a look. I’m not using cluster unions. I think you’re right that the internal parent inherits the drag, my original description was wrong. It’s just if you change drag after the geometry collection already broke, then it applies to all of the regular transforms but not to the internal parents. Something else I noticed while looking at this, maybe related, Crumble All Active Clusters doesn’t break internal parents.