FXA and FXM animation files

1,684
2,868
Sweden
I have spent some time analyzing the fxa and fxm animation files, used for windscreen wipers, and can also be used for animates spectators, pit marshal, pitcrew, flag marshals etc.
Most car moders know how to hex-edit the position of windscreen wiper(s), but I haven't found much more information other than that.

I share what I have found here so others can help and contribute.

The files were exported in "EMotion FX 2 Exporter" by Mystic game development, now owned by Amazon.
It is now part of Lumberyard game development pack, but the file types are not the same any more.
These file types were used a lot in different games, but still I haven't been able to find anything that can edit them.

The fxa files (actor file) contains rig information called nodes and can probably also contain meshes, textures and materials too. But in Race07/GTR2 they are only used for the rig information.
Since I spent some time learning more about hex-editing I thought I should analyze the files more closely.

This is part of the information in an export log (with some coments):

===================================================================
EMotion FX 2 Exporter
Copyright (C) 2001-2004 Mystic Game Development. All Rights Reserved.
===================================================================
==========================
Nodes - movable part
==========================
- Node: name='Pagani_CPITWIPER1'
+ Parent: Has no parent(root).
+ Position: x=-0.000164 y=0.656332 z=-1.546496 - Position of mesh (pivot point)
+ Rotation: x=-0.228568 y=-0.340660 z=0.048845 w=0.910671 - Rotation before any animation
+ Scale Rotation: x=0.000000 y=0.016106 z=-0.038115 w=0.999144
+ Shear: x=0.000000 y=0.000000 z=0.000000 - Not used/no reason to use here
+ Scale: x=1.000000 y=1.000000 z=1.000000 - Not scaling/no reason to change here

- Node: name='Zonda_Windows1' - Not important here, windows are not animated

+ Position: x=0.000000 y=0.000000 z=0.000000
+ Rotation: x=0.000000 y=0.000000 z=0.000000 w=1.000000
+ Scale Rotation: x=0.000000 y=0.000000 z=0.000000 w=1.000000
+ Shear: x=0.000000 y=0.000000 z=0.000000

+ Scale: x=1.000000 y=1.000000 z=1.000000
==========================
Node Limits - limit movements, like bones or hinges, not used here
==========================
==========================
Materials - Probably not used in Race07
==========================
- Material: name = EMFX Default
+ Shader File: fileName=

...

==========================
Meshes - Not included in Race07
==========================
==========================
Skins - Not included in Race07
==========================

An FXA wiper file can look like this (edited with colors and comments by me):

1618151780241.png


The numbers are in float32 format, and I have located the positions/offsets. Only the wiper animation is interesting here.

This is the animation file, and it contains the keyframes, or "animation steps":

1618152333128.png


And analyzed. Only rotation is animated here.
The colorful parts are the keyframes. It seems to be: Rotation X (Pitch) rotation Y (Yaw) rotation Z (roll) animationweight and time (after "||")

1618152266768.png


I plan to continue to analyze more complicated animation files like spectator and pitcrew.

Maybe some editing program can be created and new cool animations can be made.
Would be cool to have some pit mechanic holding out a pit board when cars passing the start finish straight or something like that
 

Attachments

  • 1618151301795.png
    1618151301795.png
    137.2 KB · Views: 6
Got to wonder why some animation files generates extensive exports logs while others do not?

The Amazon Vintage and RR1 driver and shifter does while most other do not ?
Maybe a flag in the animations files generate the export logs?
 
1,684
2,868
Sweden
yes probably...

This is the beginning of my FMX editor :roflmao:
It can only read the names (sort of) of all the animated parts so far.

Next task is to teach it how to find the coordinates and convert them to something readable.

1618421632998.png
 
Last edited:
Top