So here we have our interactive virtual character that can respond to us. If I speak loudly, he will start listening. And you can probably hear him talking in the background. And he goes back to listening and while he's listening, he responds to head nods and shakes. So that's what we did and now it's all very good but that's not all there is. He seems to be talking, he's gesturing, but his lips aren't moving. So we've got a lot of nice body animation, but we now need to turn to the face. So to animate the face, we use something called blendshapes. And as you can see, the character here has a neutral mesh. But if you click on M3DMale, there's the M3DMale Character Manager and that's got something called, morphs. And there are a whole different sets of morphs. So morphs and blendshapes basically mean the same thing. So, if you get a heads, I can turn on the morph angry or afraid. Let's turn it up so you can see a bit more full faced. And lots of things that we can play with. The nice thing about this character is that we can also use morphs to change the appearance, so some of them are for animating, some of them are for appearance. We'll just look at the ones that we're going to use for animating. So we're going to look at two sets. The face which is I'm going to look at the eyes probably, and the mouth, and also we're going to use visemes. Visemes are the visual counterpart to phonemes which are the basic sounds we make. So, we've got visemes for AA, EE, EH, ER, F, E, IY, K, L. All of these sounds that we would make. Now these morphs are actually controlled by the character manager. They're actually attached to the mesh itself. So unity this character managers specific thing for these morph 3D characters, but the character also has a mesh. It actually has four meshes. LOD0, LOD1, LOD2, LOD3. That's for level of detail, which means that you can draw a less detailed mesh if you're further away from the camera. And that saves some rendering power and speeds things up. We're not going to worry about that now. We're just going to look at LOD0 which is the basic one. And you can see there are a bunch of morphs here. And I can set this values. They aren't actually all of them. While all of the morphs are here, well, the morphs over here, are only get turned on if you actually activate them down here. So, activate and then in the M3D interface, actually creates the morphs here in the LOD0. And now, that's important because we need to actually animate them in the LOD0, not in the main morph. Because you don't have access to them in the main character interface. So you need to make sure to activate all the morphs you're going to use. So I'm going to start adding some facial animation. Now before I start making the facial animation, I'm going to add a new layer to my animator for that facial animation. So what does that mean? Well, a layer is basically a state machine. But you can have multiple state machines for character, which play different animations on different parts of the body. So I'm going to have one for the body. So I'm going to rename this one body, and add a new one for the face. And I'm going to do some settings. I'm going to turn on IK pass. That's something we're going to use later, which is for gaze for the eyes. Blending override is fine. And we're going to sync. And we're going to sink to the body. What that means is that, we're going to have exactly the same state machine as the body, it's going to move to the same states of the body, so they're all going to do the same thing, but we can attach different animations. And that's going to be useful. I'm also going to use move face to the top. Basically, facial animations seem to often only work at the top layer, don't ask me why. So these both have weight one, that means they're fully visible. If you turn down the weight the animations become less visible. But I always just use weight one. Okay so, let's see what happens if we turn to this on. It goes completely haywire. What's happening? Well, what's happening is that the character is actually flipping between states very, very quickly, as you can see here. And the reason that is, is because there's no actual animations attached to these states yet. And so, it takes no time. And the states transitions happen when the first of any of the states in any of the layers ends. I would have preferred it if it was the last, that would make more sense to me, but that's the way it is. So you need to make sure that there are animations on all of your states in the face layer are not only that, you need to make sure that they're the right length. So, I've created the, actually, I'll delete it, and recreate it again. I'm just going to do, in the animations folder, I've created the face folder, and I'm going to create animation, and I'll call that face idle. And that's going to loop just like the body idle. They'll both need to loop. And I'm going to click on the idle state, and dragged face idle into the motion for that state. So now, face idle is now attached to that state. But it's empty, there's nothing in there. So before I start adding things, I want to know how long it should be. So it needs to be the same length as idle. Now, we can note two things. Idle has 30 samples, that means 30 frames per second. And this is the current frame. So it's frame zero. If I drag to the end, we can see that- that current frame isn't changing. Why is it not changing? Because I was hovering over it. Okay. So there we are. It's about 490 frames. So you want face idle to also have 490 frames. And we also wanted to have 30 samples per second. So first before we do anything, we need to have a property that we're going to animate. And as you remember, we're going to animate its blend shapes which are attached to LOD zero. So I'm going to do the add property, I select M 3D male, which is the character M 3D male LOD zero, Skinned Mesh Renderer, Skinned Mesh Renderer is always where the blend shapes are. We have to drag it across to actually be able to read anything. And I'm going to do, while he is idling, I'm just going to have him blink. So I'm just going to do the two eyes closed. Blend shapes. Okay. I've got a keyframe zero here, keyframe zero here does that for me automatically. I'm going to delete those and go to frame 490. And zoom out LODs till we get 490. I'm going to set a keyframe there. So right now, let's find the count again. We can play. And unsurprisingly, it does nothing because we've just set keyframes to zero at the beginning and end. But the important thing is we've set keyframe at the end, the same length of time as the other animation. So we've now got, we know it's the right length. So I'm just going to add a blink. I'm going to add a keyframe. That's going to be a keyframe of zero, a little bit later another keyframe of zero. So, a blink starts with open eyes and ends with open eyes. But in the middle, we need a keyframe of closed eyes which is 100 percent. And if we zoom in, we can see that his eyes are closed. And go here and set another keyframe of 100. So if we go through this, we can see that he's closing his eyes. And that is probably quite a nice blink. It's a bit of a long blink. Make it a bit shorter. Still a bit long but I'll leave it long, maybe on that one, a little bit. Okay. Now, I'm going to copy these keyframes because I want to blink more than once, so I copy may be over here and have a few blinks. So, if you look at the whole animation, he's just going to blink a couple of times. Okay. Now, that animation is now added to the idle. I've already added that, so we can play it live, and see what happens. And he's blinking. The blinks not quite right. It's a bit long. But I'm going to, in this video, sort of get everything right because it takes quite a lot of time to sort of animate. You need to go backwards and forwards and really make sure it's fixed. But for now, I'll just show you the basic process. So what I'm going to do now, is create some more animations. I'm actually going to duplicate these, animation face, I'm going to select this and do edit, duplicate. So this can be face, face listening one. And if we go to listening one, you can add that in there. And we basically do the same thing. I need to select my character. If we go to listening one, we can see that it has 329, 330 frames face listening. We can move this last frame to 330. This is going to have the same length. I'll delete these ones. And so, we've also got, it's a similar animation, just a little bit of blinking. And we can add something else like why don't we, if he's listening, he's being quite positive. We can add some smiling, lots of good, nice feedback behavior. So, mouth smile or mouth smile open, mouth smile open's just smile with an open mouth. And again, I can add some keyframes. Zero there. 100 there. 100, 0. And copy that, paste it here, paste it here. Let's have a look at that. That's the smile is a bit too short. They look a bit fake. Make them a bit longer. Moving this. And again, we can play. And if I start talking quite loudly, he will recognize that I'm listening and start playing an animation and you can see he's smiling and blinking which is excellent. Now, I can carry on for all of these. He basically needs to do all of these in the same way. I'll show you one more for talking. We name this face, Welcome. And add that to the talking one state. And if I look how long Welcome is, I can see that it's 4, it's also 490 by chance. Oh no sorry, that's Face Welcome. Look how much Welcome is, that's 190. So Face Welcome needs to be 190. Delete that. And we add some animations. Now for this, for animating speech is much more complicated because you have all the visemes and you have to sort of, there's much more movement going on. I'm just going to show you a couple. I'm just going to select a couple of visemes. I'm not trying to do it properly. But I'm just going to show you the basics of what they do. I'm going to do these two maybe. And here, I'm going to, again as usual, I tend to just set keyframe zero. 100 percent, 100 percent percent again, and 0. I'm doing this slightly randomly. Now, if you play that, this is not great actually. It doesn't look great. It's all got open mouth one. So I'm just going to show you with a closed mouth viseme as well. I haven't actually got any constants, that's probably why. I need some constants. So you can see, it's starting to look a little bit like speech. If I copy this again, it's not great, and it certainly won't be synchronized with what he's saying. But, you're beginning to get something like speech. And if you spend a decent amount of time on it, it should look pretty good. But anyway, here we are. So if I talk a bit louder, he should listen. Hello. Welcome to our VR virtual characters demo. And he certainly looks like he's speaking now, which he didn't really before. So I'll have to fill out the remaining states. I mean, I'll essentially just copy some of the existing animations and make them the right size. And then we'll have a character that not only responds with his body but also with his face.