Welcome to WSL!

Make yourself at home, but before posting, please may I ask you to read the following topics.


Posting 101
Server space, screenshots, and you

Thank you!

PS. please pretty please:


Image

Can Render Manager Save Multiple Saver Nodes Within Same Comp?

Moderator: SecondMan

VFXTobias
Fusioneer
Posts: 220
Joined: Fri Feb 20, 2015 5:58 pm
Been thanked: 1 time
Contact:

Can Render Manager Save Multiple Saver Nodes Within Same Comp?

#1

Post by VFXTobias » Thu Feb 15, 2018 6:39 am

Subject says it all.

New to using Render Manager in Fusion 9 Studio. Just curious. Thank you for your time.

VFXTobias
Fusioneer
Posts: 220
Joined: Fri Feb 20, 2015 5:58 pm
Been thanked: 1 time
Contact:

Re: Can Render Manager Save Multiple Saver Nodes Within Same Comp?

#2

Post by VFXTobias » Thu Feb 15, 2018 6:52 am

Nevermind. The answer is yes so far. The saver nodes are at different frame lengths so I guess I'll see if the render manager stops when the shortest saver reaches its end frame.

User avatar
Midgardsormr
Fusionator
Posts: 1851
Joined: Wed Nov 26, 2014 8:04 pm
Answers: 16
Location: Los Angeles, CA, USA
Been thanked: 121 times
Contact:

Re: Can Render Manager Save Multiple Saver Nodes Within Same Comp?

#3

Post by Midgardsormr » Thu Feb 15, 2018 8:09 am

If a Saver attempts to call for a frame and can't get it, then the entire render job will fail at that frame. If the Saver is disabled when it reaches the first unavailable frame, though, it will not. There is a script in VFXPedia that can be used to set render ranges for Savers, disabling them and enabling them as needed. It hasn't yet been updated for Fusion9, I don't think.

https://www.steakunderwater.com/VFXPedi ... yeonscript

VFXTobias
Fusioneer
Posts: 220
Joined: Fri Feb 20, 2015 5:58 pm
Been thanked: 1 time
Contact:

Re: Can Render Manager Save Multiple Saver Nodes Within Same Comp?

#4

Post by VFXTobias » Thu Feb 15, 2018 8:58 am

Midgardsormr wrote:
Thu Feb 15, 2018 8:09 am
If a Saver attempts to call for a frame and can't get it, then the entire render job will fail at that frame. If the Saver is disabled when it reaches the first unavailable frame, though, it will not. There is a script in VFXPedia that can be used to set render ranges for Savers, disabling them and enabling them as needed. It hasn't yet been updated for Fusion9, I don't think.

https://www.steakunderwater.com/VFXPedi ... yeonscript
Thank you. Tried it. All I can see happening is this message in the console.

"...ing\Blackmagic Design\Fusion\Scripts\Comp\TrimSavers.lua:41: attempt to call a table value"

No other indication that anything has happened.

User avatar
Midgardsormr
Fusionator
Posts: 1851
Joined: Wed Nov 26, 2014 8:04 pm
Answers: 16
Location: Los Angeles, CA, USA
Been thanked: 121 times
Contact:

Re: Can Render Manager Save Multiple Saver Nodes Within Same Comp?

#5

Post by Midgardsormr » Thu Feb 15, 2018 11:17 am

I don't have the time to update it myself, but if you look at the thread where I documented my update to Batch Change Parameters, you should be able to glean the information you need to get this one running.

viewtopic.php?f=6&t=1788#p13183

Or you can wait for a while, and someone else may take the time to do it. Or maybe not.

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

Re: Can Render Manager Save Multiple Saver Nodes Within Same Comp?

#6

Post by Chad » Thu Feb 15, 2018 3:44 pm

You can also manually set the ranges on the Savers (just like you can for any tool).

VFXTobias
Fusioneer
Posts: 220
Joined: Fri Feb 20, 2015 5:58 pm
Been thanked: 1 time
Contact:

Re: Can Render Manager Save Multiple Saver Nodes Within Same Comp?

#7

Post by VFXTobias » Thu Feb 15, 2018 4:15 pm

Chad wrote:
Thu Feb 15, 2018 3:44 pm
You can also manually set the ranges on the Savers (just like you can for any tool).
I see the section that accepts render scripts in the node but it is not very user intuitive. Got an example of this in action I can learn from?

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

Re: Can Render Manager Save Multiple Saver Nodes Within Same Comp?

#8

Post by Chad » Thu Feb 15, 2018 5:47 pm

You don't need any script, just change the enabled time region of the tool.

Code: Select all

{
	Tools = ordered() {
		Triangle1 = TriangleMask {
			CtrlWZoom = false,
			Inputs = {
				MaskWidth = Input { Value = 1920, },
				MaskHeight = Input { Value = 1080, },
				PixelAspect = Input { Value = { 1, 1 }, },
				ClippingMode = Input { Value = FuID { "None" }, },
				Point1 = Input {
					SourceOp = "Perturb1",
					Source = "Value",
				},
				Point2 = Input {
					SourceOp = "Perturb2",
					Source = "Value",
				},
				Point3 = Input {
					SourceOp = "Perturb3",
					Source = "Value",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 330, 214.5 } },
		},
		Perturb1 = PerturbPoint {
			CtrlWZoom = false,
			Inputs = {
				Value = Input { Value = { 0.1, 0.1 }, },
				RandomSeed = Input { Value = 16945, },
			},
		},
		Perturb2 = PerturbPoint {
			CtrlWZoom = false,
			Inputs = {
				Value = Input { Value = { 0.9, 0.1 }, },
				RandomSeed = Input { Value = 20653, },
			},
		},
		Perturb3 = PerturbPoint {
			CtrlWZoom = false,
			Inputs = {
				Value = Input { Value = { 0.5, 0.9 }, },
				RandomSeed = Input { Value = 5481, },
			},
		},
		Saver1 = Saver {
			CtrlWZoom = false,
			EnabledRegion = TimeRegion { { Start = 30, End = 70.9999, FrameLength = 1 } },
			Inputs = {
				ProcessWhenBlendIs00 = Input { Value = 0, },
				Clip = Input {
					Value = Clip {
						Filename = "Temp:\\Deleteme_.raw",
						FormatID = "RawFormat",
						Length = 0,
						Saving = true,
						TrimIn = 0,
						ExtendFirst = 0,
						ExtendLast = 0,
						Loop = 1,
						AspectMode = 0,
						Depth = 0,
						GlobalStart = -2000000000,
						GlobalEnd = 0
					},
				},
				CreateDir = Input { Value = 1, },
				OutputFormat = Input { Value = FuID { "RawFormat" }, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
				Input = Input {
					SourceOp = "Triangle1",
					Source = "Mask",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 440, 214.5 } },
		}
	}
}

User avatar
Midgardsormr
Fusionator
Posts: 1851
Joined: Wed Nov 26, 2014 8:04 pm
Answers: 16
Location: Los Angeles, CA, USA
Been thanked: 121 times
Contact:

Re: Can Render Manager Save Multiple Saver Nodes Within Same Comp?

#9

Post by Midgardsormr » Thu Feb 15, 2018 6:03 pm

I didn't realize that worked for tools that didn't have the Global range control in the control panel. That's set just by dragging the in/out points in the Timeline View?

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

Re: Can Render Manager Save Multiple Saver Nodes Within Same Comp?

#10

Post by Chad » Thu Feb 15, 2018 6:20 pm

Yeah, or with script. But you can just drag it in the timeline view for one-offs.

The downside is you have only one range. Can't do 10-25, 30-50. That's where you need a script (or two SVs).

Oh, another option is to animate the Blend of the SV to zero. It won't write frames when it's set as such. So you could animate that quickly to set an oddball frame set. Again, quick and dirty, not for pipeline use.

EDIT: And THIS is one of the top reasons I shake my head when people say "just put Fusion inside Resolve". If the Fusion Connect function in Resolve was updated to make one comp with multiple Savers which had their ranges and frame offsets set, heads might explode.

User avatar
guacamole
Posts: 16
Joined: Thu Feb 06, 2020 1:45 pm

Re: Can Render Manager Save Multiple Saver Nodes Within Same Comp?

#11

Post by guacamole » Tue Aug 04, 2020 5:18 pm

This is a great tip thanks. However how could one pass a variable such as an user added control to input the range in the gui.

Doesn't seem to like anything but an integer there. Does not like this;
  1. {
  2.     Tools = ordered() {
  3.         rangedSaver = Saver {
  4.             CtrlWZoom = false,
  5.             EnabledRegion = TimeRegion { { Start = renderRageStart, End = enderRangeEnd, FrameLength = 1 } },
  6.             Inputs = {
  7.                 ProcessWhenBlendIs00 = Input { Value = 0, },
  8.                 Clip = Input {
  9.                     Value = Clip {
  10.                         Filename = "Temp:_trash\\saverTest01..exr",
  11.                         FormatID = "OpenEXRFormat",
  12.                         Length = 0,
  13.                         Saving = true,
  14.                         TrimIn = 0,
  15.                         ExtendFirst = 0,
  16.                         ExtendLast = 0,
  17.                         Loop = 1,
  18.                         AspectMode = 0,
  19.                         Depth = 0,
  20.                         TimeCode = 0,
  21.                         GlobalStart = 0,
  22.                         GlobalEnd = 1000
  23.                     },
  24.                 },
  25.                 OutputFormat = Input { Value = FuID { "OpenEXRFormat" }, },
  26.                 SaveFrames = Input { Value = FuID { "HiQInteractive" }, },
  27.                 ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
  28.                 renderRageStart = Input { Value = 10, },
  29.                 renderRangeEnd = Input { Value = 20, },
  30.             },
  31.             ViewInfo = OperatorInfo { Pos = { 1360.67, 293.424 } },
  32.             UserControls = ordered() {
  33.                 renderRageStart = {
  34.                     INP_Integer = true,
  35.                     INP_MinAllowed = 0,
  36.                     LINKID_DataType = "Number",
  37.                     ICS_ControlPage = "File",
  38.                     INPID_InputControl = "ScrewControl",
  39.                     INP_MinScale = 0,
  40.                     LINKS_Name = "renderRageStart"
  41.                 },
  42.                 renderRangeEnd = {
  43.                     INP_Integer = true,
  44.                     INP_MinAllowed = 0,
  45.                     LINKID_DataType = "Number",
  46.                     ICS_ControlPage = "File",
  47.                     INPID_InputControl = "ScrewControl",
  48.                     INP_MinScale = 0,
  49.                     LINKS_Name = "renderRangeEnd"
  50.                 },
  51.             }
  52.         }
  53.     },
  54.     ActiveTool = "rangedSaver"
  55. }
or this
  1. EnabledRegion = TimeRegion { { Start = Input {Value = 0, Expression = "renderRageStart", }, End = {Value = 1000, Expression = "renderRageStart", }, FrameLength = 1 } },

User avatar
guacamole
Posts: 16
Joined: Thu Feb 06, 2020 1:45 pm

Re: Can Render Manager Save Multiple Saver Nodes Within Same Comp?

#12

Post by guacamole » Tue Aug 04, 2020 6:51 pm

A conditional statement on the blend could also work, fine for one condition like this iif(time > renderRangeEnd, 0, 1) however what would be the syntax for extra conditions in an expression such as : iif(time < renderRangeStart && time > renderRangeEnd, 0, 1) ?

cheers

User avatar
AndrewHazelden
Fusionator
Posts: 1656
Joined: Fri Apr 03, 2015 3:20 pm
Answers: 9
Location: West Dover, Nova Scotia, Canada
Been thanked: 32 times
Contact:

Re: Can Render Manager Save Multiple Saver Nodes Within Same Comp?

#13

Post by AndrewHazelden » Tue Aug 04, 2020 6:57 pm

@guacamole You could nest the 2nd parameter inside the true result of the first parameter in an iff(). Or, sometimes it's simply easier to place a colon : symbol at the start of an expression field and then unlock the full capacity of Lua inline scripting in the expressions field text area.

User avatar
guacamole
Posts: 16
Joined: Thu Feb 06, 2020 1:45 pm

Re: Can Render Manager Save Multiple Saver Nodes Within Same Comp?

#14

Post by guacamole » Tue Aug 04, 2020 7:15 pm

Thank you @AndrewHazelden. I did try the : block first without success. Would you expect this to work
Blend = Input { Expression = ":if time <= renderFrameStart then return 0; else if time => renderFrmeEnd then return 0; else return 1; end", },

User avatar
AndrewHazelden
Fusionator
Posts: 1656
Joined: Fri Apr 03, 2015 3:20 pm
Answers: 9
Location: West Dover, Nova Scotia, Canada
Been thanked: 32 times
Contact:

Re: Can Render Manager Save Multiple Saver Nodes Within Same Comp?

#15

Post by AndrewHazelden » Tue Aug 04, 2020 7:17 pm

guacamole wrote:
Tue Aug 04, 2020 6:51 pm
what would be the syntax for extra conditions in an expression
The early KartaVR "SetMetadataVR" macro node used a deeply nested set of iif's to switch between the items in a combo control to define the value pushed into a SetMetadata node. (Later on I switched the macro over to be a fuse).

Code: Select all

iif(SetMetadataVR.Projection == 0, "", iif(SetMetadataVR.Projection == 1, "{Format = \"LatLong\"}", iif(SetMetadataVR.Projection == 2, "{Format = \"VCross\"}", iif(SetMetadataVR.Projection == 3, "{Format = \"HCross\"}", iif(SetMetadataVR.Projection == 4, "{Format = \"VStrip\"}", iif(SetMetadataVR.Projection == 5, "{Format = \"HStrip\"}", ""))))))

Edit:
Slightly unrelated to your current needs but useful to you down the road... as expression scripting tricks go, PeterLoveday did a neat WSL post where he helped Kristof with a coding tip. He showed that one could use the value from a User Control element (like a ComboControl) directly to select an array indice from a Lua table. I think it related to using the select() Lua command to extract a "value pack" as part of an expression and return it as a text string. That was some fancy expression coding. :)
Last edited by AndrewHazelden on Tue Aug 04, 2020 8:22 pm, edited 2 times in total.