// build a list of joints - one list per skeleton - and build a skeleton for each joint list.
for (final JointNode jointChildNode : _dataCache.getRootJointNode().getChildren()) {
final List<Joint> jointList = Lists.newArrayList();
buildJointLists(jointChildNode, jointList);
final Joint[] joints = jointList.toArray(new Joint[jointList.size()]);
final Skeleton skeleton = new Skeleton(joints[0].getName() + "_skeleton", joints);
if (logger.isLoggable(Level.FINE)) {
logger.fine("skeleton created: " + skeleton.getName());
}
for (final Joint joint : jointList) {
_dataCache.getJointSkeletonMapping().put(joint, skeleton);
if (logger.isLoggable(Level.FINE)) {
logger.fine("- Joint " + joint.getName() + " - index: " + joint.getIndex() + " parent index: "