Class SteamVR_Action_Skeleton_Source
Inheritance
System.Object
SteamVR_Action_Skeleton_Source
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ToString()
System.Object.ReferenceEquals(System.Object, System.Object)
Assembly: Assembly-CSharp.dll
Syntax
public class SteamVR_Action_Skeleton_Source : SteamVR_Action_Pose_Source, ISteamVR_Action_Pose, ISteamVR_Action_In_Source, ISteamVR_Action_Source, ISteamVR_Action_Skeleton_Source
Fields
lastSkeletalSummaryData
Declaration
protected VRSkeletalSummaryData_t lastSkeletalSummaryData
Field Value
lastSkeletonActionData
Declaration
protected InputSkeletalActionData_t lastSkeletonActionData
Field Value
skeletalSummaryData
Declaration
protected VRSkeletalSummaryData_t skeletalSummaryData
Field Value
skeletonAction
Declaration
protected SteamVR_Action_Skeleton skeletonAction
Field Value
skeletonActionData
Declaration
protected InputSkeletalActionData_t skeletonActionData
Field Value
skeletonActionData_size
Declaration
protected static uint skeletonActionData_size
Field Value
Type |
Description |
System.UInt32 |
|
Declaration
protected VRBoneTransform_t[] tempBoneTransforms
Field Value
tempSkeletonActionData
Declaration
protected InputSkeletalActionData_t tempSkeletonActionData
Field Value
Properties
activeBinding
True if the action is bound
Declaration
public override bool activeBinding { get; }
Property Value
Type |
Description |
System.Boolean |
|
Overrides
boneCount
The number of bones in the skeleton for this action
Declaration
public int boneCount { get; }
Property Value
Type |
Description |
System.Int32 |
|
boneHierarchy
Gets the ordering of the bone hierarchy
Declaration
public int[] boneHierarchy { get; }
Property Value
Type |
Description |
System.Int32[] |
|
bonePositions
An array of the positions of the bones from the most recent update. Relative to skeletalTransformSpace. See SteamVR_Skeleton_JointIndexes for bone indexes.
Declaration
public Vector3[] bonePositions { get; protected set; }
Property Value
Type |
Description |
UnityEngine.Vector3[] |
|
boneRotations
An array of the rotations of the bones from the most recent update. Relative to skeletalTransformSpace. See SteamVR_Skeleton_JointIndexes for bone indexes.
Declaration
public Quaternion[] boneRotations { get; protected set; }
Property Value
Type |
Description |
UnityEngine.Quaternion[] |
|
fingerCurls
0-1 values representing how curled the specified finger is. 0 being straight, 1 being fully curled. For indexes see: SteamVR_Skeleton_FingerIndexes
Declaration
public float[] fingerCurls { get; protected set; }
Property Value
Type |
Description |
System.Single[] |
|
fingerSplays
0-1 values representing how splayed the specified finger and it's next index'd finger is. For indexes see: SteamVR_Skeleton_FingerIndexes
Declaration
public float[] fingerSplays { get; protected set; }
Property Value
Type |
Description |
System.Single[] |
|
indexCurl
A 0-1 value representing how curled the index finger is. 0 being straight, 1 being fully curled.
Declaration
public float indexCurl { get; }
Property Value
Type |
Description |
System.Single |
|
indexMiddleSplay
A 0-1 value representing the size of the gap between the index and middle fingers
Declaration
public float indexMiddleSplay { get; }
Property Value
Type |
Description |
System.Single |
|
lastActiveBinding
True if the action's binding was active during the previous update
Declaration
public override bool lastActiveBinding { get; }
Property Value
Type |
Description |
System.Boolean |
|
Overrides
lastBonePositions
From the previous update: An array of the positions of the bones from the most recent update. Relative to skeletalTransformSpace. See SteamVR_Skeleton_JointIndexes for bone indexes.
Declaration
public Vector3[] lastBonePositions { get; protected set; }
Property Value
Type |
Description |
UnityEngine.Vector3[] |
|
lastBoneRotations
From the previous update: An array of the rotations of the bones from the most recent update. Relative to skeletalTransformSpace. See SteamVR_Skeleton_JointIndexes for bone indexes.
Declaration
public Quaternion[] lastBoneRotations { get; protected set; }
Property Value
Type |
Description |
UnityEngine.Quaternion[] |
|
lastFingerCurls
[Previous Update] 0-1 values representing how curled the specified finger is. 0 being straight, 1 being fully curled. For indexes see: SteamVR_Skeleton_FingerIndexes
Declaration
public float[] lastFingerCurls { get; protected set; }
Property Value
Type |
Description |
System.Single[] |
|
lastFingerSplays
[Previous Update] 0-1 values representing how splayed the specified finger and it's next index'd finger is. For indexes see: SteamVR_Skeleton_FingerIndexes
Declaration
public float[] lastFingerSplays { get; protected set; }
Property Value
Type |
Description |
System.Single[] |
|
lastIndexCurl
[Previous Update] A 0-1 value representing how curled the index finger is. 0 being straight, 1 being fully curled.
Declaration
public float lastIndexCurl { get; }
Property Value
Type |
Description |
System.Single |
|
lastIndexMiddleSplay
[Previous Update] A 0-1 value representing the size of the gap between the index and middle fingers
Declaration
public float lastIndexMiddleSplay { get; }
Property Value
Type |
Description |
System.Single |
|
lastMiddleCurl
[Previous Update] A 0-1 value representing how curled the middle finger is. 0 being straight, 1 being fully curled.
Declaration
public float lastMiddleCurl { get; }
Property Value
Type |
Description |
System.Single |
|
lastMiddleRingSplay
[Previous Update] A 0-1 value representing the size of the gap between the middle and ring fingers
Declaration
public float lastMiddleRingSplay { get; }
Property Value
Type |
Description |
System.Single |
|
lastPinkyCurl
[Previous Update] A 0-1 value representing how curled the pinky finger is. 0 being straight, 1 being fully curled.
Declaration
public float lastPinkyCurl { get; }
Property Value
Type |
Description |
System.Single |
|
lastRingCurl
[Previous Update] A 0-1 value representing how curled the ring finger is. 0 being straight, 1 being fully curled.
Declaration
public float lastRingCurl { get; }
Property Value
Type |
Description |
System.Single |
|
lastRingPinkySplay
[Previous Update] A 0-1 value representing the size of the gap between the ring and pinky fingers
Declaration
public float lastRingPinkySplay { get; }
Property Value
Type |
Description |
System.Single |
|
lastThumbCurl
[Previous Update] A 0-1 value representing how curled the thumb is. 0 being straight, 1 being fully curled.
Declaration
public float lastThumbCurl { get; }
Property Value
Type |
Description |
System.Single |
|
lastThumbIndexSplay
[Previous Update] A 0-1 value representing the size of the gap between the thumb and index fingers
Declaration
public float lastThumbIndexSplay { get; }
Property Value
Type |
Description |
System.Single |
|
middleCurl
A 0-1 value representing how curled the middle finger is. 0 being straight, 1 being fully curled.
Declaration
public float middleCurl { get; }
Property Value
Type |
Description |
System.Single |
|
middleRingSplay
A 0-1 value representing the size of the gap between the middle and ring fingers
Declaration
public float middleRingSplay { get; }
Property Value
Type |
Description |
System.Single |
|
pinkyCurl
A 0-1 value representing how curled the pinky finger is. 0 being straight, 1 being fully curled.
Declaration
public float pinkyCurl { get; }
Property Value
Type |
Description |
System.Single |
|
poseChanged
Separate from "changed". If the pose for this skeleton action has changed (root position/rotation)
Declaration
public bool poseChanged { get; protected set; }
Property Value
Type |
Description |
System.Boolean |
|
rangeOfMotion
The range of motion the we're using to get bone data from. With Controller being your hand while holding the controller.
Declaration
public EVRSkeletalMotionRange rangeOfMotion { get; set; }
Property Value
ringCurl
A 0-1 value representing how curled the ring finger is. 0 being straight, 1 being fully curled.
Declaration
public float ringCurl { get; }
Property Value
Type |
Description |
System.Single |
|
ringPinkySplay
A 0-1 value representing the size of the gap between the ring and pinky fingers
Declaration
public float ringPinkySplay { get; }
Property Value
Type |
Description |
System.Single |
|
skeletalTrackingLevel
Get the accuracy level of the skeletal tracking data.
* Estimated: Body part location can’t be directly determined by the device. Any skeletal pose provided by the device is estimated based on the active buttons, triggers, joysticks, or other input sensors. Examples include the Vive Controller and gamepads.
* Partial: Body part location can be measured directly but with fewer degrees of freedom than the actual body part.Certain body part positions may be unmeasured by the device and estimated from other input data.Examples include Knuckles or gloves that only measure finger curl
* Full: Body part location can be measured directly throughout the entire range of motion of the body part.Examples include hi-end mocap systems, or gloves that measure the rotation of each finger segment.
Declaration
public EVRSkeletalTrackingLevel skeletalTrackingLevel { get; }
Property Value
The space to get bone data in. Parent space by default
Declaration
public EVRSkeletalTransformSpace skeletalTransformSpace { get; set; }
Property Value
thumbCurl
A 0-1 value representing how curled the thumb is. 0 being straight, 1 being fully curled.
Declaration
public float thumbCurl { get; }
Property Value
Type |
Description |
System.Single |
|
thumbIndexSplay
A 0-1 value representing the size of the gap between the thumb and index fingers
Declaration
public float thumbIndexSplay { get; }
Property Value
Type |
Description |
System.Single |
|
Methods
CheckAndSendEvents()
Declaration
protected override void CheckAndSendEvents()
Overrides
GetBoneCount()
Gets the number of bones in the skeleton for this action
Declaration
public uint GetBoneCount()
Returns
Type |
Description |
System.UInt32 |
|
GetBoneHierarchy()
Gets the ordering of the bone hierarchy
Declaration
public int[] GetBoneHierarchy()
Returns
Type |
Description |
System.Int32[] |
|
GetBoneName(Int32)
Gets the name for a bone at the specified index
Declaration
public string GetBoneName(int boneIndex)
Parameters
Type |
Name |
Description |
System.Int32 |
boneIndex |
|
Returns
Type |
Description |
System.String |
|
Returns an array of positions/rotations that represent the state of each bone in a reference pose.
Declaration
public SteamVR_Utils.RigidTransform[] GetReferenceTransforms(EVRSkeletalTransformSpace transformSpace, EVRSkeletalReferencePose referencePose)
Parameters
Returns
GetSkeletalSummaryData(Boolean)
Get the skeletal summary data structure from OpenVR.
Contains curl and splay data in finger order: thumb, index, middlg, ring, pinky.
Easier access at named members: indexCurl, ringSplay, etc.
Declaration
protected VRSkeletalSummaryData_t GetSkeletalSummaryData(bool force = false)
Parameters
Type |
Name |
Description |
System.Boolean |
force |
|
Returns
GetSkeletalTrackingLevel()
Get the accuracy level of the skeletal tracking data.
* Estimated: Body part location can’t be directly determined by the device. Any skeletal pose provided by the device is estimated based on the active buttons, triggers, joysticks, or other input sensors. Examples include the Vive Controller and gamepads.
* Partial: Body part location can be measured directly but with fewer degrees of freedom than the actual body part.Certain body part positions may be unmeasured by the device and estimated from other input data.Examples include Knuckles or gloves that only measure finger curl
* Full: Body part location can be measured directly throughout the entire range of motion of the body part.Examples include hi-end mocap systems, or gloves that measure the rotation of each finger segment.
Declaration
public EVRSkeletalTrackingLevel GetSkeletalTrackingLevel()
Returns
Initialize()
[Should not be called by user code]
Initializes the handle for the inputSource, the skeletal action data size, and any other related SteamVR data.
Declaration
public override void Initialize()
Overrides
Declaration
public override void Preinitialize(SteamVR_Action wrappingAction, SteamVR_Input_Sources forInputSource)
Parameters
Overrides
UpdateValue()
[Should not be called by user code]
Updates the data for this action and this input source. Sends related events.
Declaration
public override void UpdateValue()
Overrides
UpdateValue(Boolean)
[Should not be called by user code]
Updates the data for this action and this input source. Sends related events.
Declaration
public override void UpdateValue(bool skipStateAndEventUpdates)
Parameters
Type |
Name |
Description |
System.Boolean |
skipStateAndEventUpdates |
|
Overrides
Events
onActiveBindingChange
Event fires when the active state of the binding changes
Declaration
public event SteamVR_Action_Skeleton.ActiveChangeHandler onActiveBindingChange
Event Type
onActiveChange
Event fires when the active state (ActionSet active and binding active) changes
Declaration
public event SteamVR_Action_Skeleton.ActiveChangeHandler onActiveChange
Event Type
onChange
Event fires when the orientation of the pose or bones changes more than the changeTolerance
Declaration
public event SteamVR_Action_Skeleton.ChangeHandler onChange
Event Type
onDeviceConnectedChanged
Event fires when the device bound to this action is connected or disconnected
Declaration
public event SteamVR_Action_Skeleton.DeviceConnectedChangeHandler onDeviceConnectedChanged
Event Type
onTrackingChanged
Event fires when the state of the tracking system that is used to create pose data (position, rotation, etc) changes
Declaration
public event SteamVR_Action_Skeleton.TrackingChangeHandler onTrackingChanged
Event Type
onUpdate
Event fires when the action is updated
Declaration
public event SteamVR_Action_Skeleton.UpdateHandler onUpdate
Event Type
onValidPoseChanged
Event fires when the state of the pose data retrieved for this action changes validity (good/bad data from the tracking source)
Declaration
public event SteamVR_Action_Skeleton.ValidPoseChangeHandler onValidPoseChanged
Event Type
Implements