Jump to content
  • entries
    10
  • comments
    21
  • views
    22,138

Good animation is all in the blend


Chris Paulson

3,605 views

 Share

I've being working on a locomotion/animation system that will provide nice results and gives good transitions from one stance/animation to the next. I was inspired by articles I read on the Internet and the Unity locomotion video. Luckily the person who did the Unity locomotion system posted his thesis on the Internet so I could read some of the concepts and then do futher study of the concepts from the internet.

 

The Unity system is highly mathimatical/analytical and because of this I have not done an exact copy, as to be honest it's out of my league, I'm not bright and my maths is poor. I've therefore implemented a system that requires less maths.

 

Here's an overview of what I've done.

 

 

The Problem

-----------

 

To get an nice animation of someone standing still then breaking into a full run you need to blend idle into walk, into run, giving each one an ever increasing/decreasing blend weight.

 

For example:-

Idle weight 1 walk weight 0

.

.

.

Idle weight 0.75 walk weight 0.25

.

.

.

Idle weight 0 walk weight 1

.

.

etc etc

 

 

However to blend a run and a walk together you need to synchronise the animations so the legs are in a similar position, otherwise the blend may cancel each other out and you'd get animation artifacts.

 

To solve the problem you need to be able to take a leg position in the walk animation and match the most similar position in the run animation.

 

The solution

-------------

 

I have broken down walking/running into the following stance components:-

 

Land - When the foot is flat on the floor (toe and heel on floor)

Strike - When the heel strikes the floor

Lift - When the heel leaves the floor (toe only on the floor)

Flight - The foot is not on the floor

 

I pre analyse the animations and work out where each stance start/stop frame is and it's length. This can then be used for synchronisation. I also work out the travel distance of a animation so I can accurately move a model/alter playback speed depending on it's movement speed and eliminate foot skate.

 

Now for example if my animation was 75% of the way through a strike stance I can sync in the run animation 75% of the way through the same stance for the same leg.

 

 

What blending gives me

----------------------

 

Instead of just having a idle, walk and run animation using blended weights I procedurely have the equivlent of 100's of animations between idle and run.

 

 

What next

---------

 

I've cracked (in a none refined way) blending based on speed, I can now move onto blending based on turning angle. For example: -

 

If I was walking and turning at 45 degrees and I had an animation which did a turn of 90 degrees I would play 50% weight of walk and 50% of turn animation giving me the required angle. Hope the next stage works, wish me luck...

 

 

 

Video of walk to run (to follow when upload done)

---------------------

(I've only got 30 seconds of fraps)

It might not look very sexy but it taken quite a few week of coding effort to get to this stage.

In the text stats at the top it displays: -

The master animation (the one with the hightest weight)

The playback speed of each animation (controlled by the speed the model would be moving)

The calculated weights and the calculated stance for each leg.

 

 Share

1 Comment


Recommended Comments

That's pretty interesting. The walk and run animations occur at different frequencies, yet you have managed a perfectly synced transition.

 

Simon Benge, who created the animations for FPSCreatorX, is currently working on animations of our soldier model. I am starting off with idle and run on four directions. This will give you some good media to work with.

Link to comment
Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...