0 of 0

File information

Last updated

Original upload

Created by

ehtyeci

Uploaded by

ehtyeci

Virus scan

Safe to use

Tags for this mod

About this mod

Custom 3rd person power armor animations should now be possible. This resource enables animators to pose/animate 3rd person power armor using a rig made for the Character Animation Toolkit (CAT) plugin in 3ds max.

Permissions and credits
Changelogs






Power Armor CATRig for 3ds max

Custom 3rd person power armor animations should now be possible. This resource enables animators to pose/animate 3rd person power armor using a rig made for the Character Animation Toolkit (CAT) plugin in 3ds max. It does not teach you how to animate, but I'll outline the steps for importing and exporting below. Please see the comprehensive Help file of Havok Content Tools if you have questions about how to work the exporter.


The workflow for importing and exporting animations is largely similar to the human race templates found in ShadeAnimator's animation kit (F4AK) as well as the templates from MaikCG. If you are not familiar with the hkx > fbx conversion or importing/exporting animations at all, I recommend reading up on the F4AK or consult the videos made by MaikCG or Hax. These are resources I myself started with, and I had zero knowledge of max. I probably won't provide much support for this resource other than fixing any bugs if it's within my abilities. You're welcome to ask, anyway.

Included in the download are different max scenes for capturing and exporting animations using a CATRig. There's also all the necessary files like bone definition, skeletons and stuff needed.




Why different templates for import/export?

tl;dr: The rigs must be locked differently in both templates for reliable animation capture and export.

CAT is a different animation system which allows you to blend animations from different layers with a predictable output. In order to use CAT for existing animations (as in vanilla animations), the animation first needs to be recorded onto a CAT layer. To do that, the CAT rig needs to be locked to the game skeleton through constraints - which is a more reliable method than the conventional Capture Animation script that comes with max. Other than that, the hierarchy is functionally identical to the templates found in F4AK, e.g transforming the pelvis will transform the whole character.




What do I need?

1.  3ds max 2013-2015

2.  Havok Content Tools plugin 2014.1-r1 64 bit.

3.  Hkxpack and hkx2fbx found in F4AK

4.  Some knowledge in animation with max, as well as knowledge about the conversion process (F4AK)

5.  Power armor 32 bit skeleton for converting 32 bit hkx to fbx (provided in the download)

6.  Power armor havok bone definition file for exporting to hkx (provided in the download)






Importing fbx animations and saving as CAT clips

1.  Load up one of the import templates.

2.  Import fbx animations. Set the import preset to use "Autodesk Media & Entertainment". Make sure "File content" is set to "Update". Then in Animations > Extra Options, make sure "Fill Timeline" is checked, then load.

3.  Scrub the Time Slider and confirm that the animation has loaded, then select Root and reset its rotation so it faces same direction as the arrow.
Note that it's common for the playback to have feet and other parts jolt around. It's an issue out of my reach, but fortunately most of it doesn't translate into the CATClips. More info about this under Known Issues.

4.  Select the triangle, then in the Motions panel > Layer Manager rollout, click "(Available)" then Collapse Layers icon to the right, below the box. Set frame sampling to 1, then click OK. Don't touch or collapse to the Capture_Layer - it contains all the constraints needed for capturing the fbx animation

5.  Save as a CATClip. In the Save CATClip dialog box, untick "Save Entire Layer Stack" - it should only say "CollapsedLayer" (otherwise it will store the Capture_Layer), then Save. Give the CAT clip name a suffix indicative of the frame count (e.g My_Animation_60.clp) since max doesn't expose this value when loading CAT clips.







Loading CAT clips and exporting animation

1. Load up export template.

2. Set the Time Slider to 0 and extend the frame count to the length of the CAT clip.

3. If not already selected, select "CAT_" (the triangle), then load up the CAT clip. Note: CAT clips are loaded onto the active CAT layer. To load onto a new layer, make sure "(Available)" is selected in the Layer Manager before loading the clip.

4. Once loaded, toggle the red "Setup/Animation Mode" button just above the CAT Layer Manager. By default, the Export scene starts in Setup Mode because no layers are present.

5. Animate stuff.

6. Export using the "Export" from Havok Content Tools menu. 

7. Load either the provided configuration set "ict_presets.hko" or your own and select the appropriate filter set.

8. In the Create Skeletons filter, point to the pa_bone_file.txt provided in the download and make sure "Use File Order" is checked.

9. Write to Plaform filter is set to output the file to C:\ using the max scene as filename. Alternatively you may change this.

10. Click "Run Configuration" (Note: NOT "Run All Configurations")







Currently known issues


Toe bones rotate during IK/FK switch
This is an issue with CAT system itself and cannot be fixed without lowering the IK chain from foot to calf. This is usually a bad workaround, so it's better to compensate the rotation using adjustment layers.



Exporting animation produces a "no bind pose" warning

Can be safely ignored. Bind pose is the pose when a character is skinned to a skeleton, otherwise known as T-pose. In max, this is referred to as "skin pose", which for some reason HCT fails to recognize. Bind pose is only ever needed if the Root bone starts outside of [0,0,0] on the first keyframe.



Missing textures during scene load
If you have fo4 textures extracted, just point it towards that. Otherwise it may be safely ignored.




Limbs are flying all over the place during playback of imported animations
Tl;dr Try scrubbing the time slider instead of playing back imported animation.

Any kind of playback that uses framedropping and interpolation will land on bad frames. The "correct" animation will show on the export template. This is an issue that happens during the conversion process and is out of my hands. My guess is that the hkx >fbx parser tools somewhere fail to snapshot interleaved graphs as floats so it erroneously guesses and causes bad keyframes in-between the standard 30 fames per second. You'll see this as spikes in the Graph Editor. Deleting a section of the spike and setting the start/end keyframes' tangents to smooth usually remedies this.





There is still some some limb jitter on the exported clips
Yes, it's unavoidable. I cannot address it without looking into Havok and fbx SDK. You'll have to clean it up manually or go bother Dexes/Figment. I recommend cleaning it manually - it takes 5 minutes on worst cases I've come across.


While it is a CATRig, it isn't compatible with most premade CAT clips of humanoid animations due to the inherent bone lengths and general proportions of the power armor skeleton. I only made this into a CAT rig since I've grown familiar with the layering system and invested a lot of time learning it. That said, although if I did a biped rig, I probably wouldn't have to spend a week learning maxscript.



Upper body rotates inversely to hand position
This happens with archetype animations (Grips > Pistol/Rifle/RifleStraight etc.) that receives retargeting from individual weapon anims. Make sure you uncheck "Inherit Rotation" for CAT_Weapon on frame 0 on the export template after loading a clip. It's checked by default on the template because 90% of the time the animation *is* the retargeting source. See this gif for the steps.




Some notes on motion animation
Motion anims such as walking and running is possible, but the directional movements cannot be obtained from the vanilla anims and has to be manually added into the locomotion. Motion isn't stored as keyed transforms on Root, but rather as an array of values extracted from the Root when the animation was originally made. This was probably done to procedurally generate motion and get the file size down.

Practically speaking, you only have to key and move CAT_Root, and then during export, point to CAT_Root as the reference in the Extract Motion filter, and setting Forward/Back axis to Y. Optionally, I've made a filter set (provided in the "ict_presets.hko" file you can use specifically for motion anims.





Finding the default motion values
By adding a View XML filter and placing it after Merge Asset, you can use it to find vanilla motion values through a block called hkaDefaultAnimatedReferenceFrame. In this block is a list of all transformations HCT sampled from the Root node in max when the animation was initially exported. The last value in the array is the maximum distance in max units the character will have traveled. For forward/backward motion (Y axis), only the second column of the array matters. When keying Root for cycle animations, e.g. not from stand to walk or other transitional anims, make sure the motion is keyed using linear tangents.







Addendum


Making changes to the templates

You may safely delete or change any layers on the export template. The constraints are stored on the game skeleton, which doesn't use CATLayers, so they will persist. You should, however, not delete, collapse to, or in any way modify the "Capture_Layer" on the import template. This layer, and its settings need to stay untouched so that the constraints, bone positions and hierarchy conforms and reflect the movement of the game skeleton during import of fbx animations. In fact, you should have copies of the original templates readily available should you accidentally change or overwrite the original.


When animating it's recommended to work using only the PA frame for easy selection. Keep in mind that power armor meshes such as the chest armor extends far from the frame itself, so occasionally checking for clipping by turning on visibility for these may be a good idea. For optimal visibility, either use "See-Through" or enable materials for shaded view and adjust the PA mod material's opacity in Material Editor. Some basic materials have already been set up for this purpose.

The rig bones initially consisted of primitives, but now uses the actual PA frame mesh for the CAT bones in order to provide a more accurate representation of the animation.

1st person PA anims use the human skeleton and doesn't work with this rig - use the (human) templates in F4AK instead. This rig is strictly for 3rd person power armor animations.
Top