Proximity: reacting without a prompt¶
A Proximity block (FMovaIxProximity) lets an IC fire interactions from an
overlap alone, no interaction point, no prompt, no player input at all. A light
that turns on as you approach, a fan that spins only while you stand near it, a
door that hisses open when you're close: all three are Proximity, not the tagged
interaction system on the component itself.
Save the real screenshot as: shot-editor-viewport-proximity-lamp.png
Shape: where the volume comes from¶
|
What it does |
|---|---|
|
No auto-volume. Only interactor-driven proximity (if any) applies. |
|
The IC auto-creates a hidden box collision on this actor, sized by |
|
Same, but a sphere sized by |
|
Binds to every level volume actor tagged |
Box and Sphere are the fast path: no separate trigger actor to place, the IC
owns the collision itself. Volume is for a trigger the two primitives can't
express (an L-shape room, a volume that follows a corridor).
Only an actor carrying a UMovaIxInteractorComponent (the player pawn, by
convention) triggers a Proximity volume. Static geometry and non-interactor pawns
overlap it with no effect.
Enter / Leave: the same tag grammar¶
EnterTags and LeaveTags are each a list of ordinary interaction tags, run the
moment the interactor enters or leaves range:
EnterTags: !On @Lamp
LeaveTags: !Off @Lamp
These are the same tokens used everywhere else in the plugin (flow prefix,
@/%/# target, optional ? gate), so Tag Grammar Reference covers them in
full. A Proximity Enter tag can
target an external actor (%Fan^), gate itself (?@Power:On), or fire a Group
directly, same as a component tag.
graph LR
A[Player enters volume] -->|EnterTags| B["!On @Lamp"]
C[Player leaves volume] -->|LeaveTags| D["!Off @Lamp"]
B --> E[Lamp Group: On]
D --> F[Lamp Group: Off]
Use cases¶
Goal |
Shape |
Enter |
Leave |
|---|---|---|---|
Light that turns on as you approach |
|
|
|
Fan spinning only while you stand near it |
|
|
|
Auto-door that opens on approach |
|
|
|
Ambient trigger tied to a hand-placed volume |
|
|
|
In the "fan spinning while you stand near it" case, LeaveTags
firing !Stop on exit makes the effect presence-driven instead of
one-shot: the fan spins only while an interactor sits inside the
sphere, with no group left running (and no wasted RampOutTime) once they walk
away.
Proximity vs the player Interactor¶
Proximity and The player Interactor: setup and use solve different problems and commonly sit side by side on the same object:
Proximity is passive: it needs no player input, only presence. Good for ambience and environmental reactions.
The Interactor (
UMovaIxInteractorComponent) is active: it finds the best interaction point in view and fires it on a button press. Good for doors, levers, and anything the player should choose to trigger instead of walk into.
A single IC can have both: a Proximity sphere that lights a room on approach, and an interaction point on the same mesh that the player presses to do something else entirely.
See also¶
Tag Grammar Reference: full syntax for the Enter/Leave tag tokens.
Gates: locks & conditions: gate a Proximity tag with
?the same way as any other target.The player Interactor: setup and use: the active, aim-and-press counterpart.
Debug overlay & troubleshooting:
mova.ix.Debugdraws the Proximity volume live.FMovaIxProximity,EMovaIxProximityShapein the API reference.