Well constraints are always going to be effected by momentum, so…say your train car were to turn left fairly fast, all constraint based grips or hanging lights (ect) would bounce as they would have a sudden change of force from forward to left/forward. is actually fairly correct though? You would want constraints in relative space to the parent object and they wouldn’t have a problem keeping up.
If you are talking about simulation objects being left behind…well you would likely have to impart the velocity on to them in order to keep their momentum correct, gets more complicated with sweeping turns and the like, fairly simple I would imagine on straight track, just AddImpulse for the velocity, however I can’t see being a quick method (cpu cost would inflate with number of simulating objects), so you would want to batch updates into a volume that gathers simulating objects inside of it and imparts the momentum to them at once, or you would want to force sleep objects that are an effective rest and attach them in place.
The character itself should be fine as it is based movement, grips for the character would need to be placed to tick after the base moves though so that they have the correct location, (IE: Base moves->character moves->grip moves), the default is already Character->Grip so you would have to add a tick req to the character for the base.
Outside of that there are a few options that are more complex:
- Localized physics volumes (not default engine supported), possible but a lot of work.
- Create a new physics scene separate from the main one and place objects in that, (not engine supported) fairly simple to achieve afaik, they already have an additional async scene for destructibles and objects that don’t need to interact in gameplay, but would require engine source edits.
- Fake it
There may be more options, I haven’t tried to do something like , its just off the top of my head.