In light of the Coronavirus crisis, please help make sure nothing stands in the way of social distancing in the VFX industry.

This petition asks the MPAA to act accordingly:


Sign the petition on Change.org

Be safe, everyone.

[Fuse] Time Machine Modifier Fuse

User avatar
French_Fry
Fusionista
Posts: 339
Joined: Tue Aug 05, 2014 8:04 am
Location: Nashville, TN
Contact:

Re: [Fuse] Time Machine Modifier Fuse

#46

Post by French_Fry » Tue Aug 18, 2015 8:38 am

Hey Pieter,
I'm running into some issues when rendering on the farm with Time Machine. Local renders seem to be ok, but renders on the farm using the RenderNode FusionConsoleNode.exe give me some errors.
Royal Render is spitting out this:
"\fusion\7\fuses\TimeMachine.Fuse:1409: attempt to perform arithmetic on local 'time' (a nil value)
stack traceback:
***\_WORKGROUPS\fusion\7\fuses\TimeMachine.Fuse:1409: in function 'XSheet'
***\_WORKGROUPS\fusion\7\fuses\TimeMachine.Fuse:1798: in function <
***\_WORKGROUPS\fusion\7\fuses\TimeMachine.Fuse:1584>"

Does this ring any bells?

I've had a sneaky suspicion that Fusion's render nodes are hosed, but haven't been able to pin point what it is, or when it breaks. This is the third script or tool that works on local Fusion but errors out on the render node.

Tags:

User avatar
SecondMan
Site Admin
Posts: 4229
Joined: Thu Jul 31, 2014 5:31 pm
Answers: 15
Location: Vancouver, Canada
Been thanked: 58 times
Contact:

Re: [Fuse] Time Machine Modifier Fuse

#47

Post by SecondMan » Tue Aug 18, 2015 9:58 am

Hi Joël,

No, sorry, no bells are ringing. I haven't tested TimeMachine on a farm myself (as I don't have one set up currently). It's a strange error though, it looks as if rendernodes don't have access to the comp's time variable?

Seems like a bug, but I can be wrong. I wonder if I can ask for that time more explicitly, as a test... ?

Not at a Fusion station any time soon though, anyone here have another idea in the meantime?

User avatar
French_Fry
Fusionista
Posts: 339
Joined: Tue Aug 05, 2014 8:04 am
Location: Nashville, TN
Contact:

Re: [Fuse] Time Machine Modifier Fuse

#48

Post by French_Fry » Tue Aug 18, 2015 10:20 am

Ok. Yeah, I've had some problems with the duplicate Fuse. I started another thread a while back. I'm sorry, I'm kinda spread over two threads, but I think the problem is probably the same for both fuses.
I started having problems whenever BMD released their version of the render node. I think they broke something. I had emailed them a few months ago with a strange error I had with my renders. It would error, but still render the frame. I think I'm going to send them the logs for this error and for the duplicate fuse error. Maybe this will guide help them somewhat.
On another note..has anyone heard from Rony? I haven't seen him on the bmd forums in a while and he hasn't been the one answering my emails over there anymore.

User avatar
Chad
Fusionator
Posts: 1455
Joined: Fri Aug 08, 2014 1:11 pm
Been thanked: 3 times

Re: [Fuse] Time Machine Modifier Fuse

#49

Post by Chad » Tue Aug 18, 2015 9:10 pm

Yeah, try a simple comp with just a BG and a simple fuse like one of the clone ones.

Rony
Fusioneer
Posts: 58
Joined: Thu Dec 04, 2014 10:36 am
Location: Burbank CA

Re: [Fuse] Time Machine Modifier Fuse

#50

Post by Rony » Wed Aug 19, 2015 8:39 am

I'm back :)

I don't have a farm setup yet here at the office 'yet'.
Where are you storing the Fuse itself?

User avatar
French_Fry
Fusionista
Posts: 339
Joined: Tue Aug 05, 2014 8:04 am
Location: Nashville, TN
Contact:

Re: [Fuse] Time Machine Modifier Fuse

#51

Post by French_Fry » Wed Aug 19, 2015 9:11 am

Rony wrote:I'm back :)

I don't have a farm setup yet here at the office 'yet'.
Where are you storing the Fuse itself?
Cool! Since it's been a few others at BMD that have answered my support emails, I thought you were gone! Good to know you're still there. :)

The Fuses are stored on the network, so everyone pulls from the same folder. I'll have some time this morning as I'm waiting on some lengthy renders. I'm thinking Pieter's onto something, as far as the renderer not being able to access the comps time variable or something. I ran some tests based on Chads comments in the duplicate.fuse thread and ran a few of the clones Fuses, and they worked fine. But tried the BMD duplicate.Fuse and it bombed. I noticed that the Duplicate.Fuse has a time offset parameter in it. I'm not using it, but it may be triggering something that's making it crash. ( btw, maybe you saw, but in case you hadn't, I did send in an email to support with some info.)

EDIT: So I've tried several Fuses, and it seems to be Time Machine and the duplicate Fuse that bomb. I tried most of the BMD ones, and some third party ones, like TemporalFilter.Fuse or SparseColor.Fuse and they seem to work. so I don't know...

User avatar
SecondMan
Site Admin
Posts: 4229
Joined: Thu Jul 31, 2014 5:31 pm
Answers: 15
Location: Vancouver, Canada
Been thanked: 58 times
Contact:

Re: [Fuse] Time Machine Modifier Fuse

#52

Post by SecondMan » Thu Aug 20, 2015 9:39 am

I can't at first glance figure out why exactly the Fuse would fail, but given it works well (as it should) interactively I am suspecting a bug on Fusion's end. Also if BMDs own Fuses bomb...

However, can I ask; does it fail for every frame? For every mode? And could you provide me with a simple comp that fails for you?

User avatar
French_Fry
Fusionista
Posts: 339
Joined: Tue Aug 05, 2014 8:04 am
Location: Nashville, TN
Contact:

Re: [Fuse] Time Machine Modifier Fuse

#53

Post by French_Fry » Thu Aug 20, 2015 2:17 pm

Hey Pieter,
I haven't had a chance to test them all. Xsheet fails and it failed on all frames.

I did a quick 2 min setup on a fat noise using the warp function.

Code: Select all

{
	Tools = ordered() {
		FastNoise1 = FastNoise {
			Inputs = {
				GlobalIn = Input { Value = 1, },
				Width = Input { Value = 1920, },
				Height = Input { Value = 1080, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
				Detail = Input { Value = 6.6666667, },
				XScale = Input { Value = 4.1904762, },
				SeetheRate = Input { Value = 0.5, },
				Color1Alpha = Input { Value = 1, },
				Gradient = Input {
					Value = Gradient {
						Colors = {
							[0] = { 0, 0, 0, 1, },
							[1] = { 1, 1, 1, 1, },
						},
					},
				},
			},
			ViewInfo = OperatorInfo { Pos = { 990, 280.5, }, },
		},
		TimeStretcher1 = TimeStretcher {
			CtrlWZoom = false,
			Inputs = {
				SourceTime = Input {
					SourceOp = "TimeMachine1",
					Source = "Output",
				},
				Input = Input {
					SourceOp = "FastNoise1",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 1100, 280.5, }, },
		},
		TimeMachine1 = Fuse.TimeMachine {
			CtrlWZoom = false,
			Inputs = {
				TimeWarp = Input {
					SourceOp = "TimeMachine1TimeWarp",
					Source = "Value",
				},
				Skip = Input { Value = 1, },
				XFrameNumbers = Input { Disabled = true, },
			},
		},
		TimeMachine1TimeWarp = BezierSpline {
			SplineColor = { Red = 243, Green = 59, Blue = 6, },
			NameSet = true,
			KeyFrames = {
				[1] = { 0.7857143, RH = { 67.3333333333333, 0.525396833333333, }, Flags = { Linear = true, }, },
				[200] = { 0.0047619, LH = { 133.666666666667, 0.265079366666667, }, RH = { 268, 0.336507933333333, }, Flags = { Linear = true, }, },
				[404] = { 1, LH = { 336, 0.668253966666667, }, Flags = { Linear = true, }, },
			},
		},
		Saver1 = Saver {
			Inputs = {
				ProcessWhenBlendIs00 = Input { Value = 0, },
				Clip = Input {
					Value = Clip {
						Filename = "F:\\TEMP\\joel\\consoleNode_test\\TimeMachine_test..jpg",
						FormatID = "JpegFormat",
						Length = 0,
						Saving = true,
						TrimIn = 0,
						ExtendFirst = 0,
						ExtendLast = 0,
						Loop = 1,
						AspectMode = 0,
						Depth = 0,
						TimeCode = 0,
						GlobalStart = -2000000000,
						GlobalEnd = 0,
					},
				},
				OutputFormat = Input { Value = FuID { "JpegFormat", }, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
				Input = Input {
					SourceOp = "TimeStretcher1",
					Source = "Output",
				},
				["JpegFormat.Quality"] = Input { Value = 97, },
			},
			ViewInfo = OperatorInfo { Pos = { 1210, 280.5, }, },
		},
	},
}
It seems to work in Fusion...but crashes after frame 120 on the farm with this type of error.

Code: Select all

<***\_WORKGROUPS\fusion\7\fuses\TimeMachine.Fuse:1778: attempt to index a nil value
stack traceback:
	<***\_WORKGROUPS\fusion\7\fuses\TimeMachine.Fuse:1778: in function
 <***\_WORKGROUPS\fusion\7\fuses\TimeMachine.Fuse:1584>
TimeStretcher1 cannot get Parameter for Source Time at time 121
Now I can't vouch for my setup. I don't know Time Machine very well, and may have setup up something that would break anyways. But in Fusion this comps plays back fine. Sorry I can't provide any more info right now. I hope I'm not wasting your time with this. I'm still leaning towards a commandline renderer bug...but you never know. it wouldn't be the first time I'm guilty of user error. :)

User avatar
Chad
Fusionator
Posts: 1455
Joined: Fri Aug 08, 2014 1:11 pm
Been thanked: 3 times

Re: [Fuse] Time Machine Modifier Fuse

#54

Post by Chad » Fri Aug 21, 2015 4:42 am

If you retry, does it render 121? Seems odd that it gets past frame 0 if the Fuse has an error unless that error is either specific to frame 121 (the nature of the Fuse makes it sensitive to the time) or there is an issue with memory/gc.

User avatar
SecondMan
Site Admin
Posts: 4229
Joined: Thu Jul 31, 2014 5:31 pm
Answers: 15
Location: Vancouver, Canada
Been thanked: 58 times
Contact:

Re: [Fuse] Time Machine Modifier Fuse

#55

Post by SecondMan » Fri Aug 21, 2015 7:08 am

Just from looking at the code, your Saver's GlobalStart and GlobalEnd seem a little strange?

Have you tried rendering to disk in Fusion or did you try playback only?

User avatar
French_Fry
Fusionista
Posts: 339
Joined: Tue Aug 05, 2014 8:04 am
Location: Nashville, TN
Contact:

Re: [Fuse] Time Machine Modifier Fuse

#56

Post by French_Fry » Fri Aug 21, 2015 7:09 am

Yeah. I thought there might be an issue with memory or something so I retried setting the starting frame at 100, but it still bombed at 120. The comp I posted is just a quick 2 min setup using the warp modifier. I literally just threw something together and put it on the farm to see.
The comp that started my issues was using the Xsheet with a simple "0 to 50 loop 2" .
I sent an email to tech support to get their input, but haven't heard anything. I guess they're too busy with fixing that Fu8 quicktime bug. :)
I agree that it's very odd. I'm still having a hard time believing, we're the only people using a render farm through an external render manager. :shock:

User avatar
French_Fry
Fusionista
Posts: 339
Joined: Tue Aug 05, 2014 8:04 am
Location: Nashville, TN
Contact:

Re: [Fuse] Time Machine Modifier Fuse

#57

Post by French_Fry » Fri Aug 21, 2015 7:12 am

SecondMan wrote:Just from looking at the code, your Saver's GlobalStart and GlobalEnd seem a little strange?

Have you tried rendering to disk in Fusion or did you try playback only?

That does look strange. The comp is setup with global range of 1 to 1000. interesting....
I have tried rendering to disk as well as playback.

User avatar
SecondMan
Site Admin
Posts: 4229
Joined: Thu Jul 31, 2014 5:31 pm
Answers: 15
Location: Vancouver, Canada
Been thanked: 58 times
Contact:

Re: [Fuse] Time Machine Modifier Fuse

#58

Post by SecondMan » Fri Aug 21, 2015 7:16 am

What if you remove those lines from the comp before you render?

I'm just guessing - I'll try testing something later... :)

User avatar
French_Fry
Fusionista
Posts: 339
Joined: Tue Aug 05, 2014 8:04 am
Location: Nashville, TN
Contact:

Re: [Fuse] Time Machine Modifier Fuse

#59

Post by French_Fry » Fri Aug 21, 2015 7:22 am

SecondMan wrote:What if you remove those lines from the comp before you render?

I'm just guessing - I'll try testing something later... :)

My thought exactly. Well...actually, I replaced those crazy numbers with 1 and 1000, and resubmit it. Same thing.

*EDIT:*
You can run the comp yourself in commandline as long as you have the console render node installed. You don't need to go through a render manager.
I'm attaching a zip file that should have everything contained in it for a test. I have it set up so you can put the folder on the root of your C: drive.You can change all the paths manually if you want to test wherever you would like.
The folder has:
-the test comp
-a Render_FusionTest.bat file that launches the render. You can look at the file in a text editor to see the commands.
-an output directory for the frames to render to.
-and a fuses directory with the Fuse I'm using. You might need it here for your render node to find it. C:\Program Files\Blackmagic Design\Fusion Render Node\Fuses

It should spit out a log in that folder also.
Fusion_consoleNode.zip
You do not have the required permissions to view the files attached to this post.

User avatar
SecondMan
Site Admin
Posts: 4229
Joined: Thu Jul 31, 2014 5:31 pm
Answers: 15
Location: Vancouver, Canada
Been thanked: 58 times
Contact:

Re: [Fuse] Time Machine Modifier Fuse

#60

Post by SecondMan » Sat Aug 22, 2015 12:37 pm

Update.

I don't quite understand why this would happen (if it would not be a bug), but I can offer a workaround for certain cases, depending on how you use TimeMachine.

The Fuse chokes at points like:

Code: Select all

wrpaf = InTimeWarp:GetSource(timeaf).Value
It's whenever the Fuse needs the value of a parameter at a certain value using the GetSource() function. It appears.

In the above case, this happens when the time advances to beyond the Target End Frame, even if the Target Range is not being used (but those things still are requested internally - it doesn't seem to cause a noticeable hit on resources anyway).

By default the Target End Frame is set to 120 (hence it fails at 121). If you tick Force Target Range, set the TEF to something larger than your Render End Time, then untick Force Target Range again, the comp will render on the render node.