Elbow and knee joints not available in body tracking?

In the WWDC demo, the tracked skeleton showed a variety of joints being tracked; however, in jointTransforms or modelTransforms, only the following seem to be available: head, shoulders, hands, hip joint (root), and feet. Has anyone been able to access elbow or knee joints? The video also showed joints at the spine, are these not available either? Any help would be greatly appreciated.

Accepted Reply

Hello,


Although not all of the joints have a defined constant in the ARSkeleton.JointName struct, you can still access them.


To get an array of all of the joint names call ARSkeletonDefinition.defaultBody3D.jointNames.


To use one of the joint name strings from that array:


bodyAnchor.skeleton.localTransform(for: ARSkeleton.JointName(rawValue: "spine_5_joint")) // Gets the local transform for the "spine_5_joint"
  • Hi gchiste,

    how do I call this array? I tried to print it in an ARKit environment, but it always returns an empty array and does not seem to have a description.

    I was able to use the array by iterating over it in my app, but I only found a few joints online that I can use out of it, and now I need to know what other joints I can use. The question is really as stupid as it sounds: where do I have to call what? :D

    Thanks in advance! Best, Chris

Add a Comment

Replies

Hello,


Although not all of the joints have a defined constant in the ARSkeleton.JointName struct, you can still access them.


To get an array of all of the joint names call ARSkeletonDefinition.defaultBody3D.jointNames.


To use one of the joint name strings from that array:


bodyAnchor.skeleton.localTransform(for: ARSkeleton.JointName(rawValue: "spine_5_joint")) // Gets the local transform for the "spine_5_joint"
  • Hi gchiste,

    how do I call this array? I tried to print it in an ARKit environment, but it always returns an empty array and does not seem to have a description.

    I was able to use the array by iterating over it in my app, but I only found a few joints online that I can use out of it, and now I need to know what other joints I can use. The question is really as stupid as it sounds: where do I have to call what? :D

    Thanks in advance! Best, Chris

Add a Comment

Thank you so much for this information!