I will be uploading a demo scene that has Voxta working with the following, stop and do animation, following again.
Baby's first plugin, be gentle.
CompanionMotionPlusSelfWalk is a movement plugin for two jobs: self-walk while possessing a body and companion follow movement that continues after playing an animation during the walk. It keeps the locomotion logic in one place, lets Timeline handle the actual animations, and can interrupt follow for a managed clip, then resume follow afterward. In the current build it includes follow movement, floor locking, walk/stop clip handling, retreat mode, and external clip-by-name controls like Timeline Clip Set and Timeline Clip Do.
Why this plugin exists
I couldn't get a motion plugin to do what I wanted. I was using voxta and wanted a Skyrim-like companion that would follow me and do animations automatically. the other stuff was just easy to add so I did. Something may exist to do this, but I didn't find it. Movement and animation playback need to work together cleanly. It allows you to have a follower that can do animations, then follow you again. I wanted this feature while working with the new AI-controlled characters. The plugin decides when to follow, when to stop, when to play a managed Timeline clip, and when to resume follow, while Timeline stays responsible for the actual animation clips. That keeps the setup predictable and makes it much easier to connect to scene logic and AI triggers (I wanted it for Voxta).Main uses
Self-walk while possessing the body
Use this when the player is possessing a body and you want the body to keep walking under the player instead of leaving the lower body behind. In this mode, the plugin follows [camera rig], keeps the body grounded with Floor Y, and switches between walk and stop clips automatically. The plugin defaults to PlayerFollowTarget when that atom exists. you just posses with embody and drag the head. set the follow distance low, but not too low or it'll bug.Companion walk
Use this on a companion atom when you want the companion to follow the player or another target. The plugin handles movement, walk/stop animation switching, and optional retreat behavior. It also supports managed clips, so the companion can briefly stop following, do an animation, and then continue following.Companion Retreat
This makes her move away from the player.Managed Timeline actions
Use this when you want a character to stop following, play a specific Timeline clip, then resume follow. The plugin exposes a managed clip dropdown plus clip-by-name controls so outside systems can request clips without manually changing the UI each time.Voxta or ALM control
Use this with companion motion when you want a conversation system to trigger movement or animation, and then for the companion to continue following you after the animation finishes. Voxta can target VaM actions and storable params directly through app triggers, and ALM is the in-scene router that can link actions, Timeline animations, and context together on the Person atom. For shared scenes, ALM is usually the cleaner choice because the action routing lives in the scene instead of outside it.Requirements
- Add Timeline to the same atom as this plugin.
- Embody for selfwalk.
- Put your locomotion clips in Timeline.
- The plugin expects a walk clip and optionally a stop clip. By default it tries to use walk 1 and on stop 1.
Timeline setup
- Add Timeline to the same atom as CompanionMotionPlusSelfWalk.
- Set your locomotion clips in Timeline:
- Walk Clip: usually walk 1
- Stop Clip: usually on stop 1
- Add this Timeline trigger:
- On Is Playing Changed
- Stop Playing
- target the same atom
- plugin CompanionMotionPlusSelfWalk
- action Timeline Clip Ended
Setup: self-walk
- Add CompanionMotionPlusSelfWalk to the possessed Person atom.
- Add Timeline to that same atom.
- In the plugin, set Follow Target to [CameraRig]. If you turned it on before changing it >_>, you have to hit setup again.
- Set Timeline Plugin to the Timeline plugin on that atom.
- Set Walk Clip to walk 1. (get one if you dont have one)
- Set Stop Clip to on stop 1. (Make one if you don't have one, just put their arms down)
- Turn on Lock Floor Y.
- Use Capture Floor Y or set Floor Y manually.
- Press Follow Start.
Setup: companion walk
- Add CompanionMotionPlusSelfWalk to the companion atom.
- Add Timeline to that same atom.
- Set Follow Target to the atom the companion should follow (Person).
- Set Timeline Plugin to the companion’s Timeline plugin.
- Set Walk Clip to walk 1.
- Set Stop Clip to on stop 1.
- Press Follow Start.
Why the Timeline trigger is needed
The plugin resumes follow inside its Timeline Clip Ended action. That means Timeline needs to tell the plugin when the managed clip has actually finished. In the code, TimelineClipEnded() is the place where the plugin clears managed-playback state and calls StartFollowing() again when auto-resume is enabled.Use this Timeline trigger on the same atom:
- On Is Playing Changed
- Stop Playing
- target this plugin
- Timeline Clip Ended
Using it with Voxta
Voxta can call VaM actions and write VaM storable params on a specific atom and storable. That means Voxta can control this plugin directly if you want to trigger movement or managed clips from a scenario.Most useful controls in this plugin:
- Managed Clip (to swap clip)
- Timeline Play Managed
- Follow Start
- Follow Stop
- Follow Resume
- Timeline Clip Ended
- Timeline Clip Set
- Timeline Clip Do
Using it with ALM
ALM is the better option if you want the scene to carry its own action routing. ALM is designed as a router between VaM-defined actions, Timeline animations, and Voxta-facing context, and it supports linked action trees plus location/clothing/custom context on the Person atom.Simple ALM use
- Put ALM on the same Person atom as Voxta.
- Create an ALM action such as arm_flail.
- Fill out the discription with {{user}} and {{char}} for the names and when you want this to happen. (ex: When {{user}} asks {{char}} to flail her arms, wave her arms wildly, or panic with her arms. Also use this when {{char}} is visibly panicking or furious.)
- Go to Action Trigger
- person, plugin companionmotion, managed clip, select clip
- another trigger, person, plugin, timeline play managed. in the current build of alm i had to add it to a layer and click global for it to show up, the video is wrong.
- Keep the Timeline stop trigger pointing to Timeline Clip Ended.
Quick reference
For self-walk
- same atom as Timeline
- target PlayerFollowTarget
- set walk 1
- set on stop 1
- lock floor Y
- start follow
For companion walk
- same atom as Timeline
- set follow target
- set walk 1
- set on stop 1
- start follow
For managed clips
- choose or send the clip name
- play managed clip
- Timeline stop trigger calls Timeline Clip Ended
- follow resumes