Creating new Animations (3DS MAX)

From OuroDev
Revision as of 18:27, 22 May 2019 by BubbleWrap (talk | contribs)

Introduction

This page intends to document the process to create new animations for the game. It attempts to re-create some of the same steps Cryptic/Paragon would have used to achieve the same goal. You will need a few prerequisites before you will be able to build animations for the game.

  • 3DS Max 2011 (or 2008) Note: I have used and tested 3DS Max 2011
  • Master rig files from the Scrapyarders dump.
  • ANIMX Export Plug-in for 3DS - found in the source and needs to be compiled.
  • GetAnimation2.exe Note: This is the correct version, GetAnimation.exe doesn't use the new anim format
  • SKELX files - These can be generated from game files. Looking for the original files.
  • PIGG packing tool (Piglet, pigg tool from source)

3DS Max

Open 3DS Max and load the master rig file. Create an animation using the rig. (some thing might go wrong later as I used the default animation in the rig) Load the export plugin if you don't have it already loaded: Customize > Manage Plugins > right click > load plugin > find the plugin and open it. Export from 3DS and pick the ANIMX format from the list and saving the file.

You are finished with 3DS at this point.

GetAnimation2

This tool converts the ANIMX file exported from 3DS in to the ANIM file format which the game uses for animation. It is simple to use and only needs a few command line switches to work. For a full reference of flags, go to #Command Line flags Reference.

Before you can convert to ANIM, You will need a SKELX file which can be generated by GetAnimation2. While it says "DO NOT USE" for the -s flag, it can used and it generated the ANIM file without errors (resulting ANIM file untested currently). Once you have SKEL files, you can skip this step.

  • Extract an ANIM file from the pigg files using tool of choice (like Piglet).
  • Run GetAnimation2 -s <extractedfile>.anim This will generate the SKELX file.

To generate the ANIM files, all you need to do is run GetAnimation2 models\<youranimxfile>.animx (It complains about paths, can't remember right now)
Pack this file in to a pigg and test it out.

Command Line flags Reference

-monitor           Continue running and monitor the given folder for animation changes
-prescan           When starting monitor mode scan the hierarchy for files that need processing
-f                 Force all animations to be reprocessed regardless of age comparison
-noperforce        Does not access asset version control system during processing. This can be used to
                     work offline from Perforce. Also handy for development testing.

-e <.anim>         Given a path to a runtime .anim file this will convert it to human readable
                     text files and then quit. Useful for debugging and examining the runtime data.
-s <.anim> <dest>  Given a path to a runtime .anim file this will convert it to source asset
                     files, .SKELX and .ANIMX, placed in the destination.
                     These files can be fed back as source assets or imported to MAX.
                     DEVELOPMENT IN PROGRESS - DO NOT USE!
-batch_src         Start at the current working directory and convert old .WRL associated .anim
                     files to the new source animation formats: .SKELX and .ANIMX.
                     Don't use this command unless you are aware of the files it will overwrite.
                     DEVELOPMENT IN PROGRESS - DO NOT USE!

-?                 Print this help

Notes

Fuzzy_c: I copied the name from an emote and replaced it when testing.
ANIM files have a relation to SKEL files. You can reverse an ANIM file then read the resulting ANIMX file (plain text) to find the SKEL file it used. You can then extract the SKELX file from the SKEL file using the same process as ANIM using the -s flag.

Putting the animation in-game

To test the animations, you can put them in the data folder to override the piggs. I renamed the .anim file and put it at /data/player_library/animations/fem/fem_newspaper.anim. Somewhere inside the anim file is a reference to debug/skel_ready2.anim, so extract a copy of the one that matches where you're putting it (fem/skel_ready2.anim in my case) and put it in debug (/data/player_library/animations/debug/skel_ready2.anim).

Then load the game and read a paper.