Jump to content

Lips/Mouth animation


Recommended Posts

Hello everyone!

I've been waiting for awhile for an update, but with no luck, so I've decided to do it myself. I want to add a lip animation to some models, for personal use ofc.

The models which I'm trying to modify are Lando and Reborn remodeled/remastered.

I can't find the Reborn model on this site, anymore, but the Lando one is:

https://jkhub.org/files/file/3289-lando-calrissian/

So, since it lacks the mouth movement animation, can somebody direct me to a tutorial, with blender I'm guessing? I've found some similar tutorials, but they are general and not related to Star Wars JA models/skeletons.

EDIT: The Acolyte Reborn:

https://jkhub.org/files/file/735-acolyte-reborns/

Link to comment

It's simply a matter of importing the whole model in Blender, along with the skeleton (which is imported automatically with the model), then carefully weight the lip vertexes to the four lip bones.

In short, make sure you unpack the model from the .pk3 into gamedata/base/models/players/<modelname>/model.glm. Also make sure that you unpack from the original game assets the humanoid skeleton in gamedata/base/models/players/_humanoid/_humanoid.gla. Provided that you installed the correct Blender JA tools (for Blender 2.79 or 2.80), simply Import -> JA Ghoul 2 model (.glm), and select the aforementioned unpacked Lando .glm model file that will then be imported.

For the record, I did try something like that some time ago, and I remember that Lando's head is a bit off - too high or too low to sync with the lip and eye bones. It's simply a matter of selecting the head mesh, entering Edit Mode and adjust its height correctly - from what I remember it was a very small value, like 0.1.

Still in Edit Mode, you should accurately select the lip vertexes - there are four bones that contribute to lip animations, plus the jaw obviously - and, under Data (the triangle shape on the right of the screen menu), select the corresponding bone data under Vertex Groups (if it's not there, you can simply add it to the list using the + symbol and name it after the specific bone) and Assign it (or Remove it in case you picked the wrong vertexes) to the selected vertexes. Rinse and repeat for every single one of the four lip bones, plus the jaw bone, and dulcis in fundo the eye and eyelid bones (I don't think those are weighted on that Lando model either).

Another option is to select the head mesh, enter Weight Paint Mode, then select the appropriate bone data under Vertex Groups and paint the model directly.

None of these two methods grant you a perfect result: that only comes after a lot of fine-tuning, especially having to weight such a complex face area to multiple close-by bones. For more informations on which vertexes need to be animated by which bones, you can import and examine another base model, like Kyle or a Prisoner model.

If you need any more help feel free to ask.

And I dare say that even though you want to keep them for personal use, lip sync and eye movement would make a neat update for the existing Lando model. Not sure if it would be acceptable to update it though, given the rules about ports.

Link to comment
3 hours ago, Ramikad said:

It's simply a matter of importing the whole model in Blender, along with the skeleton (which is imported automatically with the model), then carefully weight the lip vertexes to the four lip bones.

And I dare say that even though you want to keep them for personal use, lip sync and eye movement would make a neat update for the existing Lando model. Not sure if it would be acceptable to update it though, given the rules about ports.

Okay, I'll try it and let you know what I've accomplished.

I'll have to ask the author of the model for the update, but for now, let's see if I can do it on my own.

EDIT: Okay, I managed to get there, for the selecting part. So when I want to select the Vertex I need to press the left mouse button only and click on the regions to mark and after that ASSIGN. Tbh the selecting part is difficult.

EDIT #2: I've figured out that in order to select it I need to use the right click. And it didn't work. Maybe I need to select the face_0 instead of the head_0 in the mesh (I think).

Link to comment

Okay, so I've found that the "rblip2 lblip2, rtlip2 ltlip2, reye leye, ceyebrow and jaw" are on at least 2 different meshes: head_face_1 and head_eyes_mouth_0

I'm guessing I have to assign it at least twice then?

https://ibb.co/BNDVgf6

EDIT: I'm making progress. Lips animations are visible on the model (Reborn), but it looks more like he's mumbling, rather than talking. Do I need to correct the  "rblip2 lblip2, rtlip2 ltlip2"?

Link to comment

Yes, I forgot to mention it - you'll have to rinse and repeat for all the head and face meshes the model has. Basically the _1 at the end of head_face means it's the first lower level of detail compared to the original, higher poly mesh (head_face_0). Those are lower poly meshes loaded when the model is relatively away from the player camera - you could probably skip the LODs if you don't care about the lips and eyes animating on the distance. Otherwise you'll have to weight them too. Usually Jedi Academy meshes (but not always) have up to three level of details along with the base geometry, so it means you might have to deal with up to head_face_3.

As for your last question, the answer is "probably yes": that's essentially what I meant when I said it would take a lot of fine-tuning. Without nearly perfect weight, the animations will look weird. Something that could help you in this case would be to actually pose the mouth and lips in Blender to help you see how the face deforms, if it deforms correctly, and give you a better idea of what needs to be improved. Simply select the skeleton (skeleton_root), then enter Pose Mode, select the lip, mouth, jaw bones and rotate them slightly (5-10 degrees should do, that's how much I generally rotate bones). Press R when you have selected a bone to rotate it, then X, Y or Z to rotate them around a specific axis. Press X, Y or Z twice to rotate them on their local axis as opposed to global X Y Z axis. Then use the mouse to rotate the bone itself (keeping CTRL pressed will rotate the bones in steps of 5 degrees each), or input a number of degrees to rotate. For example, R -> X -> -22 will rotate the selected bone of -22 degrees on the global X axis.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...