How to have a `CharacterBody3D` operate with multiple `Bone` following `CollisionShape3D`s?

Godot Version

4.2.1.stable.mono

Question

Before we start! Here’s an image so you can get a better idea of what I am talking about:


Hello all! I am creating an NPC that is a, uhhh hand called a Crawler, and I have a few requirements for it.
REQUIRMENETS:
1.) I would like the root node to be of type CharacterBody3D, that way I can have collision with the environment and can control the responses to collisions within code.
2.) I need each finger tip Bone to have a CollisionShape3D “attached” to it, that way the CollisionShape3D follows the Bone around in its animation.
3.) I would like the hand to move as if it is balancing on its fingers when in the “walking animation”.

I cant make the Bone following StaticBody3Ds the collision shape children for the CharacterBody3D root Node because the CollisionShape3Ds must be DIRECT children of the CharacterBody3D and cannot be grand-children. Is there a single solution that could fulfill all three of these requirements, and is considered the standard?

I have a few more questions, I was thinking of making the StaticBody3D Nodes in the bones, into CharacterBody3D Nodes instead, could this cause unintended side affects? Would this conflict with the parent CharacterBody3D Node? Or would these children just be masked over?

Also how do CharacterBody3D Nodes act when manipulated in an animation player? Do they still fall from gravity? Or is their collision code overridden by the animation?

1 Like