Page 1 of 4 1234 LastLast
Results 1 to 20 of 64

Thread: The Complete Animations Guide

  1. #1

    Default The Complete Animations Guide

    Modding Resource Header

    Title: The Complete Animations Guide for RTW
    Posted by: PatricianS
    Modding area: Units (animations, skeletons)
    Required programs: Note: not every program listed below is required for every step in this guide. I will list the programs for each step as well as this full list.


    Summary: A Guide to help you through all steps of creating new animations including editing skeletons.
    Last Update: 21-12-2009


    Introduction
    Hello all! When I started working on unit animations, I found there is very little information about this topic. There were some tutorials, but I found them very difficult to read and often lacked screen-shots to give an impression on what your actually doing. Now with the discovery of how unit skeletons can be changed, I decided it was time to write a Complete Animations Guide. It's goal is to have one single place where you can find all you need to know about animations/skeletons explained in "normal" English and with lots of screen-shots.

    I must confess that I don't know everything to the smallest detail either, so if you find that I did something wrong, then please say so, so it can be fixed.

    This Guide is a Work In Progress (WIP), so I will try to keep it up-to-date when new comments are posted or maybe when new things are discovered. So I would like to invite everyone with some knowledge on the topic to help me complete this Guide and make animations just as common for mods to edit as unit models or skins.

    I did write this Guide, but please don't forget all other people who did the really hard stuff of cracking animations/skeletons and wrote advanced tools which I use as basis in this Guide. Without them, this Guide wouldn't exist.

    Index



    Special Thanks

    Very special thanks to:

    • Florin80 - He told me I should write a tutorial, so I did...
    • Vercingetorix - For his excellent tools
    • Wlesmana and KnightErrant - For their work on the skeletons
    • Aradan - For using his Guide Header


    Attachments

    .CAS importer/exporter by
    Vercingetorix, edited by KnightErrant:
    Attachment 66932
    Last edited by Pat89; December 21, 2009 at 07:16 AM.

  2. #2

    Default General Information

    General Information

    In this section of the Guide, all basic informations will be explained. You will need this informations in order to understand the full picture of the workings of animations in RTW, how they are linked to skeletons (and what animations/skeletons are) and how you can use them in-game.

    Animations

    Files: ...
    Programs: ...
    Definition
    A combination of rotations of bones in a skeleton to let an action happen. Almost every movement in the game, is stored in an animation: a horse running, a bowman firing an arrow, a banner waving in the wind, etc.

    Rules/limits
    - RTW engine only reads rotations of the bones. This is important to remember. It will ignore any positioning of the bones as the CAS exporter will just not register it. So work your animations by rotating the bones using the rotation tool, not the position move tool.
    - Only the Scene Root's position is registered by the CAS exporter. Units in battle also move by the Scene Root's position and speed.
    - An animation to be used for RTW MUST end at an odd numbered frame. Do not export an animation ending in an even numbered frame.


    Skeletons

    Files: ...
    Programs: ...
    The term "skeleton" is actually use for two entirely different things, which are also in a sense closely related to eachother. So is there the skeleton which is included in each model. This skeletons is made up of a set of bones to which parts of the model are attached. Then by rotating these bones, you get a movement of the model. Similar to the real skeleton in humans.

    The other skeleton is slightly more complex and they have been cracked only relatively recent by Wlesmana and Knight Errant (details here) and still not everything is known about them. These skeletons are files without file extension, stored in the skeletons.pack/.idx files. When using the tool created by Wlesmana and Knight Errant, they can be converted to normal text files.
    In these files, there is lots of data about the default position of the above mentioned skeleton when "in rest". All rotations in the animation are then calculated at the hand of this standard position. Then there is also information about which animation should be played in which event (eg. what animation should be used if a unit sneezes) and if an animation is played, then if and at which frame in the animation a sound should be played (eg, when should - while the sneezing animation is played - the unit make a sneezing sound).
    Besides these three main things, there is a lot more information stored in these files, which I hope to get back to later.


    Use in RTW

    Files: Data\descr_model_battle.txt (DMB)
    Programs: text editor
    If we open the RTW DMB, one of the units we will see is this one:
    Code:
    type                barb_archer
    skeleton            fs_semi_fast_archer, fs_semi_fast_dagger
    indiv_range         40
    texture             dacia, data/models_unit/textures/unit_barb_warband_archer_dacia.tga
    texture             scythia, data/models_unit/textures/unit_barb_warband_archer_scythia.tga
    texture             slave, data/models_unit/textures/unit_barb_warband_archer_slave.tga
    model_flexi         data/models_unit/unit_warband_archer_high.cas, 8
    model_flexi         data/models_unit/unit_warband_archer_med.cas, 15
    model_flexi         data/models_unit/unit_warband_archer_low.cas, 30
    model_flexi         data/models_unit/unit_warband_archer_lowest.cas, max
    model_sprite        slave, 60.0, data/sprites/slave_barb_archer_sprite.spr
    model_sprite        scythia, 60.0, data/sprites/scythia_barb_archer_sprite.spr
    model_sprite        dacia, 60.0, data/sprites/dacia_barb_archer_sprite.spr
    model_tri           400, 0.5f, 0.5f, 0.5f
    The bit we are interested in, is the part I made red:
    Code:
    skeleton             fs_semi_fast_archer, fs_semi_fast_dagger
    This line indicates which skeletons should be used for this model. the first skeleton is used for the primary weapon, the second is used for the secondary weapon.
    Last edited by Pat89; August 30, 2010 at 11:42 AM.

  3. #3

    Default How to edit Animations

    How to edit Animations

    Files: Data\animations\pack.idx & Data\animations\pack.dat
    Programs: Animations Copier & Pack Extractor & Autodesk 3ds Max & .CAS importer/exporter

    In this part of the Guide, you will get explained how you can create new animations, with or without having to overwrite existing ones.

    Copying a skeleton (Part I)

    Note: Make sure all files of the Animations copier (in the image below marked with a red arrow) are placed inside your Data\animations folder like this:



    To launch the program, double-click on "Copy animations.exe" (the program with the red icon)

    Copying a skeleton can be done in seven steps using the Animations copier:

    1. Extract Animations
    2. Extract Skeletons
    3. Type the name of the animation you want to copy (eg "fs_s1_archer")
    4. Type what you want your animation to be named (eg "fs_test")
      • Write this down somewhere. Just in case you forget the name.
      • In case you didn't write it down and you forgot what it was, then open "RTW\Data\animations\list.txt" and scroll to the end of the file. All last created skeletons are listed there.

    5. Create new skeleton
      • It will copy the skeleton named in step 3 and rename it as told in step 4.
      • This tool will write all commands for you in xidxShell.bat
      • It will add the new skeleton to the end of list.txt

    6. Pack animations
    7. Pack skeletons

    You can clearly see those steps in the editor:


    Note: If you want to overwrite an existing animation, then skip the steps 3 to 5 and go directly to "Editing an animation".

    Step 1
    Nothing special here... Just press the button and wait. A window (see image below) will pop-up when you press the button, which will start unpacking all animations.

    Spoiler Alert, click show to read: 


    When the window asks you to "Press any key to continue", you can close the window by doing so.

    Step 2
    This step is actually the same as tep 1, only a different window will pop-up to unpack all skeletons:

    Spoiler Alert, click show to read: 


    Ones again you can close the window if it asks you to press any key by doing so.

    When step 1 and 2 are done, you will notice a lot of files have been added to your Data\animations folder. It should look something like this:



    Inside the Data folder, you will find another folder called "animations" in which all .CAS files for your animations are stored. So in total, you can find the animations in "Data\animations\Data\animations\".

    The other files you see here, are the skeletons. Most of them start with "fs_". Wlesmana and Knight Errant have discovered how you can edit those files manually, but for now we will use the easy way and that is by following step 3 to 5. Note that if you don't want to create a new skeleton, but instead overwrite an existing one, you can skip those steps and go directly to "editing animations". However if you're planning to make some drastic changes to your animations, then I would advice to create a new skeleton for it by following the next three steps. This way you can ensure that you new animation doesn't interfere with other units who use the same animation, but are not compatible with your new version. (if you for example want to create an archer that grabs an arrow from the bag on his back, then the animation isn't compatible with an archer that has his bag on his belt - you won't get a CTD or something, it just looks ugly).

    Step 3
    Here you have to decide which skeleton you are going to use as basis for your new one. It is probably best to use a skeleton as close as possible to what end result you want to have, so you don't have to change that much. In this example, we are going to create a new animation for archers to let them grab an arrow from a bag on their belt. So it is probably wise to use the skeleton "fs_foot_archer" as basis, since we then only have to change the animation for how the archer gets ready to aim.

    So in the text-box, you will type "fs_foot_archer" just like this:



    Step 4

    Now you have decided on what skeleton you're going to use as basis, you need to think of a name for your new skeleton. Make sure the name doesn't yet exist and to make sure you later understand what the skeleton does, it is best to chose a name that explains what it does. So in this example, we're going to name out new skeleton "fs_foot_archer_belt_bag". You might find the name rather long, but it is clear to everyone what it's function will be. Alternatively, you might even want to name it "fs_foot_archer_belt_bag_left" or ""fs_foot_archer_belt_bag_right" if you have archers with a bag on their left belt while you also have archers with a bag on the right of their belt.

    NB: Write this name down somewhere! Later in the tutorial you will have to use it again!

    Type this name in the second text box like this:



    Step 5

    Press the button and wait patiently until the black DOS window tells you to close it. If you quit before that time, it won't work. Also make sure not to run any other programs until the DOS window is completely done.

    After this, you can start with editing/creating the animation in the next chapter of this tutorial. The last two steps will only be performed after you are done with that. (you can savely close this program during the animating in 3ds)


    Editing an animation

    For this tutorial, I assume you understand the basic workings of 3ds Max and you should know how to start the .CAS importer/exporter and how to import a unit model with it. What I will explain in this tutorial is how to import/export animations.

    Files: Data\models_unit\unit_barb_archer_400.CAS & Data\animations\data\animations\fs_foot_archer_belt_bag\fs_foot_archer\LID_61 Archer stand ready to aim FASTER.CAS
    Programs: Autodesk 3ds Max & .CAS importer/exporter
    Open the unit model "unit_barb_archer_400.CAS" in 3ds Max

    When done well, you should see something like this:

    Spoiler Alert, click show to read: 

    As you can see, the guy has a bag with arrows on his belt on the right side of his body. What we are going to do now, is make the archer grab an arrow from that place, before he starts aiming. (note that he will only move his hand/arms to pretend as if he grabs an arrow, to add an actual arrow to the whole thing is far more complicated and only recently discovered by Wlesmana and Knight Errant how to do that. So for now we'll keep it at the basics.)

    Lets start with telling you which tools you are going to use most:



    1. The model
    2. The bones
    3. Import animations
    4. Export animations
    5. The Time-line
    6. Auto key to edit animations
    7. Buttons to manage the time-line
    8. right-click menu -> Hide selection
    9. Move and rotate*

    *Note: you may only move the entire model. Individual bones must always be rotated!

    Before you can edit an animation, you will have to load it into 3ds Max. You can do this by clicking on "Import Animation..." in the .CAS importer/exporter menu and a window will pop-up to search trough all files on your computer. Previously in this guide, you have unpacked all files and your created a new skeleton called "fs_foot_archer_belt_bag". The animation we want to edit is named "LID_61 Archer stand ready to aim FASTER.CAS" and you can find it in "RTW\Data\animations\data\animations\fs_foot_archer_belt_bag\fs_foot_archer". The name of this animation explains what it does. I splitted the name in a few sections and gave each section it's own colour, so you can clearly see that it says "Archer" which means it is about about an animation for an archer. Then it says "stand ready" which is the starting position of the animation. and "aim" which is ending position of the animation.

    When you have loaded the animation, you will see the archer changed its position to this ("stand ready"):



    Just above the time-line there is a slider with the text "1/39". (Note that the 39 likely is slightly different number in your case. Don't bother about that, we'll change that later anyway) This means, that the currently show moment in time, is frame 1 of the 39 frames in total. You can move this slider to the right or left. By doing so, you should notice the position of the unit will change. at frame 39/39 you will see that the archer is ready to aim.

    Ok, we're now ready to start editing the animation!

    The total number of frames used for the animation as it is now, isn't enough for the unit to grab an arrow. This means we have to lengthen the total duration of the animation a bit. A bit back I posted an image with all buttons you were going to use. Now you should right-click somewhere in upper half of the red box with number 7 (time-line controls buttons). If you right-clicked on the right place, then this window will appear:



    In the third section from the top (called "Animation"), you see a text box for the start and the end-time of the animation. Make sure the end-time is set to 40. This will give us enough frames to properly display our new animation.

    A few important "rules" for animations:
    - Make sure you use realistic movements of body parts. An elbow can for example only move in one direction. If you don't do this, the final animation will look very unrealistic.
    - Carefully decide how long certain actions take to perform. If it's too slow or too fast, it will ones again look very unrealistic.
    - If you're not sure if certain movements are possible, then don't be afraid to try it yourself. Maybe even go and stand in front of a mirror to accurately recreate your own movements. (you'll also get a good feeling for how much time an action takes)
    - Like in reality, bones can not grow (ok, kids do grow but guys of 30 don't). So all changes you make to an animation, should be based on joints in the bones/skeleton (I'll get back to that)

    A very important thing to do now, is to activate the Auto Key function. This tool of 3ds Max helps you with creating animations. You for example don't have to create each frame separately, but if you set the start and end positions of a movement, 3ds Max will automatically calculate all steps that have been done to move from A to B. You can activate this function by clicking on the "Auto Key" button (number 6). When you have done this, 3ds Max will keep track of all changes you make. (Note: when turned on, a large red bar will appear just above the time-line)

    In order not to mess up the existing cohesion between various animations, it is important to preserve the start and end states of the model. Everything in between can be deleted. Here's how to do that:

    With the Auto Key still turned on, drag a box around the model to select everything. Then inside your time-line there will appear red and green boxes (see image below). Each box indicates that there is an action specified at that moment in time.



    Since we're going to create a brand new animation, all those actions can be deleted, except for the first and the last action!

    To easy delete those actions (without having to delete them one by one), click on the second action and press the Delete key on your keyboard. Now from that gap, you can drag a box around all the remaining action (except the first and the last!) (see image below) and delete them as well.


    ---------


    Since we added some more frames to the end of the animations, we have to move the last action to the end of the time-line. Do this by clicking on it and then drag it to the end (see image below).



    When you now move the slider back and forward, you will notice the model changes from the starting position slowly until it has reached the ending position.


    Ok, we now have a new animation for an archer, but it doesn't do much yet. We still want it to grab an arrow from the bag and then stretch the bowstring.

    Before we start changing the models position, we have to define a good moment in time for certain intermidiate stages. Thw two most obvious ones (besides the start and end position) are:

    1. When the hand reaches the bag to grab an arrow
    2. When the hand reaches the bow to stretch the bowstring

    Lets start with putting the first one at frame 11 and the second one at frame 26. Later on you can always redefine them if needed.

    Move the slider until it says "11/39" and make sure the Auto Key is still turned on.

    To change the position of the model, we shouldn't change the actual model itself, but instead the bones inside the model. To get to see them, you should first left-click on the body, then right-click and click on "Hide Selection" from the menu (Number 8 on the controls preview image above). This is what you will get to see:



    For this animation we don't need the sword, so just click on it and press the delete key to remove it. Remember not to save your model when you did this because then it won't have a sword anymore, but for the animation it doesn't matter.

    At the top of the window, you can chose the "Rotate" tool (Number 9; the one on the right). With this tool, you can rotate all joints of the skeleton. Now change the position of the right arm until it has its hand at a position where it can grab an arrow. Like this:



    NB: As soon as you make a change to a certain moment in time, a new action box will be added to the time-line to show that a manual change has been made to the animation.

    If you now move the slider from frame 1 to frame 11, you see the hand is moving nicely towards the arrows. However, the archer is already lifting its bow! We don't want that yet. Put the slider back to frame 1 and select the archer left arm like this:



    We want to copy this position of the arm to frame 11, so we are sure the archer didn't move it. To do this, right-click on the slider. When you do that a window will pop-up:



    In the desticantion text box, type "11" and click on OK. The arm will now have the same position on frame 11 as it has on frame 1. Move the slider back and forward to check if everything went ok.

    When playing the entire animation, you'll see things are getting a bit in shape already. but it still isn't perfect yet. After frame 11, the archer moves his arms as straight forward as possible to the end position. But we want that it stretches the bow-string before moving to the end position. A bit up in this tutorial we had already said that the moment where the hand reaches the bowstring is at frame 26.

    A few things we should keep in mind:
    - The bow should not be lifted until the hand has reached the bow string, ready to stretch it.
    - The hand should get as close as possible to the bow string, to make it look like he actually grabs it.
    - This all should happen between the frames 11 and 26.

    I already explained above, how you can copy the position of the arm to another frame. Just do this again, but this time copy it to frame 26. (place the slider at frame 11 -> right-click the slider -> destination frame 26 -> OK)

    Also move the arms to the correct position by using the rotate tool. Remember that arms can break in real life

    In the end frame 26 should look like this:



    If you now move the slider back and forward through the entire time-line, you will see the basics of the animation are now done. All you have to do now, is have some finishing touches to it so things look less static. For example a bit of movement in the head, that he looks down when he searches for an arrow or that his hand doesn't simply come and go past the bag, but actually does something with it. Just play with the whole thing until you are satisfied with the result.

    NB: Sometimes you gain a better/smoother result by removing action points from the time-line than you get by adding more of them. (though at this stage, you can only make it look better by adding more of them, since we're at the very minimum now)

    Tip!
    From time to time, it could be a good idea to right-click in the main window and select "unhide all". If you play the animation with the body visible, you might notice some oddities you otherwise would only see ingame.


    When you are satisfied with the result, press on the "export animation..." button in the .CAS importer/exporter menu (Number 4). And overwrite the animation at "Data\animations\data\animations\fs_foot_archer_belt_bag\fs_foot_archer\LID_61 Archer stand ready to aim FASTER.CAS". If you didn't follow the step 3 to 5 of the unpacking tutorial, make sure to create a back-up of your animation before saving!


    Copying a skeleton (Part II)

    The last few steps before the new animation/skeleton can be tested ingame
    Step 6

    If you closed the animations copier, then re-open it. If you didn't close it, then simply activate the window again.
    Press the button "6) pack all animations" and wait until theDOS window tells you to "press any key"



    Step 7

    The same as step 6, but here you press the last button "7) Pack all skeletons". Ones again you should wait patiently until the DOS window tells you to "Press any key".

    When done, you can close the tool.


    Now with all steps completed, it is almost time for you to test your new animation ingame. You still have to add your new skeleton to DMB. Do this like I explained in Post #2 and use the skeleton name you chose in Step 4 of the unpacking tutorial. In my example this was "fs_foot_archer_belt_bag".

    Just assign this skeleton to any archer you like, like this:
    Code:
    type                barb_archer
    skeleton            fs_foot_archer_belt_bag, fs_foot_archer_belt_bag
    indiv_range         40
    texture             dacia, data/models_unit/textures/unit_barb_warband_archer_dacia.tga
    texture             scythia, data/models_unit/textures/unit_barb_warband_archer_scythia.tga
    texture             slave, data/models_unit/textures/unit_barb_warband_archer_slave.tga
    model_flexi         data/models_unit/unit_warband_archer_high.cas, 8
    model_flexi         data/models_unit/unit_warband_archer_med.cas, 15
    model_flexi         data/models_unit/unit_warband_archer_low.cas, 30
    model_flexi         data/models_unit/unit_warband_archer_lowest.cas, max
    model_sprite        slave, 60.0, data/sprites/slave_barb_archer_sprite.spr
    model_sprite        scythia, 60.0, data/sprites/scythia_barb_archer_sprite.spr
    model_sprite        dacia, 60.0, data/sprites/dacia_barb_archer_sprite.spr
    model_tri           400, 0.5f, 0.5f, 0.5f
    You are now ready to go! Start RTW and enjoy your new animation!
    Last edited by Pat89; December 25, 2009 at 05:17 AM.

  4. #4

    Default How to add bones to a skeleton

    How to add bones to a skeleton

    WIP Dummy 3
    Last edited by Pat89; December 21, 2009 at 03:14 AM.

  5. #5

    Default How to edit skeletons

    How to edit skeletons

    All credit for the below go to Wlesmana!

    In future I hope to be able to re-write the tutorial to a more basic level with examples and maybe even a tool.

    Originally posted by Wlesmana

    For a good part of the year or so, I have been working closely with Knight Errant, a programmer who wrote tools for M2TW modding, on cracking the ever elusive skeleton file of RTW.

    First of all, let's review a bit about RTW's skeleton and animation system.
    In data/animations folder, you get these files:
    pack.dat
    skeleton.dat
    pack.idx
    skeleton.idx

    In these files, if you extract from them, you get the skeleton files such as fs_dagger, fs_archer, etc, and the animations (inside the data/animations folder in this folder) such as LIS 01 Stand Idle.cas. A brief explanation of what these are:

    - Skeletons contains the location of bones, how many there are and entries on which animation to trigger during specific events such as attacking, dying, running, etc.

    - Animation files, while also in the CAS format, is different than the CAS file for models. In this, the file only contains ROTATIONS of the bones. There is no data on the location of the bone or the animation of movement (except Scene Root).

    To edit animations and skeletons, we must first extract them using Vercingetorix's XIDX tool. You will get all the skeletons (fs_swordsman, fs_archer, etc) and the animations (in the data folder). anim_list.txt is the list of animation CAS files to re-pack and list.txt is the list of skeletons to re-pack. Any changes made must be re-packed, otherwise they won't register since the game only reads the .dat and .idx files.

    We can create a "new" skeleton by copying an existing skeleton (i.e. copy fs_swordsman into fs_backward_spear) then using Vercingetorix's XIDX tool, we can hack into it and replace certain lines. For instance, when hacking fs_swordsman, we can replace the line:
    data/animations/LIS 18_03 Stabbing downwards
    with
    data/animations/LIJ 07 Javlin throw_FASTER.cas


    This would replace the animation of stabbing with the animation of throwing the javelin. HOWEVER, the sound triggers will not change because we cannot alter that with Verc's XIDX. Replacing entries is about the limit of XIDX.

    With that in mind, here are the basic problems with RTW animation and skeleton system:

    1. You cannot add new bones, as in you cannot make a new skeleton type. Sure, you can export new bones on your model, or even export new animations with that new skeleton. But the game cannot recognize it because the skeleton file, the fs_whatever, will not accept the new bones. Case in point, fs_slinger_new, which has one extra bone. You cannot use the slinger's model on any other skeleton without first exporting it WITHOUT the extra bone, nor can you use the fs_slinger_new skeleton on any other model without first exporting the model WITH the extra bone. If you want to see this problem, try changing the skeleton type in DMB for slingers then see how they look in-game.

    2. You cannot re-arrange bones. You're stuck with whatever skeletons already existed because in order to create "new" skeletons, you must copy from an existing fs_whatever. The animations also does not contain any positions of the bones, only their rotations (except for Scene Root). So far, with Vercingetorix's tool, you can only hack into the skeleton file and change animation entries.

    3. You cannot add or remove sound triggers. Originally this is done via EVT files. But the skeleton does not care for this EVT files which contains the sound file's name and the time it is to be triggered. This is dilemmatic for my mod, where the wargs sound like horses because they use the same skeleton thus having the same sound triggers. You either use the horse sounds or none at all. The problem lies, again, in fs_whatever skeleton file.

    4. You cannot mount riders on any other skeleton that does not already be designated as mounts. These are elephants, horses and camels (cavalry). You cannot put riders on dogs, pigs and humans even if you identify them as cavalry. For instance, my wargs use the skeleton of a horse but with new animations. My trolls are using human skeleton but listed as elephant, therefore the "crew" on this elephant is "missing", as in the game engine will not render them. This is because non-cavalry skeletons do not have a "mount bone", as I call it, a bone designated to be the mounting point. If you want to see this, just use the wardog entry in DMB and use it as a mount. The rider will be missing until the mount is killed, then the rider will pop into existence and start the death animation.

    5. Incompletions of some skeletons. For instance, fs_archer cannot engage in melee (thus an archer DMB entry has 2 skeletons: fs_archer, fs_dagger) while fs_slinger_new could (the entry is fs_slinger_new, fs_slinger_new). But fs_slinger_new has no "battle reaction" animations. It's missing dodging, feigning and blocking. They just don't trigger and the soldier just stands there. You can't do anything since you can't add triggers, or even remove them.

    Now, all of the problems stated above has been resolved, with a new tool written by Knight Errant. The tool is still in experimental stage and it requires a great deal of knowledge of the animations system and manual work to use it though. So I will try to share whatever knowledge and information I managed to extort from it.

    NOTE: Keep in mind that this thread will focus on the skeleton editing and NOT on animations, packing or other parts of modding. Please do not clutter the thread with general questions about animating in MAX, modeling and those other stuff. There are already tutorial threads on those aspects of modding.

    This the tool: RTWskeletonconverter
    It requires you to have Python installed.
    Put it in data/animation where you have all of the skeletons for easier use. This tool can do 2 things:
    1. It will read, for instance, fs_dagger and create fs_dagger.txt. In other words, it converts the skeleton file into a text file which you can read and alter.
    2. It can convert the text file back into skeleton file. For instance, you modified fs_dagger.txt and renamed it fs_twoknives.txt. The toll will convert it into fs_twoknives_modified. The "_modified" addition is done to keep it from overiding an existing skeleton by mistake.

    Ok, now let's crack open fs_dagger and get fs_dagger.txt. If you open it up, you will see this:
    Code:
      +1.0000000
    19
      0   0   0  63   0   0   0   0   +0.0000000   +0.0000000   +0.0000000    -1
    114   0 109  97   0   0   0   0   +0.0952390   +0.0007523   +0.0000001     0
      0   0   0   0   0   0   0   0   +0.0234129   -0.4646038   -0.0049952     1
    114   0 109  97   0   0   0   0   +0.0231562   -0.4006252   -0.0124050     2
     32   0  32  32   0   0   0   0   -0.0000000   +0.2124624   -0.0000000     0
     71   1   0   0   0   0   0   0   -0.0002945   +0.2115581   +0.0000000     4
     59   1  59  59   0   0   0   0   -0.0000617   +0.2349734   +0.0000000     5
     59   0  59  59   0   0   0   0   +0.0040140   -0.0843266   -0.2039877     5
     59   0  59  59   0   0   0   0   +0.0000000   -0.2602941   -0.0697457     7
     59   0  32  65   0   0   0   0   +0.0000000   -0.2600267   -0.0696740     8
     10   0  59  13   0   0   0   0   +0.1786139   +0.0782279   -0.0239007     5
     59   0  59  59   0   0   0   0   +0.3022083   +0.0110892   -0.0137860    10
     59   0  59  59   5   0   0   0   +0.2838367   -0.0030067   +0.0263546    11
     59   0  59  59   0   0   0   0   -0.1780248   +0.0782278   -0.0239007     5
     78   0  95  66   0   0   0   0   -0.3022082   +0.0110892   -0.0137860    13
      0   0  65  78   4   0   0   0   -0.2838367   -0.0030065   +0.0263547    14
     66   0  69  78   0   0   0   0   -0.0952390   +0.0007524   +0.0000000     0
     77   0  13  10   0   0   0   0   -0.0234127   -0.4646038   -0.0049953    16
    116   0 109  97   0   0   0   0   -0.0231561   -0.4006253   -0.0124050    17
      0   0   0  63 
    150
    data/animations/LID_01_Standing~idle~new~actor.cas                                0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0   0    
    data/animations/LID_01_Incidental_idle~01.cas                                     0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     5  0  0  0 14  0 14  0 scratch_head              0  0  0    
    data/animations/LID_01_Incidental_idle~02.cas                                     0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     5  0  0  0  6  0  6  0 clear_throat              0  0  0    
    data/animations/LID_01_Incidental_idle~03.cas                                     0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     1  0  0  0  4  0  8  0 ANIM_IDLE_CLOTH           0  1  0    
    data/animations/LID_01_Incidental_idle~04.cas                                     0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     5  0  0  0  9  0  9  0 neck_crack                0  0  0 
     5  0  0  0 10  0 14  0 stretch_arms              0  1  0    
    data/animations/LID_01_Incidental_idle~05.cas                                     0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     5  0  0  0  7  0  7  0 neck_crack                0  0  0 
     5  0  0  0  8  0 12  0 stretch_back              0  1  0    
    data/animations/LID_01_Incidental_idle~06.cas                                     0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     5  0  0  0  8  0  8  0 neck_crack                0  0  0 
     5  0  0  0 10  0 12  0 stretch_arms              0  1  0    
    data/animations/LID_01_Incidental_idle~07.cas                                     0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     5  0  0  0  2  0  2  0 stretch_arms              0  0  0    
    data/animations/LID_01_Incidental_idle~08.cas                                     0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     5  0  0  0  4  0  4  0 sneeze                    0  0  0    
    data/animations/LID_01_Incidental_idle~09.cas                                     0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     5  0  0  0 16  0 16  0 scratch_head              0  0  0    
    data/animations/LID_08_Stand~2~90~right.cas                                       0  16383        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      3   
     2  0  0  0 12  0 16  0 unit_march                0  1  0 
     2  0  0  0 20  0 26  0 unit_march                0  1  0 
     2  0  0  0 30  0 32  0 unit_march                0  1  0    0 
    data/animations/LID_09_Stand~2~90~left.cas                                        0  49153        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0 10  0 14  0 unit_march                0  1  0 
     2  0  0  0 20  0 24  0 unit_march                0  1  0    0 
    data/animations/LID_34~stand~2~March.cas                                          0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0 16  0 20  0 unit_march                0  1  0 
     2  0  0  0 26  0 30  0 unit_march                0  1  0    
    data/animations/LID_03~March~loop.cas                                             0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0  6  0 10  0 unit_march                0  1  0 
     2  0  0  0 16  0 20  0 unit_march                0  1  0    
    data/animations/LID_36~March~2~stand.cas                                          0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0  6  0  8  0 unit_march                0  1  0 
     2  0  0  0 12  0 14  0 unit_march                0  1  0    0 0 0 
    data/animations/LID_35~Stand~2~Run.cas                                            0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      3   
     2  0  0  0 12  0 16  0 unit_run                  0  1  0 
     2  0  0  0 18  0 22  0 unit_run                  0  1  0 
     2  0  0  0 25  0 27  0 unit_march                0  1  0    
    data/animations/LID_04~Run~Loop.cas                                               0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0  5  0  6  0 unit_run                  0  1  0 
     2  0  0  0 10  0 11  0 unit_run                  0  1  0    
    data/animations/LID_39~Run~2~Stand.cas                                            0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      5   
     2  0  0  0  6  0  8  0 unit_run                  0  1  0 
     2  0  0  0 14  0 16  0 unit_run                  0  1  0 
     2  0  0  0 22  0 24  0 unit_run                  0  1  0 
     2  0  0  0 28  0 32  0 unit_march                0  1  0 
     2  0  0  0 34  0 38  0 unit_march                0  1  0    
    data/animations/LID_40~Run~2~march.cas                                            0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      3   
     2  0  0  0  6  0  8  0 unit_run                  0  1  0 
     2  0  0  0 14  0 16  0 unit_run                  0  1  0 
     2  0  0  0 24  0 28  0 unit_march                0  1  0    
    data/animations/LID_38~March~2~Run.cas                                            0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      3   
     2  0  0  0  8  0 12  0 unit_march                0  1  0 
     2  0  0  0 14  0 18  0 unit_march                0  1  0 
     2  0  0  0 24  0 26  0 unit_run                  0  1  0    
    data/animations/LID_48_Standing~ready~2~STAND.cas                                 0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     2  0  0  0 14  0 15  0 unit_march                0  0  0    
    data/animations/LID_02_Standing~Ready.cas                                         0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0   0 0 0 0 0 0 0 0 0 0 0 0    
    data/animations/LIS~10~stand~ready~turn~90~right.cas                              0  16384        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0  6  0  7  0 unit_march                0  1  0 
     2  0  0  0  8  0  9  0 unit_march                0  1  0    
    data/animations/LIS~11~stand~ready~turn~90~left.cas                               0  49152        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0  6  0  7  0 unit_march                0  1  0 
     2  0  0  0  8  0  9  0 unit_march                0  1  0    
    data/animations/LID_33_STAND~2~Standing~ready.cas                                 0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     2  0  0  0  6  0 10  0 unit_march                0  1  0    
    data/animations/LID_50_Stand~Ready~2~Adance.cas                                   0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     2  0  0  0 24  0 28  0 unit_march                0  1  0    
    data/animations/LID_07_Adance.cas                                                 0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0 12  0 16  0 unit_march                0  1  0 
     2  0  0  0 28  0 32  0 unit_march                0  1  0    
    data/animations/LID_45_Advance~2~Stand~Ready.cas                                  0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     2  0  0  0 12  0 16  0 unit_march                0  1  0    
    data/animations/LID_49~Stand~ready~2~Retreat.cas                                  0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     2  0  0  0 22  0 24  0 unit_march                0  1  0    
    data/animations/LID_06_Retreat.cas                                                0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0 16  0 20  0 unit_march                0  1  0 
     2  0  0  0 30  0 36  0 unit_march                0  1  0    
    data/animations/LID_44_Retreat~2~Stand~Ready.cas                                  0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     2  0  0  0 15  0 15  0 unit_march                0  0  0    
    data/animations/LID_25_Shuffle~forward.cas                                        0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0  7  0  7  0 unit_march                0  0  0 
     2  0  0  0 12  0 12  0 unit_march                0  0  0    
    data/animations/LID_26_Shuffle~back.cas                                           0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0  8  0  8  0 unit_march                0  0  0 
     2  0  0  0 14  0 14  0 unit_march                0  0  0    
    data/animations/LID_27_Shuffle~left.cas                                           0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0 11  0 11  0 unit_march                0  0  0 
     2  0  0  0 16  0 16  0 unit_march                0  0  0    
    data/animations/LID_28_Shuffle~Right.cas                                          0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0  9  0  9  0 unit_march                0  0  0 
     2  0  0  0 16  0 16  0 unit_march                0  0  0    0 0 0 0 0 
    data/animations/LID_18_Stabbing~move~downwards~45.cas                             0      0      214  99 137  63   172  28 218 190   221 224 151  63   246  29 206 204   204  63  14   0    86  97  14  62    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     1  0  0  0 12  0 12  0 ANIM_SWOOSH               0  0  0 
     1  0  0  0 14  0 16  0 ANIM_SCRAPE               0  1  0    
    data/animations/LID_19_Slashing~Downwards~45.cas                                  0      0      153 114 233 190   106 188 244 190   234  78 196  63    58 244 206 204   204  63  15   0   194 210 131  62    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     1  0  0  0 14  0 14  0 ANIM_SWOOSH               0  0  0 
     1  0  0  0 15  0 16  0 ANIM_SCRAPE               0  1  0    
    data/animations/LID_12~horizontla~stab~attack.cas                                 0      0      192 177  46  62   205 204 140  62   236 161 203  63    90   4 205 204   204  63  12   0   149  28 205  62    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     1  0  0  0 10  0 10  0 ANIM_SWOOSH               0  0  0 
     1  0  0  0 12  0 14  0 ANIM_SCRAPE               0  1  0    
    data/animations/LID_13_Slashing~Attack~Horizontal.cas                             0      0      101 119 222  61   188 116 147  60   213  83 204  63   197   2 205 204   204  63  14   0    98  25 189  62    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     1  0  0  0 12  0 16  0 ANIM_SCRAPE               0  1  0 
     1  0  0  0 12  0 12  0 ANIM_SWOOSH               0  0  0    
    data/animations/LID_15_Stabbing~upwards~45.cas                                    0      0      132 229 183  62   154 153 153  63   183 146 199  63    58   9 206 204   204  63  12   0   226  98 144  62    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     1  0  0  0  8  0  8  0 ANIM_SWOOSH               0  0  0 
     1  0  0  0 10  0 12  0 ANIM_SCRAPE               0  1  0    
    data/animations/LID_16_slashing~upwards~45.cas                                    0      0      205 189  13 191   248  83 147  63   147  37 192  63   154 241 205 204   204  63  14   0     2  82  36  63    28   7  74 127    +0.0000  +0.0000  +1.0000 
      3   
     4  0  0  0 10  0 12  0 INDIVIDUAL_ATTACK_GRUNT   0  1  0 
     1  0  0  0 14  0 14  0 ANIM_SWOOSH               0  0  0 
     1  0  0  0 14  0 18  0 ANIM_SCRAPE               0  1  0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
    data/animations/LIS~Run~attack.cas                                                0      0      149 241 225 190   180 200 118 190    51 219 196  63   157 244 205 204   204  63  10   0   185 203  49  64    28   7  74 127    +0.0000  +0.0000  +1.0000 
      6   
     4  0  0  0  1  0  5  0 INDIVIDUAL_ATTACK_SCREAM  0  1  0 
     2  0  0  0  4  0  6  0 unit_run                  0  1  0 
     1  0  0  0  8  0  8  0 ANIM_SWOOSH               0  0  0 
     1  0  0  0  9  0 11  0 ANIM_SCRAPE               0  1  0 
     2  0  0  0 10  0 12  0 unit_run                  0  1  0 
     2  0  0  0 16  0 18  0 unit_run                  0  1  0    0 0 0 
    data/animations/DIE~02_03~stabbed~dying~forwards.cas                              0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     4  0  0  0  2  0  2  0 INDIVIDUAL_DEATH          0  0  0 
     2  0  0  0 46  0 46  0 fall                      0  0  0    
    data/animations/DIE~Forwards.cas                                                  0  18210        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     4  0  0  0  2  0  2  0 INDIVIDUAL_DEATH          0  0  0 
     2  0  0  0 15  0 15  0 fall                      0  0  0    
    data/animations/DIE~02_01~dying~backwards.cas                                     0  32990        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     4  0  0  0  2  0  2  0 Death_Cry                 0  0  0 
     2  0  0  0 11  0 11  0 fall                      0  0  0    
    data/animations/DIE~01~dying~Backwards2.cas                                       0  23260        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     4  0  0  0  2  0  2  0 INDIVIDUAL_DEATH          0  0  0 
     2  0  0  0  6  0  6  0 fall                      0  0  0    
    data/animations/DIE~01~dying~to~his~right.cas                                     0  12923        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     4  0  0  0  2  0  2  0 INDIVIDUAL_DEATH          0  0  0 
     2  0  0  0 12  0 12  0 fall                      0  0  0    
    data/animations/DIE~Back~right.cas                                                0  32944        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     4  0  0  0  2  0  2  0 INDIVIDUAL_DEATH          0  0  0 
     2  0  0  0  8  0  8  0 fall                      0  0  0    0 0 
    data/animations/Flailing~Cycle.cas                                                0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     4  0  0  0  0  0  2  0 Fall_Scream               0  1  1    
    data/animations/Flailing~Cycle~to~land.cas                                        0  22126        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     1  0  0  0  2  0  2  0 ANIM_FALL_SQUASH          0  0  0 
     4  0  0  0  4  0  4  0 INDIVIDUAL_FALL_GRUNT     0  0  0    0 
    data/animations/man_trampled_down_roll_from_front.CAS                             0  19220        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      3   
     4  0  0  0  2  0  2  0 Death_Cry                 0  0  0 
     2  0  0  0 10  0 10  0 fall                      0  0  0 
     2  0  0  0 20  0 20  0 fall                      0  0  0    0 0 0 0 
    data/animations/LID_Charge~Death.cas                                              0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      4   
     2  0  0  0  4  0  4  0 unit_run                  0  0  0 
     2  0  0  0  9  0  9  0 unit_run                  0  0  0 
     4  0  0  0 10  0 10  0 Death_Cry                 0  0  0 
     2  0  0  0 16  0 16  0 fall                      0  0  0    0 
    data/animations/LID_05_Charge.cas                                                 0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0  4  0  6  0 unit_run                  0  1  0 
     2  0  0  0  9  0 11  0 unit_run                  0  1  0    
    data/animations/LID_51~stand~ready~2~charge.cas                                   0  60170        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      4   
     4  0  0  0  0  0 10  0 Inviduals_Charge          0  1  0 
     2  0  0  0 18  0 22  0 unit_march                0  1  0 
     2  0  0  0 24  0 26  0 unit_run                  0  1  0 
     2  0  0  0 28  0 28  0 unit_run                  0  1  0    0 
    data/animations/LID_41~Run~2~charge.cas                                           0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      3   
     4  0  0  0  0  0 10  0 Inviduals_Charge          0  1  0 
     2  0  0  0  4  0  6  0 unit_run                  0  1  0 
     2  0  0  0 10  0 12  0 unit_run                  0  1  0    
    data/animations/LID_42~charge~2~stand~ready.cas                                   0   5366        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      6   
     1  0  0  0  0  0  0  0 ANIM_ARCHER_AIM           0  0  0 
     2  0  0  0  4  0  4  0 unit_run                  0  0  0 
     2  0  0  0 10  0 10  0 unit_run                  0  0  0 
     2  0  0  0 14  0 14  0 unit_run                  0  0  0 
     2  0  0  0 18  0 20  0 unit_march                0  1  0 
     2  0  0  0 22  0 22  0 unit_march                0  0  0    
    data/animations/LID_21_Charge~attack.cas                                          0   5486      184 193  17 190   250 126 106  62   234 252 203  63    95 252 204 204   204  63  16   0   106 148 119  64    28   7  74 127    +0.0000  +0.0000  +1.0000 
     10   
     4  0  0  0  2  0 14  0 INDIVIDUAL_ATTACK_SCREAM  0  1  0 
     2  0  0  0  4  0  6  0 unit_run                  0  1  0 
     2  0  0  0  8  0 10  0 unit_run                  0  1  0 
     1  0  0  0 13  0 13  0 ANIM_SWOOSH               0  0  0 
     2  0  0  0 14  0 16  0 unit_run                  0  1  0 
     1  0  0  0 17  0 19  0 ANIM_SCRAPE               0  1  0 
     2  0  0  0 18  0 20  0 unit_run                  0  1  0 
     2  0  0  0 26  0 28  0 unit_march                0  1  0 
     2  0  0  0 31  0 33  0 unit_march                0  1  0 
     2  0  0  0 34  0 36  0 unit_march                0  1  0    
    data/animations/LID_21_Charge~Jump~attack.cas                                     0   3596        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0  21   0   112   6 132  64    28   7  74 127    +0.0000  +0.0000  +1.0000 
      6   
     2  0  0  0  4  0  4  0 unit_run                  0  0  0 
     4  0  0  0  8  0  8  0 Attack_Scream             0  0  0 
     1  0  0  0 16  0 16  0 ANIM_SWOOSH               0  0  0 
     1  0  0  0 20  0 20  0 ANIM_SCRAPE               0  0  0 
     2  0  0  0 20  0 20  0 unit_run                  0  0  0 
     2  0  0  0 21  0 21  0 unit_run                  0  0  0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
    data/animations/LID~82~stand~to~hide.cas                                          0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/LID~83~hide.cas                                                   0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/LID~84~hide~to~stand.cas                                          0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/LID_32~Stand~ready~back~impact.cas                                0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     4  0  0  0  2  0  2  0 INDIVIDUAL_GRUNT          0  0  0 
     2  0  0  0  4  0  6  0 unit_march                0  1  0    
    data/animations/LID_32M~Stand~ready~back~impact.cas                               0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      3   
     4  0  0  0  2  0  4  0 INDIVIDUAL_GRUNT          0  1  0 
     2  0  0  0  6  0  8  0 unit_march                0  1  0 
     2  0  0  0  8  0 10  0 unit_march                0  1  0    
    data/animations/LID_32~Stand~ready~back~right~impact.cas                          0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     4  0  0  0  2  0  2  0 INDIVIDUAL_GRUNT          0  0  0    
    data/animations/LID_32M~Stand~ready~back~right~impact.cas                         0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0  6  0  6  0 unit_march                0  0  0 
     4  0  0  0  6  0  6  0 INDIVIDUAL_GRUNT          0  0  0    
    data/animations/LID_32~Stand~ready~front~impact.cas                               0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     4  0  0  0  4  0  4  0 INDIVIDUAL_GRUNT          0  0  0    
    data/animations/LID_32M~Stand~ready~front~impact.cas                              0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      3   
     4  0  0  0  2  0  2  0 INDIVIDUAL_GRUNT          0  0  0 
     2  0  0  0  6  0  6  0 unit_march                0  0  0 
     2  0  0  0  8  0  8  0 unit_march                0  0  0    
    data/animations/LID_32~Stand~ready~front~left~impact.cas                          0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     4  0  0  0  2  0  2  0 INDIVIDUAL_GRUNT          0  0  0    
    data/animations/LID_32M~Stand~ready~front~left~impact.cas                         0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     4  0  0  0  4  0  4  0 INDIVIDUAL_GRUNT          0  0  0    
    data/animations/Ladder_02~Climb~down.cas                                          0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0  6  0  6  0 unit_march                0  0  0 
     2  0  0  0 14  0 14  0 unit_march                0  0  0    
    data/animations/Ladder_03~Idle~still.cas                                          0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/Ladder_01~Climb~up.cas                                            0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0  6  0  6  0 unit_march                0  0  0 
     2  0  0  0 14  0 14  0 unit_march                0  0  0    
    data/animations/LID_53~Stand~idle~~to~climb~ladder.cas                            0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0 12  0 12  0 unit_march                0  0  0 
     2  0  0  0 20  0 20  0 unit_march                0  0  0    
    data/animations/LIS_102~Battlement~2~climb~ladder~leftside.cas                    0  58739        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      3   
     2  0  0  0  9  0  9  0 unit_march                0  0  0 
     2  0  0  0 22  0 22  0 unit_march                0  0  0 
     2  0  0  0 32  0 32  0 unit_march                0  0  0    
    data/animations/LID_54~Climb~off~ladder~onto~left~bat~left~2~standready.cas       0   7673        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0 12  0 12  0 unit_march                0  0  0 
     2  0  0  0 20  0 20  0 unit_march                0  0  0    
    data/animations/LID_56_Climb~down~ladder~2~Stand~ready.cas                        0   7673        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0  7  0  7  0 unit_march                0  0  0 
     2  0  0  0 20  0 20  0 unit_march                0  0  0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
    data/animations/carry_and_artillery/LIS~idle~to~Carry~idle.cas                    0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/Carry_01~Stand~idle~empty~hands.cas           0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/Carry~idle~to~Stand~LIS~idle.cas              0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/Carry_08~Empty~hands~2~carry~object.cas       0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     5  0  0  0 26  0 30  0 exert                     0  1  0    
    data/animations/carry_and_artillery/Carry_02~Stand~carrying~object.cas            0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/Carry_04~Stand~2~walk~carrying~object.cas     0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     2  0  0  0 16  0 20  0 unit_march                0  1  0    
    data/animations/carry_and_artillery/Carry_03~Walk~carrying~object.cas             0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0  6  0 10  0 unit_march                0  1  0 
     2  0  0  0 20  0 24  0 unit_march                0  1  0    
    data/animations/carry_and_artillery/Carry_05~walk~2~stand~carrying~object.cas     0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     2  0  0  0 10  0 14  0 unit_march                0  1  0    
    data/animations/carry_and_artillery/Carry_09~Carry~object~2~Empty~hands.cas       0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     5  0  0  0 34  0 40  0 relief                    0  1  0    
    data/animations/carry_and_artillery/Art_17~Stand~2~Push~heavy~object.cas          0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      3   
     2  0  0  0 26  0 28  0 unit_march                0  1  0 
     5  0  0  0 26  0 32  0 exert                     0  1  0 
     2  0  0  0 84  0 86  0 unit_march                0  1  0    
    data/animations/carry_and_artillery/Art_18~Push~heavy~object~loop.cas             0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      3   
     5  0  0  0  1  0 13  0 exert                     0  1  0 
     2  0  0  0  6  0  8  0 unit_march                0  1  0 
     2  0  0  0 12  0 13  0 unit_march                0  1  0    
    data/animations/carry_and_artillery/Art_19~Push~heavy~object~2~STAND.cas          0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      3   
     2  0  0  0 16  0 20  0 unit_march                0  1  0 
     5  0  0  0 20  0 26  0 relief                    0  1  0 
     2  0  0  0 32  0 35  0 unit_march                0  1  0    
    data/animations/carry_and_artillery/Art_20~stand~2~~Pull.cas                      0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      5   
     2  0  0  0 16  0 20  0 unit_march                0  1  0 
     2  0  0  0 34  0 38  0 unit_march                0  1  0 
     5  0  0  0 46  0 52  0 exert                     0  0  0 
     2  0  0  0 65  0 67  0 unit_march                0  0  0 
     2  0  0  0 78  0 80  0 unit_march                0  1  0    
    data/animations/carry_and_artillery/Art_21~Pull~loop.cas                          0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      3   
     2  0  0  0  6  0 10  0 unit_march                0  1  0 
     5  0  0  0 12  0 12  0 2                         0  1  0 
     2  0  0  0 12  0 14  0 unit_march                0  1  0    
    data/animations/carry_and_artillery/Art_22~Pull~To~stand.cas                      0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      3   
     2  0  0  0 10  0 14  0 unit_march                0  1  0 
     2  0  0  0 22  0 26  0 unit_march                0  1  0 
     2  0  0  0 38  0 42  0 unit_march                0  1  0    
    data/animations/carry_and_artillery/Art_23~carry~01~2~raise~hand~in~air.cas       0  58845        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/Art_24~~raise~hand~in~air.cas                 0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/Art_25~~raise~hand~to~carry~01.cas            0   6638        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/Art_26~carry~01~2~raise~hand~in~air.cas       0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/Art_27~raised~hand~in~air~loop.cas            0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/Art_28~raised~hand~to~carry~01.cas            0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/ballista_crew_left_stand2crank.CAS            0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     2  0  0  0 18  0 22  0 unit_march                0  1  0    
    data/animations/carry_and_artillery/ballista_crew_left_crank_loop.CAS             0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/ballista_crew_left_fire_idle.CAS              0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/ballista_crew_right_stand_2_crank.CAS         0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     2  0  0  0 34  0 36  0 unit_march                0  1  0    
    data/animations/carry_and_artillery/ballista_crew_right_crank_loop.CAS            0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/ballista_crew_right_fire_idle.CAS             0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/scorpion_crew_01_stand2crank.CAS              0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     2  0  0  0 11  0 13  0 unit_march                0  1  0    
    data/animations/carry_and_artillery/scorpion_crew_02_crank.CAS                    0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/scorpion_crew_03_crank2fire_idle.CAS          0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/scorpion_crew_04_fire_idle.CAS                0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/scorpion_crew_05_fire_commence.CAS            0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/scorpion_crew_06_fire_recover.CAS             0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/Art_16~Stand~idle~release~crank.cas           0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      4   
     2  0  0  0 16  0 17  0 unit_march                0  1  0 
     2  0  0  0 21  0 23  0 unit_march                0  1  0 
     2  0  0  0 47  0 49  0 unit_march                0  1  0 
     2  0  0  0 58  0 60  0 unit_march                0  1  0    
    data/animations/LIS~01~Front~step.cas                                             0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0  8  0 10  0 unit_march                0  1  0 
     2  0  0  0 19  0 21  0 unit_march                0  1  0    
    data/animations/LIS~01~Back~step.cas                                              0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0  9  0 11  0 unit_march                0  1  0 
     2  0  0  0 20  0 22  0 unit_march                0  1  0    
    data/animations/LIS~01~Left~step.cas                                              0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0  9  0 13  0 unit_march                0  1  0 
     2  0  0  0 20  0 24  0 unit_march                0  1  0    
    data/animations/LIS~01~Right~step.cas                                             0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     2  0  0  0  9  0 13  0 unit_march                0  1  0 
     2  0  0  0 20  0 24  0 unit_march                0  1  0    
    data/animations/LID_94_signal1.CAS                                                0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/LID_97_signal4.CAS                                                0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/LID_95_signal2.CAS                                                0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/LID_96_signal3.CAS                                                0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0   0 0 0 0    
    data/animations/carry_and_artillery/ballista_crew_left_fire_idle.CAS              0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/ballista_crew_left_fire_commence.CAS          0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/ballista_crew_left_fire_recover.CAS           0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     2  0  0  0 33  0 36  0 unit_march                0  1  0    
    data/animations/carry_and_artillery/ballista_crew_right_fire_idle.CAS             0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/carry_and_artillery/ballista_crew_right_fire_commence.CAS         0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     2  0  0  0 16  0 19  0 unit_march                0  1  0    
    data/animations/carry_and_artillery/ballista_crew_right_fire_recover.CAS          0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     2  0  0  0 20  0 23  0 unit_march                0  1  0    
    data/animations/LIS_108_guard_high.CAS                                            0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/LIS_109_guard_low.CAS                                             0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/LIS_112_dodge.CAS                                                 0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/LIS_112_dodge.CAS                                                 0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/LIS_111_feint.CAS                                                 0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     1  0  0  0  3  0  3  0 ANIM_SWOOSH               0  0  0    
    data/animations/LIS_111_feint.CAS                                                 0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     1  0  0  0  3  0  3  0 ANIM_SWOOSH               0  0  0    
    data/animations/LIS_110_combat_step_back.CAS                                      0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     2  0  0  0  7  0  7  0 unit_march                0  0  0    
    data/animations/LIS_113_knockdown_launch.CAS                                      0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     4  0  0  0  2  0  2  0 INDIVIDUAL_GRUNT          0  0  0 
     2  0  0  0 10  0 10  0 fall                      0  0  0    
    data/animations/LIS_116_knockdown.CAS                                             0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      2   
     4  0  0  0  2  0  2  0 INDIVIDUAL_GRUNT          0  0  0 
     2  0  0  0  8  0  8  0 fall                      0  0  0    
    data/animations/LIS_114_knockdown_idle.CAS                                        0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/LIS_115_knockdown_idle_2_Stand_ready.CAS                          0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     2  0  0  0 24  0 24  0 unit_march                0  0  0    
    data/animations/LID_57_06~Taunt~1.cas                                             0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     4  0  0  0 20  0 30  0 Taunting                  0  1  0    
    data/animations/LID_57_04~Taunt~2.cas                                             0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     4  0  0  0 15  0 40  0 Taunting                  0  1  0    
    data/animations/LID_57_07~Taunt~3.cas                                             0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     4  0  0  0 15  0 30  0 Taunting                  0  1  0    0 0 0 0 
    data/animations/Screeching~Woman~Idle.cas                                         0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     1  0  0  0  0  0 20  0 ANIM_SCREECHERS           0  1  1    
    data/animations/Screeching~Woman~Idle2.cas                                        0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     1  0  0  0  0  0 20  0 ANIM_SCREECHERS           0  1  1    
    data/animations/LIS~74_06~celeb2.cas                                              0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      1   
     4  0  0  0 25  0 40  0 Celebration               0  1  0    0 0 0 
    data/animations/LID_swim_STAND2SWIM.CAS                                           0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/LID_swim_SWIM2STAND.CAS                                           0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/LIS_swim_treadwater.CAS                                           0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/LIS_swim.cas                                                      0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/LIS_swim_shuffle_forward.CAS                                      0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/LIS_swim_shuffle_backward.CAS                                     0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/LIS_swim_shuffle_left.CAS                                         0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/LIS_swim_shuffle_right.CAS                                        0      0        0   0   0   0     0   0   0   0   205 204 204  63     0   0   0   0     0   0   0   0     0   0   0   0    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      
    data/animations/LIS_swim_attack.CAS                                               0      0       71  15  49  61     0   0   0   0   170 185 204  63    26   1 206 204   204  63  15   0   182 108 183  61    28   7  74 127    +0.0000  +0.0000  +1.0000 
      0      0 0 
      +1.8240068   +4.9999900   +6.8308988 0 1
    Somewhat daunting, I know. And there's no manual for it too, unlike many text files you can modify in RTW. There are only numbers, which we must try to interpret and explore what they do.

    This is what I have found out about what they mean or might mean:


    A. This is the size of the model. Verc's XIDX can resize a model by multiplying this number and E with the new size. You can use that for easiest resizing, or you can edit this number and the coordinates to get a resize.

    B. This is the number of bones in the model, excluding Scene Root, which technically isn't a bone.

    C. Now this, is still elusize. I have no idea what these numbers do. If they're for some reason does SOMETHING, most of them are unused in fs_slinger_new, which uses 0 instead of a number. So I have no idea what they do. Making them all 0 (which I did try) doesn't appear to change anything on the soldier's behavior, except during the firing of a missile. It's still too hard to notice anything right now.

    D. This is pretty useful. 5 0 0 0 means it's the "right hand" so far only used as an attach point for pikes. Naturally it's on the right hand bone. If you change it to head bone, then pikes for pikemen units will be attached to the soldier's head. Making it all 0 will make pikes attached to Scene Root, aka. the pelvis (yes, it's juvile joy of watching your soldiers "raise" and "lower" his pike). 4 0 0 0 is used on the left hand bone. As of now, I have no idea what this is used for. 1 0 0 0 is the bone designated for the mounting of horse or camel. Basically it means 1 rider per mount and it follows the triggers of a horse type. 2 0 0 0 is used for elephant skeleton, so this is a mounting bone for a skeleton used as elephant. If you used this attribute on another bone, the engine will attach the crew/rider of the mount on that bone. So adding 1 0 0 0 on a bone will enable that skeleton to attach a horse rider on it. I have no idea if 3 0 0 0 is used at all since I couldn't find a skeleton that uses it.

    E. Now this is the main attraction. This is the list of the bone's coordinates in respect to its parent. Changing the values of these will alter the appearance of a skeleton. You can extend arms, or the neck or create an entirely new skeleton.

    F. This is the hierarchy of the bones, which bone is which bone's children, etc. I will explain how to make the list easily later in this post.

    G. Unknown. Doesn't seem to do anything, really. fs_slinger_new and fs_archer even list them as all 0s.

    H. The number of animation entries.

    I. The entry for the animation to use. The list of animation triggers appear to be a set list. You cannot move stand_idle to the bottom and expects the engine to activate that for standing idle. It will always read the first entry as stand_idle. There appears to be a pre-determined set of trigger to be read when the engine reads a skeleton file.

    J. Most of these is unknown. There's little difference between this entry's numbers and the others. There are some exceptions, most notable is the IMPACT FRAME number, where it indicated the frame an impact is supposed to occur when an attack animation is played so the opponent may react accordingly. This one is interesting because during my testing, if you put the impact frame to be 0, then the attack will not commence. If you put impact frame on all attacks to be 0, you will get a unit/soldier that CANNOT attack! Further research required.

    K. This is the number of entries of sound triggers. If there is no sound to be activated, this number is set at 0.

    L. I'm semi-certain the number here corresponds to the type of sound data banks. Further research required.

    M. I'm semi-certain the first number is the frame the sound should start to trigger and the third number is the last frame the sound could trigger. Having the same numbers mean the sound is always triggered at that exact frame, having a range means they could be triggered at any time within the range. Note that this is still my speculation.

    N. The name of the sound file/bank to derive the sound files from. This is what you change if you want this particular skeleton to produce a different sound than the one you copied it from.

    O. This is still unknown. It appears to be relevant but I still don't know what they're for.

    Then, we see this part:


    The "0 0 0" is from fs_dagger, which you cannot use for a missile unit. That "0 0 0" is actually 3 animation triggers that are deactivated, they are missile_aim, missile_hold and missile_fire, which can be seen at the figure below it from fs_archer. I have tested and copied the 3 entries from fs_archer and paste it on fs_dagger to make a new skeleton and it works. I can just use "fs_archerdagger, fs_archerdagger" for entry in DMB instead of "fs_archer, fs_dagger". I am unsure why CA would deactivate some animation triggers. Perhaps there's a limit on the number of triggers? Or perhaps they do it simply to make skeleton files less cluttered, as in less triggers better performance.

    If we compare all of these entries then we find that each skeleton is read in a series of triggers. If the entry is simply "0" then the game would say "There's no entry for it, can't play, let's crash instead!" like if you used "fs_dagger, fs_dagger" for a unit with a missile attack since missile animations are missing from fs_dagger.

    Ok, so let's get to the meat of the possibilities. What are really possible with this tool? Here's an example:



    This is a screenshot of my testing of a completely different skeleton but a very simple one: a snake, which is just a straight line.



    This is the model I quickly made up for this testing.

    I made 1 animation to test and the result can be seen here:



    But what can a new kind of skeleton do for existing models/units? Well, we can now do what M2TW modders already did with adding new bones, like this:



    Note that there is a drawback to this method, meaning the bow cannot be "hidden" by the engine when switching weapons. This is because it is animated, thus will not be read as "primary weapon" stand-alone object. We are also bound by the hardcode: there's a maximum of 24 bones per skeleton. I tried adding more and the game just CTD without error message.

    Even though it only appears I added very few new animations on the archer, in fact ALL of the animations are new. Basically, I had to export every single animation to be used by the new skeleton (with 24 bones instead of the regular 19 bones) because the way the engine reads animations.

    The RTW engine (which I think was rectified in M2TW) reads every bone in the skeleton by a set list. For the regular skeleton RTW use, this is the list:

    bone_pelvis
    bone_abs
    bone_torso
    bone_cloak_top
    bone_cloak_mid
    bone_cloak_bottom
    bone_head
    bone_Lupperarm
    bone_Lelbow
    bone_Lhand
    bone_Rupperarm
    bone_Relbow
    bone_Rhand
    bone_LThigh
    bone_Llowerleg
    bone_Lfoot
    bone_RThigh
    bone_Rlowerleg
    bone_Rfoot

    The list's coordinates can be seen in part E above. If you convert fs_archer and fs_slinger_new you will see the difference. The slinger has an extra bone after bone_Rhand called bone_Weapon. Note that the names of bones are irrelevant. The engine ignores the names and only reads from the list. Meaning if you used a regular skeleton's animation (19 bones) on a slinger (20 bones), the rotation value of bone_Rthigh will be applied to the slinger's bone_Weapon and so on, until the slinger's last bone, bone_Rfoot, receives no rotation. Importing a slinger's animation on a skeleton with less than 20 bones will cause an error on the MAX script. You can easily test this in MAX: open the slinger's model, then import a regular animation, it will show up weird. Now try it again but delete bone_Weapon before importing the same animation. The slinger model should animate normally.

    So making a new skeleton for RTW has its drawback: you have to make every single animation it's going to use. Sure, it's not really that hard since in my case, I just imported existing animations, add in the new bones then export them. Only 3 animations are using the new bones: readying the bow, holding the bow and firing the arrow. It's a time-consuming labor mostly.

    So, in summary, to create a new skeleton, this is what you must do:

    1. Make the model with the new skeleton.
    2. Export it as a CAS model, then press F11.
    3. Copy the data shown by the scipt, this is important.
    4. Make all the new animations you want to use on your new skeleton, export them with all the bones.
    5. Extract all the skeletons and animations.
    6. Pick the closest skeleton you want to use, copy it and rename.
    7. Convert the new skeleton into text file, open it.
    8. At the bone coordinate part and hierarchy, use the data from part 3. However, be sure to convert the coordinates rom (x, y, z) in MAX to (-x, z, -y) for the skeleton.
    9. Change all the animations into the new animations. Change any sound trigger if you want.
    10. Convert the edited skeleton text file into skeleton file. Delete the old one, rename the new one.
    11. Add the new skeleton name in list.txt.
    12. Add all the new animations in anim_list.txt
    13. Repack skeletons and animations.
    14. Use the new skeleton in DMB.

    Now let's get crackin' and figure out what else can we uncover from this!

    Many thanks to Knight Errant for writing this wonderful tool and putting up with my endless nagging for revisions and info.

    PS. Also from Knigh Errant, a fix for Vencingetorix's CAS Export/Import tool here: CAS_IE_b79_modbyKE_ver3.ms
    This updated tool does nothing for the average modder who only deals with models. The fixes are for animations. It fixes the animation glitch where soldiers will not reach their actual destination if the walking animation is edited. They will now reach their intended spots. Also fixed is the glitch where the soldier have to do a 90 degrees turn and the engine cannot turn them partially. They can now do so without glitching. One more glitch still exists though, which is the not-reaching-destination glitch for mounted units.
    Last edited by Pat89; August 30, 2010 at 12:24 PM.

  6. #6
    Kylan271's Avatar Domesticus
    Join Date
    Jul 2007
    Location
    Vietnam
    Posts
    2,235

    Default Re: The Complete Animations Guide

    I do not profess to know about such detailed moddling,but I can see the usefulness to the gaming community,so appreciate the work from all involved. Rep for you in this project & Happy Christmas.


  7. #7

    Default Re: The Complete Animations Guide

    Great job Pat ! We really need an animations tuto !

  8. #8

    Default Re: The Complete Animations Guide

    Quote Originally Posted by Mr.Blackadder View Post
    Great job Pat ! We really need an animations tuto !
    Thanks

    I think I finished the 3ds Max animation section of the tutorial now...

  9. #9
    wlesmana's Avatar ILIKE2MOVEITMOVEIT
    Join Date
    Jul 2005
    Location
    Indonesia
    Posts
    411

    Default Re: The Complete Animations Guide

    Chiming in to add some basic rules to RTW animation editing:
    - RTW engine only reads rotations of the bones. This is important to remember. It will ignore any positioning of the bones as the CAS exporter will just not register it. So work your animations by rotating the bones using the rotation tool, not the position move tool.
    - Only the Scene Root's position is registered by the CAS exporter. Units in battle also move by the Scene Root's position and speed.
    - An animation to be used for RTW MUST end at an odd numbered frame. Do not export an animation ending in an even numbered frame.

  10. #10

    Default Re: The Complete Animations Guide

    Quote Originally Posted by wlesmana View Post
    Chiming in to add some basic rules to RTW animation editing:
    - RTW engine only reads rotations of the bones. This is important to remember. It will ignore any positioning of the bones as the CAS exporter will just not register it. So work your animations by rotating the bones using the rotation tool, not the position move tool.
    - Only the Scene Root's position is registered by the CAS exporter. Units in battle also move by the Scene Root's position and speed.
    - An animation to be used for RTW MUST end at an odd numbered frame. Do not export an animation ending in an even numbered frame.
    Thanks for the input! I added it to post #2

    Re the odd ending of an animation... I didn't know that! Also, I never had any problems with my animations. So either I'm lucky, or maybe it doesn't matter?
    Also, what number should be odd? the 39 of (in this case) "frame 1/39" which shows on the slider:

    here: -------V


    Or the "End Time" in this window:




  11. #11
    wlesmana's Avatar ILIKE2MOVEITMOVEIT
    Join Date
    Jul 2005
    Location
    Indonesia
    Posts
    411

    Default Re: The Complete Animations Guide

    Yea, odd number as in 3, 27, 13, etc. It's more apparent in animations that could loop, such as marching, running, etc.

  12. #12
    Wundai's Avatar Artifex
    Join Date
    Mar 2006
    Location
    Eindhoven
    Posts
    5,332

    Default Re: The Complete Animations Guide

    Well it seems you can post here again, good news

    Drop by the RNJ Dev when you have some time Wles

  13. #13

    Default Re: The Complete Animations Guide

    Interesting reading. +rep.
    Makes me think I ought to do a battlemap environment tutorial at some point.


    Under patronage of Spirit of Rob; Patron of Century X, Pacco, Cherryfunk, Leif Erikson.

  14. #14

    Default Re: The Complete Animations Guide

    Thanks

    Surely a battlemap environment tutorial would be great!

  15. #15

    Default Re: The Complete Animations Guide

    Well done! You deserve praise for the effort you`ve invested into bringing all the info in one place and presenting it in an accessible manner.

  16. #16

    Default Re: The Complete Animations Guide

    Hi! Thanks for the tutorial, it's very useful. I've got 1 question to ask, related with the first and the last frames. If I want to modify them, is there a way to copy the position of the bones to another animation file? So that they fit correctly.
    There are none so enslaved as those who falsely believe they are free

  17. #17

    Default Re: The Complete Animations Guide

    Actually, I was wondering myself that too... But I don't really know how to do that...

    Other than of course create one animation file with all sub-poses each in its own frame and save that somewhere safe. Then base all your animations on that file. But obviously that isn't a very efficient way and it's not compatible with existing animations...

    So the short answer to your question is: sorry, I don't know

  18. #18

    Default Re: The Complete Animations Guide

    No problem... I've just created a new thread at the workshop with this question... I'll let you know if I receive any useful answer
    There are none so enslaved as those who falsely believe they are free

  19. #19

    Default Re: The Complete Animations Guide

    Another thing: I'm receiving the following error message after just edit the archer animations just like you do in the tutorial:

    Spoiler Alert, click show to read: 


    Any idea?
    There are none so enslaved as those who falsely believe they are free

  20. #20

    Default Re: The Complete Animations Guide

    Hmm...

    Are you sure you saved the animation in data/animations/data/animations?

Page 1 of 4 1234 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •