How to parent colliders to animated objects without breaking hierarchy of assets from production?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By stanley82

Hello,

I have issues to animate and control(animated) objects with physics/colliders, because as far as I know I can make collider only as a child of the physic node (rigidbody…)

I will try to explain example as briefly as possible.


As a user, I want to control the arm of the machine and make it physical and colliding with the world. It can also have the feature to break apart when damaged.

  • The arm is made out of several elements, with colliders and physics working as a robotic arm
  • This requires some hierarchy in the scene - I would like to make the hierarchy outside the Godot to allow streamlined asset production
  • For the “breaking feature” individual elements require to have collider and eventually rigidbody.

The issue I have is that I cannot make collider as a child of arm’s elements in the hierarchy. These solutions came to my mind:

  1. Create arms as independent physical objects(rigidbodies) and connect them in the physical world of Godot with some joints to make them controllable, colliding and react/impact physically

  2. Make them as independent KinematicBodies and script the physics, parenting, and behavior manually

  3. Use Physicalbones to keep the hierarchy of the asset. Not sure if possible, is it?

In all three options, I see the main issue that I will not be able to keep the hierarchy I export from 3D software. Mainly because of the impossibility to make collider child of other objects but physical. This I see as a really big issue especially in the future of asset production.


What option would you suggest? Is there a way to somehow parent(connect) colliders and rigidbodies to these elements player will control?

I would like to kindly ask you to give me any suggestions on where to look or point me in the right direction. I would try to explore any other suggested solution for this.

Thank you