Local physics Grid - best practice?

Hello all!

I’ve been toying around with trying to achieve a localized physics simulation for a project, somewhat similar to what Star Citizen is doing Local Physics Grids but in a simplified format (no need for other objects to behave)

The basic test is, use an on-rails platform that will roll and twist at odd angles and move along a preset course.
The player meanwhile needs to be able to walk around on said platform while it is in motion and be unaffected by the overall motion,
as though the platform were standing still and the world moved around the platform.

The best approach I’ve had so far has been to attach the player to the platform,
this works as long as the platform is not moving because the engine will over-compensate and send the player flying in the direction of the platforms forward motion.
Rotation at odd angles is unaffected however and works as it should.

A more visual example of this is a player standing in a ship that is flying around and still being able to walk while it is doing so.

Can anybody come up with a solid way around this problem or a completely novel approach?
Think of it as a challenge, if you can figure out how to do this you can make amazing things.

Best regards,
Taros

Maybe I’m asking this in the wrong way…

Does anybody have any ideas for how to achieve what I’m talking about?
It should be possible, its just a matter of getting around the engine overcompensating for platform motion, there has to be a way.

//Taros

I’ve been wracking my brain on this one too. A project I’m working on requires exactly this, large vehicles that are essentially “micro-levels”. Unfortunately my experience thus far is limited to Blueprint scripting and I don’t have enough experience with C++ to properly tackle the problem.

One approach I thought might work is if you could attach an actor to another actor and then have the “attachee” (is that a word?) simulate all it’s movement and physics in the parent Actor’s local space. Essentially the new Parent actor becomes the child actor’s world and it can only interact with the parent and siblings.

Probably easier said than done though.

EDIT: I just spotted your post here: Custom CharacterMovement component - need help - C++ Gameplay Programming - Unreal Engine Forums. Again, this is pretty much what I’m trying to do as well but not having any luck.

Dunno if you’ve seen “Sea of Thieves” but it uses the UE4 engine and I tried out the closed beta this weekend and they’ve pretty much pulled it off. The ships you can crew with your online friends moved about in the world yet you can move around on board as though you’re on solid ground.