Posing

PosableHandModel

posePoint: Destination that the hand will try to grab

proxyHand: Reference to generic data model from which access hand representations, fingers, bones, registered handlers, and other variables.

configuration: Scriptable object that contains parameters to control pose generation. Use the same configuration file for all (changing that file will affect all PosableHands) or set a specific configuration object for every PosableHand.

Poses

Poses are ScriptableObjects that you can find in the Poses folder. Poses can be created or applied by using the PoseRecorder component.

PosingConfiguration assets

maxDistance: Maximum allowed distance between master hand and pose point.

maxIterations: The more iterations the better results but it can affect performance.

onlyFingerTips: Should collision detection consider the complete finger or just its fingertips?

PosePointModel

snapPoint: If not null and the current proxy hand is using a SnapperModule, ghost hand will only be visible as a preview when a grasping action is close to be triggered. This will enabled the user to preview the pose before actually snapping the object to slave hand.

rotationMode:

  • None: Master hand rotation will determine ghost rotation.

  • MatchXY: Ghost hand palm rotation will match XY axis of pose point.

  • MatchNormal: Ghost hand palm normal will match Z axis of pose point.

positionMode:

  • Default: Ghost hand palm will try to reach the raycast hit point between master hand and pose point.

  • ClosestPoint: Ghost hand palm will try to reach the closest point of the closest collider found between master hand and pose point.

  • AlwayMatch: Ghost hand palm will match pose point, even when there are colliders between pose point and master hand.

minDistance: Distance between hand palm and found grabbing point

startAtLerp: Change this value for hook grabbing scenarios.

stopAtLerp: Change this value to make grabbing look stronger or weaker.

boneThickness: Change this value to control penetration in collision detection. You can set this value for each pose point.

collideWithOtherRbs: Should the hand collide with other rigidbodies apart from the rigidbody of the specified pose point?

collideWithTriggers: Should the hand collide with triggers?

Pose locking: If these values are set to Distal, then lower than distal bones (including distal) will be locked, so every finger bone will keep locked. If these values are set to None, every finger bone will be unlocked.

Last updated