Alvar007

Creating new facial animations

Recommended Posts

9 hours ago, Alvar007 said:

It was easy peasy using the mapper function that KotorMax has

Interesting. That accounts for the differences in rig scales presumably? I've only ever tried it with similarly proportioned rigs before. Looks good though - can't see any problems with it.

Edit: Having just tried importing the anims myself in Max, I spotted a problem that I can also see in your grenade tosssing GIF. The thumb on the right hand gets bent back to the wrist. Presumably that's an issue with reversed starting rotations or something, but whatever the cause that will presumably require some manual cleanup. The shield anim GIF is harder to see, but in Max the right thumb is also bent backwards in that anim.

9 hours ago, Alvar007 said:

I had to do the same as Selkath and convert the model to an F type

Yeah I suspected that would be the case. Probably the only thing to check would be the conversations/cutscenes with piggies involved. I know of two in K1 (both on Tatooine - the fake trapped woman ambush and Vorn Daasraad during the Genoharadan quest, as I mentioned above) and three in TSL (one on Citadel Station working for Luxa, two in the Exchange compound on Nar Shaddaa).

Share this post


Link to post
Share on other sites
22 hours ago, DarthParametric said:

Interesting. That accounts for the differences in rig scales presumably? I've only ever tried it with similarly proportioned rigs before.

Yeah that's what I used to fix Malak's animations, it is really useful. I also tried it with the Selkath but it creates a complete mess I don't know exactly why, perhaps I should try again renaming some of the bones since the last time I just did an auto remap without renaming anything.

22 hours ago, DarthParametric said:

Probably the only thing to check would be the conversations/cutscenes with piggies involved.

I just checked those and there is a problem with the thugs ambush if you fight them after talking: they are using melee sword combat animations that the piggy model doesn't have because their .utc have the gamorrean axe equipped but I renamed the animations to the melee unarmed counterparts since there are just not enough of them to cover the sword ones. So their .utc would have to be replaced to unequip the axe fixing as well the player reacting with parries and flashes like they had a sword or lightsaber. I also need to mention that all the READY animations the piggies have in convos are not playing because there is not a humanoid counterpart for it (that I know of, correct me if I'm wrong).

On top of this there is another problem with Vorn's lines playing the "tlknorm" animation which is supposed to be the default one when nothing is specified in the .dlg file. It just plays the PAUSE1 animation I'm not sure why, it doesn't happen in the conversation with the thugs so I'm a little lost here.

With all these little problems I don't know if this mod is worth it, but you let me know.

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, Alvar007 said:

I also need to mention that all the READY animations the piggies have in convos are not playing because there is not a humanoid counterpart for it (that I know of, correct me if I'm wrong).

There's not a single ready anim, there are multiple different ones to cover the different weapon types. You can use @JCarter426's combat animation guide and TSL's annotated animations.2da to help you find them, but they should be of the form gXrY, where X and Y are numbers that indicate wielding type and anim variation, respectively. For example, g2r1 should be the single saber/sword ready and g5r1 should be the single blaster pistol ready. Some of these appear to be recycled, for example g7r1 (rifle) and g9r1 (heavy carbine) are identical. If you are setting the piggy's anims as unarmed, then they'll presumably need a g8r1 for the ready anim. But since their UTCs force them to use melee anims, I'd just go with that. They obviously already have a limited set of anims by default, so duplicating the existing ones to cover the melee variations shouldn't be too much of a problem. The only question is whether the choreography limits the human anims when fighting a creature, or if it uses the full range of anims regardless. I'm not sure I ever noticed.

1 hour ago, Alvar007 said:

there is another problem with Vorn's lines playing the "tlknorm" animation which is supposed to be the default one when nothing is specified in the .dlg file. It just plays the PAUSE1 animation I'm not sure why, it doesn't happen in the conversation with the thugs so I'm a little lost here.

There's nothing special in the DLG that would suggest the cause. Neither it or the ambush one have any forced or scripted talk anims. I'm not sure why it would work in one scene and not the other.

1 hour ago, Alvar007 said:

I also tried it with the Selkath but it creates a complete mess I don't know exactly why, perhaps I should try again renaming some of the bones since the last time I just did an auto remap without renaming anything.

You can export and import a text list of the node mapping, so it might be worth doing it that way to see if that gives you some more control.

  • Like 1

Share this post


Link to post
Share on other sites

Alright I covered all the melee animations (only related to the single saber ones since they are supposed to be using the axe) including attacks, parries and dodges but the choreography problem still exists since they have the axe equipped so I don't think there is nothing that can be done unless changing their .utc file. Also I mapped some other animations like "inject" (which is strangely used in the thugs dialogue) and some others like "runinj" and "pauseinj" that the piggies didn't have.

The Vorn issue is still there I'm not sure why, I tried changing his appearance (since he uses Alien_Gammorean_03 instead of 01) but it didn't work. I dropped the files here anyway, maybe you can figure it out.

gammorean anims.rar

  • Like 1

Share this post


Link to post
Share on other sites

So after more than one year here I am posting again. I'm still working on my machinima but I wanted to show and release something for this new 2022.

@Liserg asked me once again to port Darth Sion to K1 so I did and I plan to release him just like I did with the other Sith Lords in the past. He even has his own unique walking animation!

jCwpfbK.png

I also recreated his iconic rage healing Force Power with a custom effect:

As for the Vorn issue I mentioned in the posts above, I managed to fix it. It seems I was looking into the wrong dialogue. Apparently tat18_vorn.dlg is the own conversation for that NPC but it's not the one it plays in the cutscene when you have to face him. tat18_vorndroid2.dlg is the one that plays instead. And if you notice there is a TALK_FORCEFUL animation set for Vorn in that one. So that explains why he wasn't playing the nomal talking one when I changed the modeltype but the thugs were (as they don't have anything specified). Apparently the engine sets the TALK_NORMAL animation by default when the S modeltype is set. But if you change it to F and specify another dialogue animation then it defaults to the PAUSE1 animation.

So I thought I would create one TALK_FORCEFUL animation for the piggies (I don't know if this is worth it, dunno if there are any other moments where they use it but whatever) and this is what I got:

If you think this is decent I can release a pack for the Gamorreans animations in the downloads section.

Hope you all have a fantastic New Year!

  • Like 8
  • Light Side Points 1

Share this post


Link to post
Share on other sites

Nice work again, Alvar007!
 

Glad to see you are still working on animations! I think the gamorrean animations are just great and I'd love to download and use them.

 

Happy 2022!

  • Like 1

Share this post


Link to post
Share on other sites

So since you've turned up again @Alvar007, I had an idle thought while playing around with some TOR models that I figured I'd run past you. How practical do you think it would be to create a rig with added bones for flappy bits - for example capes, lekku, etc. - and then use a physics sim to generate motion for those bits over the top of the existing vanilla animations for the rest of the body, baking the generated solutions out to additional keyframes for the added flappy bits bones? Obviously it would require a lot of manual cleanup to get smooth looping and cross-anim transitions, but assuming it was feasible it seems like it could take out a decent chunk of the donkey work out of extending all the combat, etc. anims for models that aren't wholly catered to by the vanilla rigs.

Share this post


Link to post
Share on other sites

The 3 mods (Darth Sion port, his Force Power and the gamorrean anims pack) have been submitted and they are pending approval now.

@DarthParametric I assume by your post that the danglymeshes don't do the job? I have yet to experiment with a physics sim. Which one were you thinking of, MotionBuilder perhaps? I don't know if what you're asking is accomplishable but if I were to try that I would need to know the location of the flappy bits as I'm not too familiar with the TOR models. I assume the bones for the lekku wouldn't work for the lobes of the Selkath for example. So I would have to take every one into account.

  • Like 1

Share this post


Link to post
Share on other sites

I was playing with Nautolans for the Jedi on the Star Forge mod and they have a lot of bad deformation during combat animations due to their lekku draping over the back. The skin weights are split between head, neck, upper torso, and torso, so during anims with a lot of differential twisting between head and torso they end up getting mangled. From past experience, the player in TSL getting up off the floor in Peragus is also another case that causes extremely bad deformation. In TOR, their lekku (also for Twi'leks) are primarily driven by physics, so they don't have those sorts of problem. But the general principle I was thinking about could also be applied to other similar objects. Capes, long hair, tails, etc.

Obviously Odyssey can't handle real-time physics, but I figured it might be possible to set up and run a physics sim inside something like Blender (Max? Unreal Engine?) and then bake that out to an actual animation. Some quick Googling suggested that the baking is feasible in Blender. So my idea was port a TOR model to the KOTOR rig, add in the extra physics bones it has from TOR, apply the standard supermodel anims to the Odyssey bones and let the physics sim generate appropriate movement for the lekku or cape or whatever. Then bake out everything to a new set of anims that combines both.

It wouldn't be a one size fits all obviously. You mentioned Selkath, those would require their own rig/physics setup, Nautolans would require their own, etc. So it wouldn't be something anyone would want to do more than once or twice I'm guessing. It was just something I was musing over as I was looking at some video of the fight cutscenes and cringing at the deformation, so I'm not expecting you or anyone else to undertake it. Mostly I was just wondering if the idea had any merit.

Share this post


Link to post
Share on other sites

@DarthParametric I gave it a try. I created my own set of bones and simulated them inside Blender with one of the combat animations. The result is okay inside the program but the bones have both rotation and translation to make the movement look like this. So if you parent them to the head for example you are combining the translations and you get weird results. One solution is to leave them unparented which breaks the rest of the animations but that wouldn't be a problem if someone was to bake them all. The manual cleanup to make smooth loop transitions for each animation is what makes this a pain in the ass. Not to mention is not as realistic because the bones need a few seconds to get back to the resting pose. Also I'm still using Blender 2.79 which uses the old plugin where you have one scene per animation so I would have to bake every single time for each animation. If I'm not mistaken in the new version of the plugin you can have all the keyframes in the timeline like Kotormax so that would be a solution. You can even test the results in Blender itself without having to go to the game or 3DSMax like I did here:

Spoiler

ezgif-6-12f329d81f.gif

The problem comes when apparently the mesh has verts with more than four weights and also some of them go over 1.0. So I corrected that automatically using MDLOps but unfortunately the movement I created breaks in game:

Spoiler

ezgif-3-b9c79f5684.gif

So in my opinion this is too much work for too little. I was thinking why not parent the whole lekku to the head so there isn't any deformation? (although there would probably be clipping). Or maybe set it as a danglymesh?

Share this post


Link to post
Share on other sites

If you only weight it to the head (as you would have to in a separate head model) then they will be completely rigid and clip through the body with even the slightest head movement. Danglymeshes will also clip.

I figured there wasn't much likelihood of a sim being practical, so that's fine. Thanks for giving it a shot though.

  • Light Side Points 1

Share this post


Link to post
Share on other sites

So after all this time I am back resurrecting this thread because I made a very interesting discovery!

I was poking around with retargetting animations and I managed to port a mocap animation from Mixamo to the game! Thanks to the "Unapply object keyframes" feature that KotorBlender has, I could retarget the animation from the Mixamo armature to the Kotor armature.

At first I used the Rokoko Blender plugin to retarget the animations and the results weren't half bad, but then I tried with Auto Rig Pro and the results were even better! Here's how it looks in Blender:

And here's ingame:

Spoiler

 

I will keep experimenting on this. I may try to retarget the TOR rig to the Kotor animations like @DarthParametric and @JCarter426 were doing a few years ago, although I don't know how that will turn out.

  • Like 6

Share this post


Link to post
Share on other sites

Nice work. How does it handle stuff like the fingers? It's interesting that you are using Auto-Rig Pro. Is it the version they were giving away for free a month or two ago?

I had been thinking about possibly importing TOR anims directly via an NPC-only TOR rig for stuff like the dancers and so forth. But retargeting would obviously be much more useful. The TOR Blender plugin(s) have evolved a lot in the last couple of years, so getting TOR anims in a usable state is much more viable. For example, in-built rig scaling, removing added orientations, etc.

  • Like 1

Share this post


Link to post
Share on other sites
On 8/5/2024 at 5:56 AM, DarthParametric said:

How does it handle stuff like the fingers?

It's not too bad. The original rig has 4 bones per finger whereas Kotor only has 2, so you won't get as much accuracy but works well enough IMO. Here's an example:

Spoiler

1691902694_StarWarsKnightsOfTheOldRepublic2024_08.06-19_09_39_01.gif.1bbbb058c8a9863d9afa191996aeca39.gif

In the original the index finger is almost all the way straight when she points, but this is as close as you can get.

On 8/5/2024 at 5:56 AM, DarthParametric said:

Is it the version they were giving away for free a month or two ago?

I'm not sure. The full version is archived on the internet so you can find it easily.

On 8/5/2024 at 5:56 AM, DarthParametric said:

The TOR Blender plugin(s) have evolved a lot in the last couple of years, so getting TOR anims in a usable state is much more viable. For example, in-built rig scaling, removing added orientations, etc.

I have been checking the plugin out and it seems very advanced so I could probably retarget the TOR anims to the Kotor rig just like with the Mixamo rig. The question is if I wanted to port the TOR rig directly (so that you don't have to reweight TOR characters to the Kotor rig) the skeleton has to be made of objects right? The game doesn't accept normal bones? If so that's gonna be a little more complicated.

Share this post


Link to post
Share on other sites

Nah, it's not really an issue. It's easy enough to generate meshes of the TOR bones via FBX. You should also be able to use dummies/null objects as well, which is also possible via FBX. I'll whip up a set of the character rigs for you to play around with when I get a chance.

As to importing, it seems a scale factor in the ballpark of 8.8 aligns a "normal" male (BMN) TOR character with a medium KOTOR character, albeit they are rotated 180 from each other:

TOR_KTR_Character_Scale_Rotation.jpg.b1896cf6388e864f2effb250cccf3c82.jpg

Not sure if you just live with the rotation and then rotate the NPCs in-game. There's kind of a bit of that already with Rakata, since all their anims are weirdly angled off to one side.

One thing to note is that the TOR plugins can't currently handle additive anims (anything prefixed "ad_"), so stuff like facial animations and so forth, due to the way they are stored. That instantly takes a lot of anims off the table, but there are still plenty of canned anims that would work for background NPCs. Not sure if it would be feasible to have an actual interactive NPC you could talk to, much less fight, fully using TOR anims.

Another thing to note that due to the use of a cloth system, capes, cloaks and the like have a separate set of unique-per-model bones that are not imported by the plugin with the standard rig and don't receive animation. It's all dynamically driven by the cloth sim in TOR. This also applies to things like Twi'lek lekku.

Also, currently the plugins don't support the new 64bit animations in the live game (the game switched from 32bit to 64bit about a year ago). You have to download an archive of the original 32bit anims, which obviously means you aren't getting anything added to the game recently. Although the plugin devs are apparently working on 64bit anim support. You can download the 32bit anims here - https://drive.google.com/drive/folders/1hItkqGGX2ut9FMslTrxQV5GahbHYqT7F

Make sure you get both GR2 plugins:

https://github.com/SWTOR-Slicers/Granny2-Plug-In-Blender-2.8x

https://github.com/SWTOR-Slicers/ZG-SWTOR-Tools

I'd advise sticking to Blender 3.6.x with these. They are flaky with 4.x, and it breaks KOTORBlender anyway.

Edit: Hrm, I can't remember how I managed to convert the bones to meshes previously. I can see two ways to convert all the bones into a single skinned mesh, one of which can be done in Blender (see here, first export the TOR model to a glTF file and reimport to transform the bones into a usable size). But that's not particularly helpful. I thought I had just done something like exporting the rig to OBJ, but that doesn't work. Blergh.

Share this post


Link to post
Share on other sites

All right so I've been trying all the different combinations in retargeting for the game. The first one is using a TOR anim with the Kotor rig, it works flawlessly:

Spoiler

1ILTvza.gif

ATlfz6x.gif

You can see the finger precision here, it's pretty accurate:

Spoiler

MhK1fCC.gif

Although it's a shame that the facial animations cannot be added since that was one of the main motivations to use these anims, in that case maybe using the Mixamo animations is better in the long run since there are more of them and they are easier to port.

Next I tried retargeting animations between Kotor rigs, in this case the humanoid animations to the Selkath rig:

Spoiler

rtpcOz7.gif

It seems to be working fine, except for the lobes and eyes that probably would need to be animated manually. Maybe that Selkath mod could finally be a reality?

Lastly for the most complicated part, porting a TOR model with the original TOR rig into the game. That scaling factor you mentioned was useful, you need to scale then rotate to match the Kotor models and then apply all the transforms. I managed to create object bones from the armature using a script generated by this custom GPT that's especialized in Blender. The script is here if you are interested. Honestly this thing is amazing, you can interact with it like you are trying to explain your problem to another person and it will fix any errors or issues you may have. I couldn't find any other script on the internet aside from the one you posted but that generated a single mesh so it wasn't helpful, then this thing just solves my problem in seconds.

Now that you have the rig made of objects you can create an MDL root and retarget the Kotor anim to the TOR armature, then apply the armature keyframes to the object rig using KotorBlender like I did previously. Unfortunately the resting pose will affect the final animation so you need to take care of that. You can either manually pose the vertices in edit mode or you can apply the armature modifier and then add it again. You will see that the model has the legs outstreched more than usual in object mode but not in edit mode, that's the resting position we need. Then when you delete the armature for exporting, the model will come back to the correct resting pose since is no longer being affected by the armature deforming.

After doing all this the model was broken in game even though it showed fine in Blender after re-importing it. So I tried converting it to ASCII and importing it to KotorMax (the only version that works for me is 3ds Max 8  ) and now the model itself showed fine. The problem is that the textures appear missaligned somehow, but I checked both in Blender and 3ds Max and the UVs seem to be fine, even after reimporting the model to check that the program wasn't fooling me. Also I made sure that there are no more than 17 bones per mesh and the object names have no more than 16 characters since I remembered you mention that in this same thread.

So I'm stuck at this point, I tried everything but I don't really see why it's not working. I have to say I baked the textures from the materials that the plugin uses, but since Blender has tools that rely on the vanilla shaders and not custom ones, the textures on the viewport show fine but they don't bake good inside Blender. So I had to edit them afterwards even removing the alpha channel which was causing the model to be invisible. There's still the hands mesh that won't show up no matter what I do:

Spoiler

Ys2vZrE.mp4

Here's how it should look:

S6MJzvR.gif

I attached the files I was working with just in case someone fixes the issue.

tor model.zip

Share this post


Link to post
Share on other sites

Aha, dancing Selkath returns!.

Looks good. The only real issue I can see is the elbows, which I also noticed in your previous post. Seems like that may need some adjustment.

As to Theron, how'd you set him up in appearance.2da? By default it will want to apply a single texture to the whole model if you specify one in the 2DA.

Share this post


Link to post
Share on other sites

There's no texture specified. I used the same method as when I ported Darth Sion and the rest which worked fine. Also the texture for the head and the hair are showing up correctly and those are different objects, so I don't think that's the issue.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   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.