Procedural Character Animation Editor


I’ve had some interest regarding the walkTools animation editor for the walk.js script. I was kinda hoping it might end up as a worklist job at some point, but time is marching on and it’s a long way from release standard, so I have decided to clean it up a bit and put it on gitub here.

Animating Procedurally

walkTools allows the user to edit any of the procedural animation files that work with the walk.js script from within Interface, so is 100% WYSIWYG. In addition to being able to set joint rotation offsets (i.e like Poser or bvhacker), joint oscillations can be specified. The ability to create animations in this way presents a novel way of creating perfectly looped animations like walking, sidestepping and turning on the spot; the same animations that are notoriously difficult to loop cleanly and predictably with mocap data.

I have found animating procedurally (as opposed to generating / editing keyframes) requires a different creative approach, with it’s own set of challenges, advantages and disadvantages.

I’ve put a short movie together to give an introduction / overview:

walkTools also includes some rudimentary camera controls; pressing numbers 1 to 3 will give the standard 1st, mirror and 3rd person cameras, pressing 4 will disconnect the camera, and cameras 5 / 6 give follow cams at different heights. The follow cams tend to be a bit jerky. I mostly use camera 4 for positioning the avi whilst animating.

If you’re tempted to have a go, I’d suggest experimenting with the idle or hover animations at first, and avoid changing the walk (because the corresponding walk transition reach poses would need to be matched to avoid glitching).

Keyboard shortcuts are;

  • Cameras 1 - 6
  • 'D' to hide the UI,
  • 'r' to zero out the animation and
  • ')' to play the shrug animation

Saving your work

The files can be exported and saved locally, so your edits can be permanent. However, this does involve some copy pasting. Note that even though your edited animations are stored locally, they will be seen by others inworld. You will need to change the path at the top of walk.js to point to your copy of the assets folder to do this.

I made this short movie to show how to save customised animations:

My next task is to clean up the code for the regular, release version of the walk script (current beta here, runs directly from URL) to a point where it can be released, complete with recent additions.


  • davedub


Thats really a great work, I like it very.


this is a strong reason why I might get into HiFi. SL have a client that was procedural animation but it never made it to the release. BVH is nice but it has to be the right BVH and you can’t interrupt the BVH. and finally you need hundreds of animations and still not what you want. You have to have procedural animations.

The next step is real-time procedural animation but that’s 50 years from now–or is it?