to help out a bit ... here's a picture of the thing in animerge:
![]()
to help out a bit ... here's a picture of the thing in animerge:
![]()
Careless Orc Costs Lives!
Excellent news!No, I don't think you missed anything. I may not
have set the exact scaling values I used to get them on the y=0
plane. Open up animationutilities.py in your favorite editor and search
for SCALEY. This should be at the top of the function exportskeleton.
I thought 0.64 put them on the plane, but try making this smaller,
save, then do the exportskeleton step again. Rather than copy the
files and run the game, just do an animmerge with like the walk animation
in convertedfiles and see how it looks. Might have to iterate just a
couple of times to nail it, but it shouldn't take too long.
When it looks good in Milkshape, then copy the cas files to your
dwarf animations directory, and, (silent prayer) they should look allright
in game.
Edit: Leaving from work, I'll check back when I get home.
Last edited by KnightErrant; 05-22-2007 at 22:30.
SCALEY was indeed set to 0.64. Tried changing it to 0.14 .... which should have a noticable difference. Ran the steps through, but the animerge file still showed the animation in EXACTLY the same place as before. Too high. I was expecting it to be wrong, but not the same. I will give it another shot with some different values in there tomorrow. Right now, it's 23:30 UK time, and I need to get some shut-eye! It's a 6am wakeup on work days.
Soon as I get in tomorrow, I'll do some more testing to see what I can change with different values in there. I'll post back to let you know how I get on.
I am running in 1.2 ( if that makes any difference, I don't know ) so this is valuable test data whether I succeed or fail here. Main thing is, the process steps all did pretty much what theywere expected to do. Just seems hung up on the y axis positioning.
Biggest worry for me was that the model seemed to end up stuck to the origin. I had exactly the same issue when I tried to scale animations......hope it's just coincidence. Will know more tomorrow.
Last edited by Bwian; 05-22-2007 at 23:42.
Careless Orc Costs Lives!
Hey Bwian, I am so embarrased.I just checked
and the scaling isn't even in the new stuff. Too late at night to help
you but give me a moment and I'll update the def and check it
and send you a new one. Software too fast is software with bugs.
Apologies,
KE
Proof of the pudding for rewriting all the Python code
into a library. Took all of 2 minutes to make the change
and check it. Here's the human skeleton's walk animation,
the one in MTW2_2H_Axe:
You can see the y-value is roughly 0.91 and the z-value moves theCode:0 bone_pelvis animation data and deltas +0.0000122126 +0.9590483308 -0.0000000000 +0.0017991858 +0.9512157440 +0.0901285559 +0.0026300352 +0.9396055937 +0.1802604198 +0.0000594494 +0.9203369617 +0.2704085112 -0.0063111591 +0.9033862948 +0.3605716527 -0.0137326801 +0.9005295038 +0.4507446289 -0.0189423133 +0.9042277336 +0.5409182310 -0.0211101491 +0.9193583131 +0.6310883760 -0.0210416745 +0.9396334291 +0.7212522626 -0.0201377589 +0.9517263174 +0.8114059567 -0.0226440672 +0.9510992169 +0.9015470743 -0.0249393098 +0.9356126189 +0.9916793704 -0.0272242893 +0.9162625670 +1.0818185806 -0.0254939552 +0.8969492912 +1.1719760895 -0.0179745089 +0.8883986473 +1.2621510029 -0.0077288523 +0.8950952291 +1.3523342609 -0.0011719284 +0.9107339382 +1.4425106049 +0.0010084946 +0.9343801737 +1.5326695442 +0.0000120707 +0.9590483308 +1.6228270531
human from 0.0 to 1.622 in 19 frames.
Here's the scaled dwarf anim for the same section
after I ACTUALLY DO THE SCALING!![]()
This should actually put the dwarf on the ground andCode:0 bone_pelvis animation data and deltas +0.0000084836 +0.6137909293 -0.0000000000 +0.0012498223 +0.6087780595 +0.0626087040 +0.0018269803 +0.6013475657 +0.1252197027 +0.0000412971 +0.5890156627 +0.1878419816 -0.0043841098 +0.5781672001 +0.2504746914 -0.0095395437 +0.5763388872 +0.3131142557 -0.0131584676 +0.5787057281 +0.3757542670 -0.0146643762 +0.5883893371 +0.4383918643 -0.0146168098 +0.6013653874 +0.5010250807 -0.0139888953 +0.6091048717 +0.5636512637 -0.0157299284 +0.6087034941 +0.6262686849 -0.0173243415 +0.5987920761 +0.6888799667 -0.0189116243 +0.5864080191 +0.7514960766 -0.0177096315 +0.5740475655 +0.8141248822 -0.0124861719 +0.5685751438 +0.8767657876 -0.0053689247 +0.5728609562 +0.9394125342 -0.0008140918 +0.5828697085 +1.0020544529 +0.0007005609 +0.5980033278 +1.0646842718 +0.0000083850 +0.6137909293 +1.1273130178
reduce his x and z traversals as he walks.
Am e-mailing an updated animationutilities.py to you.
I made a new interface for the scaling values at lunch.
It now pops up a three entry edit box to put in your
scaling values. For now just accept the default values
I put in there, they should be correct for the dwarf.
Hit the OK button and you should see file names scrolling
in the DOS box.
Again, apologies for my bad.
KE
Considering it was an Alpha, and worked faultlessly with me as a novice user...I think one little omission is pretty damn good! I am looking forward to running through this again when I get in from work! Sneaking a quick 5 minutes before the Auditors come in now .... but I had to check in to see.
This should be a breeze tonight![]()
Wonder if anyone would notice if I nipped off early from work![]()
Careless Orc Costs Lives!
Ran it with the updated python script, and left the scaling factors as the default ones. This ...I guessed...was going to be pretty right, and there was no point in messing with it.
Checked the animmerge, and the dwarf was sitting just where he should in Milkshape.
Deleted the packs....copied all the 'converted' anims into the Dwarf anim folder, and held my breath.
Fired up a custom battle, and .......
Grumpy, Sneezy, Bashful and his mates all stomped properly across the ground uttering their fearful battlecry ... Hi Ho !!! and off to work they went!
Faultless! Apart from some slightly dodgy rigging that isn't ideal ... but then I did lash the Dwarf model up as a test. The real shorties will be a whole lot better, and worth putting hte time in now I know we CAN DO THIS!
Three...no make that four ..oh what the heck..five.... cheers for KnightErrant!![]()
Careless Orc Costs Lives!
Awesome!Many thanks for the cheers.
The rigging
may be my skeleton's fault. I pulled out the leg bones
and clavicles by hand from the .ms3d dwarf a while back
so some of the joints are still human skeleton. Try extractskeleton
on your model, you should get a better skeleton if that's the
problem.
Just a note, GrumpyOldMan has spotted a rotation problem on
an animation with extreme arm movements, so my quats to eulers
conversion seems to be off when some angles go bigger than 90
degrees. We'll get that sorted out and I'll send an update for the
animationlibrary file.
Look out Moria! Khazad ai menu!
Hi KE et al
I've roused myself from my navel lint gazing and tried a few experiments. Chariots crash the engine as an 'unknown mount type' and testudo crashes the engine as an 'unknown formation type'.
So for mounts this means, unless anybody can find how we add mounts to the engine, that we are restricted to only three mounts - horse, camel and elephant. We can do contructive things within those restrictions (class my reptor as a horse) but mounts and their effects on others will be governed by the three valid mounts. If I do make my raptor as a horse it will be scared of camels and elephants, etc. If we make a chariot an 'elephant' type mount, the same restrictions will apply and we'll have to include the horse skeletons as part of the chariot skeleton, etc. We may have to wait until we try additional bones before we know whether this is feasible.
I was working on converting RTW anims over to mtw2 skeletons but I don't know whether it's worthwhile now that the need for specialised anims for testudo, etc can't be used.
Sorry for the bad news for the ancient and fantasy modders out there but it's best you know now rather than put in a lot of effort for nothing.
Cheers
GrumpyOldMan
Hi KE et al
I feel better now. Just did an experiment to make sure that the mtw2 engine was running off string recognition for anim purposes rather than bone indices.
I manually added three new bones to the Dismounted Feudal Knight (bone_cloak1, bone_cloak2 and bone_cloak3) at the end of the bones section of the mesh files. I left all the anims alone. I ran the program and the figures animated without a problem in the world - this means that :-
1. As long as all the bones that are required are present in the mesh it doesn't care if there are any more. If the skeleton and anims provide anim information for those bones they will be animated as well.
2. Anim is definitely done by string recognition, I was half expecting to have to move the new bones from the end of the section to the middle so as not to interfere with the weapon and shield bones. Not necessary, which is good news for mesh designers, might mean a bit more work for converting anims though.
The poor old Dismounted Feudal Knight has taken a pounding during all my experimentation, I'm thinking of mentioning him in dispatches![]()
Cheers
GrumpyOldMan
Started some more wholesale conversion of anims for the mod yesterday. Found a few more anims that don't conform and were not convertable with the tools. These seemed to be mostly 'swim' anims and the extended reload anim for the musket skeleton. These anims were in the descr_skeleton, so I could not just comment them out. I renamed them to run the converter tool, but had to convert them back to allow the anim packs to biuld correctly. If these do not work or cause major issues in game, I will have to edit them manually.
Not a big issue really ...I converted over the mace set, the crossbow set and the musket set with no issues. Reading through the skeleton text file, I noticed that the game is sharing a lot of animations from other sets. In this case, the Knifeman set and crew sets. This, unfortunately, meant I had to convert those over as well to get working dwarfs with all the weapons I wanted.
I will have to do Orcs with Knifeman and archer anims only ... I have currently added about 10Mb to the size of the animation archives, and I don;t want to add more if I can help it! Scaling seems to add nothing .... but whole new sets are a different matter entirely.
I need the musket anims for the thunderers .. but I might, at a push, try and modify and re-use the crossbow anims if I can avoid the unwanted reload animations. That would save a few Mb's
Careless Orc Costs Lives!
@GOM
That is definitely good news about adding new bones
and animating them.
@Bwian
I've started automated surveying the directories to find
which ones are all "normal" and which ones have variants.
As soon as I've had a chance to collate the results I'll try
to generalize the casreader to handle them as well. That
should take care of the exportskeleton function as well so
I wouldn't try to do too much by hand right now.
I know it fails on mounts but I'm going to concentrate on the
MTW2_ infantry units first and then the HR_ and CR_ riders.
The stratmap witch also has some unusual ones but that is
down on the list.
Thought this would be helpful. Its Memorial Day weekend in the US
so very few supervisors were at work today. Thought I could
finish it completely but getting tired so here's part of it.
--------------------------
descr_skeleton.txt synopsis
---------------------------
Just trying to count the animation families, animation types, and animation
'.cas files. This doesn't have it all, got tired near the end.
Code:type desigination subdirectory of /animations ---------------------------------------------------- Stratmap animation families ---------------------------------------------------- fs_test_primary_weapon test_weapon fs_test_secondary_weapon test_weapon fs_test_shield test_weapon fs_test_primary_bow test_weapon fs_test_secondary_bow test_weapon fs_test_primary_smallround_shield test_weapon strat_named_with_army Stratmap_General strat_spy Stratmap_Spy strat_assassin Stratmap_Assassin strat_diplomat Stratmap_Diplomat start_merchant Stratmap_Merchant start_navy (Special, all in root animations directory) strat_priest Stratmap_Preist (Yes, that is the spelling.) strat_princess Stratmap_Princess witch (Special, some in root animations dir, and /DIP directory.)Code:---------------------------------------------------- Battlemap infantry animation families ---------------------------------------------------- MTW2_Knifeman_Crew MTW2_Knifeman and MTW2_Crew MTW2_Knifeman MTW2_Knifeman (MTW2_Crew for crew requirements.) MTW2_Knife_Primary MTW2_Knifeman/Weapon (2 anims) MTW2_Fast_Knifeman MTW2_Knifeman (2 anims) MTW2_Mace MTW2_Mace (MTW2_Crew for crew, MTW2_Knifeman for swim) MTW2_Mace_Primary MTW2_Mace/Weapon (2 anims) MTW2_Fast_Mace MTW2_Mace (2 anims) MTW2_Slow_Mace MTW2_Mace (2 anims) MTW2_Swordsman MTW2_Swordsman and MTW2_Mace MTW2_Sword_Primary New_Swordman/Weapon (2 anims) MTW2_Fast_Swordsman MTW2_Mace (2 anims) MTW2_Slow_Swordsman MTW2_Mace (2 anims) MTW2_Non_Shield MTW2_Swordsman and MTW2_Knifeman MTW2_Non_Shield_Fast MTW2_Swordsman and MTW2_Mace (2 anims) MTW2_Non_Shield_Slow MTW2_Swordsman and MTW2_Mace (2 anims) MTW2_2HSwordsman MTW2_2HSwordsman (MTW2_Crew for crew, MTW2_Knifeman for swim) MTW2_2HSwordsman_Primary MTW2_2HSwordsman/Weapon (2 anims) MTW2_Slow_2HSwordsman MTW2_2HSwordsman (2 anims) MTW2_2H_Axe MTW2_2H_Axe (MTW2_Crew for crew, MTW2_Knifeman for swim) MTW2_2H_Axe_Primary MTW2_2H_Axe/weapon (2 anims) MTW2_Fast_2H_Axe MTW2_2H_Axe (2 anims) MTW2_Slow_2H_Axe MTW2_2H_Axe (2 anims) MTW2_Spear MTW2_Spear (MTW2_Crew for crew, MTW2_Knifeman for swim) MTW2_Spear_Primary New_Swordsman/weapon (2 anims) MTW2_Fast_Spear MTW2_Spear (2 anims) MTW2_Javelin MTW2_Javelin MTW2_Javelin_primary MTW2_Javelin and MTW2_Knifeman(11 anims) MTW2_Fast_Javelin MTW2_Spear (2 anims) MTW2_Pike MTW2_Pike (MTW2_Crew for crew, MTW2_Knifeman for swim) MTW2_Pike_primary MTW2_Pike/weapon (2 anims) MTW2_Slow_Pike MTW2_Pike (2 anims) NOTE THE FOLLOWING: Uppercase Primary for soldier, lowercase primary for weapon. MTW2_Halberd_Primary MTW2_Halberd (MTW2_Crew for crew, MTW2_Knifeman for swim) MTW2_Halberd_primary MTW2_Halberd/weapon (2 anims) MTW2_Halberd_Secondary MTW2_Halberd and MTW2_2HSwordsman MTW2_Musket MTW2_Musket (MTW2_Crew for crew, MTW2_Knifeman for swim) MTW2_Musket_Primary MTW2_Musket/weapon (11 anims) MTW2_Fast_Musket MTW2_Musket (2 anims) MTW2_Arquebus MTW2_Musket MTW2_Arquebus_Primary MTW2_Musket/weapon (11 anims) MTW2_Fast_Arquebus MTW2_Musket (3 anims) MTW2_Handgun MTW2_Handgun MTW2_Handgun_Primary MTW2_Musket/weapon (11 anims) MTW2_Bowman MTW2_Bowman (MTW2_Crew for crew, MTW2_Knifeman for swim) MTW2_Bowman_Primary MTW2_Bowman/weapon (5 anims) MTW2_Fast_Bowman MTW2_Bowman (2 anims) MTW2_Slow_Bowman MTW2_Bowman (2 anims) MTW2_Crossbow MTW2_Crossbow (MTW2_Crew for crew, MTW2_Knifeman for swim) MTW2_Crossbow_Primary MTW2_Crossbow/weapon (8 anims) MTW2_Fast_Crossbow MTW2_Crossbow (2 anims) MTW2_Pavise_Crossbow MTW2_Crossbow (2 anims)Code:---------------------------------------------------- Battlemap siege engine crew animation families ---------------------------------------------------- MTW2_Crew_Culverin siege_crew MTW2_Crew_Basilisk siege_crew MTW2_Crew_Serpentine siege_crew MTW2_Crew_Cannon siege_crew MTW2_Crew_Bombard siege_crew MTW2_Crew_Huge_Bombard siege_crew MTW2_Crew_Mortar siege_crew MTW2_Crew_Catapult siege_crew MTW2_Crew_Trebuchet siege_crew MTW2_Ballista siege_crew MTW2_Crew_Ribault siege_crew and new_crew MTW2_Crew_Monster_Ribault siege_crew and new_crew[/CODE]Code:---------------------------------------------------- Battlemap HR (horse rider) animation families ---------------------------------------------------- MTW2_HR_Lance HR_lance MTW2_HR_Mace HR_Mace MTW2_HR_Sword HR_Sword
I'll work on finishing it tomorrow. My idea is to lay out what is there
in Caliban's unpacked directory. Obviously, some things are CAs developement
ideas that are not in the retail version and can be ignored. Where I'm going
is to process all the directories that have something to do with the game and
find out what files matter (i.e. are in descr_skeleton.txt) and what files don't.
Then we know what we have to read with a .cas reader and what we don't.
Since its a research wiki if this doesn't help, then nobody is harmed.
Just wanted to write it somewhere so I can access it again.
i'm just going to walk away and NEVER return to this thread. *shiver*
A nation of sheep will beget a a government of wolves. Edward R. Murrow
Anyone who claims to be in the light but hates his brother is still in the darkness. —1 John 2:9
Well I have to chuckle on that one.I don't know if the
<<shiver>> is for the technical content or why anyone would be so interested
in such boring stuff. No further dissection of the descr_skeleton.txt file this
weekend. I'm compelled to sacrifice pieces of red meat on an altar composed
of brickettes and lighter fluid; this is called memorial day. Hope to finish this off
along with the survey tomorrow. Then the offending animations can be
identified and read
Have a happy summer..
Backing up a little because I got HR_stuff wrong.
Allright, that's what's in descr_skeletons.txt. Haven't collated it or added it upCode:---------------------------------------------------- Battlemap HR (horse rider) animation families ---------------------------------------------------- MTW2_HR_Lance HR_lance (Messed this one up last night, there is no HR_Mace.) MTW2_HR_Mace HR_Sword MTW2_HR_Sword HR_Sword MTW2_HR_Spear HR_Spear MTW2_HR_Javelin HR_Spear also uses subdirectory HR_Javelin MTW2_HR_Bow HR_Bow MTW2_HR_Bow_Primary HR_bow/Weapon (5 anims) MTW2_HR_Crossbow HR_Crossbow MTW2_HR_Crossbow_Primary MTW2_Crossbow/Weapon (8 anims) MTW2_HR_Pistol HR_Pistol MTW2_HR_Pistol_Primary HR_Pistol/weapon (6 anims) MTW2_HR_Arquebus HR_Arquebus MTW2_HR_Arquebus_Primary HR_Arquebus/weapon (6 anims) ---------------------------------------------------- Battlemap CR (camel rider) animation families ---------------------------------------------------- MTW2_CR_Spear CR_Spear MTW2_CR_spear_Primary HR_spear/weapons (2 anims) MTW2_CR_Sword CR_Sword MTW2_CR_Bow CR_Bow MTW2_CR_Arquebus CR_Arquebus --------------------------------------------------- Battlemap ER (elephant rider) animation families ---------------------------------------------------- MTW2_Elephant_Rockett_Crew elephant_cavalry Elephant_Artillery_Crew elephant_cavalry/Elephant_Crew MTW2_Elephant_Crew elephant_cavalry/elephant_rider ---------------------------------------------------- Battlemap HR (horse rider) animation families ---------------------------------------------------- fs_horse fs_horse fs_heavy_horse fs_horse fs_african_elephant med_elephant fs_camel camel legion_pole \animations standard_legion_pole general_legion_pole cavalry_legion_pole \animations\banners cavalry_mini_pole \animations\banners cavalry_main_pole \animations\banners
but this is what we have to work with and not everything in Caliban's
directory. (Have to look at the witch a bit more.) I'll post the survey of
units tomorrow. Know I can't do mounts but if the only problem infantry
units turn out to be the short footer ones then these can be dealt with.
Just to note about the previous posts: there are 108 named types
or families of animations.
Here's the survey results. Not complete because some more
questions were raised by the survey but this will do for now.
First here's list of the directories surveyed in roughly the order encountered
in descr_skeleton.txt. Note that we ignore /weapon subdirectories etc.,
we just do the main directories with human or mount animations.
Our requirement was not to do what was in Caliban's directory, but only
do what is actually used in descr_skeleton. There's a lot of new_...
directories NOT used; maybe we'll see these in the future?
Code:---------------------------------------------------------------- Summary of Summary: Directories in descr_skeleton.txt ---------------------------------------------------------------- root directory of /animations for: navy witch legion_pole standard_legion_pole general_legion_pole test_weapon Stratmap_General Stratmap_Spy Stratmap_Assassin Stratmap_Diplomat Stratmap_Merchant Stratmap_Preist Stratmap_Princess MTW2_Crew MTW2_Knifeman MTW2_Mace MTW2_Swordsman New_Swordman/Weapon (2 anims) MTW2_2HSwordsman MTW2_2H_Axe MTW2_Spear MTW2_Javelin MTW2_Pike MTW2_Halberd MTW2_Musket MTW2_Handgun MTW2_Bowman MTW2_Crossbow siege_crew new_crew HR_lance HR_Sword HR_Sword HR_Spear HR_Spear HR_Bow HR_Crossbow HR_Pistol HR_Arquebus CR_Spear CR_Sword CR_Bow CR_Arquebus elephant_cavalry/Elephant_Crew elephant_cavalry/elephant_rider fs_horse med_elephant camel banners
The test_weapon survey:
Code:test_weapon: 34 Processed .cas files. All missing footers. No quats or anim data, only pose data. Signature bytes: 154 154 154 63 63 63 Version: 3.20 (16 of these) 0 0 0 63 63 63 3.21 ( 8 of these) 0 0 0 0 0 0 3.21 ( 8 of these) 89 89 89 74 74 74 3.20 ( 2 of these) Only 12 of them used in descr_skeleton.txt.
Ignoring navy and the witch, the stratmap animations follow this:
The MTW2 infantry units go like this:Code:Stratmap_Assassin: 23 Processed .cas files. All regular version: 3.21 Signature: 0 0 0 102 102 102 Stratmap_Diplomat: 22 Processed .cas files. All regular version: 3.21 Signature: 0 0 0 102 102 102 Stratmap_General: 41 Processed .cas files. All regular version: 3.21 Signature: 0 0 0 102 102 102 Stratmap_Merchant: 23 Processed .cas files. All regular version: 3.21 Signature: 0 0 0 102 102 102 Stratmap_Preist: 41 Processed .cas files. All regular version: 3.21 Signature: 0 0 0 102 102 102 Stratmap_Princess: 23 Processed .cas files. All regular version: 3.21 Signature: 0 0 0 102 102 102 Stratmap_Spy: 25 Processed .cas files. All regular version: 3.21 Signature: 0 0 0 102 102 102
The flailing ones are all variants that are in the game but can beCode:MTW2_2HSwordsman: 185 Processed .cas files. 2 Variant files: No footers. MTW2_2HSwordsman_die_flailing_cycle.cas 154 154 154 63 63 63 These variant files are in MTW2_2HSwordsman_die_flailing_cycle_end.cas 0 0 0 0 0 0 descr_skeleton.txt MTW2_2H_Axe: 215 Processed .cas files. 2 Anomalous files: No footers. MTW2_2H_Axe_attack_centre_Hi_Stab_Fail.cas 0 0 0 102 102 102 These anomolous files are MTW2_2H_Axe_attack_centre_Hi_Stab_Success.cas 0 0 0 102 102 102 NOT in descr_skeleton.txt 2 Variant files: No footers. MTW2_die_flailing_cycle.cas 154 154 154 63 63 63 These variant files are in MTW2_die_flailing_cycle_to_land.cas 0 0 0 0 0 0 descr_skeleton.txt MTW2_Bowman: 125 Processed .cas files. 2 Variant files: No footers. MTW2_Bowman_die_flailing_cycle.cas 154 154 154 63 63 63 These variant files are in MTW2_Bowman_die_flailing_cycle_end.cas 0 0 0 0 0 0 descr_skeleton.txt MTW2_Crossbow: 127 Processed .cas files. 2 Variant files: No footers. MTW2_Crossbow_die_flailing_cycle.cas 154 154 154 63 63 63 These variant files are in MTW2_Crossbow_die_flailing_cycle_end.cas 0 0 0 0 0 0 descr_skeleton.txt MTW2_Halberd: 205 Processed .cas files. 2 Variant files: No footers. MTW2_Halberd_die_flailing_cycle.cas 154 154 154 63 63 63 These variant files are in MTW2_Halberd_die_flailing_cycle_end.cas 0 0 0 0 0 0 descr_skeleton.txt MTW2_Handgun: 30 Processed .cas files. All regular version: 3.21 Signature: 0 0 0 102 102 102 MTW2_Javelin: 6 Processed .cas files. All regular version: 3.21 Signature: 0 0 0 102 102 102 MTW2_Knifeman: 188 Processed .cas files. 13 Variant files: No footers. MTW2_Knifeman_die_flailing_cycle.cas 154 154 154 63 63 63 MTW2_Knifeman_die_flailing_cycle_end.cas 0 0 0 0 0 0 MTW2_Knifeman_swim.cas 154 154 154 102 102 102 Passes our 102 test!!!!!!! MTW2_Knifeman_swim_attack1.cas 154 154 154 63 63 63 MTW2_Knifeman_swim_attack2.cas 154 154 154 63 63 63 MTW2_Knifeman_swim_idle.cas 154 154 154 63 63 63 MTW2_Knifeman_swim_idle_to_swim.cas 154 154 154 102 102 102 Passes our 102 test!!!!!!! MTW2_Knifeman_swim_shuffle_backward.cas 154 154 154 63 63 63 MTW2_Knifeman_swim_shuffle_forward.cas 154 154 154 63 63 63 MTW2_Knifeman_swim_shuffle_left.cas 154 154 154 63 63 63 MTW2_Knifeman_swim_shuffle_right.cas 154 154 154 63 63 63 MTW2_Knifeman_swim_to_Stand_A.cas 154 154 154 102 102 102 Passes our 102 test!!!!!!! MTW2_Knifeman_swim_to_Swim_Idle.cas 154 154 154 102 102 102 Passes our 102 test!!!!!!! MTW2_Mace: 185 Processed .cas files. 2 Variant files: No footers. MTW2_Mace_die_flailing_cycle.cas 154 154 154 63 63 63 MTW2_Mace_die_flailing_cycle_end.cas 0 0 0 0 0 0 MTW2_Musket: 132 Processed .cas files. 1 Anomalous files: No footers. MTW2_Musket_attack_missile_reload_extended.cas 0 0 0 102 102 102 TRUE ANOMALY. This file NOT in descr_skeleton.txt. 2 Variant files: No footers. MTW2_Musket_die_flailing_cycle.cas 154 154 154 63 63 63 These variant files are in MTW2_Musket_die_flailing_cycle_end.cas 0 0 0 0 0 0 descr_skeleton.txt MTW2_Pike: 182 Processed .cas files. 2 Variant files: No footers. MTW2_Pike_die_flailing_cycle.cas 154 154 154 63 63 63 These variant files are in MTW2_Pike_die_flailing_cycle_end.cas 0 0 0 0 0 0 descr_skeleton.txt MTW2_Spear: 153 Processed .cas files. 2 Variant files: No footers. MTW2_Spear_die_flailing_cycle.cas 154 154 154 63 63 63 These variant files are in MTW2_Spear_flailing_cycle_to_land.cas 0 0 0 0 0 0 descr_skeleton.txt MTW2_Swordsman: 16 Processed .cas files. All regular version: 3.21 Signature: 0 0 0 102 102 102 MTW2_Crew: 19 Processed .cas files. All regular version: 3.21 Signature: 0 0 0 102 102 102 We omit new_Swordman since it is used in only 4 places in descr_skeleton.txt and only for its \weapon subdirectory for use with weapons.
recognized by their signature bytes. The anomalous ones like
in MTW2_2H_Axe and MTW2_Musket aren't in game. A lot of the
MTW2_Knifeman ones had a second signature byte group of 102 102 102
so they would pass my test for that but they have a first signature
byte group of 154 154 154 so could be recognized by this.
The crew ones are very problematic as noted:
Code:Siege_crew: 108 Processed .cas files. Very problematic. Every file is a variant or anomalous. The anomalies ARE in descr_skeleton.txt. (1) 154 154 154 102 102 102 variants with no footers. (2) 0 0 0 102 102 102 anomalies with no footers. (3) 154 154 154 102 102 102 variants WITH footers but the footers are bad because missing 12 bytes or the last three ints 12 12 0. Looking at some of them, they have quat data as indicated by the first int after the bone name but DON'T have anim data looking at the second int. The ones without footers end with pose data. new_crew: 23 Processed .cas files. Very problematic as well. Many are variants of type 154 154 154 102 102 102 with no footers but some are variants of type 154 154 154 102 102 102 with perfectly formed footers. Also one 154 154 154 63 63 63 variant with no footer. (Only three .cas files from this directory are used in descr_skeleton.txt: Crew_Stand_to_Wide_Push.CAS Crew_Wide_Push.CAS Crew_Wide_Push_to_Crew_Stand.CAS and only for the ribault and monster_ribault.)
Horse rider animations:
Code:HR_Arquebus: 5 Processed .cas files. All regular version: 3.21 Signature: 0 0 0 102 102 102 HR_bow: 9 Processed .cas files. All regular version: 3.21 Signature: 0 0 0 102 102 102 Node name for these is CaozSceneCustomAttribNode 1. First footer int is 106 not 104. HR_crossbow: 9 Processed .cas files. All regular version: 3.21 Signature: 0 0 0 102 102 102 HR_lance: 26 Processed .cas files. HR_lance_basepose.CAS 0 0 0 117 117 117 Bad footer, missing 12 bytes. Version 3.20, but IS in descr_skeleton.txt as default anim command pair. HR_lance_fs_horse_taunt.cas 0 0 0 102 102 102 Bad footer, missing 12 bytes. NOT in descr_skeleton.txt NOTE: The node name for these is CaozSceneCustomAttribNode 1. (That's SPACE 1 for the end of the name.) HR_Pistol: 4 Processed .cas files. All regular version: 3.21 Signature: 0 0 0 102 102 102 Node name for these is CaozSceneCustomAttribNode 1. First footer int is 106 not 104. HR_Spear: 30 Processed .cas files. All regular version: 3.21 Signature: 0 0 0 102 102 102 Node name for these is CaozSceneCustomAttribNode 1. First footer int is 106 not 104. HR_Sword: 67 Processed .cas files. 18 anomalous files with 12 bytes missing from the footer. All have regular 0 0 0 102 102 102 signatures. HR_Sword_Defend_LOW_slashLR.cas None of these files are in descr_skeleton.txt HR_Sword_Defend_LOW_slash_RL.cas HR_Sword_Defend_OVERHEAD_slashLR.cas HR_Sword_Defend_OVERHEAD_slash_RL.cas HR_Sword_Defend_slashLR.cas HR_Sword_Defend_slash_RL.cas HR_Sword_Left_low_SlashRL_fail.cas HR_Sword_Left_low_SlashRL_success.cas HR_Sword_Left_MID_SlashRL_fail.cas HR_Sword_Left_MID_SlashRL_success.cas HR_Sword_Left_OVERHEAD_SlashRL_fail.cas HR_Sword_Left_OVERHEAD_SlashRL_success.cas HR_Sword_Right_MID_C_slashLR_fail.cas HR_Sword_Right_MID_C_slashLR_success.cas HR_Sword_Right_OVERHEAD_C_slashLR_fail.cas HR_Sword_Right_OVERHEAD_C_slashLR_success.cas HR_Sword_right_slashLR_low_fail.cas HR_Sword_right_slashLR_low_success.cas HR_Swordman: 25 Processed .cas files. All regular version: 3.21 Signature: 0 0 0 102 102 102
Camel rider animations:
Code:CR_Arquebus: 26 Processed .cas files. All regular version: 3.21 Signature: 0 0 0 102 102 102 NOTE: The die_galloping and die_standing files have these two node names and first footer int value: 135 1 1 CaozSceneCustomAttribNode01, CaozSceneCustomAttribNode02 Others are regular node name. CR_Bow: 26 Processed .cas files. All regular version: 3.21 Signature: 0 0 0 102 102 102 NOTE: Here only the die_standing has the following node names and first footer int value: 135 1 1 CaozSceneCustomAttribNode01, CaozSceneCustomAttribNode02 Others are regular node name. CR_Spear: 26 Processed .cas files. All regular version: 3.21 Signature: 0 0 0 102 102 102 CR_Sword: 26 Processed .cas files. All regular version: 3.21 Signature: 0 0 0 102 102 102
Elephant riders:
Code:elephant_cavalry/Elephant_Crew 8 Processed .cas files. All anomalous with no footers but regular signature bytes 0 0 0 102 102 102 elephant_cavalry/elephant_rider 12 Processed .cas files. All have 5 nodes, instead of 104 to start the footer these start with 222. Footer indicates that what I've been calling ints are really floats for the footers. Regular signature bytes 0 0 0 102 102 102 Here's an example with a footer: Cas file: HR_elephant_rider_stand_a_to_walk.cas +3.210 38 9 0 +1.200 1 0 0 0 0 1 0 102 102 102 15316 0 21 bones in hierarchy tree 25 time ticks 222 1 1 CaozSceneCustomAttribNode 2, CaozSceneCustomAttribNode 3, CaozSceneCustomAttribNode 4, CaozSceneCustomAttribNode 5, CaozSceneCustomAttribNode 1 1 0 1 0 3989597952 2147483814 3149737919 178 +0.00 0 0 0 0 0 -1 0 0 1 16 2 0 0 16 3 0 0 16 8 0 0 16 10 0 0 12 5 0 12 12 0 Those big ints seem to be the floats: -1.650059e-15 -1.0000000 -2.1855696e-08 7.5497901e-08 Other examples have floats in other places. This might force me to redo the footers and make these fields floats. Here's regular footer of that same line: 1 0 1 0 0 0 0 0 +1.00 0 0 0 0 0 -1 0 0 _ _ _ _ _ _ _ _ _ The underlined zeroes could all be float zeroes. This directory is worth coming back to for further study of the footers.
Last stuff, mounts and banners:
That's the survey. Definitely need to revisit this to be sure how to processCode:fs_horse: 38 Processed .cas files. footers again indicate what I've called ints could well be floats. Can't tell actually, footer is much longer than a normal one. Another variant. Signature is regular 0 0 0 102 102 102. The int starting the footer is 170 and not 104. Must revisit this one. The extra floats seem to be preceded by int counts so maybe this is an example of a more general format that we only see in this case? med_elephant: 29 Processed .cas files. All regular but the signature is: 104 104 104 104 104 104 camel: 29 Processed .cas files. Signature is : 0 0 0 10 10 10 Seem to have normal footers. (My trap on second signature byte means it didn't print out.) banners: footer looks odd but this is an odd file anyway. Only one file of the two used in descr_skeleton.txt
these generally. The problem that's nagging me is animmerge and animextract.
If I animmerge a variant into a .ms3d file, how much info do I have to put
into a .ms3d comment so I can reconstruct it in animextract? We've seen
missing footers with odd signature bytes. That makes sense. We've seen
missing footers with regular signature bytes. Uh oh. We've seen footers
that are missing 12 bytes (three ints 12 12 0). Long footers with lots of
extra floats for fs_horse. etc. etc.
Hi KE
What a great job you've done on the anim survey![]()
![]()
.
I'll have a look at the horse anims and see if I can make any sense out of the longer footer.
As far as the crew anims are concerned I don't think we have to worry too much about them since we now have anims to take us up to the 1860's if required.
One thing that did strike me with the mtw2 human anims was that 102 102 102 were basically transitions and the 63 63 63 were looping animations (of course the MTW2_Knifeman_swim.cas sticks out as an anomaly - can't have too many anomalies- maybe it transitions as well, even with itself?). This would also make sense of flailing_cycle (63 63 63 - looping) and flailing_cycle_end (00 00 00 - hit the ground - nothing more going on from here
)
Cheers
GrumpyOldMan
Here's some numerology for you (and if you believe this, tell me your
sign and I'll predict your future). The footers describe themselves in
byte number sections. Let's do a regular one and then a fs_horse one.
Regular unit anim: MTW2_Spear_run.cas
In decimal layout we have:
I've broken the footer so what I'm calling the byte numbers are in theCode:104 1 1 CaozSceneCustomAttribNode 1 0 1 0 0 0 0 0 +1.00 0 0 0 0 0 -1 0 0 1 16 2 0 0 16 3 0 0 16 8 0 0 16 10 0 0 12 5 0 12 12 0 ---------- 192
left-most column. They sum to 192, the standard footer size.
Now do a horsy. This is fs_fast_horse_run.cas:
and 319 bytes is the size of this horse footer.Code:170 1 1 CaozSceneCustomAttribNode 1 0 1 0 0 0 0 0 +1.00 0 0 0 0 0 -1 0 6 plane 1 0b 1 0 0b -0.707 0.0 0.0 +0.707 2.4304 -4.7682 -7.8706 0 0 0 0 2 16 2 0 0 16 3 0 0 16 8 0 0 16 10 0 0 73 5 1 0 0.8381 0.612 0.612 1.0 0.2000 0.2000 0.2000 0 0 0 0 0 0 0 1b 12 12 0 --------- 319
This still doesn't match the file size sans header/footer at offset 42
for pulling something out of thin air, but it's interesting.
Edit: fs_horse_default.cas footer is only 180 bytes i.e. standard 192 - 12.
It's missing the last three 12 12 0 ints like lots of other files. All the others
that I've checked have the 319 byte footer. fs_horse_default.cas is version 3.20
while the others are version 3.21. fs_horse_default.cas IS used in descr_skeleton.txt.
Last edited by KnightErrant; 05-30-2007 at 15:33.
Hi, all.
I don't understand most of the things here but I'm playing with CA source animation files and I think questions could be post here, right? :P
There are a lot of good stuff in these source files, some of which are not used by vanilla game. The one get my interest is the new_2h_axe_halberd folder. And I immediately realize it must contain the jump-attack animation which can be seen in CA trailer long before M2TW was released. Then I edited descr_skeleton.txt and I'm lucky enough to make the jump-attack animation into the game! However, there's something worng with it. This is what I got:
The problem is they start jumping when enemy is far away and then fall on the ground. Then they jump again, agian, and again until they meet the enemy.![]()
Also when charging their models have some glitches in their faces.
This is my entry in descr_skeleton.txt
I think the problem must lie in those id, if stats but I don't understand what's the meaning of them. Could someone explain it to me, please? Or is there some tutorial? Thanks a lot your repliesCode:;;; charge anim charge data/animations/new_2h_axe_halberd/2h_axe_charge_attack.cas -fr -evt:data/animations/MTW2_2H_Axe/2h_axe_charge_attack.evt anim charge_to_ready data/animations/new_2h_axe_halberd/2h_axe_charge_to_ready.cas -fr -evt:data/animations/new_2h_axe_halberd/2h_axe_charge_to_ready.evt anim charge_attack data/animations/new_2h_axe_halberd/2h_axe_charge_attack.cas -fr -evt:data/animations/new_2h_axe_halberd/2h_axe_charge_attack.evt![]()
Last edited by zxiang1983; 05-30-2007 at 18:28.
Nice work zxiang1983!
I think the problem is you tied the charge_attack.cas to
the anim command charge. Try switching the anim charge
line to use the charge.cas from the same directory. See if
that keeps them from trying to attack until they close on the
enemy. I don't have the right unit with me to try it out in
Milkshape first but I think this might be the problem. Please
post back your results. It would be great to find new animations
to throw in the game.
When I was messing with the RTW animations, I built up a table of animations that linked the 'action' to the animation. As KE suggested, the 'charge' action should be a running animation. This is what the game will trigger when the troops are told to attack at a run. The charge attack is what they will do when they get to the end of the charge and attack.
Careless Orc Costs Lives!
Hi, KE. Thanks for pointing out the mistakes! I corrected them all and this is my entry now:
Again I'm lucky. The charging animation works well now. They raise their halberd and then jump-attack. But still one problem. The model still have glitches in their face. I'm using vanilla Janissary heavy infantry. Its model is fine unitl they start to charge. So the problem must be the animation. Here are the screenshots of what's going on:Code:;;; charge anim charge data/animations/new_2h_axe_halberd/2h_axe_charge.cas -fr -evt:data/animations/new_2h_axe_halberd/2h_axe_charge.evt anim charge_to_ready data/animations/new_2h_axe_halberd/2h_axe_charge_to_ready.cas -fr -evt:data/animations/new_2h_axe_halberd/2h_axe_charge_to_ready.evt anim charge_attack data/animations/new_2h_axe_halberd/2h_axe_charge_attack.cas -fr -evt:data/animations/new_2h_axe_halberd/2h_axe_charge_attack.evt
Well, I have to have some sleep now. Continue tomorrow. Thank you for all your help!![]()
Last edited by zxiang1983; 05-30-2007 at 19:42.
That's great work, good job!
I guess I'm not familiar enough with this
unit to see the glitches. The screenshots
look ok to me, does anybody else who knows this
unit see what the problem is?
Hi KE and Zxiang
Looking at the screen shots it looks like the eyebrows are the problem, pulling the top of the face down to the chin - possibly these anims use a different rotation than 0,0,0 for the initial eyebrow hence the anim is out of kilter with a 0,0,0 eyebrow bone. Or the jaw and eyebrow have been switched? Could possibly be fixed with zero joints?Originally Posted by KnightErrant
Cheers
GrumpyOldMan
Last edited by GrumpyOldMan; 05-30-2007 at 23:30.
Ahhh, thanks GrumpyOldMan. I thought I
was looking at pigsnout helms so they seemed
ok but with really tiny eye slits.![]()
Hi KE
If you look at them that way, I suppose they doOriginally Posted by KnightErrant
![]()
. The quick way to fix this without taking the 4 pound hammer to the anim files is to convert the meshes and reassign all the head type vertices just to the head, of course you lose all facial expresions then - but I did say it was quick, nothing about aesthetics
![]()
. (my guess is that the eyebrow bone is rotated at 90 degrees from zero, hard to tell but the jaws look a bit strange too - could be the same reason).
Cheers
GrumpyOldMan
Ya, the problem is some part of the helmet is pulled down to his chin.The quick way to fix this without taking the 4 pound hammer to the anim files is to convert the meshes and reassign all the head type vertices just to the head, of course you lose all facial expresions then - but I did say it was quick, nothing about aesthetics .
Thank you, GOM! I'll give it a try.
And what about the complicated way? What shall I do if I don't want to re-assign all head vertices? I don't understand the "90 degree" thing. Could you explain it a little more? Is it about those id, if stats? Thanks in advance!
Hi Zxiang
The 90 degree thing is about the actual data in the anim files, I tried to open the files but they weren't opening with my current version of KE's utilities. The only place to be sure about the errors and repair them is in Milkshape once we get the files extracted. In the meantime, the only way to use the anims is to reassign any head vertices from any figures that might be using the anims.Originally Posted by zxiang1983
Cheers
GrumpyOldMan
Bookmarks