Skip to main content

Configuration

Input in OctoXR is handled via several main scripts described in further sections. It is mostly abstracted to a certain degree in order to easily add support for additional platforms. It is mainly centered around hand tracking input, but controller support could be added with relative ease as well.

OctoXR uses a single configuration for the representation of a user hand and hand parts. Many scripts and especially input related ones often expose collections of hand bones or other types of objects that always contain a fixed number of elements that can be indexed by hand bone identities. Identities of the hand bones are listed in code via HandBoneId enumeration. Hand bones used by OctoXR as well as their identities and relations are listed in the following table.

Hand part / boneHandBoneIdParent HandBoneIdIndex / ID Number
Wrist rootWristRoot-0
Thumb finger metacarpal boneThumbFingerMetacarpalWristRoot1
Thumb finger proximal phalanxThumbFingerProximalPhalanxThumbFingerMetacarpal2
Thumb finger distal phalanxThumbFingerDistalPhalanxThumbFingerProximalPhalanx3
Index finger proximal phalanxIndexFingerProximalPhalanxWristRoot4
Index finger middle phalanxIndexFingerMiddlePhalanxIndexFingerProximalPhalanx5
Index finger distal phalanxIndexFingerDistalPhalanxIndexFingerMiddlePhalanx6
Middle finger proximal phalanxMiddleFingerProximalPhalanxWristRoot7
Middle finger middle phalanxMiddleFingerMiddlePhalanxMiddleFingerProximalPhalanx8
Middle finger distal phalanxMiddleFingerDistalPhalanxMiddleFingerMiddlePhalanx9
Ring finger proximal phalanxRingFingerProximalPhalanxWristRoot10
Ring finger middle phalanxRingFingerMiddlePhalanxRingFingerProximalPhalanx11
Ring finger distal phalanxRingFingerDistalPhalanxRingFingerMiddlePhalanx12
Pinky finger proximal phalanxPinkyFingerProximalPhalanxWristRoot13
Pinky finger middle phalanxPinkyFingerMiddlePhalanxPinkyFingerProximalPhalanx14
Pinky finger distal phalanxPinkyFingerDistalPhalanxPinkyFingerMiddlePhalanx15
Thumb finger tipThumbFingerTipThumbFingerDistalPhalanx16
Index finger tipIndexFingerTipIndexFingerDistalPhalanx17
Middle finger tipMiddleFingerTipMiddleFingerDistalPhalanx18
Ring finger tipRingFingerTipRingFingerDistalPhalanx19
Pinky finger tipPinkyFingerTipPinkyFingerDistalPhalanx20

The last five bones are finger tip bones and they don't correspond to any real bone in human hand. These bones are mostly auxiliary bones used throughout OctoXR in order to e.g. determine the length of the top-most phalanx of a particular finger or to quickly determine where the user points with his/her particular finger etc. These bones are considered as non-rotating bones. All the rest are considered as rotating, i.e they rotate relative to the bones they are attached to (their parent bones) or, in case of WristRoot, they rotate relative to the absolute space used as the common frame of reference for every object in the scene - world space.

In addition to hand bones there are several places where you can access certain members indexed by hand fingers. Fingers are listed in HandFinger enumeration and they are, in order with their indices: Thumb (0), Index (1), Middle (2), Ring (3), Pinky (4).