Class
DigitsRigDescription
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#
Index1Instance | The instance mapped to the proximal (first) phalanx of the index finger.ReadSafe |
Index1TposeAdjustmentCFrame | CFrame applied to Index1 to normalize the joint into its canonical
T-pose orientation before retargeting or solving.ReadSafe |
Index2Instance | The instance mapped to the medial (second) phalanx of the index finger.ReadSafe |
Index2TposeAdjustmentCFrame | CFrame applied to Index2 to normalize the joint into its canonical
T-pose orientation before retargeting or solving.ReadSafe |
Index3Instance | The instance mapped to the distal (third) phalanx of the index finger.ReadSafe |
Index3TposeAdjustmentCFrame | CFrame applied to Index3 to normalize the joint into its canonical
T-pose orientation before retargeting or solving.ReadSafe |
IndexRangeVector3 | Motion range vector for the index finger used by the finger solver.ReadSafe |
IndexSizefloat | Size of the index finger used by the finger solver to preserve contacts.ReadSafe |
Middle1Instance | The instance mapped to the proximal (first) phalanx of the middle finger.ReadSafe |
Middle1TposeAdjustmentCFrame | CFrame applied to Middle1 to normalize the joint into its canonical T-pose orientation before retargeting or solving.ReadSafe |
Middle2Instance | The instance mapped to the medial (second) phalanx of the middle finger.ReadSafe |
Middle2TposeAdjustmentCFrame | CFrame applied to Middle2 to normalize the joint into its canonical
T-pose orientation before retargeting or solving.ReadSafe |
Middle3Instance | The instance mapped to the distal (third) phalanx of the middle finger.ReadSafe |
Middle3TposeAdjustmentCFrame | CFrame applied to Middle3 to normalize the joint into its canonical
T-pose orientation before retargeting or solving.ReadSafe |
MiddleRangeVector3 | Motion range vector for the middle finger used by the finger solver.ReadSafe |
MiddleSizefloat | Scale factor for the middle finger used by the scalable-property system.ReadSafe |
Pinky1Instance | The instance mapped to the proximal (first) phalanx of the pinky finger.ReadSafe |
Pinky1TposeAdjustmentCFrame | CFrame applied to Pinky1 to normalize the joint into its canonical
T-pose orientation before retargeting or solving.ReadSafe |
Pinky2Instance | The instance mapped to the medial (second) phalanx of the pinky finger.ReadSafe |
Pinky2TposeAdjustmentCFrame | CFrame applied to Pinky2 to normalize the joint into its canonical T-pose orientation before retargeting or solving.ReadSafe |
Pinky3Instance | The instance mapped to the distal (third) phalanx of the pinky finger.ReadSafe |
Pinky3TposeAdjustmentCFrame | CFrame applied to Pinky3 to normalize the joint into its canonical
T-pose orientation before retargeting or solving.ReadSafe |
PinkyRangeVector3 | Motion range vector for the pinky finger used by the finger solver.ReadSafe |
PinkySizefloat | Scale factor for the pinky finger used by the scalable-property system.ReadSafe |
Ring1Instance | The instance mapped to the proximal (first) phalanx of the ring finger.ReadSafe |
Ring1TposeAdjustmentCFrame | CFrame applied to Ring1 to normalize the joint into its canonical T-pose
orientation before retargeting or solving.ReadSafe |
Ring2Instance | The instance mapped to the medial (second) phalanx of the ring finger.ReadSafe |
Ring2TposeAdjustmentCFrame | CFrame applied to Ring2 to normalize the joint into its canonical T-pose
orientation before retargeting or solving.ReadSafe |
Ring3Instance | The instance mapped to the distal (third) phalanx of the ring finger.ReadSafe |
Ring3TposeAdjustmentCFrame | CFrame applied to Ring3 to normalize the joint into its canonical T-pose
orientation before retargeting or solving.ReadSafe |
RingRangeVector3 | Motion range vector for the ring finger used by the finger solver.ReadSafe |
RingSizefloat | Scale factor for the ring finger used by the scalable-property system.ReadSafe |
SideDigitsRigDescriptionSide | Which hand this description belongs to: None, Left, or Right.ReadSafe |
Thumb1Instance | The instance mapped to the proximal (first) phalanx of the thumb.ReadSafe |
Thumb1TposeAdjustmentCFrame | CFrame applied to Thumb1 to normalize the joint into its canonical
T-pose orientation before retargeting or solving.ReadSafe |
Thumb2Instance | The instance mapped to the medial (second) phalanx of the thumb.ReadSafe |
Thumb2TposeAdjustmentCFrame | CFrame applied to Thumb2 to normalize the joint into its canonical
T-pose orientation before retargeting or solving.ReadSafe |
Thumb3Instance | The instance mapped to the distal (third) phalanx of the thumb.ReadSafe |
Thumb3TposeAdjustmentCFrame | CFrame applied to Thumb3 to normalize the joint into its canonical
T-pose orientation before retargeting or solving.ReadSafe |
ThumbRangeVector3 | Motion range vector for the thumb used by the finger solver.ReadSafe |
ThumbSizefloat | Scale 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#
| GetFingerControl | Returns the current forward-kinematics control vector for the specified finger. |
| GetFingerTip | Returns the world-space position of the fingertip for the specified finger. |
| SetFingerControl | Drives the three-joint chain of the specified finger using forward kinematics. |
| SetFingerTip | Moves 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]:0is fully curled,1is fully extended. - Y — lateral (side) rotation in
[-1, 1]. - Z — axial (twist) rotation in
[-1, 1].
| Name | Type | Default | Description |
|---|---|---|---|
fingerIndex | int | 1-based index of the finger to query (1 = Thumb, 2 = Index, 3 = Middle, 4 = Ring, 5 = Pinky). |
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.
| Name | Type | Default | Description |
|---|---|---|---|
fingerIndex | int | 1-based index of the finger to query (1 = Thumb, 2 = Index, 3 = Middle, 4 = Ring, 5 = Pinky). |
Returns
Vector3— The world-spaceVector3position of the fingertip. Currently always returnsVector3.zero.
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.
| Name | Type | Default | Description |
|---|---|---|---|
fingerIndex | int | 1-based index of the finger to drive (1 = Thumb, 2 = Index, 3 = Middle, 4 = Ring, 5 = Pinky). | |
control | Vector3 | A 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.
| Name | Type | Default | Description |
|---|---|---|---|
fingerIndex | int | 1-based index of the finger to solve (1 = Thumb, 2 = Index, 3 = Middle, 4 = Ring, 5 = Pinky). | |
point | Vector3 | World-space Vector3 target position for the fingertip. |
Returns
()— void
Inherited members#
Inherited from Instance 58
Properties (10)
Archivable, archivable, Capabilities, IsInSandbox, Name, Parent, PredictionMode, RobloxLocked, Sandboxed, UniqueId
Methods (39)
AddTag, children, ClearAllChildren, Clone, clone, Destroy, destroy, FindFirstAncestor, FindFirstAncestorOfClass, FindFirstAncestorWhichIsA, FindFirstChild, findFirstChild, FindFirstChildOfClass, FindFirstChildWhichIsA, FindFirstDescendant, GetActor, GetAttribute, GetAttributeChangedSignal, GetAttributes, GetChildren, getChildren, GetDebugId, GetDescendants, GetFullName, GetStyled, GetStyledPropertyChangedSignal, GetTags, HasTag, IsAncestorOf, IsDescendantOf, isDescendantOf, IsPropertyModified, QueryDescendants, Remove, remove, RemoveTag, ResetPropertyToDefault, SetAttribute, WaitForChild