Hello Devs!
Today we released a new, simple, constraint. It’s called… * drumroll *…
The NoCollisionConstraint.
It lets you connect two parts so that they don’t physically collide with each other, but they still collide with everything else. And like the WeldConstraint, it doesn’t use Attachments. You can find it with the other Constraints in the Model Tab > Constraints > Create dropdown menu.
Isn’t this just what collision groups do?
Kinda. And if you have big groups of part collisions you want to filter, you should still use Collision Groups.
But the big difference with the NoCollisionConstraint, is that it is an Instance in the Explorer tree. This means you can create, publish, and download models with customized collision filtering. You can quickly remove problematic contacts in your complex physics models or NPCs. (Excess contacts can slow performance!)
Here the NoCollisionConstraint is being used to prevent the car’s wheels from colliding with the body.
The ragdoll on the left is using some NoCollisionsConstrinats to prevent unwanted collisions in the waist. Red dots show collision contact points.
UPDATE 8/7/2019
THIS API CHANGE HAS BEEN RE-ENABLED!
This also lead to a small change to the BasePart:CanCollideWith
API. This function will now return false for parts connected by a NoCollisionConstraint, as well as other constraints that prevent collisions between parts, like HingeConstraint and BallSocketConstraint.
It didn’t use to do that, before even if two hinged parts weren’t colliding, that function would return true. Now it returns false.
That’s it! Please let us know here if you run into any issues.