Roblox UtilitiesDevlHub Roblox Documentation

Class

DigitsRigDescription

Inherits
Instance › Object
Memory category
Animation

Maps the 15 phalanx joints of one hand (5 fingers, 3 joints each) and exposes forward- and inverse-kinematics helpers for controlling finger poses at runtime.

Enables interoperability of animations across hand rigs and drives the hand finger solver. Each DigitsRigDescription maps the 15 phalanx joints of one hand (5 fingers with 3 joints each) to engine instances, stores their T-pose adjustments, and exposes forward- and inverse-kinematics helpers for controlling finger poses at runtime.

Properties 41#

Index1InstanceThe instance mapped to the proximal (first) phalanx of the index finger.ReadSafe
Index1TposeAdjustmentCFrameCFrame applied to Index1 to normalize the joint into its canonical T-pose orientation before retargeting or solving.ReadSafe
Index2InstanceThe instance mapped to the medial (second) phalanx of the index finger.ReadSafe
Index2TposeAdjustmentCFrameCFrame applied to Index2 to normalize the joint into its canonical T-pose orientation before retargeting or solving.ReadSafe
Index3InstanceThe instance mapped to the distal (third) phalanx of the index finger.ReadSafe
Index3TposeAdjustmentCFrameCFrame applied to Index3 to normalize the joint into its canonical T-pose orientation before retargeting or solving.ReadSafe
IndexRangeVector3Motion range vector for the index finger used by the finger solver.ReadSafe
IndexSizefloatSize of the index finger used by the finger solver to preserve contacts.ReadSafe
Middle1InstanceThe instance mapped to the proximal (first) phalanx of the middle finger.ReadSafe
Middle1TposeAdjustmentCFrameCFrame applied to Middle1 to normalize the joint into its canonical T-pose orientation before retargeting or solving.ReadSafe
Middle2InstanceThe instance mapped to the medial (second) phalanx of the middle finger.ReadSafe
Middle2TposeAdjustmentCFrameCFrame applied to Middle2 to normalize the joint into its canonical T-pose orientation before retargeting or solving.ReadSafe
Middle3InstanceThe instance mapped to the distal (third) phalanx of the middle finger.ReadSafe
Middle3TposeAdjustmentCFrameCFrame applied to Middle3 to normalize the joint into its canonical T-pose orientation before retargeting or solving.ReadSafe
MiddleRangeVector3Motion range vector for the middle finger used by the finger solver.ReadSafe
MiddleSizefloatScale factor for the middle finger used by the scalable-property system.ReadSafe
Pinky1InstanceThe instance mapped to the proximal (first) phalanx of the pinky finger.ReadSafe
Pinky1TposeAdjustmentCFrameCFrame applied to Pinky1 to normalize the joint into its canonical T-pose orientation before retargeting or solving.ReadSafe
Pinky2InstanceThe instance mapped to the medial (second) phalanx of the pinky finger.ReadSafe
Pinky2TposeAdjustmentCFrameCFrame applied to Pinky2 to normalize the joint into its canonical T-pose orientation before retargeting or solving.ReadSafe
Pinky3InstanceThe instance mapped to the distal (third) phalanx of the pinky finger.ReadSafe
Pinky3TposeAdjustmentCFrameCFrame applied to Pinky3 to normalize the joint into its canonical T-pose orientation before retargeting or solving.ReadSafe
PinkyRangeVector3Motion range vector for the pinky finger used by the finger solver.ReadSafe
PinkySizefloatScale factor for the pinky finger used by the scalable-property system.ReadSafe
Ring1InstanceThe instance mapped to the proximal (first) phalanx of the ring finger.ReadSafe
Ring1TposeAdjustmentCFrameCFrame applied to Ring1 to normalize the joint into its canonical T-pose orientation before retargeting or solving.ReadSafe
Ring2InstanceThe instance mapped to the medial (second) phalanx of the ring finger.ReadSafe
Ring2TposeAdjustmentCFrameCFrame applied to Ring2 to normalize the joint into its canonical T-pose orientation before retargeting or solving.ReadSafe
Ring3InstanceThe instance mapped to the distal (third) phalanx of the ring finger.ReadSafe
Ring3TposeAdjustmentCFrameCFrame applied to Ring3 to normalize the joint into its canonical T-pose orientation before retargeting or solving.ReadSafe
RingRangeVector3Motion range vector for the ring finger used by the finger solver.ReadSafe
RingSizefloatScale factor for the ring finger used by the scalable-property system.ReadSafe
SideDigitsRigDescriptionSideWhich hand this description belongs to: None, Left, or Right.ReadSafe
Thumb1InstanceThe instance mapped to the proximal (first) phalanx of the thumb.ReadSafe
Thumb1TposeAdjustmentCFrameCFrame applied to Thumb1 to normalize the joint into its canonical T-pose orientation before retargeting or solving.ReadSafe
Thumb2InstanceThe instance mapped to the medial (second) phalanx of the thumb.ReadSafe
Thumb2TposeAdjustmentCFrameCFrame applied to Thumb2 to normalize the joint into its canonical T-pose orientation before retargeting or solving.ReadSafe
Thumb3InstanceThe instance mapped to the distal (third) phalanx of the thumb.ReadSafe
Thumb3TposeAdjustmentCFrameCFrame applied to Thumb3 to normalize the joint into its canonical T-pose orientation before retargeting or solving.ReadSafe
ThumbRangeVector3Motion range vector for the thumb used by the finger solver.ReadSafe
ThumbSizefloatScale factor for the thumb used by the scalable-property system.ReadSafe

Index1: Instance#

ReadSafe

The Motor6D, AnimationConstraint, or Bone instance mapped to the proximal (first) phalanx of the index finger.

Index1TposeAdjustment: CFrame#

ReadSafe

CoordinateFrame applied to Index1 to normalize the joint into its canonical T-pose orientation before retargeting or solving.

Index2: Instance#

ReadSafe

The Instance mapped to the medial (second) phalanx of the index finger.

Index2TposeAdjustment: CFrame#

ReadSafe

CoordinateFrame applied to Index2 to normalize the joint into its canonical T-pose orientation before retargeting or solving.

Index3: Instance#

ReadSafe

The Instance mapped to the distal (third) phalanx of the index finger.

Index3TposeAdjustment: CFrame#

ReadSafe

CoordinateFrame applied to Index3 to normalize the joint into its canonical T-pose orientation before retargeting or solving.

IndexRange: Vector3#

ReadSafe

A Vector3 describing the motion range of the index finger, used by the finger solver.

IndexSize: float#

ReadSafe

Size of the index finger, used by the finger solver to preserve contacts.

Middle1: Instance#

ReadSafe

The Instance mapped to the proximal (first) phalanx of the middle finger.

Middle1TposeAdjustment: CFrame#

ReadSafe

CoordinateFrame applied to Middle1 to normalize the joint into its canonical T-pose orientation before retargeting or solving.

Middle2: Instance#

ReadSafe

The Instance mapped to the medial (second) phalanx of the middle finger.

Middle2TposeAdjustment: CFrame#

ReadSafe

CoordinateFrame applied to Middle2 to normalize the joint into its canonical T-pose orientation before retargeting or solving.

Middle3: Instance#

ReadSafe

The Instance mapped to the distal (third) phalanx of the middle finger.

Middle3TposeAdjustment: CFrame#

ReadSafe

CoordinateFrame applied to Middle3 to normalize the joint into its canonical T-pose orientation before retargeting or solving.

MiddleRange: Vector3#

ReadSafe

A Vector3 describing the motion range of the middle finger, used by the finger solver and scalable-property system.

MiddleSize: float#

ReadSafe

Scale factor for the middle finger, used when the rig is scaled through the scalable-property system.

Pinky1: Instance#

ReadSafe

The Instance mapped to the proximal (first) phalanx of the pinky finger.

Pinky1TposeAdjustment: CFrame#

ReadSafe

CoordinateFrame applied to Pinky1 to normalize the joint into its canonical T-pose orientation before retargeting or solving.

Pinky2: Instance#

ReadSafe

The Instance mapped to the medial (second) phalanx of the pinky finger.

Pinky2TposeAdjustment: CFrame#

ReadSafe

CoordinateFrame applied to Pinky2 to normalize the joint into its canonical T-pose orientation before retargeting or solving.

Pinky3: Instance#

ReadSafe

The Instance mapped to the distal (third) phalanx of the pinky finger.

Pinky3TposeAdjustment: CFrame#

ReadSafe

CoordinateFrame applied to Pinky3 to normalize the joint into its canonical T-pose orientation before retargeting or solving.

PinkyRange: Vector3#

ReadSafe

A Vector3 describing the motion range of the pinky finger, used by the finger solver and scalable-property system.

PinkySize: float#

ReadSafe

Scale factor for the pinky finger, used when the rig is scaled through the scalable-property system.

Ring1: Instance#

ReadSafe

The Instance mapped to the proximal (first) phalanx of the ring finger.

Ring1TposeAdjustment: CFrame#

ReadSafe

CoordinateFrame applied to Ring1 to normalize the joint into its canonical T-pose orientation before retargeting or solving.

Ring2: Instance#

ReadSafe

The Instance mapped to the medial (second) phalanx of the ring finger.

Ring2TposeAdjustment: CFrame#

ReadSafe

CoordinateFrame applied to Ring2 to normalize the joint into its canonical T-pose orientation before retargeting or solving.

Ring3: Instance#

ReadSafe

The Instance mapped to the distal (third) phalanx of the ring finger.

Ring3TposeAdjustment: CFrame#

ReadSafe

CoordinateFrame applied to Ring3 to normalize the joint into its canonical T-pose orientation before retargeting or solving.

RingRange: Vector3#

ReadSafe

A Vector3 describing the motion range of the ring finger, used by the finger solver and scalable-property system.

RingSize: float#

ReadSafe

Scale factor for the ring finger, used when the rig is scaled through the scalable-property system.

Side: DigitsRigDescriptionSide#

ReadSafe

Which hand this description belongs to: None, Left, or Right. Used when mapping HandRigLabel joints to the corresponding HumanoidRigLabel entries on the parent HumanoidRigDescription.

Thumb1: Instance#

ReadSafe

The Instance mapped to the proximal (first) phalanx of the thumb.

Thumb1TposeAdjustment: CFrame#

ReadSafe

CoordinateFrame applied to Thumb1 to normalize the joint into its canonical T-pose orientation before retargeting or solving.

Thumb2: Instance#

ReadSafe

The Instance mapped to the medial (second) phalanx of the thumb.

Thumb2TposeAdjustment: CFrame#

ReadSafe

CoordinateFrame applied to Thumb2 to normalize the joint into its canonical T-pose orientation before retargeting or solving.

Thumb3: Instance#

ReadSafe

The Instance mapped to the distal (third) phalanx of the thumb.

Thumb3TposeAdjustment: CFrame#

ReadSafe

CoordinateFrame applied to Thumb3 to normalize the joint into its canonical T-pose orientation before retargeting or solving.

ThumbRange: Vector3#

ReadSafe

A Vector3 describing the motion range of the thumb, used by the finger solver and scalable-property system.

ThumbSize: float#

ReadSafe

Scale factor for the thumb, used when the rig is scaled through the scalable-property system.

Methods 4#

GetFingerControlReturns the current forward-kinematics control vector for the specified finger.
GetFingerTipReturns the world-space position of the fingertip for the specified finger.
SetFingerControlDrives the three-joint chain of the specified finger using forward kinematics.
SetFingerTipMoves the fingertip of the specified finger toward a world-space target using inverse kinematics.

GetFingerControl(fingerIndex: int): Vector3#

Returns the current control Vector3 for the finger at the given 1-based index (1 = Thumb … 5 = Pinky). The components are:

  • X — extension in [0, 1]: 0 is fully curled, 1 is fully extended.
  • Y — lateral (side) rotation in [-1, 1].
  • Z — axial (twist) rotation in [-1, 1].
NameTypeDefaultDescription
fingerIndexint1-based index of the finger to query (1 = Thumb, 2 = Index, 3 = Middle, 4 = Ring, 5 = Pinky).
Returns
  • Vector3 — The control Vector3 whose X is extension [0, 1], Y is lateral rotation [-1, 1], and Z is axial rotation [-1, 1].

GetFingerTip(fingerIndex: int): Vector3#

Returns the world-space position of the fingertip for the finger at the given 1-based index (1 = Thumb … 5 = Pinky). Currently always returns Vector3.zero.

NameTypeDefaultDescription
fingerIndexint1-based index of the finger to query (1 = Thumb, 2 = Index, 3 = Middle, 4 = Ring, 5 = Pinky).
Returns

SetFingerControl(fingerIndex: int, control: Vector3): ()#

Drives the three-joint chain of the finger at the given 1-based index (1 = Thumb … 5 = Pinky) using forward kinematics. The control components are clamped before application:

  • X — extension, clamped to [0, 1].
  • Y — lateral rotation, clamped to [-1, 1] (maps to ±50°).
  • Z — axial rotation, clamped to [-1, 1] (maps to ±50°).

Joint angles for the three phalanges are computed via Ptolemy's theorem applied to the chain lengths.

NameTypeDefaultDescription
fingerIndexint1-based index of the finger to drive (1 = Thumb, 2 = Index, 3 = Middle, 4 = Ring, 5 = Pinky).
controlVector3A Vector3 whose X sets extension [0, 1], Y sets lateral rotation [-1, 1], and Z sets axial rotation [-1, 1]; each component is clamped before application.
Returns
  • () — void

SetFingerTip(fingerIndex: int, point: Vector3): ()#

Moves the fingertip of the finger at the given 1-based index (1 = Thumb … 5 = Pinky) toward the world-space target point using inverse kinematics. The solver computes the required extension, lateral, and axial control values and then calls SetFingerControl internally.

NameTypeDefaultDescription
fingerIndexint1-based index of the finger to solve (1 = Thumb, 2 = Index, 3 = Middle, 4 = Ring, 5 = Pinky).
pointVector3World-space Vector3 target position for the fingertip.
Returns
  • () — void

Inherited members#

Inherited from Instance 58
Inherited from Object 6
Properties (2)

ClassName, className

Events (1)

Changed