Tracked arm position in virtual reality multiuser application
The present technology pertains to full body or partial body tracking in a multiuser extended reality (XR) application. In one aspect, a client device that is participating in the multiuser XR application and may be configured to determine a position of a first elbow associated with an arm of an avatar in the virtual world based on at least a position associated with a wrist or hand of a user; determine whether the position of the elbow is inside a boundary associated with an opposing shoulder; adjust the position of the elbow to be outside of the boundary associated with the opposing shoulder; and render the arm of the avatar based on the position of the elbow outside of the boundary. Additional aspects include compound motion tracking and rendering of a shoulder in an XR application.
1 . A method of tracking and rendering motion within a virtual world, comprising:
determining a position of a first elbow associated with an arm of an avatar in the virtual world based on at least a position associated with a motion sensor corresponding to a wrist or hand of a user;
determining whether the position of an elbow corresponding to the wrist or the hand is inside a boundary associated with an opposing shoulder;
adjusting the position of the elbow to be outside of the boundary associated with the opposing shoulder while maintaining the position of the wrist or the hand corresponding to the motion sensor; and
rendering the arm of the avatar based on the position of the elbow outside of the boundary.
2 . The method of claim 1 , wherein the adjusting of the position comprises calculating the position of the elbow to follow the boundary.
3 . The method of claim 1 , wherein the boundary comprises a non-linear region that is associated with the opposing shoulder.
4 . The method of claim 3 , wherein the non-linear region comprises a curved region having at least one origin located at the opposing shoulder.
5 . A method of tracking and rendering motion within a virtual world, comprising:
receiving motion data from a motion sensor associated with a wrist or hand of a user;
determining, based on the motion data, a position of an elbow of an arm corresponding to the wrist or the hand;
determining whether the position of the elbow is within a boundary associated with an opposing shoulder of the arm; and
rendering the arm based on the position of the elbow relative to the boundary, wherein the arm is rendered in a pose characterized by a near maximum flexion of the elbow of the arm while maintaining the position of the wrist and rotation of a shoulder of the arm, whereby the arm is rendered without distortion of a length of the arm or unnatural rotation of the elbow.
6 . The method of claim 5 , further comprising:
detecting a bend angle associated with the arm based on at least one of an arm motion sensor or a wrist motion sensor.
7 . The method of claim 6 , further comprising:
determining a rotation of a shoulder bone associated with the arm based on a first position associated with the motion sensor and the bend angle associated with the arm.
8 . The method of claim 7 , further comprising:
determining an offset based on the bend angle associated with the arm and the first position associated with the motion sensor; and
applying the offset to a shoulder joint associated with the arm.
9 . The method of claim 8 , wherein the rotation of the shoulder is identified based on the offset applied to the shoulder joint.
10 . The method of claim 8 , wherein the offset corresponds to the first position when the offset intersects the first position.
11 . The method of claim 8 , wherein the offset corresponds to the first position when an end point of the offset is positioned at the first position.
12 . The method of claim 7 , further comprising:
determining a blend factor based on the first position associated with the shoulder, wherein a second position of the arm is determined based on the first position, a third position associated with the rotation of the shoulder bone, and the blend factor.
13 . A method of tracking and rendering motion within a virtual world, comprising:
detecting motion of a motion sensor provided by a user to animate an avatar of the user in a virtual world, wherein the motion sensor is associated with an effector that binds motion information from the motion sensor into the virtual world;
determining a directional mode associated with the effector, the directional mode including a forward directional mode and a reverse directional mode relative to an orientation of a reference vector;
determining a first pose of at least one limb of the avatar using a first technique;
based at least on a position of the effector within a zone, determining a second pose of the at least one limb of the avatar using a second technique; and
rendering the at least one limb of the avatar based on the first pose and the second pose.
14 . The method of claim 13 , further comprising:
determining at least one property of the zone, wherein the at least one property includes at least one of a location, a size, a shape, and a radius of the zone;
determining a position of the effector based on the motion of the motion sensor; and
determining whether the position of the effector is located within the zone.
15 . The method of claim 14 , wherein the at least one property of the zone is based on physical information of the user.
16 . The method of claim 14 , wherein the at least one property of the zone is based on physical information of the avatar.
17 . The method of claim 13 , further comprising:
determining whether the effector is permitted to switch the directional mode based on the position of the effector with respect to the reference vector.
18 . The method of claim 17 , wherein the directional mode includes a reverse directional mode and a forward directional mode, wherein the effector comprises the forward directional mode when a wrist associated is positioned in front of the reference vector, and the effector comprises the reverse directional mode when the effector is associated with a position behind the reference vector.
19 . The method of claim 17 , wherein the determining of the second pose is omitted when the effector is not permitted based on the directional mode.
20 . The method of claim 13 , further comprising:
determining a blend factor based on the position of the effector within the zone.
21 . The method of claim 20 , wherein rendering the at least one limb of the avatar based on the first pose and the second pose comprises interpolating the first pose and the second pose based on the blend factor to yield a third pose.
22 . The method of claim 13 , wherein the first technique comprises a first inverse kinematics (IK) solution to position the at least one limb in the virtual world, and the second technique comprises a second IK solution to position the at least one limb in the virtual world.