I don’t know about Player Ships, but this is the technique Rare used for the Skeleton Ships and NPC navigation aboard them. I don’t have a source, but remember it from one of their many Behind the Scenes videos.
Are there any tutorials or even simple guide?
This will fix two of my problems: clients jitter and dynamic nav mesh generation.
How do i even move my proxy character on proxy ship? I can’t wrap my head around.
Thanks that fricking genius, i made mine system with C++ and it works.
Hey, do you mind sharing some tips on how to achieve it in C++?
I can’t help with C++ but it is possible in blueprints with a weird technique I found that should have it function right.
- Create a Hitbox Mesh and two game objects, the first game object is gonna be the “real boat” or the boat seen by the player, the second boat is gonna be the proxy boat, the boat that the collision and physics will work from.
- Once this is done, grab on ON Collision function on the “real boat.”
This is gonna be weird cause we are effectively trying to translate the world space to local space to teleport the collision of the player to this proxy boat while everything else is going to be in the real boat.
This code above highlights what would need to be done to teleport the player from the real boat to the fake boat.
I recommend storing the player locally in the blueprint, in multiplayer, make it an array.
Then, teleport every part except the collision of the player to the other real boat.
(Please note, sometimes you might need to make adjustments in the player-noncollission if it does not line up right here, the code in the corner is because this happened with the fake water simulation location for the boat here)
The Proxy boat must share the same Rotation as the real boat in this case else it will not truly work.
Lastly, a reset of the player mesh location and actor location must be done after the player collision leaves the proxy boat. Here is my code, I am not gonna mark it up:
Here is the result of the code:
Thank you for such a detailed reply! I will give it a try. Have you tested it in multiplayer as a client? Judging by the video it seems there is no stuttering
I have not but I do need to test it sometime in the future, fingers crossed it should work…
in your second screenshot, how did you get a variable that holds all player info?
If ever that plugin exists, I will buy it.
bro, I love you
Man, you are great! Thank you very much! Now i can jump on moving train carts etc. I wonder if there any disadvantages.
This was a empty actor component that held the components used in KR_Player_New as children and is something you need to set up before attempting my system.
I will be coming back to this thread as I have a better system than this that can be done without the second function based on the fact that (in theory) we could just teleport the player’s collision capsule directly to the proxy boat instead of teleporting everything in the player to the proxy boat and then teleporting back everything to the real boat except for the collision box.
My system here was very flawed as I was rushing it out the door to get it ready for a student showcase another school was doing, instead of taking more time to find optimal solutions.
Was this always an option? It appears like this answer did not exist before June of 2024 (this year) from my looking so it might not of been a thing before version 5.4… and if it was a thing before than then I don’t understand why people wouldn’t of shared it.
None the less, I still think the method of creating a proxy platform is still valid here since it reduces the amount of physics calculations the CPU needs to run. The method I laid out is a simplified version of what is used in games like Titanfall and Sea of Thieves.
Because I can’t find documentation on Stay Based in Air, I can’t say but it would be interesting to see how it works and again, see if there are any disadvantages…
“Stay based in air” this is just my personal speculation. Fortnite added a moving train in late 2023, and Epic may have integrated related code into the engine as well. It seems like a stealth update.