| name | approach-object |
| description | Walks up TO an object, person, or piece of furniture and stops right next to it, by emitting a simple moveTo target — the engine paths there and halts adjacent (it won't walk into/through the object). Use for approach, walk up to, go over to, come closer to, stand next to, get near the table/couch/door. |
| category | locomotion |
| disable-model-invocation | true |
| triggers | approach, walk up to, go over to, come closer, get close, stand next to, next to, near the, up to the |
| subskills | ["walk"] |
approach-object
Go and stand NEXT TO a target (don't overlap it). The engine stops the body
adjacent to the named place/furniture, so you only emit the destination.
Composes: walk (the moveTo translation; the engine handles the adjacent stop).
How
- Emit
moveTo:{ "target": "<thing>" } using a name from state.locations (or the
named furniture in state.seats/state.beds). The engine pathfinds around
obstacles and stops a step away — you do NOT subtract an offset yourself.
- Don't add a
pose that lunges forward; approaching is pure travel. Reach/grab is
a SEPARATE follow-up Action (see reach-out, pick-something-up).
durationMs ~ 1800–2800.
Worked Actions
- "walk up to the couch" →
{"durationMs":2200,"moveTo":{"target":"couch"},"say":"Coming over."}
- "go stand next to the window" →
{"durationMs":2400,"moveTo":{"target":"window"},"say":"Right here."}
- "come closer" (no named place; step toward current facing) →
{"durationMs":1200,"moveTo":{"x":0,"z":1.2},"say":"Closer."}
Notes
If the thing isn't in state.locations, pick the closest listed target. To then
interact, emit a follow-up Action; keep this one a clean approach.