News:

Rings of Reznor!

Main Menu

Tweaking the standard Power animation?

Started by SickAlice, October 02, 2014, 10:34:33 PM

Previous topic - Next topic

SickAlice

In most keys especially male basic types there is a " power " animation. During this one the character looks toward and reaches upward, then rises a little into the air.
I would like to use this animation for something but I want to change it so that the character still assumes the same pose but their body does not rise up off the ground at all.
Does anyone know where in the animation I need to start to change it in this fashion? Thanks.

detourne_me

If you really wanted to get into the nitty gritty of it, you could do this in Nifskope.  You would have to look at the keyframes data for the power animation, start with the handle node and adjust the quarternion keys so he doesn't leave the ground. You could also adjust the translation keys for the legs so that they don't move too far, either.

hoss20

SickAlice, shoot me a PM with your email. I made an attempt at what you were looking to do.

SickAlice

K-dokey, done and thanks. I'm pretty much giving it a blank stare (I'm still lost when it comes to rotation in keys).

I had another question while I'm about it and I think you may have worked with this one before DM. I have added a cape to Jik's Spidey. I attached it to it's proper place, this being the cape node itself to the Scene Root and it's corresponding biped hierarchy (cape top >) to the Neck node. During certain animations Spider-man hangs upside down from a cord, like hang_down for example. During said animations I want the cape to hang the opposite direction instead being that it would hang towards the ground like a cape naturally would (currently it hangs against gravity towards the pelvis).

My assumption here is that most of the string names/nodes called for in any given key are already set to follow that upside down motion given they pertain to the characters skeleton with the exception of the cord so futzing with any of those like the Neck for example would produce wonky results on the body itself. So the question is what to do? I assume as well this requires me to add a node for all the cape nodes correct? But then what? Thanks in advance anyone. For completion reasons here the cape and nodes came from Taskmaster.

detourne_me

sorry if you've waited for a while,  FR has been kind of wonky for me here.. haven't been able to log in properly.
Right now, your spidey skope has no data in that hanging upside down animation for the cape.
Because there is no information in that keyframe it is just taking the default position from the previous animation, which i assume is idle, or ingame, whichever animation was playing before it.
In order to give the cape some animations, you would need to add in a keyframe controller, and add in some infor for the cape nodes (all three if you want some animation)  My only recommendation, aside from animating it yourself, would be to look at a similar animation from a caped mesh, and just copy the keyframe data from it, and paste it into the idle_hang (or whatever it's called) animation.
umm,  i'm pretty poor at giving directions.. but this may work out...
1) copy a hover animation from a caped mesh into your new skoped keyframes with m25's tool.  Be sure to call it hover_cape or something so you don't overwrite a needed animation.
2) in NifSkope, open up the keyframe file, and click on the NiControllerSequence of your hanging animation.
3) in the bottom window look at the Num Controlled Blocks... it should be like 32 or 33 or something.  add 3 to that number (for cape top, cape bottom left and cape bottom right)
4) update the Controlled Blocks by clicking on the green icon (or right click and update) you should have 3 new empty controlled blocks at the bottom of the list.
5) find the new hover_caped animation and look at the controlled blocks in that animation... look for cape top, cape bottom left, and cape bottom right.
6) Click on the blue icon to get the NiKeyframeController for the node (for example cape top), right click, copy the branch and then paste it anywhere in the keyframe file,  it will appear at the bottom of the list.
7) Go back to your hang_idle animation, and go to an empty Controller Block at the bottom of the list, be sure to name it cape top in the Target Name spot, and then write the number of the Controller that you just pasted into the bottom of the keyframe file.
8) Repeat that for the three nodes, cape top, cape bottom right, cape bottom left.
9) you could probably save it and check it out in CTool, to see how it works there. But, you might have some issue with the timing too... (i haven't tried this yet, just speculating)
10) if it does seem out of sync, you could look at the NiKeyframeData under each controller and renumber the timing to fit with the usual timing of that animation. (maybe the hang animation is 1.5 seconds long but the hover_caped animation is 2 seconds)

I hope this makes sense, and actually works... I'm really just guessing here.

SickAlice

S'okay. I haven't been able to either ("No input file specified.") and I'm still working out geometries so I haven't gotten to the keys yet.

I already know how to do all of the things you ran through via Windblown's tutorial else I wouldn't have been able to make my recent works (for the record the animation doesn't need to be transferred. One can simply open the donor in a second Nifskope window, copy the Controller(s), paste them to the desired keys in the original set and adjust the string names and set the scales to the right end times).

What I'm trying to figure out after anything else is how to make a cape to hang toward the ground while the rest of the mesh is already upside down in air with the feet pointing skywards. Here is a picture of what I mean:



1.) Image one is the mesh in the normal position during hang animations as Jik had it.
2.) In image two I added a cape and it's corresponding bipeds. Of course the problem is real obvious though, the cape is hanging the wrong direction.
3.) I Photoshopped together what it should look like and the result I want to achieve in image three. To my understanding the cape not only needs to flip top to bottom but front to back as well else the back of the cape will face unnaturally forward.
The question is how do I achieve this, specifically?

detourne_me

Then I have no idea outside of trying to play with the translation keys themselves... or you could always just add an upside down cap to the mesh and scale it to appear when he is upside down... ?

Tomato

My advice if you're trying to edit the rotation via nifskope is to do the modifications to the cape bones in the .nif file first (a copy, obviously) so you can see what you're doing, so that you can get the rotations exactly how you want them. then when you're ready to modify the keyframes, you can just duplicate the values from that and make tweeks once you see it in action.

I did a bit of quick testing, and the best way to get the cape to hang upside down is to change the "R" rotation of the cape_top bone to something like 80 (the normal rotation is -133 or something). There's a bit of mesh warping, but nothing too bad.

SickAlice

#8
Perfect Tomato. Changing the R value in the cape_top bone to 80 works perfectly. In my case I had to move it back in the Translation as well, I suspect because of the different body and I had made a new cape and replaced the old one with it. I didn't have the warping issue, again I think because I made a new weighted cape and possibly because mine is much shorter, stopping just above the pelvic area. Another thing too and why I'm blushing and feel like a horses pootoot but I just found out we can change the setting from axis to euler. Derp, no wonder there was a button there. So I could press it, right?  :doh:

*Edit: I just got back to the cape part. My shorter one is indeed only assigned to the cape_top biped. The other bipeds that rest near the bottom corners of the cape are what caused the warping you noticed, for future use.

SickAlice

Thanks hoss. Checked it out just now. I further tweaked it changing the controllers from clamped to cycle since he's supposed to look like he's struggling, like one would if there pelvis was stuck in the ground or quicksand. It looks almost perfect but after I applied that it's pretty jerky especially when the animation loops over. Any suggestions? Also wondering how you did it just so I can learn the process as well.

hoss20

Well, I'm sure I rambled a bit in my email. It appears that the Quaternion Keys are for rotating the pieces of the meshes skeleton and are responsible for bodypart movement. The Translation Keys, on the other hand, affect the X, Y, Z location of the bodyparts. So, being that you merely wanted the whole body to not leave the ground, I went to Keyframe Controller --> Keyframe Data for the Bip01 node in the keyframes. I then opened up another instance of Nifskope and opened up the mesh to find the Translation numbers (X, Y, Z) for the Bip01 node. I then changed all of the Translations in the keyframes for Bip01 to the values from Bip01 in the mesh. That way, he just stayed in his default position. In this case, it was the Z number that needed changing. If you had wanted to move the mesh to either side, you would have changed the X value. If you wanted to move it forward/backward, you would have changed the Y value.

If I had done this for, say the Pelvis node, then the mesh would have jumped up in the air (arms, legs, head, everything), but the Pelvis would have stayed in its original position and you would have seen the torso stretch out while jumping and the Thighs would have crunched into the Pelvis.

Now, I imagine that you're getting the jerky movement after changing the animation controller from clamped to cycle because the animation does not end where it starts, so it resets itself. In CTool, you'll notice that the Climb animation ends where it starts, if you check the timer under the animation screen, and therefore moves smoothly while it cycles. I don't know anything about the creation of keyframes, but it looks like you would have to adjust the Quaternion keys for all of the affected bodyparts in order to have them finish where they start. Of course, this means adding time to the animation, which I believe can be done only if you have the same end value for the Keyframe Controller, Quaternion Keys, and Translation Keys for every body part (including parts that don't move in the animation). I think for safety's sake, you would want to change the end time in the TextKeyExtraData also.

I would hope that someone who has more experience than I can lend a hand and/or give a better explanation. I'm merely a layman that occasionally stumbles across things. I learned a lot from Windblown's showing/hiding objects during animation tutorial and doing my own experimenting.

SickAlice

You explained it just fine hoss. I understand what needs to be done.

hoss20

That's good to hear. I do want to mention that doing this manipulation is much easier to do with 3rd Reich keyframes than it is for FF1 keyframes. The process is the same, but finding the Keyframe Controller and Data for each corresponding node is much more of a hassle for FF1 keyframes. If you open up a set of each of the keyframes in Nifskope, you can see right off the bat what I'm talking about. Feel free to hit me up with any questions and I'll do my best to help out.

SickAlice

I only use FFVTTR ones anyways. I only have the second game so the 1st are irrelevant to me and since WB relayed the same to me I always convert my keyframes now from the get go even if I don't plan on changing anything. I can definitely see the difference when I open them up as well.

SickAlice

Thank you again hoss. I think I understand what you explained. I was glaring at it in CTool for awhile and think I may understand what is happening. The " twitching " is mainly seen in the upper parts, being the head, neck, clavicles, arms. When I slow it down with my eyes I notice that those parts are cycling from the start position of an animation to a slightly different end position then when they start the next cycle they jump immediately back to the start position with no transition between. I think what needs to be done (aside from drink much caffeine for the time this will involve) is that I need to add double the amount of tracks for each Translation key, and possibly the Quarternion to match this, then copy the original movements backwards until it reaches the original start position again. Does this sound right?

hoss20

#15
That sounds about right. Keep in mind, though, that the quickness of the animation will then double. You're, essentially, taking half of an animation and making it a full animation in the same amount of time. Also, and I hope a mesher can confirm this for me, but I believe that Quaternion Keys are more used for movement or rotation, while Translation Keys are more for the position of that body part. My example is that when I've brought an animation into a skope from a different sized mesh, it's the Translation Keys that I adjust to make the animation fit the new mesh. I leave the Quaternion Keys alone and everything works fine.

In your case, though, I think you're definitely going to have to adjust the Quaternion Keys, because you are wanting to move body parts.

SickAlice

Totally. Hence I'm going to increase the time to compensate. If I hadn't said it before this is for a prop not a character specifically. Right now I have it stripped down to that one animation and it renamed to be the new idle. So the animation can lag as long it needs to since it won't have to transition to anything. Basically the character will be wriggling about trying to get out of a dirt pile in front of their headstone. I think the Q keys will have to be adjusted as well more in just making a backwards duplicate of them in the same way so they line up with the adjusted Translation ones else I'll end up with flickering again.