It is easily do-able, there are coded “test points” that are attached to the object for the buoyancy code to use to generate the effect. I have not had time to even look in that direction yet, so if the test points are done in bp or c++, i’m not sure.
I foresee a small that you would have to over come, and that is the fact I believe the buoyancy code runs under the assumption that the object should always face up, so while a boat will work, a human character that can lie horizontally flat will turn upright, because the code does not understand you are swimming/floating.
I would try making the test points near the horizontal and vertical center of the character the dominate points, and then add a weaker test point to the head and feet (and hands?) but expect the need to play with the weight settings and placement of the test points.