HK-47

Breathing animation

Recommended Posts

I feel like this has been asked before, possibly by myself. But if not...

 

Is it possible to adjust the "breathing" animation in Kotor 1&2?

 

The rate at which everyone "breathes" has always bothered me. If anyone breathed at the rate the game has it, they'd hyperventilate.

Share this post


Link to post
Share on other sites

It should be possible I think. Basically, you'd need to find every model that has a breathing animation (which might just be the humanoid super model or something like that), decompile it to get the ASCII version and then edit the animation by increasing the time between the keyframes. Then save the ascii, compile it and you should be done.

 

However, MDLOps might have problems with characters. I don't think it has as I recall that I once edited character animations, but if something gets screwed up that could be why.

Share this post


Link to post
Share on other sites

@SuperSzym: No, the breathing animation is in one of the "super models" from which all of the NPC models (that are humans or humanoids) inherit there animations. Same thing with most of the heads, but the heads don't really breathe.

 

So one would need to find whichever super model (either "s_male01", "s_male02", "s_female01", "s_female02", or "s_female03", in that order from first to last in inheritance), decompile it, edit what would probably just be called the "default" animation on the model, recompile it, and then re-compile any of the super models that come after it, with their files being in the same folder as this re-compiled one.

 

Each of these super models has some of the animations, and they chain together through the field in the .mdl file that sets what super model the model references.

 

"s_male01"->no super model

"s_male02"->"s_male01"

"s_female01"->"s_male02"

"s_female02"->"s_female01"

"s_female03"->"s_female02"

 

The animations from the super models aren't actually imported when the model is compiled. The game will simply look in the model itself for an animation and then if it can't find it, it starts backtracking through the list of inheritance to try to find it.

Share this post


Link to post
Share on other sites

You could just slip in an intermediate supermodel that only has the breathing/idle animation, then point it at a renamed copy of the original. It will override that animation. That way if there are any issues you only have to deal with a single animation.

Share this post


Link to post
Share on other sites

And assuming you did this between "s_female02" and "s_female03", you'd still need to-recompile your model and the "s_female03" model. Or if you did it after "s_female03", you'd still need to re-compile EVERY character model at that point.

 

Also, I believe there are some models (I can't recall if they're body or head models) that use "s_female02" and don't go the last step for "s_female03"'s animations...

Share this post


Link to post
Share on other sites

But why do you have to recompile every model below the edited supermodel?

 

From your earlier explanation I got the impression that you don't have to since the animations are not actually stored in the compiled model when recompiling it but are looked up by the game going through the models by recursion.

Share this post


Link to post
Share on other sites

If you did it after "s_female03", when all of the character models reference "s_female02" or "s_female03", your custom one wouldn't be tied in any way to the models. Hence the need to set "s_female03" as the super model of your custom one and then re-compile every model (or hex-edit) so that your custom one was the new super model.

 

Alternatively, the best way would probably be to splice your custom one (assuming you'd really need to keep it separate from the other animations) in between "s_female01" and "s_female02", that way you'd just need to set the super model in "s_female02" and re-compile (assuming you'd set the super model of your custom one to "s_female01"). Though the big assumption here is that the breathing animation isn't in "s_female02" or "s_female03"...

Share this post


Link to post
Share on other sites

I get that part^^

 

What confused me is what you said in your first post of this thread:

 

 

 

The animations from the super models aren't actually imported when the model is compiled. The game will simply look in the model itself for an animation and then if it can't find it, it starts backtracking through the list of inheritance to try to find it.

 

and

 

 

So one would need to find whichever super model (either "s_male01", "s_male02", "s_female01", "s_female02", or "s_female03", in that order from first to last in inheritance), decompile it, edit what would probably just be called the "default" animation on the model, recompile it, and then re-compile any of the super models that come after it, with their files being in the same folder as this re-compiled one.

 

Let's say that whatever animation we're talking about is not in "s_female03" but in I don't know... "s_female01". I'd edit the animation and recompile "s_female01" of course. Then I'd place it in the Override and according to the first statement it should work since every character model would see if it has the animation itself, which is doesn't. Then the game would check "s_female03", "s_female02" and finally my modified "s_female01" where it would find my modified animation and play this one.

 

But according to your second statement I'd need to recompile "s_female02" and "s_female03" as well which of course makes sense if I inserted my own "new" model that now has to be referenced. But in the case I described and which you were referring to in your first post I think, I only edit an existing supermodel that would still be referenced the same way as before. So why exactly do I have to recompile those two models in this case?

To me it'd make sense to either compile none of them, or every single model that's lower in the hierarchy including every humanoid body model.
 

Share this post


Link to post
Share on other sites

Oh... I see what you mean. Yeah, that's my bad, I was thinking of something else. Yeah, you'd just edit the one model and that should be all. You'd just need to recompile multiple ones if you were splicing a custom one in the list at any point before the end of the list.

Share this post


Link to post
Share on other sites

Somewhat random, but one thing I noticed was on the Telos Polar Plateau how the player's breath would appear synchronized after every exhale. Nice little touch they added.

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.