Blog

Master's Thesis now online

Sep 6, 2009 in

My Master's Thesis is now finally online:

Automated Semi-Procedural Animation for Character Locomotion

I would have made it available earlier, but the University took three months reviewing it, and I wanted them to be done with it first.

The 114 page thesis thoroughly discusses almost all parts of the implemented system and compares the used techniques and methods with related academic work on the subject. Here's the abstract:

This thesis presents a framework of techniques for interactive synthesis of highly flexible character locomotion. The system uses a set of example motions primarily in the form of keyframed or motion-captured walk and run cycles. The system automatically analyzes each motion at design-time and extracts parameters such as impact and lift-off times for each foot as well as overall velocity. At runtime the system first blends the motions according to the current velocity and rotational velocity of the character, it then adjusts the movements of the bones in the legs by means of inverse kinematics to ensure that the feet step correctly on the ground. The system works for both human and non-human characters with any amount of legs and in whatever style the provided example motions are in. It can adjust animations made for a specific speed and direction on a plain surface to any speed, direction, and curvature, on any surface, including arbitrary steps and slopes.

Notable innovations in the thesis include the introduction of the concept of a footbase, which is a single combined heel and toe constraint that can retain the important information about the alignment of a foot relative to the ground; the calculation of a supporting ground height that can be used to produce motion with a good sense of weight, regardless of the number of legs and of the gait style; the calculation of natural-looking foot alignments that works for just about any characters and gait styles, and a scattered data interpolation algorithm that has desirable properties when interpolating motions with different velocities.

The thesis has plenty of diagrams and illustrations to help presenting the new concepts and techniques. The accompanying videos also help in that regard.

Having finished my Master's Thesis doesn't change a whole lot in my life in practice. I've already been employed full time at Unity Technologies since February and I will be continuing my work there helping continuously improving the Unity game engine and authoring tool. (My blogging for Unity can be seen here by the way.)

That said, I'm very happy to finally be done with this academic endeavor. This also marks the end of the almost exclusive focus on the Locomotion System on this blog. My future blogging here will probably be centered around more broad game development related subjects, though I won't be shy of occasionally diverting even from that topic if I should feel like it.

As always, the Locomotion System itself can be downloaded here and it is free to use in any Unity game.

Fully Automated Blending, Revisited

Apr 18, 2009 in ,

One of the things that makes the Locomotion System easy to setup and use is the fact that it automatically analyzes the velocities of all the input walk and run cycles and plots them into a velocity map. At runtime the system automatically assign appropriate blending weights to the animations, such that the closest neighboring animations (in terms of their velocities) get the highest blending weights.

While developing the system I tested this blending with as few as 2 sample animations (1 idle and 1 walk cycle) and with a much as 9 (1 idle, walk cycles in 4 directions, and run cycles in 4 directions).

A user in the Unity community, Chris Mansell Aka. Capnbubs, has now posted an early preview demo of a game he is developing, which utilizes the Locomotion System. In it, the avatar walks and runs with easy in a landscape with cliffs and hills.

Chris informs me about the animated character:

I've got walk and a run animations, each in 5 directions, three of them mirrored for moving backwards.

In other words, walk and run cycles in 8 directions, which makes for a total of 17 animations when also including the idle. The image above depicts a visualization of the velocities of the animations plotted into the velocity map.

I only ever tested with half that many animations myself, but the automated analysis and the runtime blending based on scattered data interpolation ensures that it still just works out of the box. Also, the built in ability to make an animation double as its backwards equivalent means that Chris effectively got 17 animations although he only made 11.

Locomotion System GDC 2009 Slides

Mar 31, 2009 in ,

My lecture at GDC about my Locomotion System went really well I think. I've had some requests for the slides, and they're available here:

Dynamic Walking with Semi-Procedural Animation (PDF, 16 MB)

Note that the presentation included quite a few videos which are not in the above slides, so a few points may not come properly across if you did not see the presentation at GDC.

GDC may at some point make a recording of the slides available, complete with audio. I don't know if that would also include the videos I presented. I'm not so sure of the details. If anybody finds out, please let me know!

Locomotion System 0.9.4 out now

Mar 19, 2009 in

The Locomotion System has been released in a new version. It is available for download at the Unity website:

Go To Locomotion System

The new version has several improvements and bug fixes that prevents some problems that some people were experiencing, and which make the motion smoother in certain cases. It also has a new scene file for improved visualization of the motion curves that are automatically analyzed by the system.

Locomotion System at GDC 2009 update

The Game Developers Conference 2009 is very close now and I will be doing a 60-minute lecture in the Programming track on the subject of:

Dynamic Walking with Semi-Procedural Animation

(Follow the link to see the session description on the GDC website.)

Time: Friday (March 27, 2009), 4:00pm - 5:00pm
Location: Room 2018, West Hall

Unity 2.5 released for Mac and Windows

in ,

Version 2.5 of the Unity game engine and authoring tool has finally been released and is now for the first time available on Microsoft Windows too.

Unity is the engine I've used to develop the Locomotion System with. Unity is gaining popularity like mad these days and has been used for so many cool games for Mac, Windows, web browsers, iPhone, and Wii.

Besides Windows authoring support, Unity 2.5 primarily bring improvements to the authoring tool, including a fully customizable tabbed interface and improved support for creating custom editor windows.

I also work for Unity Technologies now, and we'll be proud to show off Unity at GDC 2009. We'll be in booth #5110 in the North Hall.

Locomotion System at GDC 2009!

Feb 16, 2009 in , , ,

The Game Developers Conference 2009 is near and I am proud to announce that my session proposal has been approved! I will be doing a 60-minute lecture in the Programming track on the subject of:

Dynamic Walking with Semi-Procedural Animation
(Follow the link to see the session description on the GDC website.)

I am honored to be presenting my work in the company of the great minds of the game industry at such an early point in my career. This is the second time I am going to GDC and I am truly looking forward to it.

Updated Interactive Demo

Now, since I'm updating the blog anyway, I have thrown in the latest version of the uneven terrain demo that I have used as a testing bed for the Locomotion System. New in this version is a coyote, as well as lots of visualization options that you can play around with to get an idea of the inner workings of the system. This is the same version that was used for the Video Demo 2 of the Locomotion System in the previous post.

Instructions for the demo

CommandKeyboardGamepad
Walking-directionarrow keysanalog stick 1
Walking-speedshift-
Facing-directionW, A, S, Danalog stick 2
Jumpspacebutton A
Time slow down / speed upnumpad - / +-

You can control the characters with either the keyboard or with a game pad. With a game pad, such as an XBox 360 controller, the direction and speed can be controlled precisely with ease, while independently controlling facing direction with the secondary stick.

In this demo the terrain can be dynamically controlled with the sliders at the top. You can create stairs, slopes, and various combinations. The terrain will reflect the changes once the character has walked a little distance to the left or right. Enable manual mode to control the character yourself, as described above. This demo uses four animations for walking (forward, backwards, and sideways) and also four for running.

In other news

Besides having my session at GDC accepted, a few other notable things have happened recently:

  • I have moved from Aarhus to Copenhagen (both are cities in Denmark; Copenhagen is the capital) together with my girlfriend.
  • I have started working at Unity Technologies, a company making an extremely cool game engine and authoring tool called Unity.
  • I am still working on finishing my Master thesis about the locomotion system ... it will hopefully be done soon!

That's it for now. I hope to see you at GDC!

Video Demo 2 of Locomotion System

Nov 1, 2008 in ,

I've made a new video with voice-over demonstrating the capabilities of the now released Locomotion System, including the new features that enables it to be used with 4-legged animals:

In the video I explain the features of the system step by step in a straightforward manner while demonstrating the effects.

Locomotion System Released Now

Oct 27, 2008 in ,

The Locomotion System has been officially released last Friday concurrent with my presentation of it at Unite 2008. It is available for download at the Unity website:

Go To Locomotion System

From the website:

About
Take a look at how semi-procedural animation can dramatically improve the realism of animated humans and animals.

Full Control of Style
Animators are experts in creating motions with specific styles and personalities. The Locomotion System uses keyframed or motion-captured animations as input and only adjusts them minimally to move the feet correctly in a dynamic and detailed environment.

Full Control of Behavior
Move your character around by any means you desire, be it a CharacterController, a RigidBody, or your own custom movement logic. The Locomotion System simply observes the position, alignment, velocity and rotational velocity of your character and deduces everything from that, along with some raycasts onto the ground.

Details
The Locomotion System automatically blends your keyframed or motion-captured walk and run cycles and then adjusts the movements of the bones in the legs to ensure that the feet step correctly on the ground. The system can adjust animations made for a specific speed and direction on a plain surface to any speed, direction, and curvature, on any surface, including arbitrary steps and slopes.

License
The Locomotion System is available for free commercial and non-commercial use when used in a Unity game.

The full license is included in the package.

Note
The Locomotion System is developed by Rune Skovbo Johansen in collaboration with Unity Technologies.

The presentation of the Locomotion System at Unite 2008 was received very well judging from the number of times the audience burst spontaneously into applause, and this Gamasutra article refers to the presentation as a "crowd favorite". I'll let you know when the video of the presentation is online.

If you are a Unity user and have any technical questions regarding the Locomotion System, please ask them on the Unity forums so more people can benefit from the questions and answers (and maybe notify me by email of your forum post if you want to be sure I see it quickly).

Locomotion System at Unite 2008

Oct 15, 2008 in

In a few weeks I'll be presenting the Locomotion System in a technical session at the Unite 2008 conference held at the Tycho Brahe Planetarium in Copenhagen, Denmark, October 22-24, 2008. My session will be held 13:30 on Friday, October 24th:

Walking and Running on Uneven Terrain
Speaker: Rune Skovbo Johansen
This session will present the free Locomotion System developed by Rune. The session will discuss how to let the system solve the complex tasks of blending multiple walk and run cycles and perform dynamic foot placement on uneven terrain while keeping animators and game programmers firmly in control of style and behavior.

See the Unite 2008 conference info and agenda.

The Locomotion System that I'm developing is for the Unity game engine, and Unite is the yearly Unity developer conference packed with presentations, technical sessions and special events.