Have player character walk on ship without pushing it

The character controller I’m using is the Opsive Ultimate Character Controller.
My water asset is Crest and my boat physics asset is Dynamic Water Physic 2.

I’ve been struggling with this issue for the better part of two years, so I thought why not make a forum post. Something tells me it’s a simple thing I’m missing.

The issue is that my player character is exerting force on a boat many times its size. For example when my 100 kg player walks into the right side wall of my 900,000 kg ship, it pushes the ship to the right. When the player spawns from a few meters up, it launches the ship downward. If the ship hits waves any higher than a few cm while the player is on it, the ship rolls over.

The ship needs to have colliders, otherwise the player can’t walk on it. I can’t make the ship a rigidbody or the water physics asset won’t work. I’ve played around with friction, the collider matrix, different collision detection methods, drag, and so on.

Ultimately, my questions is this: Why is a tiny player exerting such an exaggerated amount of force on a massive object? And can I fix it.

Thanks

Hi there,
I took the time and had a look at the documentation for the character controller that you’re using and it seems like it’s based on a rigidbody set to “kinematic”. (https://opsive.com/wp-content/uploads/2022/11/Documentation.pdf#page146)
By definition, the position of a kinematic rigidbody is solely controlled by script and cannot be moved by other dynamic rigidbodies like your ship, no matter their size or weight.

I read something about “moving platforms” in the documentation referenced above, but I doubt this is what you’re looking for. Get in touch with the authors of said character controller to get advice on how to work with dynamic rigidbody “platforms” like a boat.

In general I would advise to look for a dynamic rigidbody character controller, but I really can’t give any recommendations

1 Like