Animation Importer

for 3ds max v5.0+ and gmax 1.2

by TheGhost

As part of Project BlueStreak

The Halo Animation Importer for 3ds max and gmax has been perhaps the biggest programmable undertaking I have attempted so far with my newly acquired programming knowledge. The functionality of this program is something that I and many other Halo modders have only dreamed about being able to achieve. That needed to change. Three weeks of programming (on and off) and 30 pages of code later, such a program is a finally a reality. The features include...

  • Load a Halo animation tag directly from 3ds max or gmax
  • Import animations from any animation tag, including biped, vehicle, weapon, FP, scenery, and cinematic animations
  • Import and export all types of animations, including base, overlay, and replacement animations
  • Export selected or all source animation files from tag into the recompilable (JMA, JMO, JMM, etc.) formats
  • Recompiled animations are identical to the original tags; new animation can seamlessly be added to the animation graph
  • Import animation into scene to bone or biped object rigs
  • Character animations can be interpolated to import on an other rig (i.e. import Elite animations to Cyborg)
  • Optionally import frame info data and extra base frames
  • Intuitive controls and easy use, but powerful functionality

All of this is only a few button clicks away! In seconds you can import any of the following...
(Note: Animated .gif's best viewed in Mozilla Firefox)

Character & Biped Animations:

cyborg_run

First-Person Animations:

ar_reload

Cinematic Animations:

still_door

You can also import vehicle, weapon, scenery, and all other types of animations,
but for the sake of bandwidth, I'll let you import and view those on your own =)

 

Some features

Imports to custom Biped rigs created in 3ds max (left) and bones created by the GBXModel Importer (right):

rig_type

Export source animation data files for re-compilation with the HEK (click to enlarge):

cyborg_soure_small

Optionally import frame info data (left - no frame info, right - with frame info):

without with

The script's GUI looks like this:

gui

You simply load the animation tag, select the animation, and then choose either to import or export it. That's it!
It's incredibly simple to use. All of the hard stuff is taken care of for you. Enjoy!

Download v1.0.3 of the script here.

How to Import an Animation:

  • Set up the correct rig in your scene by creating one yourself or using the GBXModel Importer.
  • Open up the script and click the Load button to load the desired .model_animations tag.
  • Use the drop down list to select the desired animation from the animation tag - typically the "type" would be JMA, JMM, JMZ, or JMW.
  • Click the "Import Animation into Scene" button and watch as the script animates the model!

How to Export a Source Animation File:

  • Open up the script and click the Load button to load the desired .model_animations tag.
  • Use the drop down list to select the desired animation from the animation tag.
  • If you wish to export all of the source animation files, check the "Export All Animations from Tag" checkbox.
  • Click the "Export Animation Data" button. If you are exporting a single animation, it will prompt for the save file location. If you are exporting all of the animations, it will prompt for the directory to save the animations to.
  • Wait a few seconds as the animation files are written! If you are using gmax, retrieve the animation data from the Listener.

Frequently Asked Questions:

Q: What does the "Import Frame Info (dx, dy, dyaw)" checkbox do?

Frame info data defines in an animation tag a change in translation or rotation for each frame. If you import the frame info (for animation types with frame info), the object may animate differently. See the animated .gif file above captioned "Optionally import frame info data" to see how this affects a running animation. With the frame info, the Master Chief moves forward while he runs. Without the frame info data, he stays in one place.

Q: What does the "Import Extra Base Frame" checkbox do?

Compiled animation tags always have one less frame than they do in 3ds max. This is for a number of reasons. If you're planning on re-exporting the animation, you should select this option, which will add an extra base frame at the end, essentially the same as the first frame - in most cases this will make the animation appear to "loop" back to the first farme at the end.

Q: What does the "Import Overlay Default Frame" do?

Essentially the same as the "Import Extra Base Frame", except that the default frame defines the translation and rotation of all of the subsequent frames, so it is essential for re-exporting an overlay animation. Note: Overlay animations do not look correct in 3ds max, but if you re-compile them they will look fine in-game. See the "To-do List" below for more details.

User Feedback:

"I would like to take this moment to thank TheGhost, for rekindling my love for teh HEK.
I never thought this day would come...no more blindly animating, in hopes everything turns out ok...
No one can understand what this awsome utility means to me...
I LOVE YOU BLUESTREAK!!" ~ KiLLa, pioneer of Halo animating

Version History:

  • Version 1.0.0 - First public release.
  • Version 1.0.1 - Fixed a bug which caused an error importing overlay animation on Biped bones. Also added a quick piece of code which takes the Biped out of figure mode, ensuring that the keys are set.
  • Version 1.0.2 - Fixed a segment of code which was not compaitble with gmax.
  • Version 1.0.3 - Modified some code left over from debugging which prevented proper writing of animation data.

To-do List :

  • Attempt to recreate more accurate overlay animations with a given default frame. When the animation is compiled, the default data is lost, and the frame data is interpolated from that default data. To restore the data, a frame to "overlay" the animation on to (like it is in-game) would be required to make it look correct in 3ds max.

 

ghost_small
Last updated August 16, 2006 - pageloads
Intellectual © Adam Papamarcos, 2006