private void Start()
    {
        var boneThickness = 0.1f;

        humanSkeleton       = CreateHumanSkeleton();
        humanSkeletonObject = Bone.CreateSkeletonObject(humanSkeleton, Vector3.zero, boneThickness);

        var rootObject = humanSkeletonObject;

        rootObject.transform.position += 1.12f * Vector3.up;

        humanSkeletonParentObject            = new GameObject();
        humanSkeletonObject.transform.parent = humanSkeletonParentObject.transform;

        var leftUpperArmObject = humanSkeletonObject.FindDescendant("leftUpperArm");

        leftHandTarget = new GameObject("leftHandTarget");

        var rightUpperArmObject = humanSkeletonObject.FindDescendant("rightUpperArm");

        rightHandTarget = new GameObject("rightHandTarget");

        var leftUpperLegObject = humanSkeletonObject.FindDescendant("leftUpperLeg");

        leftFootObject = humanSkeletonObject.FindDescendant("leftFoot");
        leftFootTarget = new GameObject("leftFootTarget");

        var rightUpperLegObject = humanSkeletonObject.FindDescendant("rightUpperLeg");

        rightFootObject = humanSkeletonObject.FindDescendant("rightFoot");
        rightFootTarget = new GameObject("rightFootTarget");

        IsRightFootPlanted      = false;
        LeftFootTargetPosition  = leftFootObject.transform.position;
        RightFootTargetPosition = rightFootObject.transform.position + new Vector3(0, 0, StrideLength);

        leftFootTarget.transform.position  = LeftFootTargetPosition;
        rightFootTarget.transform.position = RightFootTargetPosition;
    }