Snapping

SnapperModel

.configuration: Scriptable object that contains parameters to control how the snapping is performed. Use the same configuration file for all (changing that file will affect all snappers) or set a specific configuration object for every snapper.

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

.graspableIndicator: Transform that will be moved to the closest graspable SnapPoint. It’s recommended to use specific shader to make this indicator to be rendered over any other object, being visible even when SnapPointModel.transformRef is inside a mesh.

.minSelectionGestureLerp: Min value for the mean between ProxyHandModel.fistLerp and ProxyHandModel.graspLerp to start searching for snappable candidates.

.lockPose: Enable pose locking. Disabling this value will have the same effect as having PosePointModel.limit{Finger} as None for every finger on every PosePointModel.

SnappingConfiguration

Attraction drives: Default joint configuration to apply while the object is being attracted.

Snap drives: Default joint configuration to apply once snapping is completed.

.maxCandidateDistance: How far an available candidate must be to be detected by snapper.

.minDistanceToCompleteSnap: Distance theresold that we can use to consider an object temporally snapped.

.timeInMinDistanceToSnap: How long have the distance between anchors to be under the threshold to be considered as completely snapped?

SnapPointModel

.interactable: Reference to generic data model from which access object rigidbody, other handlers registered in this generic data model and the number of current interactions by type (hover, touch, and grab).

.transformRef: Transform that represents the actual position and rotation of this SnapPoint.

.side: Which hands can consider this snap point as a candidate according to their side (left or right).

.availability: Under which conditions can the snap point be considered as available by the snapper?

.graspLerp: How intense has the grasp gesture to be performed to start snapping process?

.canBeAttracted: Can the object be grabbed without being attracted?

.ignoreGravity: Should it ignore gravity while being snapped?

.ignorePalmCollisions: Should it ignore hand collisions while being snapped?

.useTheseAttractionDrives: Should the joint be configured using these custom attraction drives?

Attraction drives: Custom joint configuration to apply while the object is being attracted.

.useTheseSnapDrives: Should the joint be configured using these custom snap drives?

Snap drives: Custom joint configuration to apply once snapping is completed.

.ignoreInner/OuterBones: Ignore inner or outer bones using SnapPointModel.ignore{Finger} as a reference. If reference is a proximal bone, metacarpal bone is inner, distal bone is outer than reference.

Collision ignoring: Assuming SnapPointModel.ignoreInnerBones is enabled and SnapPointModel.ignoreOuterBones is disabled, if these values are set to Distal, then lower than distal bones (including distal) will ignore collisions and every finger bone will ignore collisions with the snapped object. If these values are set to None, every finger bone will collide with the snapped object.

Last updated