[REL] Havok Animation Converter, Thread 2

Post » Sat May 26, 2012 9:36 pm

Another noobish question :(, because I know so little about animation. But how do I make the Player play certain IdleAnimation while mounted? It took me a couple days to make a new animation, but I just can't make it to work on horse's back. Do I need to alter the pair_horseEnter.hkx in some way? :(
User avatar
Nitol Ahmed
 
Posts: 3321
Joined: Thu May 03, 2007 7:35 am

Post » Sat May 26, 2012 9:53 pm

This may be a noobish question, but I'm wondering where the 'movement' of animations is stored. When I import an animation the actor performs the animation, but doesn't move along the y axis like he should. This is true for all animations (running, attacking etc). In Oblivion there was the bip01 node for movement, is there something similar for hkx anims? Or is this stored in the behavior files as well?
This seems to be different as in Oblivion.

There is no movement stored in the animations. But there seems also no specific movement data defined for the different walks in the behaviors. Except of a "PlayBackSpeed", which is 0.1 for WalkSlow, 1.0 for Walk, and 10.0 for WalkFast. What I also can see are some variables defined in 0_master. Like "Speedwalk" = 1118103680, "Speedrun" = 1135574647, "fSpeedMin" = 1084227584 (don't know how to interpret these values), and several speed multiplier.

So I believe that all movement animations are calculated based on these values, and the player's stats. And these calculations have to be done in the engine.

What I start to believe is, that a lot is "hard-coded" in the engine. When I browsed throught the Havok documentation some months ago, I remember them describe how easily HBT can be integrated into Visual Studio, and how some part of the behavior can be implemented with C++. And I think that's just what Beth did. And these C++ stubs we will never see ... :confused:
User avatar
Klaire
 
Posts: 3405
Joined: Wed Sep 27, 2006 7:56 am

Post » Sun May 27, 2012 2:14 am

Another noobish question :(, because I know so little about animation. But how do I make the Player play certain IdleAnimation while mounted? It took me a couple days to make a new animation, but I just can't make it to work on horse's back. Do I need to alter the pair_horseEnter.hkx in some way? :(
How did you make these idles? Did you change existing idles?

Doesn't sound like. Because if you want new idles, you have to do the same I did for http://skyrim.nexusmods.com/downloads/file.php?id=11811, modify the behavior files. And that's not a noob task :smile:

If you just want to replace existing riding animations, then I believe you will also have problems. I suspect that horse_rider animations are paired animations (the differ from the same name horse animations), and as far as I know, hkxcmd doesn't know how do deal with those.
User avatar
Allison Sizemore
 
Posts: 3492
Joined: Wed Jul 19, 2006 6:09 am

Post » Sun May 27, 2012 3:57 am

This seems to be different as in Oblivion.

There is no movement stored in the animations. But there seems also no specific movement data defined for the different walks in the behaviors. Except of a "PlayBackSpeed", which is 0.1 for WalkSlow, 1.0 for Walk, and 10.0 for WalkFast. What I also can see are some variables defined in 0_master. Like "Speedwalk" = 1118103680, "Speedrun" = 1135574647, "fSpeedMin" = 1084227584 (don't know how to interpret these values), and several speed multiplier.

So I believe that all movement animations are calculated based on these values, and the player's stats. And these calculations have to be done in the engine.

What I start to believe is, that a lot is "hard-coded" in the engine. When I browsed throught the Havok documentation some months ago, I remember them describe how easily HBT can be integrated into Visual Studio, and how some part of the behavior can be implemented with C++. And I think that's just what Beth did. And these C++ stubs we will never see ... :confused:

But how does it work for attack animations for example? Every creature has different animations with different movement. The troll forward power attack for example makes him slowly walk two steps forward after a short delay, while the sabre cat jumps quickly over a large distance. The giant stops completely. And so on. This is definitely not related to the speedmult or movement settings in the CK as the attack animations always have the same movement speed, no matter what the speedmult or movement settings are set to. It just has to be set per animation and I can hardly believe that they have hardcoded settings for all the attack animations of creatures in the engine. That would also mean custom creatures (with custom anims) would never be possible and I think I've already seen some custom fishes made by SaidenStorm.
User avatar
Danger Mouse
 
Posts: 3393
Joined: Sat Oct 07, 2006 9:55 am

Post » Sat May 26, 2012 10:15 pm

Phitt, I can only talk about things I have looked into, and combat animations are not part of it.

Walk animations I have checked, and I cannot find any sign of animation specific movement data. Neither in animation, nor in behavior. Why should it be different for unsheathed and combat?

I've made a test and copied NPC_applaud3.hkx over mt_walkforward.hkx. What happened? My character applauded while moving in walking speed. Which proves that movement is not part of the (walk) animation. Why should it be different in attackforwardpower? I suggest you make this replacement test, and I'm sure what you will see. So the question is, where is it hidden? I'm only saying I didn't find it in the behaviors. Then the only place left would be the engine. But maybe I'm wrong. I hope so.

And about Saiden's fishes. In a previos post he said he had copied the non-combat animations. I hope he will clarify, but I'm sue that with his copy he also copied event and/or state machine.
User avatar
Rebecca Dosch
 
Posts: 3453
Joined: Thu Jan 18, 2007 6:39 pm

Post » Sat May 26, 2012 11:49 pm

Phitt, I can only talk about things I have looked into, and combat animations are not part of it.

Walk animations I have checked, and I cannot find any sign of animation specific movement data. Neither in animation, nor in behavior. Why should it be different for unsheathed and combat?

I've made a test and copied NPC_applaud3.hkx over mt_walkforward.hkx. What happened? My character applauded while moving in walking speed. Which proves that movement is not part of the (walk) animation. Why should it be different in attackforwardpower? I suggest you make this replacement test, and I'm sure what you will see. So the question is, where is it hidden? I'm only saying I didn't find it in the behaviors. Then the only place left would be the engine. But maybe I'm wrong. I hope so.

And about Saiden's fishes. In a previos post he said he had copied the non-combat animations. I hope he will clarify, but I'm sue that with his copy he also copied event and/or state machine.

Hmmm...that sounds pretty bad. Didn't want to say you're wrong, just couldn't believe it because it's so restricting. So there is no way to change the movement speed in an attack animation then? We're stuck with the game animations and there is no way to change that? That is really, really bad.
User avatar
Justin
 
Posts: 3409
Joined: Sun Sep 23, 2007 12:32 am

Post » Sun May 27, 2012 3:02 am

Hmmm...that sounds pretty bad. Didn't want to say you're wrong, just couldn't believe it because it's so restricting. So there is no way to change the movement speed in an attack animation then? We're stuck with the game animations and there is no way to change that? That is really, really bad.
But there is always hope. :smile:

First, only few combat animations use movement. Second, you probably can make a (small) move forward. I guess you just have to get back as part of the same animation. And third, let's find out what's really triggering the forward move. Event, state, statemachine, ..? And then we might be able to use at least the motion of another animation.
User avatar
Agnieszka Bak
 
Posts: 3540
Joined: Fri Jun 16, 2006 4:15 pm

Post » Sun May 27, 2012 6:54 am

How did you make these idles? Did you change existing idles?

Doesn't sound like. Because if you want new idles, you have to do the same I did for http://skyrim.nexusmods.com/downloads/file.php?id=11811, modify the behavior files. And that's not a noob task :smile:

If you just want to replace existing riding animations, then I believe you will also have problems. I suspect that horse_rider animations are paired animations (the differ from the same name horse animations), and as far as I know, hkxcmd doesn't know how do deal with those.

I did not change the existing idle, as you previously said, there is no way to exportkf the pair animation yet. I created a new one.
By taking a look at the converted-xml of the behaviours file, (in my case, its horsebehavior.xml, right?) I can mostly understand the flow of the behavior, enable certain event, while disabling other event.

So, in order to make my new animation works while mounted, other than modifying the behavior file, what do I need to change in my animation to make it sync with the previous HorseEnter Idle?

XML I can understand since I'm a programmer, but Animation, well, I'm a total noob
User avatar
JD bernal
 
Posts: 3450
Joined: Sun Sep 02, 2007 8:10 am

Post » Sat May 26, 2012 9:21 pm

I did not change the existing idle, as you previously said, there is no way to exportkf the pair animation yet. I created a new one.
By taking a look at the converted-xml of the behaviours file, (in my case, its horsebehavior.xml, right?) I can mostly understand the flow of the behavior, enable certain event, while disabling other event.

So, in order to make my new animation works while mounted, other than modifying the behavior file, what do I need to change in my animation to make it sync with the previous HorseEnter Idle?

XML I can understand since I'm a programmer, but Animation, well, I'm a total noob
I have no idea about paired animations. There is a Saiden post earlier in this thread, about the setup of a paired skeleton. Did you follow that? Others then that I don't think you can do much wrong that you don't see any reaction. At least distortions or so.

So it's probably still part of the behavior. But you didn't explain enough to understand where the problem could be. Just 2 things. There are 2 different horsebehavior.hkx. I hope, you are talking about the one in character/behavior/horse-rider? And then you are talking about a new animation (NOT replacing an existing one?). Because then you have to add the new file names in the characters/defaultmale.hkx and characters female/defaultfemale.hkx. Also you need to define the new event, and place the resulting ID in an hkbStateMachineTransitionInfoArray. Did you do that?

Download the xml's I have uploaded with FNIS. The principals will probably also apply in your case.
User avatar
Kate Murrell
 
Posts: 3537
Joined: Mon Oct 16, 2006 4:02 am

Post » Sun May 27, 2012 12:34 am

But there is always hope. :smile:

First, only few combat animations use movement. Second, you probably can make a (small) move forward. I guess you just have to get back as part of the same animation. And third, let's find out what's really triggering the forward move. Event, state, statemachine, ..? And then we might be able to use at least the motion of another animation.

The problem is I'm trying to add movement to the attack animations. Skyrim has weird attack animations which make it impossible for almost all enemies to hit the player while he is running (not even sprinting). The same problem existed in Oblivion and I made a mod for it:

http://www.youtube.com/watch?v=0wK9dc_O3pM

In Oblivion I changed bone priorities so the bip01 and leg bones in the attack anims would have a lower priority than the same bones in the movement anims. In some cases where this would lead to weird results due to the animation (like a bear standing on two legs during the attack etc) I simply adjusted the animations so the creature would slightly move their legs/jump whatever while attacking.

This isn't quite as ridiculous in Skyrim as it was in Oblivion (like shown in the video), when you walk enemies do hit you at least - even when running backwards you get hit most of the time. But while running forward you never get hit, so for gameplay the effect is the same. It makes the game a joke for mage type characters. I'm currently playing as one and I simply couldn't find a way to balance the gameplay since I never get hit by melee enemies (with the exception of sabre cats and wolves, both of which have appropriate attack anims) so I don't know how much damage enemies deal to my character :/.

The step forward and backward as part of the same anim sounds like an ok workaround (as long as the bounding box moves with the model), but it will hardly work for all anims and it means a lot of work since most anims would need to be changed completely.

I really hope you guys can figure out a way to allow changing the attack anims, it's one of the most needed modifications to gameplay for me.
User avatar
casey macmillan
 
Posts: 3474
Joined: Fri Feb 09, 2007 7:37 pm

Post » Sat May 26, 2012 6:07 pm

I have no idea about paired animations. There is a Saiden post earlier in this thread, about the setup of a paired skeleton. Did you follow that? Others then that I don't think you can do much wrong that you don't see any reaction. At least distortions or so.

So it's probably still part of the behavior. But you didn't explain enough to understand where the problem could be. Just 2 things. There are 2 different horsebehavior.hkx. I hope, you are talking about the one in character/behavior/horse-rider? And then you are talking about a new animation (NOT replacing an existing one?). Because then you have to add the new file names in the characters/defaultmale.hkx and characters female/defaultfemale.hkx. Also you need to define the new event, and place the resulting ID in an hkbStateMachineTransitionInfoArray. Did you do that?

Download the xml's I have uploaded with FNIS. The principals will probably also apply in your case.

Ya, I followed up Saiden's post on pair animation in previous thread. But that hkx file is for actor-actor only. I was hoping it is actor-creature :( Maybe the man himself could explain more on sync animation. In game, the player's HorseEnter anim event works independently to the horse's animation, so I was thinking that altering the upper bones of the player while mounted could produce some Idle-based combat animation. This leads to trying to alter the behavior file of the HorseEnter event, make it accept subsequent calls on new Idle animations

Right now, I'm trying to alter the horsebehavior.hkx file, hoping it could works somehow. The one im looking at is at actors\character\behaviors\horsebehavior.hkx, not in actors\horse\behaviors\horsebehavior.hkx. I have yet to add new event type but replace the old event and point it to my newly created animation like this:

Animations\MountEnter.hkx

(which didn't work :( )

*NOTE: MountEnter.hkx is the new anim I created.
User avatar
Lauren Graves
 
Posts: 3343
Joined: Fri Aug 04, 2006 6:03 pm

Post » Sat May 26, 2012 10:34 pm

This may be a noobish question, but I'm wondering where the 'movement' of animations is stored. When I import an animation the actor performs the animation, but doesn't move along the y axis like he should. This is true for all animations (running, attacking etc). In Oblivion there was the bip01 node for movement, is there something similar for hkx anims? Or is this stored in the behavior files as well?

Attack anim movement ~MUST~ be stored in the Behavior Files through Modifiers, I do not have the exact hierarchy for them as yet, but they are absolutely not stored in the animations, although there is a Behavior way to accum movement into the animation through "hkaAnimatedReferencedFrame" nodes and Beth themselves used this in a few of their anims instead of doing it in the Behavior Graphs.

But how does it work for attack animations for example? Every creature has different animations with different movement. The troll forward power attack for example makes him slowly walk two steps forward after a short delay, while the sabre cat jumps quickly over a large distance. The giant stops completely. And so on. This is definitely not related to the speedmult or movement settings in the CK as the attack animations always have the same movement speed, no matter what the speedmult or movement settings are set to. It just has to be set per animation and I can hardly believe that they have hardcoded settings for all the attack animations of creatures in the engine. That would also mean custom creatures (with custom anims) would never be possible and I think I've already seen some custom fishes made by SaidenStorm.

Yeah, I had to make sure my animations mimiced what the behavior graph called for -> if your interested in the attack movement data go to the CK -> Race -> Attack Data -> Display Event Data, and this will tell you the exact translation offsets defined in the behavior files for each attack, it will also tell you exactly what Weapon Type and hit frame are defined.

Ya, I followed up Saiden's post on pair animation in previous thread. But that hkx file is for actor-actor only. I was hoping it is actor-creature :( Maybe the man himself could explain more on sync animation. In game, the player's HorseEnter anim event works independently to the horse's animation, so I was thinking that altering the upper bones of the player while mounted could produce some Idle-based combat animation. This leads to trying to alter the behavior file of the HorseEnter event, make it accept subsequent calls on new Idle animations

Right now, I'm trying to alter the horsebehavior.hkx file, hoping it could works somehow. The one im looking at is at actors\character\behaviors\horsebehavior.hkx, not in actors\horse\behaviors\horsebehavior.hkx. I have yet to add new event type but replace the old event and point it to my newly created animation like this:

Animations\MountEnter.hkx

(which didn't work :( )

*NOTE: MountEnter.hkx is the new anim I created.

Horses do not work as a Paired Actor to the Character Actor their animations are completely separate and just synced the Character gets attached with the SetVehicle() function as for the mount anims played on the character I can only imagine they are conditioned to play while riding as they are not conditioned within the CK so that has to reside in the Graph somewhere I have yet to take the time to look.
User avatar
OnlyDumazzapplyhere
 
Posts: 3445
Joined: Wed Jan 24, 2007 12:43 am

Post » Sun May 27, 2012 12:44 am

Horses do not work as a Paired Actor to the Character Actor their animations are completely separate and just synced the Character gets attached with the SetVehicle() function as for the mount anims played on the character I can only imagine they are conditioned to play while riding as they are not conditioned within the CK so that has to reside in the Graph somewhere I have yet to take the time to look.

I looked at the folder actors\character\animations\horse_rider, where mounted combat animation Bethesda intended to work on. I tried couple of them like attack1 in 3ds max and it looks like a pair animation (since it doesn't use the default skeleton.nif). I could be wrong thou, since Im newbie to animation :P
On top of that, I don't have any success with the setvehicle() function. In the sample script I see it was used in conjunction with PlayIdle. I tried several Idle like 'IdleTableEnterPlayer' & setVehicle(myhorse), but the damn horse always leaves me behind.....
User avatar
Rude Gurl
 
Posts: 3425
Joined: Wed Aug 08, 2007 9:17 am

Post » Sun May 27, 2012 5:24 am

But how does it work for attack animations for example? Every creature has different animations with different movement. The troll forward power attack for example makes him slowly walk two steps forward after a short delay, while the sabre cat jumps quickly over a large distance.
Things slowly unveil. I was looking into these troll attacks, and it appears that these attacks are combined animations.

There is a H2HAttackRightForwardPower, with a starttime 0.00, and a H2HAttackRightForwardPower_outro, with starting time 1.1333. I didn't follow through yet, how these things are combined, because it's really hard to follow. (does anyone know of a good XML Tree Viewr???). But these different starting times seem obvious.
Attack anim movement ~MUST~ be stored in the Behavior Files through Modifiers, I do not have the exact hierarchy for them as yet, but they are absolutely not stored in the animations, although there is a Behavior way to accum movement into the animation through "hkaAnimatedReferencedFrame" nodes and Beth themselves used this in a few of their anims instead of doing it in the Behavior Graphs.
Where did you find "hkaAnimatedReferencedFrame"? I checked in all relevant behavior files and couldn't find one. Are you using packed XML, or agged XML


Yeah, I had to make sure my animations mimiced what the behavior graph called for -> if your interested in the attack movement data go to the CK -> Race -> Attack Data -> Display Event Data, and this will tell you the exact translation offsets defined in the behavior files for each attack, it will also tell you exactly what Weapon Type and hit frame are defined.
This display Event Data has slipped through my observation before. Very interesting. But doesn't explain it all.

This animation translation really seems to be a factorized forward move transformation. The question is: where is it stored??? Because trollbehavior is much smaller and easier to comprehend, I was trying to figure out any relationship between this H2HAttackRightForwardPower, ans it's Animation Translation "216.00 (-2,216,0)". I can't find any record, which resembles anything like transformation, and especially this number "216" is nowwhere to be found.

The Hitframe is clear. That's an event, stored as annotation in the animation. Actually there are 2 of them in the hkx. I just cannot check where they are, as long as they are ignored in the hkxcmd conversion. Or is it possible with this AssetCC tool?

There are also 5 "FootBack" annotations. Can they have something to to with transformation data?
User avatar
Bryanna Vacchiano
 
Posts: 3425
Joined: Wed Jan 31, 2007 9:54 pm

Post » Sat May 26, 2012 8:13 pm

@umpa, basically my tool requires very rigid requirements around the number of bones in the skeleton vs the number of bones listed in the animation. You get that error if you exceed the number of bones. I think you probably have something like cameras or extra bones in the skeleton and my tool is rejecting it. Could be something like a camera angle as well. Without the file I couldn't help and then not sure i have time. Really amazing work in getting that converted though. Some instances of gimbal lock in the arms but nothing too terrible. The fact that you got hands and fingers working well is also quite a feat.

I think also. Because when use your tool dimension of kf become smaller. Problem I can't convert in kf animation with a lot of frames
I don't know the error for arms . I think in some transfer error from http://casualmods.net/index.php/home/tes-5-skyrim/tantsevalnaya-animatsiya method.

Another question:

I'm not sure at 100% (Maybe a my error) but with your 3dsmax nif plugin broke animation exporter for Oblivion

With niftools-max-plugins-3.5.5.4728.exe animation export is ok with your the KF is only 1 kb

(I add key Note start - end in Bip01)
User avatar
Tamara Primo
 
Posts: 3483
Joined: Fri Jul 28, 2006 7:15 am

Post » Sat May 26, 2012 5:40 pm

I didn't follow through yet, how these things are combined, because it's really hard to follow. (does anyone know of a good XML Tree Viewr???).

Maybe this will be useful to you - http://www.mindfusion.eu/product1.html.
Here's http://i41.tinypic.com/fp8l7m.jpg with open hkx file.
User avatar
Syaza Ramali
 
Posts: 3466
Joined: Wed Jan 24, 2007 10:46 am

Post » Sat May 26, 2012 6:05 pm

There is also http://xmlnotepad.codeplex.com/ which is free and removes the xml syntax and includes a marginal diff tool. Of course there is the classic answer of Altova XML Spy but I'm guessing you dont want to spend hundreds of dollars on a tool.

@umpa, are you using 3.7.3? Also the niftools team (throttlekitty mostly) have been making a lot of changes in the nif.xml file which ends up translating to mysterious breakage in niflib. Which is why oblivion may not be exporting well. If you have KF problems it could be something with that, I couldn't say. I'm not making significant code changes other than around the shader export. I get no rewards for updating the exporter and its more pain to deal with than not so I give it my best effort with what time I can devote which isn't much.
User avatar
Rude_Bitch_420
 
Posts: 3429
Joined: Wed Aug 08, 2007 2:26 pm

Post » Sun May 27, 2012 7:48 am


@umpa, are you using 3.7.3? Also the niftools team (throttlekitty mostly) have been making a lot of changes in the nif.xml file which ends up translating to mysterious breakage in niflib. Which is why oblivion may not be exporting well. If you have KF problems it could be something with that, I couldn't say. I'm not making significant code changes other than around the shader export. I get no rewards for updating the exporter and its more pain to deal with than not so I give it my best effort with what time I can devote which isn't much.

Ok No problem.
I think I have old version. I try again I think in some my error.

When I use for Oblivion I change version.
User avatar
Lily Evans
 
Posts: 3401
Joined: Thu Aug 31, 2006 11:10 am

Post » Sat May 26, 2012 8:08 pm

I don't know the error for arms . I think in some transfer error from http://casualmods.net/index.php/home/tes-5-skyrim/tantsevalnaya-animatsiya method.
This arm error (gimbal lock) is probably caused by the interpolation algorithms, which seems to be very similar in Blender, 3DS, Onblivion, and Skyrim. Mostly if some rotations get close to the 180° barrier. You have to manually interpolate, and set keys in between until it doesn't appear anymore.

In Blender sometimes until every frame has a key, in 3DS even more. For my Skyrim Breathing Idles I even had to set a key in the middle between 2 adjecent frames. Because in 3DS (and Skyrim?) the atomic unit is ticks (1 frame = 160 ticks), and this interpolation apparantly even goes to that level. But I never had to make more than 1 key between 2 adjacent frames.

Maybe this will be useful to you - http://www.mindfusion.eu/product1.html.
There is also http://xmlnotepad.codeplex.com/ which is free and removes the xml syntax and includes a marginal diff tool.
Thanks for the links. I tried both tools, but unfortunately they don't seem to be great help. First they cannot handle large files very well. My customized mt_behavior.xml is a pain with both. Waiting all the time. In XML Notepad I can't even increase the window size with the file loaded. And then I hade expected some link support between the definition and reference ot the constructs. Missing in both. So for me it seems easier to work with NotePad++. Any other experiences?

I had rather hoped for a tool like the Skyrim Script Dumper.
User avatar
Milagros Osorio
 
Posts: 3426
Joined: Fri Aug 25, 2006 4:33 pm

Post » Sun May 27, 2012 4:17 am

Gimbal lock would normally only happen if the animation uses XYZ-controllers rather than Quaternion's as its one reason Quaternions are used. The 3dsmax exporter will export exactly (or as close as possible) to what is stored in max. If its ok in max then my guess is that its the interpolation routines in niflib assuming that XYZ-controllers are used. My hkxcmd will run the animation through the sampler provided by niflib to get a transform at each frame which it will then allow havok to compress.

Best advice to work around it assuming max plays the animation correctly is to convert the rotation controllers to the Quaternion based controllers and/or explicitly export every single frame of animation. The former helps avoid Euler coordinate issues and the later avoid interpolation issues. The every single frame will probably create a big file as well take longer to export and convert but will likely produce best results. Also Smooth Rotation Controller is better than TCB Rotation Controller for export as it is simpler and I'm sure niflib cannot handle all of the TCB settings (though its not as good in general use, IMHO).

Edit: or just follow fore's advice and create sufficient frames around the problem area.
User avatar
Racheal Robertson
 
Posts: 3370
Joined: Thu Aug 16, 2007 6:03 pm

Post » Sun May 27, 2012 7:04 am

Where did you find "hkaAnimatedReferencedFrame"? I checked in all relevant behavior files and couldn't find one. Are you using packed XML, or agged XML

neither -> this node resides in a few of the animations.

This display Event Data has slipped through my observation before. Very interesting. But doesn't explain it all.

This animation translation really seems to be a factorized forward move transformation. The question is: where is it stored??? Because trollbehavior is much smaller and easier to comprehend, I was trying to figure out any relationship between this H2HAttackRightForwardPower, ans it's Animation Translation "216.00 (-2,216,0)". I can't find any record, which resembles anything like transformation, and especially this number "216" is nowwhere to be found.

The Hitframe is clear. That's an event, stored as annotation in the animation. Actually there are 2 of them in the hkx. I just cannot check where they are, as long as they are ignored in the hkxcmd conversion. Or is it possible with this AssetCC tool?

I do not use either, I can not stand doing anything in XML.
User avatar
Rowena
 
Posts: 3471
Joined: Sun Nov 05, 2006 11:40 am

Post » Sat May 26, 2012 10:03 pm

Where did you find "hkaAnimatedReferencedFrame"? I checked in all relevant behavior files and couldn't find one. Are you using packed XML, or agged XML
neither -> this node resides in a few of the animations.
Sure. hka is animation, not behavior. But I looked into that, and found a few interesting things. This "hkaDefaultAnimatedReferenceFrame" (that's probably what you meant, cause there is no other class name coming close) is exclusively used for dragon start/takeoff (plus a few specials I can't identify, like special_talongrabexitvert).

The following example is from mttakeoff45:

Spoiler

           (0.000000 0.000000 1.000000 0.000000)   (0.000000 1.000000 0.000000 0.000000)   5.000000   	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 -0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 -0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 -0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 -0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 20.078472 20.078474 0.000000)	(0.000000 40.156872 40.156879 0.000000)	(0.000000 60.235336 60.235344 0.000000)	(0.000000 80.313751 80.313751 0.000000)	(0.000000 100.392212 100.392227 0.000000)	(0.000000 120.470657 120.470657 0.000000)	(0.000000 140.549072 140.549088 0.000000)	(0.000000 160.627533 160.627563 0.000000)	(0.000000 180.705948 180.705963 0.000000)	(0.000000 200.784393 200.784424 0.000000)	(0.000000 220.862762 220.862808 0.000000)	(0.000000 240.941238 240.941238 0.000000)	(0.000000 261.019714 261.019714 0.000000)	(0.000000 281.098114 281.098145 0.000000)	(0.000000 301.176514 301.176575 0.000000)	(0.000000 321.255066 321.255127 0.000000)	(0.000000 341.333405 341.333496 0.000000)	(0.000000 361.411865 361.411865 0.000000)	(0.000000 381.490234 381.490295 0.000000)	(0.000000 401.568787 401.568848 0.000000)	(0.000000 421.647186 421.647217 0.000000)	(0.000000 441.725586 441.725647 0.000000)	(0.000000 461.804047 461.804138 0.000000)	(0.000000 481.882599 481.882568 0.000000)	(0.000000 501.960846 501.960938 0.000000)	(0.000000 522.039307 522.039368 0.000000)	(0.000000 542.117859 542.117859 0.000000)	(0.000000 562.196289 562.196289 0.000000)	(0.000000 582.274658 582.274658 0.000000)	(0.000000 602.353088 602.353149 0.000000)	(0.000000 622.431580 622.431580 0.000000)	(0.000000 642.510010 642.510071 0.000000)	(0.000000 662.588318 662.588318 0.000000)	(0.000000 682.666870 682.666870 0.000000)	(0.000000 702.745300 702.745300 0.000000)	(0.000000 722.823730 722.823792 0.000000)	(0.000000 742.902161 742.902161 0.000000)	(0.000000 762.980591 762.980591 0.000000)	(0.000000 783.059021 783.059143 0.000000)	(0.000000 803.137451 803.137573 0.000000)	(0.000000 823.215942 823.216003 0.000000)	(0.000000 843.294189 843.294250 0.000000)	(0.000000 863.372803 863.372864 0.000000)	(0.000000 883.451294 883.451294 0.000000)	(0.000000 903.529724 903.529785 0.000000)	(0.000000 923.607971 923.608032 0.000000)	(0.000000 943.686462 943.686523 0.000000)	(0.000000 963.764954 963.764954 0.000000)	(0.000000 983.843323 983.843323 0.000000)	(0.000000 1003.921814 1003.921875 0.000000)	(0.000000 1024.000244 1024.000366 0.000000)	(0.000000 1044.078857 1044.078979 0.000000)	(0.000000 1064.156982 1064.157104 0.000000)	(0.000000 1084.235352 1084.235596 0.000000)	(0.000000 1104.313721 1104.313965 0.000000)	(0.000000 1124.392334 1124.392456 0.000000)	(0.000000 1144.470825 1144.470947 0.000000)	(0.000000 1164.549316 1164.549438 0.000000)	(0.000000 1184.627686 1184.627808 0.000000)	(0.000000 1204.706299 1204.706421 0.000000)	(0.000000 1224.784424 1224.784668 0.000000)	(0.000000 1244.862915 1244.863159 0.000000)	(0.000000 1264.941284 1264.941528 0.000000)	(0.000000 1285.020020 1285.020264 0.000000)	(0.000000 1305.098267 1305.098511 0.000000)	(0.000000 1325.176758 1325.176880 0.000000)	(0.000000 1345.255127 1345.255249 0.000000)	(0.000000 1365.333496 1365.333740 0.000000)	(0.000000 1385.411865 1385.412109 0.000000)	(0.000000 1405.490356 1405.490479 0.000000)	(0.000000 1425.568970 1425.569092 0.000000)	(0.000000 1445.647461 1445.647705 0.000000)	(0.000000 1465.725952 1465.725952 0.000000)	(0.000000 1485.804321 1485.804565 0.000000)	(0.000000 1505.882568 1505.882813 0.000000)	(0.000000 1525.960938 1525.961182 0.000000)	(0.000000 1546.039551 1546.039673 0.000000)	(0.000000 1566.117798 1566.118042 0.000000)	(0.000000 1586.196411 1586.196655 0.000000)	(0.000000 1606.275024 1606.275146 0.000000)	(0.000000 1626.353149 1626.353394 0.000000)	(0.000000 1646.431641 1646.431763 0.000000)	(0.000000 1666.510010 1666.510132 0.000000)	(0.000000 1686.588379 1686.588623 0.000000)	(0.000000 1706.666748 1706.666992 0.000000)	(0.000000 1726.745483 1726.745728 0.000000)	(0.000000 1746.823853 1746.823975 0.000000)	(0.000000 1766.902344 1766.902588 0.000000)	(0.000000 1786.980591 1786.980835 0.000000)	(0.000000 1807.059204 1807.059448 0.000000)	(0.000000 1827.137451 1827.137695 0.000000)	(0.000000 1847.215820 1847.216064 0.000000)	(0.000000 1867.294556 1867.294678 0.000000)	(0.000000 1887.372925 1887.373169 0.000000)	(0.000000 1907.451294 1907.451538 0.000000)	(0.000000 1927.529907 1927.530151 0.000000)	(0.000000 1947.608154 1947.608398 0.000000)	(0.000000 1967.686523 1967.686768 0.000000)	(0.000000 1987.764893 1987.765137 0.000000)	(0.000000 2007.843506 2007.843750 0.000000)	(0.000000 2027.921875 2027.922119 0.000000)	(0.000000 2048.000244 2048.000488 0.000000)	(0.000000 2116.267822 2048.000000 0.000000)	(0.000000 2184.534668 2048.000488 0.000000)	(0.000000 2252.801025 2048.000488 0.000000)	(0.000000 2321.067383 2048.000488 0.000000)	(0.000000 2389.333740 2048.000244 0.000000)	(0.000000 2457.601074 2048.000732 0.000000)	(0.000000 2525.867432 2048.000488 0.000000)	(0.000000 2594.134033 2048.000732 0.000000)	(0.000000 2662.400391 2048.000488 0.000000)	(0.000000 2730.666504 2048.000244 0.000000)	(0.000000 2798.933350 2048.000244 0.000000)	(0.000000 2867.200439 2048.000488 0.000000)	(0.000000 2935.467041 2048.000488 0.000000)	(0.000000 3003.733398 2048.000244 0.000000)	(0.000000 3072.000244 2048.000488 0.000000)	(0.000000 3140.268311 2048.000488 0.000000)	(0.000000 3208.534668 2048.000488 0.000000)	(0.000000 3276.801270 2048.000488 0.000000)	(0.000000 3345.067627 2048.000244 0.000000)	(0.000000 3413.334961 2048.000488 0.000000)	(0.000000 3481.601318 2048.000244 0.000000)	(0.000000 3549.866699 2048.000244 0.000000)	(0.000000 3618.133545 2048.000244 0.000000)	(0.000000 3686.400146 2048.000488 0.000000)	(0.000000 3754.666748 2048.000488 0.000000)	(0.000000 3822.933838 2048.000488 0.000000)	(0.000000 3891.199951 2048.000488 0.000000)	(0.000000 3959.466797 2048.000488 0.000000)	(0.000000 4027.733398 2048.000244 0.000000)	(0.000000 4096.000488 2048.000488 0.000000)     

Despit the definition for "up" and "forward" in the top, all animations except 1 have values in column 2. col 2 has to be the "up" movement (z move). One animations (mttakeoff_towerattack) has negative values in col 2, so this is another indication that this is the up move

All aminations with "vert"/"vertical"/"45" in there names haved values in 3rd column, while non-vertical starts are all 0. col 3 has to be the "side" movement (y move).

Only 1 animations has the 4th colums defined: mttakeoff_towerattack. Although these values are very small (max 3.1) these valuescould be rotation. col 4 could be rotation (z rot).

And then there is column 1 left. And that is ALWAYS 0. col 1 (all 0!) has to be the "forward" movement (x move). But dragons don't go up straight (as the "vertical" toakeoffs imply). So where is this forward movement? When Beth defines this "hkaDefaultAnimatedReferenceFrame" in behavior, forward movement MUST be there to.

I'm getting crazy. I'm looking for that now for hours, and I can't find it.
User avatar
kelly thomson
 
Posts: 3380
Joined: Thu Jun 22, 2006 12:18 pm

Post » Sat May 26, 2012 9:24 pm

Sure. hka is animation, not behavior. But I looked into that, and found a few interesting things. This "hkaDefaultAnimatedReferenceFrame" (that's probably what you meant, cause there is no other class name coming close) is exclusively used for dragon start/takeoff (plus a few specials I can't identify, like special_talongrabexitvert).

The following example is from mttakeoff45:

Spoiler

           (0.000000 0.000000 1.000000 0.000000)   (0.000000 1.000000 0.000000 0.000000)   5.000000   	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 -0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 -0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 -0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 -0.000000 0.000000 0.000000)	(0.000000 0.000000 0.000000 0.000000)	(0.000000 20.078472 20.078474 0.000000)	(0.000000 40.156872 40.156879 0.000000)	(0.000000 60.235336 60.235344 0.000000)	(0.000000 80.313751 80.313751 0.000000)	(0.000000 100.392212 100.392227 0.000000)	(0.000000 120.470657 120.470657 0.000000)	(0.000000 140.549072 140.549088 0.000000)	(0.000000 160.627533 160.627563 0.000000)	(0.000000 180.705948 180.705963 0.000000)	(0.000000 200.784393 200.784424 0.000000)	(0.000000 220.862762 220.862808 0.000000)	(0.000000 240.941238 240.941238 0.000000)	(0.000000 261.019714 261.019714 0.000000)	(0.000000 281.098114 281.098145 0.000000)	(0.000000 301.176514 301.176575 0.000000)	(0.000000 321.255066 321.255127 0.000000)	(0.000000 341.333405 341.333496 0.000000)	(0.000000 361.411865 361.411865 0.000000)	(0.000000 381.490234 381.490295 0.000000)	(0.000000 401.568787 401.568848 0.000000)	(0.000000 421.647186 421.647217 0.000000)	(0.000000 441.725586 441.725647 0.000000)	(0.000000 461.804047 461.804138 0.000000)	(0.000000 481.882599 481.882568 0.000000)	(0.000000 501.960846 501.960938 0.000000)	(0.000000 522.039307 522.039368 0.000000)	(0.000000 542.117859 542.117859 0.000000)	(0.000000 562.196289 562.196289 0.000000)	(0.000000 582.274658 582.274658 0.000000)	(0.000000 602.353088 602.353149 0.000000)	(0.000000 622.431580 622.431580 0.000000)	(0.000000 642.510010 642.510071 0.000000)	(0.000000 662.588318 662.588318 0.000000)	(0.000000 682.666870 682.666870 0.000000)	(0.000000 702.745300 702.745300 0.000000)	(0.000000 722.823730 722.823792 0.000000)	(0.000000 742.902161 742.902161 0.000000)	(0.000000 762.980591 762.980591 0.000000)	(0.000000 783.059021 783.059143 0.000000)	(0.000000 803.137451 803.137573 0.000000)	(0.000000 823.215942 823.216003 0.000000)	(0.000000 843.294189 843.294250 0.000000)	(0.000000 863.372803 863.372864 0.000000)	(0.000000 883.451294 883.451294 0.000000)	(0.000000 903.529724 903.529785 0.000000)	(0.000000 923.607971 923.608032 0.000000)	(0.000000 943.686462 943.686523 0.000000)	(0.000000 963.764954 963.764954 0.000000)	(0.000000 983.843323 983.843323 0.000000)	(0.000000 1003.921814 1003.921875 0.000000)	(0.000000 1024.000244 1024.000366 0.000000)	(0.000000 1044.078857 1044.078979 0.000000)	(0.000000 1064.156982 1064.157104 0.000000)	(0.000000 1084.235352 1084.235596 0.000000)	(0.000000 1104.313721 1104.313965 0.000000)	(0.000000 1124.392334 1124.392456 0.000000)	(0.000000 1144.470825 1144.470947 0.000000)	(0.000000 1164.549316 1164.549438 0.000000)	(0.000000 1184.627686 1184.627808 0.000000)	(0.000000 1204.706299 1204.706421 0.000000)	(0.000000 1224.784424 1224.784668 0.000000)	(0.000000 1244.862915 1244.863159 0.000000)	(0.000000 1264.941284 1264.941528 0.000000)	(0.000000 1285.020020 1285.020264 0.000000)	(0.000000 1305.098267 1305.098511 0.000000)	(0.000000 1325.176758 1325.176880 0.000000)	(0.000000 1345.255127 1345.255249 0.000000)	(0.000000 1365.333496 1365.333740 0.000000)	(0.000000 1385.411865 1385.412109 0.000000)	(0.000000 1405.490356 1405.490479 0.000000)	(0.000000 1425.568970 1425.569092 0.000000)	(0.000000 1445.647461 1445.647705 0.000000)	(0.000000 1465.725952 1465.725952 0.000000)	(0.000000 1485.804321 1485.804565 0.000000)	(0.000000 1505.882568 1505.882813 0.000000)	(0.000000 1525.960938 1525.961182 0.000000)	(0.000000 1546.039551 1546.039673 0.000000)	(0.000000 1566.117798 1566.118042 0.000000)	(0.000000 1586.196411 1586.196655 0.000000)	(0.000000 1606.275024 1606.275146 0.000000)	(0.000000 1626.353149 1626.353394 0.000000)	(0.000000 1646.431641 1646.431763 0.000000)	(0.000000 1666.510010 1666.510132 0.000000)	(0.000000 1686.588379 1686.588623 0.000000)	(0.000000 1706.666748 1706.666992 0.000000)	(0.000000 1726.745483 1726.745728 0.000000)	(0.000000 1746.823853 1746.823975 0.000000)	(0.000000 1766.902344 1766.902588 0.000000)	(0.000000 1786.980591 1786.980835 0.000000)	(0.000000 1807.059204 1807.059448 0.000000)	(0.000000 1827.137451 1827.137695 0.000000)	(0.000000 1847.215820 1847.216064 0.000000)	(0.000000 1867.294556 1867.294678 0.000000)	(0.000000 1887.372925 1887.373169 0.000000)	(0.000000 1907.451294 1907.451538 0.000000)	(0.000000 1927.529907 1927.530151 0.000000)	(0.000000 1947.608154 1947.608398 0.000000)	(0.000000 1967.686523 1967.686768 0.000000)	(0.000000 1987.764893 1987.765137 0.000000)	(0.000000 2007.843506 2007.843750 0.000000)	(0.000000 2027.921875 2027.922119 0.000000)	(0.000000 2048.000244 2048.000488 0.000000)	(0.000000 2116.267822 2048.000000 0.000000)	(0.000000 2184.534668 2048.000488 0.000000)	(0.000000 2252.801025 2048.000488 0.000000)	(0.000000 2321.067383 2048.000488 0.000000)	(0.000000 2389.333740 2048.000244 0.000000)	(0.000000 2457.601074 2048.000732 0.000000)	(0.000000 2525.867432 2048.000488 0.000000)	(0.000000 2594.134033 2048.000732 0.000000)	(0.000000 2662.400391 2048.000488 0.000000)	(0.000000 2730.666504 2048.000244 0.000000)	(0.000000 2798.933350 2048.000244 0.000000)	(0.000000 2867.200439 2048.000488 0.000000)	(0.000000 2935.467041 2048.000488 0.000000)	(0.000000 3003.733398 2048.000244 0.000000)	(0.000000 3072.000244 2048.000488 0.000000)	(0.000000 3140.268311 2048.000488 0.000000)	(0.000000 3208.534668 2048.000488 0.000000)	(0.000000 3276.801270 2048.000488 0.000000)	(0.000000 3345.067627 2048.000244 0.000000)	(0.000000 3413.334961 2048.000488 0.000000)	(0.000000 3481.601318 2048.000244 0.000000)	(0.000000 3549.866699 2048.000244 0.000000)	(0.000000 3618.133545 2048.000244 0.000000)	(0.000000 3686.400146 2048.000488 0.000000)	(0.000000 3754.666748 2048.000488 0.000000)	(0.000000 3822.933838 2048.000488 0.000000)	(0.000000 3891.199951 2048.000488 0.000000)	(0.000000 3959.466797 2048.000488 0.000000)	(0.000000 4027.733398 2048.000244 0.000000)	(0.000000 4096.000488 2048.000488 0.000000)     

Despit the definition for "up" and "forward" in the top, all animations except 1 have values in column 2. col 2 has to be the "up" movement (z move). One animations (mttakeoff_towerattack) has negative values in col 2, so this is another indication that this is the up move

All aminations with "vert"/"vertical"/"45" in there names haved values in 3rd column, while non-vertical starts are all 0. col 3 has to be the "side" movement (y move).

Only 1 animations has the 4th colums defined: mttakeoff_towerattack. Although these values are very small (max 3.1) these valuescould be rotation. col 4 could be rotation (z rot).

And then there is column 1 left. And that is ALWAYS 0. col 1 (all 0!) has to be the "forward" movement (x move). But dragons don't go up straight (as the "vertical" toakeoffs imply). So where is this forward movement? When Beth defines this "hkaDefaultAnimatedReferenceFrame" in behavior, forward movement MUST be there to.

I'm getting crazy. I'm looking for that now for hours, and I can't find it.

First "Y" is forward/backward and "X" is left/right and those anims show exactly what you would expect to see Z starting off at 0 and moving up to 2048 and Y starting 0 and moving forward to 4096, and the 4th value is for Turning around the "UP" axis -> "Z" axis.
User avatar
Rebecca Clare Smith
 
Posts: 3508
Joined: Fri Aug 04, 2006 4:13 pm

Post » Sun May 27, 2012 5:19 am

First "Y" is forward/backward and "X" is left/right and those anims show exactly what you would expect to see Z starting off at 0 and moving up to 2048 and Y starting 0 and moving forward to 4096, and the 4th value is for Turning around the "UP" axis -> "Z" axis.
You are right. I was always looking at 45° x/y, and not 45° x/z. So here is the forward move. But where is it on other animations?
User avatar
Cody Banks
 
Posts: 3393
Joined: Thu Nov 22, 2007 9:30 am

Post » Sun May 27, 2012 7:49 am

Hi all,
Sorry to interrupt your more advanced discussions, but I need a little help from you animations guru. I'm a noob when it comes to animations, and I've been following this thread almost from the beginning of its creation trying to learn a bit about anims in general. As a noob, it goes without saying that most of what you guys are talking about is beyond me, but I decided to try doing some animations modding anyway.

Well it turns out that I may be dumber than I thought, cause what seems to be a simple process apparently still eludes me. I was trying to modify a simple existing animations, namely the jump animation. I did my modification and got a result that I was more or less satisfied with. Now here's the problem, following the examples detailed by Hologram in the beginning of the thread, I tried to export my modified animation ( as single kf without nif), the strange thing is, while the export process itself didn't indicate any error, the resulting animation didn't work (when imported to 3ds max for testing, and even after conversion to hkx in Nifskope). I instantly knew something was wrong cause the file size of the exported kf was only 1kb.

I don't know exactly where in the export process I made my mistake, but if this problem seems familiar to some of you, and if you should know how/why it happened, would you mind helping me shed some light on it? This should be child's play for all of you advanced users, but it would mean a lot for me to be able to get startted. Oh, and heaven smiles upon those who help his fellow man in need :biggrin: Thanks..

Edit: Sorry, forgot to mention I use 3ds max 2012 64 bit, with Max niftools 3.7.1 (I think..)
User avatar
Sheila Reyes
 
Posts: 3386
Joined: Thu Dec 28, 2006 7:40 am

PreviousNext

Return to V - Skyrim