Attachables and Points¶
Picker entries from Octoputs. Grouped by the category the picker shows them under.
Attachment¶
Can Attach Object¶
Whether the point can attach a specific attachable object.
Passes when the attachment point can accept a specific attachable object. When Require Free Point is on, the point must also currently hold nothing. The point already holding that object, such as the hand carrying it, never passes.
Type: CanAttachCheck
Phase¶
Only idle, attaching, attached, or detaching.
Passes when the attachment point is in a specific phase: Idle, Attaching, Attached, or Detaching.
Type: PhaseCheck
Attachment / Filtering¶
Attachable Object Filter¶
Finds an attachable on the candidate and runs checks against it.
Looks for an attachable object on the candidate, using the lookup strategy, and passes when every check passes. Add checks for tag, held state, eligibility, and so on. Each check only sees the found attachable, so the picker only offers options that make sense here.
Type: AttachableObjectFilterGroup
Attachment Point Filter¶
Finds an attachment point on the candidate and runs checks against it.
Looks for an attachment point on the candidate, using the lookup strategy, and passes when every check passes. Add checks for phase, tag, holding state, and so on. Each check only sees the found attachment point, so the picker only offers options that make sense here.
Type: AttachmentPointFilterGroup
Eligibility¶
Uses the object's built-in attach / detach conditions.
Reuses the attachable's own attach and detach conditions as a check. Toggle each requirement on or off to skip objects that aren't ready to attach or detach, without duplicating the conditions elsewhere.
Type: EligibilityCheck
Filter¶
Pass when the attachable matches GameObject conditions.
Runs GameObject conditions (tags, layers, names, components, …) against the attachable's GameObject. Add conditions below to narrow which objects pass. Under Advanced, a lookup can test a related object instead (a child or parent).
Type: GameObjectFilterAttachableCheck
Filter¶
Pass when the point matches GameObject conditions.
Runs GameObject conditions (tags, layers, names, components, …) against the attachment point's GameObject. Add conditions below to narrow which points pass. Under Advanced, a lookup can test a related object instead (a child or parent).
Type: GameObjectFilterAttachmentPointCheck
Held / Free¶
Whether the object is currently attached or free.
Passes when the attachable matches the selected state. Held accepts only currently attached objects; Free accepts only currently unattached objects.
Type: HeldStateCheck
Not Just Detached¶
Hides a slot after the watched object detaches from it.
Watches one attachable. When that attachable leaves an attachment point, this check hides that point until the reset condition fires. Pick a reset condition (distance, time, or detector focus) to decide when the slot becomes selectable again. Use it to stop the slot you just took something from re-grabbing the held object on the same hover.
Type: NotJustDetachedCheck
On Attached Object¶
Evaluates inner attachable checks against the currently attached object.
Routes inner attachable checks to the object currently held by the point. Fails when nothing is attached.
Type: OnAttachedObjectCheck
Same Tag As Point¶
Pass when the object matches the tag held by another point.
Passes when the object's first tag is the same as the tag of whatever another point is already holding. Use it on two input slots pointing at each other so a machine only takes a matching pair. While the other point is empty, everything passes.
Type: SameTagAsPointCheck
Attachment / State¶
Holding / Empty¶
Whether the point is holding an object or is empty.
Passes when the attachment point matches the selected occupancy. Holding accepts only occupied points; Empty accepts only points with no attached object.
Type: IsHoldingCheck
Lifecycle / Attachment¶
Attachable Object Cycle¶
Begin/End driven by an AttachableObject cycle.
Picks one AttachableObject and one of its cycles. Attaching runs during the attach itself. Attached runs while it's fully attached, until detaching starts. Detaching runs during the detach itself. Occupancy runs the whole time it's attached, from when attaching starts to when it's fully detached. Add point checks to only run when it's on a matching point.
Type: AttachableObjectCycleFrame
Attachable Object Targeted Cycle¶
Per-target Begin/End driven by an AttachableObject cycle.
Picks one AttachableObject and one of its cycles. Begin and End fire with the attachment point the object is on, so commands can run against the point.
Type: AttachableObjectTargetedCycleFrame
Attachment Point Cycle¶
Begin/End driven by an AttachmentPoint cycle.
Picks one AttachmentPoint and one of its cycles. Attaching runs during the attach itself. Holding runs while it's holding something, until detaching starts. Detaching runs during the detach itself. Occupancy runs the whole time something is attached, from when attaching starts to when it's fully detached.
Type: AttachmentPointCycleFrame
Attachment Point Targeted Cycle¶
Per-target Begin/End driven by an AttachmentPoint cycle.
Picks one AttachmentPoint and one of its cycles. Begin and End fire with the attachable that is in the cycle, so commands can run against it directly.
Type: AttachmentPointTargetedCycleFrame
Detected Attachable Cycle¶
Per-object Begin/End driven by a cycle on every attachable a Detector sees.
Pick a Detector and one Attachable cycle. Begin and End fire with the object, for every object the detector currently sees, and follow the detector as objects come and go. Use it to keep a set of free cargo up to date without re-checking it.
Type: DetectedAttachableCycleFrame
Detected Attachment Point Cycle¶
Per-point Begin/End driven by a cycle on every point a Detector sees.
Pick a Detector and one AttachmentPoint cycle. Begin and End fire with the point, for every point the detector currently sees, and follow the detector as points come and go. Use it to keep a set of usable slots up to date without re-checking them.
Type: DetectedAttachmentPointCycleFrame
Reset¶
After Distance¶
Clears the suppression once the held object has moved far enough away.
Keeps the just-detached slot hidden until you've moved the held object at least the given distance from the slot. Good when the visual cue is 'the object is now somewhere else', not 'enough time has passed'.
Type: DistanceReset
After Time¶
Clears the suppression after a set number of seconds.
Keeps the just-detached slot hidden for a set number of seconds, then makes it available again no matter where the held object went.
Type: TimeReset
When Detector Loses Focus¶
Clears the suppression once the configured detector stops seeing the point.
Keeps the just-detached slot hidden until the chosen detector stops seeing it (trigger exit, raycast moves off, …). Move away from the slot and it becomes available again the next time it is looked at.
Type: DetectorFocusReset
General¶
Attachable Preferred¶
Uses the pivot declared on the dragged AttachableObject.
Looks up the dragged object's AttachableObject component and uses its Preferred Attachment Pivot. Lets each draggable object choose its own grab point.
Type: AttachablePreferredTransformPivot
Bounds Center¶
Pivots from the center of a bounds value.
Uses the center of a bounds value as the pivot offset. Set up a Local GameObject Bounds source to compute from renderers or colliders, or enter bounds directly.
Type: BoundsCenterPivot
Bounds Percent¶
Pivots from a point inside a bounds value, set as a percentage of each axis.
Places the pivot inside a bounding box. 0 is the low face of an axis, 0.5 the middle, 1 the high face, so (0.5, 0, 0.5) sits on the bottom center. Values outside 0 to 1 push the pivot past the box. Set up a Local GameObject Bounds source to compute the box from renderers or colliders, or enter bounds directly.
Type: BoundsPercentPivot
Grip Point¶
Holds the object by a marker child placed on it.
Holds each object by a marker you place on it: an empty child whose name starts with Grip Point (or the name you type here). The marker goes where the hand should be, turned the way the hand should face, so a sushi is held from the top and a plate by its rim. An object can have several, such as Grip Point Top and Grip Point Side: Preferred Point picks the one the hand reached for. Objects without a marker are held the way the fallback says.
Type: GripPointPivot
Keep Start Offset¶
Keeps the gap and turn the object had from the target when it started following.
The object stays where it is when the movement starts, then moves along with the target, keeping the same gap. With Follow Turns on it also swings around the target and turns with it, like a child object. With it off, it only copies the target's movement and keeps its own rotation. To copy only the target's turns, turn the position off in the pipeline's Options.
Type: StartOffsetPivot
Local Pose¶
Pivots from a hand-authored local offset and rotation.
Type where the grab point sits on the object and how it is turned in hand. The offset is in the object's local space; the rotation is relative to the object, so a 90 degree tilt here carries the object tilted 90 degrees the other way.
Type: LocalPosePivot
Raycast Hit Point¶
Pivots from the point the user clicked on the object.
At grab time, casts a ray to find the point on the object that was clicked, and uses that point as the pivot. The object will visibly drag from where it was clicked.
Type: RaycastHitPointPivot
Transform Origin¶
No offset. The target's position is applied directly to the transform's origin.
The pivot is the transform's own origin, so no offset is applied. Use this when the target position should be the object's transform position directly.
Type: TransformOriginPivot