JOINT question loading sample COLLADA file astroBoy_walk

Hi everybody (Hi Dr. Nick!),

I am writing a Java 1.1 compatible COLLADA loader for skeletal animation purposes and I am having a heck of a time understanding the JOINT nodes in the astroBoy_walk.dae file.

Under:

<library_visual_scenes>
<visual_scene>
<node id=“astroBoy_newSkeleton_root”>

Lies the hierarchy of the skeleton (afaik), now this seems pretty straightforward at first, I simply grab the child elements that represent the local bone transformation, and then look for child elements named ‘node’ and that have type=“JOINT”.

Then I noticed that there are elements in this hierarchy that are ‘node’ elements but have type=“NODE”. They do not have an sid attribute, so I am ASSuming they don’t affect the skin since the skin data holding a name array of joints affecting the skin only holds SIDs.

Now, these ‘node’ elements with type=“NODE” have child elements that appear to be local bone transforms.

The first one I run into in the astroBoy_walk.dae file is “astroBoy_newSkeleton_headEnd”, and it has no children, so I would presume I could safely ignore it; however, later on in the joint hierarchy I run into a ‘non JOINT’ node between two ‘JOINT’ nodes.

This happens between the node where the id=“astroBoy_newSkeleton_L_wrist” with sid=“Bone11” and the node where the id=“astroBoy_newSkeleton_L_index_01” with sid=“Bone16”

I do not know what I am supposed to do with the node that is in between (node id=“astroBoy_newSkeleton_L_indexOrient” with no sid)?

Am I supposed to store the local bone transform data of this node of type=“NODE” for use with something later? Do I ignore it completely?

If this wasn’t reference sample from COLLADA itself, I’d be worried it was some sort of exporter artifact or error.

Help? :slight_smile:

Thanks,

 WTH

Treat all nodes equally. There are no exceptions or special cases.

The type attribute is only a hint to applications that want to visualize skeleton rigs in some fashion.

Marcus, I VERY much appreciate the reply :).

So, to clarify, it is treated as a part of the skeleton and should be treated as such (therefore accumulating its local bone transformation data), but since it has no SID it won’t affect the skin directly - otherwise it is exactly the same (meaning there may be animation data that applies to it.)

Cheers again,

 WTH

All the nodes are part of the skeleton transformation hierarchy. Those with sid or id (anachronistic) may also be influences and may be animated.