ARBodyAnchor
An anchor that tracks the position and movement of a human body in the rear-facing camera.
Declaration
class ARBodyAnchorOverview
This ARAnchor subclass tracks the movement of a single person. You enable body tracking by running your session using ARBodyTrackingConfiguration.
When ARKit recognizes a person in the back camera feed, it calls your delegate’s session(_:didAdd:) function with ARBodyAnchor. A body anchor’s transform position defines the world position of the body’s hip joint.
You can also check within the frame’s anchors for a body that ARKit is tracking.
Place a Skeleton on a Surface
Because a body anchor’s origin maps to the hip joint, you calculate the current offset of the feet to the hip to place the body’s skeleton on a surface. By passing the foot joint index to jointModelTransforms, you get the foot’s offset from skeleton’s origin.
static var hipToFootOffset: Float {
// Get an index for a foot.
let footIndex = ARSkeletonDefinition.defaultBody3D.index(forJointName: .leftFoot)
// Get the foot's world-space offset from the hip.
let footTransform = ARSkeletonDefinition.defaultBody3D.neutralBodySkeleton3D!.jointModelTransforms[footIndex]
// Return the height by getting just the y-value.
let distanceFromHipOnY = abs(footTransform.columns.3.y)
return distanceFromHipOnY
}