What am I attempting to achieve?
I’m trying to smoothly transition from two different part surfaces (necessary because of the max part size of 2048x2048). I do this with an unanchored part that has a velocity, and multiple surfaces which are anchored and both have collisions with each other, friction is 0.
What is my issue?
The unanchored part (despite collisions being enabled) slightly sinks into part it is sliding over.
The brown part is the anchored part, while the gray is the part that has velocity. When transitioning between different surfaces, this sinking of the part gets caught on the new part, causing it to get stuck at the border like this.
Things I’ve tried
I’ve messed with friction, elasticity, part weight/density, nothing’s been able to fix this, I haven’t been able to find anyone else with this problem and I’m not sure what’s causing it, because the collisions are correct. Does anyone know how to fix this? Because this is the best way to have things move in my game.
What is the size of the Part you are moving?
Are you moving it in a straight line or at different angles? If you just move them in a straight line you can use PrismaticConstraints. If you want to ‘steer’ it around at various angles you may want to put a VectorForce in it to keep it just above the baseplates.
What size are your baseplate Parts, and if you zoom in is there any step at all? Parts with the same Y height and Orientation sometimes have a tiny bit of Orientation to them. What is shown rounded as (0,0,0) might actually be (0.01, 0.01, 0.02) which can cause slight steps at edges, especially when you are using Parts that are 2048x2048.
As per the second question, I made them exactly the same height, and none of the faces are overlapping, I used resize align to ensure that, this problem occurs anytime there is a boundary between the surface parts. I’m not sure how well PrismaticConstraints will work in my case, which is why I’m trying to use the part itself to have the velocity.
You can try to set the grey part offset relative to the baseplates a few studs off. It keeps your offset regardless of the parts position. Read more about it here, but with some adjustments I believe your part will always be offset enough from the baseplates that they wont collide (Its the section titled Relative Position.):
But is the Part moving along a straight line? If so how much is it moving along that line, 2 studs, 100 studs, 5000 studs?
If it is then a Prismatic Constraint may work for you.
PrismaticConstraint | Roblox Creator Documentation or PrismaticConstraint
Planar constraints worked here, in my case atleast, so thanks for the insight. Gave me a reason to use the new constraints.