Download

Problem with physics constraint linear limit less than 0.1

I’m making a VR project where the player must manipulate objects. I’m using a constraint to “pull” an object into the player’s hand (controller) by pointing at it and pulling the trigger. I create a soft constraint so that the hand and the object are overlapping (in the constraint reference position), but I don’t move the target object in the world – the result is that the target object is PULLED to the hand, while obeying physical limitations (world collision, etc). This almost works perfectly.

However, I noticed that if I set the Constraint Component → Linear Limits → Limit to any value less than 0.1, the target object SNAPS to my hand instead of moving through space. A value of 0.1 or higher makes the object move through space properly. However, giving a non-zero linear limit value makes the object “loose” in my hand – it can sag about 10cm from the desired constrained position.

Why is this happening? The linear limit value of less than 0.1 seems to disable the “soft constraint” setting. These values aren’t obviously related or dependent on each other, and a value threshold of 0.1 seems oddly arbitrary.

Can I setup a soft constraint with a linear limit of zero? It doesn’t seem to be possible. (FYI, I can dig into C++ code if that is what is needed.)