mirror of
https://github.com/lubosz/overte.git
synced 2025-04-14 04:26:18 +02:00
Fill in MyAvatar animation JSDoc
This commit is contained in:
parent
eba89e8a80
commit
5068075645
5 changed files with 306 additions and 5 deletions
|
@ -59,6 +59,47 @@ public:
|
|||
|
||||
float getMaxErrorOnLastSolve() { return _maxErrorOnLastSolve; }
|
||||
|
||||
/**jsdoc
|
||||
* <p>Specifies the initial conditions of the IK solver.</p>
|
||||
* <table>
|
||||
* <thead>
|
||||
* <tr><th>Value</th><th>Name</p><th>Description</th>
|
||||
* </thead>
|
||||
* <tbody>
|
||||
* <tr><td><code>0</code></td><td>RelaxToUnderPoses</td><td>This is a blend between <code>PreviousSolution</code> and
|
||||
* <code>UnderPoses</code>: it is 15/16 <code>PreviousSolution</code> and 1/16 <code>UnderPoses</code>. This
|
||||
* provides some of the benefits of using <code>UnderPoses</code> so that the underlying animation is still visible,
|
||||
* while at the same time converging faster then using the <code>UnderPoses</code> only initial solution.</td></tr>
|
||||
* <tr><td><code>1</code></td><td>RelaxToLimitCenterPoses</td><td>This is a blend between
|
||||
* <code>Previous Solution</code> and <code>LimitCenterPoses</code>: it is 15/16 <code>PreviousSolution</code> and
|
||||
* 1/16 <code>LimitCenterPoses</code>. This should converge quickly because it is close to the previous solution, but
|
||||
* still provides the benefits of avoiding limb locking.</td></tr>
|
||||
* <tr><td><code>2</code></td><td>PreviousSolution</td><td>The IK system will begin to solve from the same position and
|
||||
* orientations for each joint that was the result from the previous frame.<br />
|
||||
* Pros: because the end effectors typically do not move much from frame to frame, this is likely to converge quickly
|
||||
* to a valid solution.<br />
|
||||
* Cons: If the previous solution resulted in an awkward or uncomfortable posture, the next frame will also be
|
||||
* awkward and uncomfortable. It can also result in locked elbows and knees.</td></tr>
|
||||
* <tr><td><code>3</code></td><td>UnderPoses</td><td>The IK occurs at one of the top-most layers, it has access to the
|
||||
* full posture that was computed via canned animations and blends. We call this animated set of poses the "under
|
||||
* pose". The under poses are what would be visible if IK was completely disabled. Using the under poses as the
|
||||
* initial conditions of the CCD solve will cause some of the animated motion to be blended in to the result of the
|
||||
* IK. This can result in very natural results, especially if there are only a few IK targets enabled. On the other
|
||||
* hand, because the under poses might be quite far from the desired end effector, it can converge slowly in some
|
||||
* cases, causing it to never reach the IK target in the allotted number of iterations. Also, in situations where all
|
||||
* of the IK targets are being controlled by external sensors, sometimes starting from the under poses can cause
|
||||
* awkward motions from the underlying animations to leak into the IK result.</td></tr>
|
||||
* <tr><td><code>4</code></td><td>LimitCenterPoses</td><td>This pose is taken to be the center of all the joint
|
||||
* constraints. This can prevent the IK solution from getting locked or stuck at a particular constraint. For
|
||||
* example, if the arm is pointing straight outward from the body, as the end effector moves towards the body, at
|
||||
* some point the elbow should bend to accommodate. However, because the CCD solver is stuck at a local maximum, it
|
||||
* will not rotate the elbow, unless the initial conditions already has the elbow bent, which is the case for
|
||||
* <code>LimitCenterPoses</code>. When all the IK targets are enabled, this result will provide a consistent starting
|
||||
* point for each IK solve, hopefully resulting in a consistent, natural result.</td></tr>
|
||||
* </tbody>
|
||||
* </table>
|
||||
* @typedef {number} MyAvatar.AnimIKSolutionSource
|
||||
*/
|
||||
enum class SolutionSource {
|
||||
RelaxToUnderPoses = 0,
|
||||
RelaxToLimitCenterPoses,
|
||||
|
|
|
@ -24,6 +24,33 @@ class AnimOverlay : public AnimNode {
|
|||
public:
|
||||
friend class AnimTests;
|
||||
|
||||
/**jsdoc
|
||||
* <p>Specifies sets of joints.</p>
|
||||
* <table>
|
||||
* <thead>
|
||||
* <tr><th>Value</th><th>Name</p><th>Description</th>
|
||||
* </thead>
|
||||
* <tbody>
|
||||
* <tr><td><code>0</code></td><td>FullBodyBoneSet</td><td>All joints.</td></tr>
|
||||
* <tr><td><code>1</code></td><td>UpperBodyBoneSet</td><td>Only the "Spine" joint and its children.</td></tr>
|
||||
* <tr><td><code>2</code></td><td>LowerBodyBoneSet</td><td>Only the leg joints and their children.</td></tr>
|
||||
* <tr><td><code>3</code></td><td>LeftArmBoneSet</td><td>Joints that are children of the "LeftShoulder" joint.</td></tr>
|
||||
* <tr><td><code>4</code></td><td>RightArmBoneSet</td><td>Joints that are children of the "RightShoulder"
|
||||
* joint.</td></tr>
|
||||
* <tr><td><code>5</code></td><td>AboveTheHeadBoneSet</td><td>Joints that are children of the "Head" joint.</td></tr>
|
||||
* <tr><td><code>6</code></td><td>BelowTheHeadBoneSet</td><td>Joints that are NOT children of the "head"
|
||||
* joint.</td></tr>
|
||||
* <tr><td><code>7</code></td><td>HeadOnlyBoneSet</td><td>The "Head" joint.</td></tr>
|
||||
* <tr><td><code>8</code></td><td>SpineOnlyBoneSet</td><td>The "Spine" joint.</td></tr>
|
||||
* <tr><td><code>9</code></td><td>EmptyBoneSet</td><td>No joints.</td></tr>
|
||||
* <tr><td><code>10</code></td><td>LeftHandBoneSet</td><td>joints that are children of the "LeftHand" joint.</td></tr>
|
||||
* <tr><td><code>11</code></td><td>RightHandBoneSet</td><td>Joints that are children of the "RightHand" joint.</td></tr>
|
||||
* <tr><td><code>12</code></td><td>HipsOnlyBoneSet</td><td>The "Hips" joint.</td></tr>
|
||||
* <tr><td><code>13</code></td><td>BothFeetBoneSet</td><td>The "LeftFoot" and "RightFoot" joints.</td></tr>
|
||||
* </tbody>
|
||||
* </table>
|
||||
* @typedef {number} MyAvatar.AnimOverlayBoneSet
|
||||
*/
|
||||
enum BoneSet {
|
||||
FullBodyBoneSet = 0,
|
||||
UpperBodyBoneSet,
|
||||
|
|
|
@ -16,6 +16,27 @@ const float HACK_HMD_TARGET_WEIGHT = 8.0f;
|
|||
|
||||
class IKTarget {
|
||||
public:
|
||||
/**jsdoc
|
||||
* <p>An IK target type.</p>
|
||||
* <table>
|
||||
* <thead>
|
||||
* <tr><th>Value</th><th>Name</p><th>Description</th>
|
||||
* </thead>
|
||||
* <tbody>
|
||||
* <tr><td><code>0</code></td><td>RotationAndPosition</td><td>Attempt to reach the rotation and position end
|
||||
* effector.</td></tr>
|
||||
* <tr><td><code>1</code></td><td>RotationOnly</td><td>Attempt to reach the end effector rotation only.</td></tr>
|
||||
* <tr><td><code>2</code></td><td>HmdHead</td><td><strong>Deprecated:</strong> A special mode of IK that would attempt
|
||||
* to prevent unnecessary bending of the spine.</td></tr>
|
||||
* <tr><td><code>3</code></td><td>HipsRelativeRotationAndPosition</td><td>Attempt to reach a rotation and position end
|
||||
* effector that is not in absolute rig coordinates but is offset by the avatar hips translation.</td></tr>
|
||||
* <tr><td><code>4</code></td><td>Spline</td><td>Use a cubic Hermite spline to model the human spine. This prevents
|
||||
* kinks in the spine and allows for a small amount of stretch and squash.</td></tr>
|
||||
* <tr><td><code>5</code></td><td>Unknown</td><td>IK is disabled.</td></tr>
|
||||
* </tbody>
|
||||
* </table>
|
||||
* @typedef {number} MyAvatar.IKTargetType
|
||||
*/
|
||||
enum class Type {
|
||||
RotationAndPosition,
|
||||
RotationOnly,
|
||||
|
|
|
@ -75,6 +75,217 @@ static const QString MAIN_STATE_MACHINE_RIGHT_FOOT_ROTATION("mainStateMachineRig
|
|||
static const QString MAIN_STATE_MACHINE_RIGHT_FOOT_POSITION("mainStateMachineRightFootPosition");
|
||||
|
||||
|
||||
/**jsdoc
|
||||
* <p>An <code>AnimStateDictionary</code> object may have the following properties. It may also have other properties, set by
|
||||
* scripts.</p>
|
||||
* <table>
|
||||
* <thead>
|
||||
* <tr><th>Name</th><th>Type</p><th>Description</th>
|
||||
* </thead>
|
||||
* <tbody>
|
||||
* <tr><td><code>userAnimNone</code></td><td>boolean</td><td><code>true</code> when no user overrideAnimation is
|
||||
* playing.</td></tr>
|
||||
* <tr><td><code>userAnimA</code></td><td>boolean</td><td><code>true</code> when a user overrideAnimation is
|
||||
* playing.</td></tr>
|
||||
* <tr><td><code>userAnimB</code></td><td>boolean</td><td><code>true</code> when a user overrideAnimation is
|
||||
* playing.</td></tr>
|
||||
*
|
||||
* <tr><td><code>sine</code></td><td>number</td><td>Oscillating sine wave.</td></tr>
|
||||
* <tr><td><code>moveForwardSpeed</code></td><td>number</td><td>Controls the blend between the various forward walking
|
||||
* & running animations.</td></tr>
|
||||
* <tr><td><code>moveBackwardSpeed</code></td><td>number</td><td>Controls the blend between the various backward walking
|
||||
* & running animations.</td></tr>
|
||||
* <tr><td><code>moveLateralSpeed</code></td><td>number</td><td>Controls the blend between the various sidestep walking
|
||||
* & running animations.</td></tr>
|
||||
*
|
||||
* <tr><td><code>isMovingForward</code></td><td>boolean</td><td><code>true</code> if the avatar is moving
|
||||
* forward.</td></tr>
|
||||
* <tr><td><code>isMovingBackward</code></td><td>boolean</td><td><code>true</code> if the avatar is moving
|
||||
* backward.</td></tr>
|
||||
* <tr><td><code>isMovingRight</code></td><td>boolean</td><td><code>true</code> if the avatar is moving to the
|
||||
* right.</td></tr>
|
||||
* <tr><td><code>isMovingLeft</code></td><td>boolean</td><td><code>true</code> if the avatar is moving to the
|
||||
* left.</td></tr>
|
||||
* <tr><td><code>isMovingRightHmd</code></td><td>boolean</td><td><code>true</code> if the avatar is moving to the right
|
||||
* while the user is in HMD mode.</td></tr>
|
||||
* <tr><td><code>isMovingLeftHmd</code></td><td>boolean</td><td><code>true</code> if the avatar is moving to the left while
|
||||
* the user is in HMD mode.</td></tr>
|
||||
* <tr><td><code>isNotMoving</code></td><td>boolean</td><td><code>true</code> if the avatar is stationary.</td></tr>
|
||||
*
|
||||
* <tr><td><code>isTurningRight</code></td><td>boolean</td><td><code>true</code> if the avatar is turning
|
||||
* clockwise.</td></tr>
|
||||
* <tr><td><code>isTurningLeft</code></td><td>boolean</td><td><code>true</code> if the avatar is turning
|
||||
* counter-clockwise.</td></tr>
|
||||
* <tr><td><code>isNotTurning</code></td><td>boolean</td><td><code>true</code> if the avatar is not turning.</td></tr>
|
||||
* <tr><td><code>isFlying</code></td><td>boolean</td><td><code>true</code> if the avatar is flying.</td></tr>
|
||||
* <tr><td><code>isNotFlying</code></td><td>boolean</td><td><code>true</code> if the avatar is not flying.</td></tr>
|
||||
* <tr><td><code>isTakeoffStand</code></td><td>boolean</td><td><code>true</code> if the avatar is about to execute a
|
||||
* standing jump.</td></tr>
|
||||
* <tr><td><code>isTakeoffRun</code></td><td>boolean</td><td><code>true</code> if the avatar is about to execute a running
|
||||
* jump.</td></tr>
|
||||
* <tr><td><code>isNotTakeoff</code></td><td>boolean</td><td><code>true</code> if the avatar is not jumping.</td></tr>
|
||||
* <tr><td><code>isInAirStand</code></td><td>boolean</td><td><code>true</code> if the avatar is in the air after a standing
|
||||
* jump.</td></tr>
|
||||
* <tr><td><code>isInAirRun</code></td><td>boolean</td><td><code>true</code> if the avatar is in the air after a running
|
||||
* jump.</td></tr>
|
||||
* <tr><td><code>isNotInAir</code></td><td>boolean</td><td><code>true</code> if the avatar on the ground.</td></tr>
|
||||
*
|
||||
* <tr><td><code>inAirAlpha</code></td><td>number</td><td>Used to interpolate between the up, apex, and down in-air
|
||||
* animations.</td></tr>
|
||||
* <tr><td><code>ikOverlayAlpha</code></td><td>number</td><td>The blend between upper body and spline IK versus the
|
||||
* underlying animation</td></tr>
|
||||
*
|
||||
* <tr><td><code>headPosition</code></td><td>{@link Vec3}</td><td>The desired position of the <code>Head</code> joint in
|
||||
* rig coordinates.</td></tr>
|
||||
* <tr><td><code>headRotation</code></td><td>{@link Quat}</td><td>The desired orientation of the <code>Head</code> joint in
|
||||
* rig coordinates.</td></tr>
|
||||
* <tr><td><code>headType</code></td><td>{@link MyAvatar.IKTargetType|IKTargetType}</td><td>The type of IK used for the
|
||||
* head.</td></tr>
|
||||
* <tr><td><code>headWeight</code></td><td>number</td><td>How strongly the head chain blends with the other IK
|
||||
* chains.</td></tr>
|
||||
*
|
||||
* <tr><td><code>leftHandPosition</code></td><td>{@link Vec3}</td><td>The desired position of the <code>LeftHand</code>
|
||||
* joint in rig coordinates.</td></tr>
|
||||
* <tr><td><code>leftHandRotation</code></td><td>{@link Quat}</td><td>The desired orientation of the <code>LeftHand</code>
|
||||
* joint in rig coordinates.</td></tr>
|
||||
* <tr><td><code>leftHandType</code></td><td>{@link MyAvatar.IKTargetType|IKTargetType}</td><td>The type of IK used for the
|
||||
* left arm.</td></tr>
|
||||
* <tr><td><code>leftHandPoleVectorEnabled</code></td><td>boolean</td><td>When <code>true</code>, the elbow angle is
|
||||
* controlled by the <code>rightHandPoleVector</code> property value. Otherwise the elbow direction comes from the
|
||||
* underlying animation.</td></tr>
|
||||
* <tr><td><code>leftHandPoleReferenceVector</code></td><td>{@link Vec3}</td><td>The direction of the elbow in the local
|
||||
* coordinate system of the elbow.</td></tr>
|
||||
* <tr><td><code>leftHandPoleVector</code></td><td>{@link Vec3}</td><td>The direction the elbow should point in rig
|
||||
* coordinates.</td></tr>
|
||||
|
||||
* <tr><td><code>rightHandPosition</code></td><td>{@link Vec3}</td><td>The desired position of the <code>RightHand</code>
|
||||
* joint in rig coordinates.</td></tr>
|
||||
* <tr><td><code>rightHandRotation</code></td><td>{@link Quat}</td><td>The desired orientation of the
|
||||
* <code>RightHand</code> joint in rig coordinates.</td></tr>
|
||||
* <tr><td><code>rightHandType</code></td><td>{@link MyAvatar.IKTargetType|IKTargetType}</td><td>The type of IK used for
|
||||
* the right arm.</td></tr>
|
||||
* <tr><td><code>rightHandPoleVectorEnabled</code></td><td>boolean</td><td>When <code>true</code>, the elbow angle is
|
||||
* controlled by the <code>rightHandPoleVector</code> property value. Otherwise the elbow direction comes from the
|
||||
* underlying animation.</td></tr>
|
||||
* <tr><td><code>rightHandPoleReferenceVector</code></td><td>{@link Vec3}</td><td>The direction of the elbow in the local
|
||||
* coordinate system of the elbow.</td></tr>
|
||||
* <tr><td><code>rightHandPoleVector</code></td><td>{@link Vec3}</td><td>The direction the elbow should point in rig
|
||||
* coordinates.</td></tr>
|
||||
*
|
||||
* <tr><td><code>leftFootIKEnabled</code></td><td>boolean</td><td><code>true</code> if IK is enabled for the left
|
||||
* foot.</td></tr>
|
||||
* <tr><td><code>rightFootIKEnabled</code></td><td>boolean</td><td><code>true</code> if IK is enabled for the right
|
||||
* foot.</td></tr>
|
||||
|
||||
* <tr><td><code>leftFootIKPositionVar</code></td><td>string</td><td>The name of the source for the desired position
|
||||
* of the <code>LeftFoot</code> joint. If not set, the foot rotation of the underlying animation will be used.</td></tr>
|
||||
* <tr><td><code>leftFootIKRotationVar</code></td><td>string</td><td>The name of the source for the desired rotation
|
||||
* of the <code>LeftFoot</code> joint. If not set, the foot rotation of the underlying animation will be used.</td></tr>
|
||||
* <tr><td><code>leftFootPoleVectorEnabled</code></td><td>boolean</td><td>When <code>true</code>, the knee angle is
|
||||
* controlled by the <code>leftFootPoleVector</code> property value. Otherwise the knee direction comes from the
|
||||
* underlying animation.</td></tr>
|
||||
* <tr><td><code>leftFootPoleVector</code></td><td>{@link Vec3}</td><td>The direction the knee should face in rig
|
||||
* coordinates.</td></tr>
|
||||
* <tr><td><code>rightFootIKPositionVar</code></td><td>string</td><td>The name of the source for the desired position
|
||||
* of the <code>RightFoot</code> joint. If not set, the foot rotation of the underlying animation will be used.</td></tr>
|
||||
* <tr><td><code>rightFootIKRotationVar</code></td><td>string</td><td>The name of the source for the desired rotation
|
||||
* of the <code>RightFoot</code> joint. If not set, the foot rotation of the underlying animation will be used.</td></tr>
|
||||
* <tr><td><code>rightFootPoleVectorEnabled</code></td><td>boolean</td><td>When <code>true</code>, the knee angle is
|
||||
* controlled by the <code>rightFootPoleVector</code> property value. Otherwise the knee direction comes from the
|
||||
* underlying animation.</td></tr>
|
||||
* <tr><td><code>rightFootPoleVector</code></td><td>{@link Vec3}</td><td>The direction the knee should face in rig
|
||||
* coordinates.</td></tr>
|
||||
*
|
||||
* <tr><td><code>isTalking</code></td><td>boolean</td><td><code>true</code> if the avatar is talking.</td></tr>
|
||||
* <tr><td><code>notIsTalking</code></td><td>boolean</td><td><code>true</code> if the avatar is not talking.</td></tr>
|
||||
*
|
||||
* <tr><td><code>solutionSource</code></td><td>{@link MyAvatar.AnimIKSolutionSource|AnimIKSolutionSource}</td>
|
||||
* <td>Determines the initial conditions of the IK solver.</td></tr>
|
||||
* <tr><td><code>defaultPoseOverlayAlpha</code></td><td>number</td><td>Controls the blend between the main animation state
|
||||
* machine and the default pose. Mostly used during full body tracking so that walking & jumping animations do not
|
||||
* affect the IK of the figure.</td></tr>
|
||||
* <tr><td><code>defaultPoseOverlayBoneSet</code></td><td>{@link MyAvatar.AnimOverlayBoneSet|AnimOverlayBoneSet}</td>
|
||||
* <td>Specifies which bones will be replace by the source overlay.</td></tr>
|
||||
* <tr><td><code>hipsType</code></td><td>{@link MyAvatar.IKTargetType|IKTargetType}</td><td>The type of IK used for the
|
||||
* hips.</td></tr>
|
||||
* <tr><td><code>hipsPosition</code></td><td>{@link Vec3}</td><td>The desired position of <code>Hips</code> joint in rig
|
||||
* coordinates.</td></tr>
|
||||
* <tr><td><code>hipsRotation</code></td><td>{@link Quat}</td><td>the desired orientation of the <code>Hips</code> joint in
|
||||
* rig coordinates.</td></tr>
|
||||
* <tr><td><code>spine2Type</code></td><td>{@link MyAvatar.IKTargetType|IKTargetType}</td><td>The type of IK used for the
|
||||
* <code>Spine2</code> joint.</td></tr>
|
||||
* <tr><td><code>spine2Position</code></td><td>{@link Vec3}</td><td>The desired position of the <code>Spine2</code> joint
|
||||
* in rig coordinates.</td></tr>
|
||||
* <tr><td><code>spine2Rotation</code></td><td>{@link Quat}</td><td>The desired orientation of the <code>Spine2</code>
|
||||
* joint in rig coordinates.</td></tr>
|
||||
*
|
||||
* <tr><td><code>leftFootIKAlpha</code></td><td>number</td><td>Blends between full IK for the leg and the underlying
|
||||
* animation.</td></tr>
|
||||
* <tr><td><code>rightFootIKAlpha</code></td><td>number</td><td>Blends between full IK for the leg and the underlying
|
||||
* animation.</td></tr>
|
||||
* <tr><td><code>hipsWeight</code></td><td>number</td><td>How strongly the hips target blends with the IK solution for
|
||||
* other IK chains.</td></tr>
|
||||
* <tr><td><code>leftHandWeight</code></td><td>number</td><td>How strongly the left hand blends with IK solution of other
|
||||
* IK chains.</td></tr>
|
||||
* <tr><td><code>rightHandWeight</code></td><td>number</td><td>How strongly the right hand blends with IK solution of other
|
||||
* IK chains.</td></tr>
|
||||
* <tr><td><code>spine2Weight</code></td><td>number</td><td>How strongly the spine2 chain blends with the rest of the IK
|
||||
* solution.</td></tr>
|
||||
*
|
||||
* <tr><td><code>leftHandOverlayAlpha</code></td><td>number</td><td>Used to blend in the animated hand gesture poses, such
|
||||
* as point and thumbs up.</td></tr>
|
||||
* <tr><td><code>leftHandGraspAlpha</code></td><td>number</td><td>Used to blend between an open hand and a closed hand.
|
||||
* Usually changed as you squeeze the trigger of the hand controller.</td></tr>
|
||||
* <tr><td><code>rightHandOverlayAlpha</code></td><td>number</td><td>Used to blend in the animated hand gesture poses,
|
||||
* such as point and thumbs up.</td></tr>
|
||||
* <tr><td><code>rightHandGraspAlpha</code></td><td>number</td><td>Used to blend between an open hand and a closed hand.
|
||||
* Usually changed as you squeeze the trigger of the hand controller.</td></tr>
|
||||
* <tr><td><code>isLeftIndexPoint</code></td><td>boolean</td><td><code>true</code> if the left hand should be
|
||||
* pointing.</td></tr>
|
||||
* <tr><td><code>isLeftThumbRaise</code></td><td>boolean</td><td><code>true</code> if the left hand should be
|
||||
* thumbs-up.</td></tr>
|
||||
* <tr><td><code>isLeftIndexPointAndThumbRaise</code></td><td>boolean</td><td><code>true</code> if the left hand should be
|
||||
* pointing and thumbs-up.</td></tr>
|
||||
* <tr><td><code>isLeftHandGrasp</code></td><td>boolean</td><td><code>true</code> if the left hand should be at rest,
|
||||
* grasping the controller.</td></tr>
|
||||
* <tr><td><code>isRightIndexPoint</code></td><td>boolean</td><td><code>true</code> if the right hand should be
|
||||
* pointing.</td></tr>
|
||||
* <tr><td><code>isRightThumbRaise</code></td><td>boolean</td><td><code>true</code> if the right hand should be
|
||||
* thumbs-up.</td></tr>
|
||||
* <tr><td><code>isRightIndexPointAndThumbRaise</code></td><td>boolean</td><td><code>true</code> if the right hand should
|
||||
* be pointing and thumbs-up.</td></tr>
|
||||
* <tr><td><code>isRightHandGrasp</code></td><td>boolean</td><td><code>true</code> if the right hand should be at rest,
|
||||
* grasping the controller.</td></tr>
|
||||
*
|
||||
* </tbody>
|
||||
* </table>
|
||||
* <p>Note: Rig coordinates are <code>+z</code> forward and <code>+y</code> up.</p>
|
||||
* @typedef {object} MyAvatar.AnimStateDictionary
|
||||
*/
|
||||
// Note: The following animVars are intentionally not documented:
|
||||
// - leftFootPosition
|
||||
// - leftFootRotation
|
||||
// - rightFooKPosition
|
||||
// - rightFooKRotation
|
||||
// Note: The following items aren't set in the code below but are still intentionally documented:
|
||||
// - leftFootIKAlpha
|
||||
// - rightFootIKAlpha
|
||||
// - hipsWeight
|
||||
// - leftHandWeight
|
||||
// - rightHandWeight
|
||||
// - spine2Weight
|
||||
// - rightHandOverlayAlpha
|
||||
// - rightHandGraspAlpha
|
||||
// - leftHandOverlayAlpha
|
||||
// - leftHandGraspAlpha
|
||||
// - isRightIndexPoint
|
||||
// - isRightThumbRaise
|
||||
// - isRightIndexPointAndThumbRaise
|
||||
// - isRightHandGrasp
|
||||
// - isLeftIndexPoint
|
||||
// - isLeftThumbRaise
|
||||
// - isLeftIndexPointAndThumbRaise
|
||||
// - isLeftHandGrasp
|
||||
Rig::Rig() {
|
||||
// Ensure thread-safe access to the rigRegistry.
|
||||
std::lock_guard<std::mutex> guard(rigRegistryMutex);
|
||||
|
|
|
@ -573,11 +573,12 @@ public slots:
|
|||
|
||||
/**jsdoc
|
||||
* @function Script.callAnimationStateHandler
|
||||
* @param {function} callback
|
||||
* @param {object} parameters
|
||||
* @param {string[]} names
|
||||
* @param {boolean} useNames
|
||||
* @param {object} resultHandler
|
||||
* @param {function} callback - Callback.
|
||||
* @param {object} parameters - Parameters.
|
||||
* @param {string[]} names - Names.
|
||||
* @param {boolean} useNames - Use names.
|
||||
* @param {function} resultHandler - Result handler.
|
||||
* @deprecated This function is deprecated and will be removed.
|
||||
*/
|
||||
void callAnimationStateHandler(QScriptValue callback, AnimVariantMap parameters, QStringList names, bool useNames, AnimVariantResultHandler resultHandler);
|
||||
|
||||
|
|
Loading…
Reference in a new issue