RevoluteJoint limited without having limits set

Topics: Developer Forum
Dec 12, 2012 at 3:14 AM
Edited Dec 12, 2012 at 4:03 AM

I'm relatively new to Farseer, and have been working on a ragdoll system for a platformer game. I connected the body parts with RevoluteJoints, and didn't have any problems until I connected the upper arm to the forearm with a RevoluteJoint. When I connect the forearm to the upper arm, both bodies stop rotating freely and have what appears to be limits(with the upper arm having roughly 90 degrees of rotational freedom, and the forearm having roughly 200 degrees of freedom). The problem is I haven't set any limits, LimitsEnabled on both joints is false, and they are not set to collide with each other or the rest of the ragdoll. A illustration of the problem can be viewed here. The body parts should be easy to differentiate, for but clarity's sake the arm is represented by the coral and dark coral colored capsules near the top. The black line illustrates the limits forced upon the arm and forearm.

Does anyone have an idea as to why this might be happening?

EDIT: After some experimenting, I discovered that roughly similar behavior occurs when joints connected to the same body are very close to each other.

Dec 12, 2012 at 4:32 AM

So I narrowed down the problem to collision. Apparently the bodies were still colliding despite the fact they were set not to. I resolved the problem by removing the ragdoll part categories and instead using a collision group.