Fixing up absolute paths in facefx files

I'm taking over facefx work for another developer who had all their project files mapped on their D:\ drive. I have all my files on E:\

When I try to load a specific .facefx file, it fails to load the associated fbx or wav files because it's looking for them on the D drive still, for example:
Could not find audio: relative path = "D:\Squanch\..."

It appears to be trying to use a relative path, but it's not.

Is there any way I can fix up these paths to point at a new location?

As a first step, set your facefx.clientspec root to your E: drive. The facefx.clientspec file will be located here: Documents/FaceFX Studio 2018/facefx.clientspec

Then restart FaceFX Studio.

If the previous user had done this, you would have then been able to find all of the assets on your E:\ drive using the relative paths. You then could have optionally run the reconcileaudiopaths command to update the absolute paths to your E drive, or continued using the relative paths.

As it stands, you can easily update the animations one group at a time. Just open an animation in a particular group, and click on the missing audio to browse to the file on your computer. Once you select the correct file, you you will be prompted to update all of the other animations in that group that also have their audio files in that same folder. This is done with the anim command.

If fixing the animations one group at a time isn't a viable option, another option is to export an xml file from the File menu (not a collapsed XML file). Then you can search & replace for the appropriate terms, and then import the modified XML file.

Thank you very much for the info!

Unfortunately the file I'm working on had all absolute paths so I'm guessing the configuration in clientspec wasn't done. That being said, exporting out to xml, and doing a find/replace on all the paths worked for getting all my audio files linked back in. However, I'm still running into a few problems

1. If I re-export the file back to xml, I'm still not getting relative paths even after changing the client spec and running reconcileaudiopaths
2. The fbx file path did not get fixed up by doing the patch in xml. I couldn't find where, if anywhere, that path is being set in the xml.

For 1), did you set the “root” line in the client spec file to a folder on your E drive, then restart FaceFX studio, then run reconcileaudiopaths? If so, any errors in the logs?

For 2), that’s to be expected, sorry I didn’t mention it. The FBX import plugin stores its data in the actors binary python blob. You can update it by simply dragging your FBX file into the preview window, or if you want you could update it with the getActorPythonDictionary, setActorPythonDictionary functions

1) Yes, I set my root to E:\Squanch, and redid the whole process of export/import xml and running reconcileaudiopaths and rexporting xml. There were no messages in the log other than reconcileaudiopaths

2) That works! Thank you!

I think I know what is going on with 1. I was expecting the reconcileaudiopaths command to force the "relative" audio path (the animation's "audio_path" property in the xml) to be relative, but it only updates the relative path if it can't find the audio there. Because you have a valid full-path there, the reconcileaudiopaths isn't updating the relative path like it should. I'll file a bug to get that fixed in the next version.

To get relative paths working again, I would search & replace the XML for:


and replace with:


That assumes your clientspec root is set to "D:\Squanch" and it should force your relative paths to be relative (and still valid). That is probably worth doing to help the next person with a different clientspec root than you.