Reference API Roblox

Engine API

Website

Related

Reference API Roblox

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.

Member index 50

HistoryMember
731Index1: Instance
731Index1TposeAdjustment: CFrame
731Index2: Instance
731Index2TposeAdjustment: CFrame
731Index3: Instance
731Index3TposeAdjustment: CFrame
731IndexRange: Vector3
731IndexSize: float
731Middle1: Instance
731Middle1TposeAdjustment: CFrame
731Middle2: Instance
731Middle2TposeAdjustment: CFrame
731Middle3: Instance
731Middle3TposeAdjustment: CFrame
731MiddleRange: Vector3
731MiddleSize: float
731Pinky1: Instance
731Pinky1TposeAdjustment: CFrame
731Pinky2: Instance
731Pinky2TposeAdjustment: CFrame
731Pinky3: Instance
731Pinky3TposeAdjustment: CFrame
731PinkyRange: Vector3
731PinkySize: float
731Ring1: Instance
731Ring1TposeAdjustment: CFrame
731Ring2: Instance
731Ring2TposeAdjustment: CFrame
731Ring3: Instance
731Ring3TposeAdjustment: CFrame
731RingRange: Vector3
731RingSize: float
731Side: DigitsRigDescriptionSide
731Thumb1: Instance
731Thumb1TposeAdjustment: CFrame
731Thumb2: Instance
731Thumb2TposeAdjustment: CFrame
731Thumb3: Instance
731Thumb3TposeAdjustment: CFrame
731ThumbRange: Vector3
731ThumbSize: float
711GetFingerControl(fingerIndex: int): Vector3
711GetFingerTip(fingerIndex: int): Vector3
711GetJoint(label: RigLabel): Instance
711GetJointLabels(): Array
711GetTposeAdjustment(label: RigLabel): CFrame
711SetFingerControl(fingerIndex: int, control: Vector3): null
711SetFingerTip(fingerIndex: int, point: Vector3): null
711SetJoint(label: RigLabel, joint: Instance): null
711SetTposeAdjustment(label: RigLabel, transform: CFrame): null
inherited from Instance
731Archivable: bool
731Capabilities: SecurityCapabilities
731IsInSandbox: bool
731Name: string
731Parent: Instance
731PredictionMode: PredictionMode
731Sandboxed: bool
731UniqueId: UniqueId
576AddTag(tag: string): null
573ClearAllChildren(): null
462Clone(): Instance
573Destroy(): null
486FindFirstAncestor(name: string): Instance
486FindFirstAncestorOfClass(className: string): Instance
486FindFirstAncestorWhichIsA(className: string): Instance
486FindFirstChild(name: string, recursive: bool = false): Instance
486FindFirstChildOfClass(className: string): Instance
486FindFirstChildWhichIsA(className: string, recursive: bool = false): Instance
486FindFirstDescendant(name: string): Instance
563GetActor(): Actor
486GetAttribute(attribute: string): Variant
462GetAttributeChangedSignal(attribute: string): RBXScriptSignal
631GetAttributes(): Dictionary
648GetChildren(): Instances
462GetDebugId(scopeLength: int = 4): string
707GetDescendants(): Instances
486GetFullName(): string
706GetStyled(name: string, selector: string?): Variant
657GetStyledPropertyChangedSignal(property: string): RBXScriptSignal
576GetTags(): Array
576HasTag(tag: string): bool
486IsAncestorOf(descendant: Instance): bool
486IsDescendantOf(ancestor: Instance): bool
664IsPropertyModified(property: string): bool
698QueryDescendants(selector: string): Instances
573Remove(): null
576RemoveTag(tag: string): null
664ResetPropertyToDefault(property: string): null
573SetAttribute(attribute: string, value: Variant): null
462WaitForChild(childName: string, timeOut: double): Instance
731children(): Instances
731clone(): Instance
731destroy(): null
731findFirstChild(name: string, recursive: bool = false): Instance
731getChildren(): Instances
731isDescendantOf(ancestor: Instance): bool
731remove(): null
462AncestryChanged(child: Instance, parent: Instance)
462AttributeChanged(attribute: string)
462ChildAdded(child: Instance)
462ChildRemoved(child: Instance)
462DescendantAdded(descendant: Instance)
462DescendantRemoving(descendant: Instance)
500Destroying()
657StyledPropertiesChanged()
731childAdded(child: Instance)
inherited from Object
731ClassName: string
731className: string
647GetPropertyChangedSignal(property: string): RBXScriptSignal
647IsA(className: string): bool
731isA(className: string): bool
647Changed(property: string)

Description

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.

History 133

Members 50

GetFingerControl

Parameters (1)
fingerIndexint
Returns (1)
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].

History 1

GetFingerTip

Parameters (1)
fingerIndexint
Returns (1)
Vector3

Returns the world-space position of the fingertip for the finger at the given 1-based index (1 = Thumb … 5 = Pinky). Not yet implemented; currently returns Vector3.zero.

History 1

GetJoint

Parameters (1)
labelRigLabel
Returns (1)
Instance

History 1

GetJointLabels

Parameters (0)
No parameters.
Returns (1)
Array

History 1

GetTposeAdjustment

Parameters (1)
labelRigLabel
Returns (1)
CFrame

History 1

Index1

TypeDefault
Instance

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

History 3

Index1TposeAdjustment

TypeDefault
CFrame0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1

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

History 3

Index2

TypeDefault
Instance

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

History 3

Index2TposeAdjustment

TypeDefault
CFrame0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1

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

History 3

Index3

TypeDefault
Instance

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

History 3

Index3TposeAdjustment

TypeDefault
CFrame0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1

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

History 3

IndexRange

TypeDefault
Vector30, 0, 0

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

History 3

IndexSize

TypeDefault
float0

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

History 3

Middle1

TypeDefault
Instance

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

History 3

Middle1TposeAdjustment

TypeDefault
CFrame0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1

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

History 3

Middle2

TypeDefault
Instance

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

History 3

Middle2TposeAdjustment

TypeDefault
CFrame0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1

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

History 3

Middle3

TypeDefault
Instance

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

History 3

Middle3TposeAdjustment

TypeDefault
CFrame0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1

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

History 3

MiddleRange

TypeDefault
Vector30, 0, 0

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

History 3

MiddleSize

TypeDefault
float0

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

History 3

Pinky1

TypeDefault
Instance

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

History 3

Pinky1TposeAdjustment

TypeDefault
CFrame0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1

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

History 3

Pinky2

TypeDefault
Instance

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

History 3

Pinky2TposeAdjustment

TypeDefault
CFrame0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1

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

History 3

Pinky3

TypeDefault
Instance

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

History 3

Pinky3TposeAdjustment

TypeDefault
CFrame0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1

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

History 3

PinkyRange

TypeDefault
Vector30, 0, 0

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

History 3

PinkySize

TypeDefault
float0

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

History 3

Ring1

TypeDefault
Instance

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

History 3

Ring1TposeAdjustment

TypeDefault
CFrame0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1

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

History 3

Ring2

TypeDefault
Instance

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

History 3

Ring2TposeAdjustment

TypeDefault
CFrame0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1

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

History 3

Ring3

TypeDefault
Instance

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

History 3

Ring3TposeAdjustment

TypeDefault
CFrame0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1

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

History 3

RingRange

TypeDefault
Vector30, 0, 0

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

History 3

RingSize

TypeDefault
float0

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

History 3

SetFingerControl

Parameters (2)
fingerIndexint
controlVector3
Returns (1)
null

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.

History 1

SetFingerTip

Parameters (2)
fingerIndexint
pointVector3
Returns (1)
null

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.

History 1

SetJoint

Parameters (2)
labelRigLabel
jointInstance
Returns (1)
null

History 1

SetTposeAdjustment

Parameters (2)
labelRigLabel
transformCFrame
Returns (1)
null

History 1

Side

TypeDefault
DigitsRigDescriptionSideNone

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

History 3

Thumb1

TypeDefault
Instance

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

History 3

Thumb1TposeAdjustment

TypeDefault
CFrame0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1

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

History 3

Thumb2

TypeDefault
Instance

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

History 3

Thumb2TposeAdjustment

TypeDefault
CFrame0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1

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

History 3

Thumb3

TypeDefault
Instance

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

History 3

Thumb3TposeAdjustment

TypeDefault
CFrame0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1

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

History 3

ThumbRange

TypeDefault
Vector30, 0, 0

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

History 3

ThumbSize

TypeDefault
float0

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

History 3

Settings