Hello,
First of all sorry for my English and thank you if you have the time to answer me.
So I am in 4.26 and I have a problem with the buoyancy component that i can’t resolve. I have a pawn blueprint boat wich use 4 pontoons. In my level there is 3 water body : ocean, river, and lake. The boat work perfectly in each of the 3 water body. But when i go in game and I drive the boat from a water body to another sometimes it’s works, sometimes the boat fall or it go deep and come back to the surface after. I try to modify the placement of the potoons, i try to use every parameter in the buoyancy component, i also try to snap the spline between water bodies, and nothing seems to work. The only solution I find is to change the Mass of the boat (static mesh) to a value of 10. The boat work like that but the navigation isn’t realistic
I will really appreciate if someone can find a solution
Thank you.
I’ve found the cause, when actor leaves water body, buoyancy component tick is being disabled despite actor still is overlapping new water body and it never starts ticking again. Can be ‘fixed’ by manually enabling component tick on interval.
Now I can see new problems tho, for example when entering lake by the river from ocean, component will pickup huge ocean waves instead of almost flat lake surface. Still better than drowning like a rock
If anyone want’s a cleaner solution (involving a bit of C++) you can remove DisableTick() in UBuoyancyComponent::ExitedWaterBody and implement your own version in your own vehicle to disable the Buoyancy Component manually. I run a linetrace down from my boat mesh to check if there is landcape close to the boat and check the velocity to see if it’s moving, disable physics on the mesh when its considered “beached” or on land.