Deadline adding extra symbols to FumeFX output path


#1

Hi guys,

When updating to FumeFX 5.0.3, we had a problem - when simulating on Deadline, it is adding extra symbols to the FumeFX output file names:

FFXtestA_1001.fxd

becomes

FFXtestA_.fxd_1001.fxd

You can see the inserted “.fxd_” after the underscore. Quite annoying, caused us to roll back to 5.0.2. Chance for a quick fix?

Thanks!


#2

Yo man!

Are we sure it is Deadline doing this, and not FumeFX?

The code in the Workflow that is responsible for repathing the FumeFX paths looks like this:

		if UseSimCacheOutput do
		(
			local newPath = SimCacheOutput
			if not matchPattern newPath pattern:"*\\" do newPath += "\\"
			defaultPaths = for o in theObjectsToSim collect o.GetPath #default
			for o in theObjectsToSim do 
				o.SetPath (newPath+(filenameFromPath (o.GetPath #default))+".fxd") #(#default)
		)

I suspect that something goes wrong in either the .GetPath() or the .SetPath() function of FumeFX 5.0.3.
Can you execute the function $.getPath #default in 5.0.2 and 5.0.3 and see if there is a difference in the result? I will do that as soon as I can get it installed, but I am traveling at the moment, so I am not sure I will have the time to check it out today…


#3

As expected, the behavior of the GetPath and SetPath functions has changed in 5.0.3. It is easy to fix in Deadline though, and I have to admit it was my fault, as adding “.fxd” to the path was not required in previous versions anyway…

Here is what happens:

$.getPath #default
-- in v5.0.2.1, this returns "C:\FumeFX25190030\FumeFX030_" --> extension is stripped
-- in v5.0.3, this returns "C:\FumeFX25190030\FumeFX030_.fxd" --> extension is retained

$.setPath (($.getPath #default)+".fxd") #(#default)
-- in v5.0.2.1, after executing the above and then calling $.getPath #default, you still get "C:\FumeFX25190030\FumeFX030_". 
-- in v5.0.3, it ends up producing "C:\FumeFX25190030\FumeFX030_.fxd_.fxd"

So in v5.0.3, Kreso decided not to strip the extension when returning the path, and to add the extension to whatever the path is when setting the path.
In 5.0.2.1, it was always stripping the extension when returning the path, and not adding an extra extension when setting the path if an extension was provided.

In other words, we can modify the Deadline FumeFX Workflow code not to add an extension:

		if UseSimCacheOutput do
		(
			local newPath = SimCacheOutput
			if not matchPattern newPath pattern:"*\\" do newPath += "\\"
			defaultPaths = for o in theObjectsToSim collect o.GetPath #default
			for o in theObjectsToSim do 
				o.SetPath (newPath+(filenameFromPath (o.GetPath #default))) #(#default)
		)

Thanks to the filenameFromPath() call, we end up stripping the extension in 5.0.3, and then it gets added back by the SetPath() call… I tested 5.0.2.1, and it produced the correct output as it added the extension that was missing in the SetPath() call.

So the above should work in both versions. Please modify the file

\\DeadlineRepository10\submission\3dsmax\Main\Workflows\SMTDWorkflow_FumeFX.ms

and see if it works for you.


#4

Hi Bobo,

Thanks! Yes, FumeFX development had updated the functions. We’ve only had problems with these things trying to ‘fix’ things for us in an untransparent way, extensions and frame numbers for example. Thanks for the update, will test now!


#5

Hi,

We have used that code in our submitter, and it seems to be working, thanks!