Rigidbody without or with multiple colliders?


#1

I want to make an animated object, which also has animated colliders, like for legs and arms. They should do collision detection and then all accelerate the same object (either using physics or more likely do some custom acceleration).
So if I use a rigidbody, it should probably be the parent of the animated colliders. But this rigidbody doesn’t need to have a collider. But it seems, it’s not possible to have no collider.
It may also be useful to attach these animated child objects as colliders to the main rigidbody, but I assume, that doesn’t work either.
Is the best solution not to have a rigidbody for my parent object but do some manual physics?


#2

So, I’m not sure exactly what you mean, however, some ideas which may help:

If by “collider” you mean something capable of detecting a collision, then know that an object doesn’t have to use physics / rigid body to detect another object touching or colliding with it. If by “collider” you mean that an object which bounces and reacts to physics, then you need rigid body. Rigid body objects though don’t do well with animations / parents applied to them as the movement is calculated by the physics engine, not the animation engine.

At the moment, parenting rigid bodies is buggy. I imagine this will probably be fixed in a future version. Just don’t expect to be able to do it without bugs yet.

Not sure what you mean by this. The definition of a rigidbody is an object set to use the physics engine, which means that it will automatically detect other physics enabled objects and react to them. If you don’t want the object to react to physics enabled objects then… don’t make it a rigid body.

See above. There’s no real parenting of rigid bodies… yet.

Explain what you mean by “collider” and we can likely answer your question better. If you just want to detect objects touching arms and legs of your character, then your best solution is to not use rigid body for these at all. Instead just use scaled cubes parented to the armature bones. These can activate a volume trigger when an object comes in contact with them. Then you make them invisible in the game by clicking on the camera icon to the right of the object name in Blender’s outliner view.


#3

I don’t want to parent rigidbodies.
The top level object is a rigidbody and has other objects as child, which just do collision detection.

I wanted to use scaled spheres instead of cubes, because sphere collision detection should be more efficient (at least when the cubes can be rotated; else cubes may lead to unwanted behavior.

Rigidbodies without collider would store velocity and torque and just apply them to position and rotation.

Colliders can do collision detection and the information (touch points, penetration depth) will then be handled using a custom script.


#4

I think you would do that with physics constraints. Try constraint.blend in the Armory examples.

It sounds like you would want to constrain multiple sphere rigid bodies to be fixed to an empty. Not sure if you can do that.