The plugin you have linked to doesn't seem to record command actions. Instead it records the modifier stack and allows the export of all animated parametric values. For example a cube of 1x1x1 is created on frame 1 but on frame 10 the cubes width is adjusted to 10. The exporter captures the animation of that data and allows playback of that animated value on a procedurally generated cube. 3D Studio Max works consistently in this way: every parameter presented to the user can be animated. Furthermore, each object primitive can have a stack of modifiers on top
- modifiers such as noise, subdivision, wave, taper, etc. These modifiers also have animatable parameters which the exporter supports. Finally, 3D Studio Max also allows modifiers to be stacked, so a noise modifier can stack on a cube, and a wave on the noise, etc. Each parameter can be animated independently. Materials are the same. As are lights, cameras and other elements in the scene.
Consider your original output in these terms:
1) I create a cube with certain parameters
2) I select it
3) I apply a modifier with certain parameters
Imaginary output:
object = { name : 'cube1',
transform : { pos=[0,0,0], rot=[0,0,0,1], scale=[1,1,1] },
stack = [ { create_cube : { x : 10, y : 10, z : 10, tess_x:2, ... } }
{ subdivide : { type: catmull-clark, ... } },
animation = [
{ frame : 10, param : 'create_cube.x', 20 }
]
}
I added an example of the animation -- targeting specific parameters.
In your engine you would essentially be evaluating the entire stack every time it changes -- this is how 3D Studio Max works internally.
If I were trying to make a 64k demo it would be the cheapest way to get great art variety for cheap and would look super cool too. Obviously you do not want the complexity of modifiers to be too great, for performance reasons.
So I guess my answer to your question is that no - theres no easy way to export action history, but I think that's not what you want to do here. You want to export the object stack, animate specific parameters, and evaluate the stack in engine.