0:13

So the motivation here is, creation

of character animation is tedious and difficult.

So here's a list of, popular techniques,

so Key framing, Motion capture, Physics and Scripting.

Keyframe is by the way the most popular technique.

So you set key bodies of each time frame.

So, as a program we want to address here

is the creation of character animation is tedious and difficult.

Here are a list of current popular techniques

of Key framing, Motion capture, Physics, and Scripting.

So by ways the most popular technique is key framing.

So you get a character and for each time you place a pose

like time zero, this pose, time one, this pose, time two, this pose.

So individual key framing.

But however, this is very difficult to do.

Especially, for now we use to get a smooth animation using this key framing.

If you do it poorly, it's like a robotic motion.

And the another popular technique is motion capture.

You can directly record body motion using the tracking systems.

However this one requires special device, special space,

and also scale, skilled actors which is difficult.

The physics simulation is also used for

but not good for designing character animation.

And scripting is also used for a robotic

motion, like change angle this to change this angle.

However, this is not good for expressive character animation.

So what we want to do is easily sketch

or create, you know dynamic form motions or character.

So the basic idea is very simple.

We believe that the best, easiest way is to

directly manipulate a character in front of the camera.

And then press record, and then manipulate, and then

stop and play back and do the same thing.

So direct recording of performers should be the best way to do it.

One problem here is that the typical input device is very limited degree of freedom.

So for example, if you use a mouse, you

only have X and Y inputs, two dimensional inputs.

However, character usually has a high degree of freedom.

So each joint has three degrees of

rotation freedom, and you have many many joints.

So you have to control many joints with single

mouse, which can be very difficult for a performance-based recording.

So our proposal is to use spatial

key-framing, so user or designer first specifies or

prepares key poses in the 3D space and

then blend them, depending on the control handle.

3:16

So, our process is to directly record a motion.

Particularly, if but, if you use one by one, it's very tedious.

In this you can only head, arm, or

leg, but you cannot manipulate all of them together.

So our approach is to use a predefined key frame.

So you say, this pose is associated with this

position, and then next pause is associated with this position.

And then, so you have two key frames.

So, standard key frames associate with timeline.

But here, key frames are associated with spatial locations.

And by clicking you can jump to the key

frames and by dragging you can plan these too.

So now, you can only control three joints by a single mass.

4:05

An interesting point here, is that you can add more, and more key poses very easily.

So, you know have three key poses.

And they blend together, and then you get a reasonably interesting motion already.

And you can add more, and more operation of

key poses, like a kick and kick and so on.

All right, let me show you a couple more examples.

4:57

And then another example is this one.

So again, each individual coordinates are not so expressive.

However, as you start moving them around, you can make him dance like this way.

So here you know, your hand motion is directly

appears in the character motion, so that the resulting motion is very expressive.

So of course, you can let go of this motion: you know, one, two, one, two, mm.

5:47

Okay.

Now let me show you a couple more examples.

So here is a kicking motion.

So you have many, many couple of key poses.

And then by dragging this lead ball you can make the

teddy bear make a high kick, as well as a low kick.

And this is a mushroom, jumping, so you have five or six key bodies

and then by directly manipulating that ball you can make this animation.

[BLANK_AUDIO]

And this is a teddy bear in trouble, I think six key poses.

And then, you know, he says no first, and they get idea, and be happy.

So, you can make this kind of expressive emotion

by using your hand motion integrated into the final.

[BLANK_AUDIO]

Here this eyeballs also have a separate joint so you can control their rotation.

[BLANK_AUDIO]

Okay, so let me briefly describe the algorithm to do this.

7:09

So input to this system is handle coordinates.

So, you have 2D mouse, and then you

control the lead ball position using a mouse.

And the output is the orientation of each joint.

So, you have many in rotation angles.

So, the question here is how to represent orientation angle, rotation joint angle.

And there are a couple ways to represent joint angles like euler

angles or quaternions but here we use a rotation matrix, so nine elements.

Like this way, so each joint has a three by three

matrix for these represents also on our axis for each joint.

And then what we need to control these nine

parameters for each joint depending on the user input.

7:59

So, this joint has suppose we have three special key frames,

and then each key frame has this nine parameters for each joint.

And then as user specifies the new handle position and then we

need to compute three by three matrix for this position for this joint.

To do this we basically blend these nearby three key poses.

So you won't have to do this.

Let's take, we compute interpretation for individual elements

or individual entry of these three by three matrix.

So this is just a simple skeletal body interpolation and

here we use a technique called radial basis function interpolation.

So this is a scattered data interpolation using radial basis functions.

This is a kind of stand out technique

and you can use as a possible interpolation techniques.

This is very easy to implement, very easy to use.

The idea is very simple.

So for a supposed example you have three skeletal bodies with special location.

And then for each location, we have a kernel function.

Kernel function, and then we eh, compute

most appropriate waiting or coefficients for each kernels.

And then just by adding them together,

you will get a very smooth, interpolating function.

And if you want to know more, you can, I

recommend you to take out paper by Turk in 2002.

So

9:32

after computing this up line, this skeletal body interpolation for individual

elements, you have nine elements in a three by three matrix.

But unfortunately, if you apply our interpolation independently to these

entries in resulting matrix, is not necessarily orthonormal, you know.

Rotation matrix needs to be, orthonormal.

And also perpendicular to each other and

also the directions should be equal to one.

So after that we apply orthonomalization operation to

these three by three matrix to get this one.

I always skip details of this

orthonormalization but there's a standard approach.

10:40

So to learn more, original paper

was published as Spatial Keyframing for Performance-driven

Animation, and if you want to learn

more about interpolation by radial basis functions.

There's a paper titled Modeling with implicit surfaces that interpolate.

Here's an example.

So use a space prior positions in 3D space.

And then this technique generates a

very beautiful smooth surface interpolating these points.

And interpolation of 3D angles is popular topic discussion in graphics community.

And the popular technique used is Quaternion interpretation.

And then I recommend you take a lot of original paper published in SIGGRAPH 85.

Thank you.