Plot on Keys when exporting to FBX

Hi there,

is there a way to force the plot of the fbx file from the 'File/Export FBX Animation' to:

- plot on frames
- turn constant key reducer on/off

In your documentation under fbx Export there seems to be no mentioning of this, but I would assume if you use the FBX 2013 SDK it should be possible, yes?

Thank you very much,

jan

Permalink

Both of these are possible by using the FBX command directly:

http://facefx.com/documentation/2015/W97

Set -keyprecision to 0 for no key reduction.

The framerate should be set to whatever the animation framerate is. You can use -framerate to set an arbitrary one. Let me know if you have any trouble with those options.

Permalink

also, you can set the fbx_export_key_precision console variable to 0 in your autoexec.fxl file if you want to do it once and forget about it. The frame-rate doesn't have an option like that but it will use the framerate that the animation is set to.

Permalink

Your suggestion works great - but one thing remains: plotting on key. I attached a pic to the original post

What is a bit strange to me that the whole animation is offset about -0.2 frames across all frames. I could understand that the first one is offset due to the time selection in FaceFX (being -0.239) but then all subsequent frames do posess that offset as well.

In Motionbuilder I can select all bones in the FCurve window and snap it to the next frame - all keys will then be precisely on frame - just not from export via FaceFX. And of course that is a 'move' rather than a proper 'sample of frame' as now my animation might be offset by a tiny margin.

Sorry - my OCD always kicks into hi-gear with stuff like this where I seem to not be in control of something I am usually in control of. Not really that big of a deal as I can batch that before exporting but it would be nice to deal with it during the initial save from FaceFX.

Permalink

Hi Jan,

You have helped us discover a bug/poor design here that we will fix for the next version. But FaceFX 2015 should be able do what you want by using the -starttime flag in the fbx command.

The tricky part / bug we discovered is that the -starttime flag is treated differently in the 'Full Skeleton' FBX files vs. the 'FaceFX Bones' FBX files.

In -fullskeleton FBX files, the -starttime command determines where the first key is set in the FBX file, and each subsequent key is set one frame after. So if you set the -starttime to the first frame boundary before the animation (or even something you are comfortable will be before any key in the animation like -2.0 seconds), you should have an FBX file with frame-aligned keys. By default, the starttime is set using the time-extents of the FaceFX timeline, which defaults to the start of the animation (the time of the first key) which is not frame-aligned.

For facefx-bones-only FBX files, changing the -starttime will shift the animation forward or backward in the FBX file. Getting a frame-aligned file is possible, but more difficult. You need to shift the animation forward or backward by whatever the offset is between the first key in the animation and the closest frame boundary. This is more difficult than the full-skeleton mode, so it would most likely involve python which we can help you with.

For the next version of FaceFX, we will make sure that unless you manually type a non-frame-aligned -starttime, we will always output an fbx file with frame-aligned keys so you don't have to worry about this. We will also make sure the -fullskeleton mode is consistent with the facefx bones only mode, but we haven't decided on what the best way to do that is yet.

Doug