Submitting Files to render at ticks

Hello all,

I wrote a script to render a scene at X ticks.

Basically to render at half speed you set the increment time to .5 and it renders every 100 ticks (at 24 fps there are 200 ticks per frame).

When running the script I am adding a frame number based on the number of times through the loop. So if the first frame is 460 and the next frame rendered is 460:100 then that output file is numbered 0461 and so on.

It all works well but we can only render on one machine.

It would be great to submit this to the farm and have it render the sub frame and name the output file correctly.

Is it possible to do this through deadline by passing it a script that tells the machine what frame to render and how to name the output file?

We are not using video post (as I have seen people do). The reason is, by doing it via script, the increment can be animated so that the animation can be slowed down and sped up.

Any insight would be greatly appreciated.

-Paul

This is possible by writing a maxscript and sending your max scene as a maxscript job from within the SMTD interface.
check out the maxscript template that gets created when you select and choose a maxscript job in the SMTD.
I wrote exactly this a little while ago, but the code is unfortunately propriety to my company…however…here is a little teaser to get you started…

du.SetTitle “MAXScript Job” --set the job title
du.LogMessage “Starting MAXScript Job…” --output a message to the log
local st = timestamp() --get the current system time

timedisplaymode=#frameTicks - set the scene to ticks

Regards,
Mike

perfect. I will bang on this today and if it works I will post exactly how I did it.

I will also post a link to the script for slowing down time in your scene.

-Paul

THANKS for your help…

Here is the code I used (which I put in the template file when it came up)…

	outFileNameNoExt = ""
	for x = 1 to (rendOutputFilename.count - 4) do
		(
			outFileNameNoExt += rendOutputFilename[x]
		)
	outFileNameINI = outFileNameNoExt + "ini"
	timedisplaymode=#frameTicks -- set the scene to ticks
	frameArray = (getINIsetting outFileNameINI)
	for x = 1 to frameArray.count do
		(
			if (getINIsetting outFileNameINI frameArray[x] "pickedup") == "false" do
				(
					currTime = frameArray[x] as float
					sliderTime = currTime
					print sliderTime
					setINIsetting outFileNameINI frameArray[x] "pickedup" "true"
					render frame:currTime outputFile:(outFileNameNoExt + (getINIsetting outFileNameINI frameArray[x] "name") + ".exr") vfb:true
				)
		)

My script created an ini that looks like this…

[460.0]
name=0460
pickedup=false
[460.5]
name=0461
pickedup=false
[461.0]
name=0462
pickedup=false
[461.5]
name=0463
pickedup=false
[462.0]
name=0464
pickedup=tfalse
[462.5]
name=0465
pickedup=false

So the slave looks at the INI then goes to the frame that is not “Pickedup” and renders it (after setting the picked up flag to “true”).

Then the output file is named with the “name” setting.

Kind of a hack but I had to come up with something quick. Works great.

Thanks guys,
Paul