Next topic we discuss is, Spatial Key Framing for character animation. And, the work we introduce here was published Spatial Key Framing for Performance-driven Animation. 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. So let me show you a demo. So, here is a character in the 3D space and then we make an animation of this character. And as I said, difficult project is key framing. You know, this time, this pose, next time, this pose, next time, this pose and so on. And it's very, very tedious to do this for a long animation sequence. 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. 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. So, so here, again, individual poses are not so complicated. However, if you hide, and then start moving around the ball, now you can make this teddy bear doing the juggling, just by using a two-dimensional mouse. 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. So now you can get this animation and then now you get a motion. So you can see it from many different locations. 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. 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. So let's take this joint. 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 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. Okay, so here's a summary. So we introduce spatial key-framing for creating character animation quickly and easily. As a user defines key poses in the screen space, and then the system automatically blends nearby key poses. In order to do so, we use rotation matrix and then we use radial basis function interpolation for each element in the matrix. 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.