Jump to: Board index » General » Fusion

Add/remove or set fusion tool control parameters from script

Learn about 3D compositing, animation, broadcast design and VFX workflows.
  • Author
  • Message
Offline

JBroadway

  • Posts: 24
  • Joined: Tue Mar 03, 2020 7:20 pm
  • Real Name: Jeremiah Broadway

Add/remove or set fusion tool control parameters from script

PostSat Dec 31, 2022 10:08 pm

I'm wondering if it's possible to dynamically control a fusion tool's parameters via a script of some sort?

For example, in my macro I'd like to have a dropdown menu containing different pre-programed presets. When the user selects the preset, the script would set the macro's sliders to specific values. However, each slider should still be editable by the user. (As an aside, it would be cool to give user's the ability to save their own presets).

Also, is it possible to hide/display certain gui elements via a script? For example, all fusion tools have a "motion blur" checkbox which when checked, will present motion blur controls which were otherwise hidden beforehand (functioning pretty much like a drop down menu). This is exactly the type of functionality I'm looking for.

Last example of the sort of functionality I'm looking for would be utilizing a button press to reset the values of multiple sliders.

I've been doing a bunch of Googling and can't seem to find the right keywords to describe what I'm looking for if it is possible?
Offline

John Holt

  • Posts: 197
  • Joined: Sat Mar 02, 2019 8:54 pm
  • Real Name: John Holt

Re: Add/remove or set fusion tool control parameters from sc

PostSun Jan 01, 2023 5:45 am

Hi

The answer is a resounding YES!

"For example, in my macro, I'd like to have a dropdown menu containing different pre-programmed presets. When the user selects the preset, the script would set the macro's sliders to specific values. However, each slider should still be editable by the user. (As an aside, it would be cool to give user's the ability to save their own presets)."

I will post an example later as I am on my laptop and every Sunday at 19:00GMT this year I have YouTube tutorials on this exact subject. Davinci Resolve How!

This is something that is easier to do using a text editor and editing the code, although it can be done in the "edit controls" panel with some preparation.

I hope you are comfortable writing code.


Create a button for each of the pre-sets, buttons have an execute section we are going to use this to set the controls in the inspector. The advantage of this is you can still add keyframes, animation and even change the parameters with ease.

You can have these buttons under a drop-down menu or a separate page in the inspector, a button is, as far as I know, the only way to do this and let the end user have full access to all the controls.

There is different code based on whether your Macro is saved for the edit and cut page or just saved inside the fusion page. This is just the naming convention of the commands inside the code.

"Also, is it possible to hide/display certain gui elements via a script? For example, all fusion tools have a "motion blur" checkbox which when checked, will present motion blur controls which were otherwise hidden beforehand (functioning pretty much like a drop-down menu). This is exactly the type of functionality I'm looking for."

This can only be done in a text editor and is actually easier than most people imagine. You add a drop-down label which encompasses the controls you want to hide. You then add an "Input" to the node and set an "iif" expression on the label, so when your checkbox is checked it closes the label. You then hide the label and it looks like the controls open and closes automagically. You can do this with any control and any parameter.

"Last example of the sort of functionality I'm looking for would be utilizing a button press to reset the values of multiple sliders."

Same as the preset button as you can use it to change almost anything, including multiple parameters and the modes of the nodes.

As I mentioned I am on my laptop as it is 05:40 here. I will post an example later today and the 5th tutorial on Jan 29th, on YouTube is about how to do exactly this.

Chat soon -John

Example of preset code

Code: Select all
{
   Tools = ordered() {
      Shortcuts = GroupOperator {
         Inputs = ordered() {
            -- Input1 = InstanceInput {
            --    SourceOp = "MainText",
            --    Source = "StyledText",
            --    Expression = "Text1.StyledText.Value .. Text2.StyledText.Value .. Text3.StyledText.Value .. Text4.StyledText.Value ..  Text5.StyledText.Value .. Text6.StyledText.Value .. Text7.StyledText.Value",
            --    Name = "Read Only",
            --    Page = "Text",
            -- },
            Key1 = InstanceInput {
               SourceOp = "Text1",
               Source = "StyledText",
               Name = "Text1",
               Page = "Text",
            },
            
            
            Key2 = InstanceInput {
               SourceOp = "Text2",
               Source = "StyledText",
               Name = "Text2",
               Page = "Text",
            },
            
            Key3 = InstanceInput {
               SourceOp = "Text3",
               Source = "StyledText",
               Name = "Text3",
               Page = "Text",
            },
            Key4 = InstanceInput {
               SourceOp = "Text4",
               Source = "StyledText",
               Name = "Text4",
               Page = "Text",
            },
            Key5 = InstanceInput {
               SourceOp = "Text5",
               Source = "StyledText",
               Name = "Text5",
               Page = "Text",
            },
            Key6 = InstanceInput {
               SourceOp = "Text6",
               Source = "StyledText",
               Name = "Text6",
               Page = "Text",
            },
            Key7 = InstanceInput {
               SourceOp = "Text7",
               Source = "StyledText",
               Name = "Text7",
               Page = "Text",
            },
            Input9a = InstanceInput {
               SourceOp = "Position",
               Source = "Center",
            },
            Input10 = InstanceInput {
               SourceOp = "Position",
               Source = "Size",
               Default = 0.5,
            },
            Input11 = InstanceInput {
               SourceOp = "Position",
               Source = "Angle",
               Default = 0,
            },
            -- presets
            ClearAll = InstanceInput {
               SourceOp = "M1",
               Source = "ClearAll",
               Name = "Clear All",
               Page = "Controls",
               },
            Shortcuts = InstanceInput {
               SourceOp = "M1",
               Source = "Label01",
               Name = "Shortcuts",
               Page = "Controls",
               },
            SelectTools = InstanceInput {
               SourceOp = "M1",
               Source = "SelectTools",
               Name = "Select Tools",
               Page = "Controls",
               },
            SelectAction = InstanceInput {
               SourceOp = "M1",
               Source = "SelectAction",
               Name = "Select Action",
               Page = "Controls",
               },
            
            Label02 = InstanceInput {
               SourceOp = "M1",
               Source = "Label02",
               Name = "Keyboard",
               Page = "Controls",
               },
               
            Submit = InstanceInput {
               SourceOp = "M1",
               Source = "Submit",
               Name = "Enter",
               Page = "Controls",
               },
            Delete = InstanceInput {
               SourceOp = "M1",
               Source = "Delete",
               Name = "Delete",
               Page = "Controls",
               },
            ShiftPlus = InstanceInput {
               SourceOp = "M1",
               Source = "ShiftPlus",
               Name = "Shift +",
               Page = "Controls",
               },
            CtrlPlus = InstanceInput {
               SourceOp = "M1",
               Source = "CtrlPlus",
               Name = "Ctrl +",
               Page = "Controls",
               },
            AltPlus = InstanceInput {
               SourceOp = "M1",
               Source = "AltPlus",
               Name = "Alt +",
               Page = "Controls",
               },
            SpacePlus = InstanceInput {
               SourceOp = "M1",
               Source = "SpacePlus",
               Name = "Space +",
               Page = "Controls",
               },
            InputA = InstanceInput {
               SourceOp = "M1",
               Source = "InputA",
               Name = "A",
               Page = "Controls",
               },
            InputB = InstanceInput {
               SourceOp = "M1",
               Source = "InputB",
               Name = "B",
               Page = "Controls",
               },
            InputC = InstanceInput {
               SourceOp = "M1",
               Source = "InputC",
               Name = "C",
               Page = "Controls",
               },
            InputD = InstanceInput {
               SourceOp = "M1",
               Source = "InputD",
               Name = "D",
               Page = "Controls",
               },
            InputE = InstanceInput {
               SourceOp = "M1",
               Source = "InputE",
               Name = "E",
               Page = "Controls",
               },
            InputF = InstanceInput {
               SourceOp = "M1",
               Source = "InputF",
               Name = "F",
               Page = "Controls",
               },
            InputG = InstanceInput {
               SourceOp = "M1",
               Source = "InputG",
               Name = "G",
               Page = "Controls",
               },
            InputH = InstanceInput {
               SourceOp = "M1",
               Source = "InputH",
               Name = "H",
               Page = "Controls",
               },
            InputI = InstanceInput {
               SourceOp = "M1",
               Source = "InputI",
               Name = "I",
               Page = "Controls",
               },
            InputJ = InstanceInput {
               SourceOp = "M1",
               Source = "InputJ",
               Name = "J",
               Page = "Controls",
               },
            InputK = InstanceInput {
               SourceOp = "M1",
               Source = "InputK",
               Name = "K",
               Page = "Controls",
               },
            InputL = InstanceInput {
               SourceOp = "M1",
               Source = "InputL",
               Name = "L",
               Page = "Controls",
               },
            InputM = InstanceInput {
               SourceOp = "M1",
               Source = "InputM",
               Name = "M",
               Page = "Controls",
               },
            InputN = InstanceInput {
               SourceOp = "M1",
               Source = "InputN",
               Name = "N",
               Page = "Controls",
               },
            InputO = InstanceInput {
               SourceOp = "M1",
               Source = "InputO",
               Name = "O",
               Page = "Controls",
               },
            InputP = InstanceInput {
               SourceOp = "M1",
               Source = "InputP",
               Name = "P",
               Page = "Controls",
               },
            InputQ = InstanceInput {
               SourceOp = "M1",
               Source = "InputQ",
               Name = "Q",
               Page = "Controls",
               },
            InputR = InstanceInput {
               SourceOp = "M1",
               Source = "InputR",
               Name = "R",
               Page = "Controls",
               },
            InputS = InstanceInput {
               SourceOp = "M1",
               Source = "InputS",
               Name = "S",
               Page = "Controls",
               },
            InputT = InstanceInput {
               SourceOp = "M1",
               Source = "InputT",
               Name = "T",
               Page = "Controls",
               },
            InputU = InstanceInput {
               SourceOp = "M1",
               Source = "InputU",
               Name = "U",
               Page = "Controls",
               },
            InputV = InstanceInput {
               SourceOp = "M1",
               Source = "InputV",
               Name = "V",
               Page = "Controls",
               },
            InputW = InstanceInput {
               SourceOp = "M1",
               Source = "InputW",
               Name = "W",
               Page = "Controls",
               },
            InputX = InstanceInput {
               SourceOp = "M1",
               Source = "InputX",
               Name = "X",
               Page = "Controls",
               },
            InputY = InstanceInput {
               SourceOp = "M1",
               Source = "InputY",
               Name = "Y",
               Page = "Controls",
               },
            InputZ = InstanceInput {
               SourceOp = "M1",
               Source = "InputZ",
               Name = "Z",
               Page = "Controls",
               },
            Label03 = InstanceInput {
               SourceOp = "M1",
               Source = "Label03",
               Name = "NumPad",
               Page = "Controls",
               },
            Input0 = InstanceInput {
               SourceOp = "M1",
               Source = "Input0",
               Name = "0",
               Page = "Controls",
               },   
            Input1 = InstanceInput {
               SourceOp = "M1",
               Source = "Input1",
               Name = "1",
               Page = "Controls",
               },   
            Input2 = InstanceInput {
               SourceOp = "M1",
               Source = "Input2",
               Name = "2",
               Page = "Controls",
               },   
            Input3 = InstanceInput {
               SourceOp = "M1",
               Source = "Input3",
               Name = "3",
               Page = "Controls",
               },   
            Input4 = InstanceInput {
               SourceOp = "M1",
               Source = "Input4",
               Name = "4",
               Page = "Controls",
               },   
            Input5 = InstanceInput {
               SourceOp = "M1",
               Source = "Input5",
               Name = "5",
               Page = "Controls",
               },   
            Input6 = InstanceInput {
               SourceOp = "M1",
               Source = "Input6",
               Name = "6",
               Page = "Controls",
               },   
            Input7 = InstanceInput {
               SourceOp = "M1",
               Source = "Input7",
               Name = "7",
               Page = "Controls",
               },   
            Input8 = InstanceInput {
               SourceOp = "M1",
               Source = "Input8",
               Name = "8",
               Page = "Controls",
               },   
            Input9 = InstanceInput {
               SourceOp = "M1",
               Source = "Input9",
               Name = "9",
               Page = "Controls",
               },   
               -- special Characters cause issues
            
               -- console tricks
            Label04 = InstanceInput {
               SourceOp = "M1",
               Source = "Label04",
               Name = "Console Code",
               Page = "Controls",
               },
            Console = InstanceInput {
               SourceOp = "M1",
               Source = "Console",
               Name = "Open Console",
               Page = "Controls",
               },
            Hotkey = InstanceInput {
               SourceOp = "M1",
               Source = "Hotkey",
               Name = "Hotkey Manager",
               Page = "Controls",
               },
            Toolbar = InstanceInput {
               SourceOp = "M1",
               Source = "Toolbar",
               Name = "Toolbar Manager",
               Page = "Controls",
               },
            
         },
         Outputs = {
            MainOutput1 = InstanceOutput {
               SourceOp = "Position",
               Source = "Output",
            }
         },
         ViewInfo = GroupInfo { Pos = { 0, 0 } },
         Tools = ordered() {
            MainText = TextPlus {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Width = Input { Value = 1920, },
                  Height = Input { Value = 1080, },
                  UseFrameFormatSettings = Input { Value = 1, },
                  ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
                  LayoutRotation = Input { Value = 1, },
                  Alpha = Input { Value = 0.05, },
                  CharacterSpacing = Input { Value = 1.062, },
                  TransformRotation = Input { Value = 1, },
                  Enabled2 = Input { Value = 1, },
                  Enabled3 = Input { Value = 1, },
                  Name4 = Input { Value = "Button", },
                  Enabled4 = Input { Value = 1, },
                  Name5 = Input { Value = "BG", },
                  Enabled5 = Input { Value = 1, },
                  Blue1 = Input { Value = 0, },
                  Softness1 = Input { Value = 1, },
                  StyledText = Input {
                     Value = "SHIFT + SPACE",
                     Expression = "Text1.StyledText.Value .. Text2.StyledText.Value .. Text3.StyledText.Value .. Text4.StyledText.Value ..  Text5.StyledText.Value .. Text6.StyledText.Value .. Text7.StyledText.Value",
                  },
                  Font = Input { Value = "Poppins", },
                  Style = Input { Value = "Bold", },
                  VerticalJustificationNew = Input { Value = 3, },
                  HorizontalLeftCenterRight = Input { Value = -1, },
                  HorizontalJustificationNew = Input { Value = 3, },
                  Thickness2 = Input { Value = 0.0945, },
                  OutsideOnly2 = Input { Value = 1, },
                  CleanIntersections2 = Input { Value = 1, },
                  JoinStyle2 = Input { Value = 3, },
                  Red2 = Input { Value = 0, },
                  Softness2 = Input { Value = 1, },
                  SoftnessX2 = Input { Value = 0.63, },
                  Softness3 = Input { Value = 1, },
                  Level4 = Input { Value = 0, },
                  Round4 = Input { Value = 0.118, },
                  Red4 = Input { Value = 0.5254901960784, },
                  Green4 = Input { Value = 0.5254901960784, },
                  Blue4 = Input { Value = 0.5254901960784, },
                  Softness4 = Input { Value = 1, },
                  ElementShape5 = Input { Value = 2, },
                  Level5 = Input { Value = 0, },
                  ExtendHorizontal5 = Input { Value = 0.07, },
                  ExtendVertical5 = Input { Value = 0.07, },
                  Round5 = Input { Value = 0.205, },
                  Red5 = Input { Value = 0.882, },
                  Green5 = Input { Value = 0.882, },
                  Blue5 = Input { Value = 0.882, },
                  Softness5 = Input { Value = 1, },
               },
               ViewInfo = OperatorInfo { Pos = { 0, 49.5 } },
               UserControls = ordered() {
                  StyledText = {
                     TEC_ReadOnly = false,
                     LINKS_Name = "Styled Text",
                     ICS_ControlPage = "Text",
                     LINKID_DataType = "Text",
                     INPID_InputControl = "TextEditControl",
                     TEC_Lines = 1,
                     TEC_Wrap = false,
                  }
               }
            },
            Text1 = TextPlus {
               CtrlWShown = false,
               NameSet = true,
               SourceOp = "MainText",
               Inputs = {
                  EffectMask = Input { },
                  SettingsNest = Input { },
                  ImageNest = Input { },
                  ["Gamut.ColorSpaceNest"] = Input { },
                  ["Gamut.GammaSpaceNest"] = Input { },
                  Layout = Input { },
                  LayoutRotation = Input { Value = 1, },
                  Background = Input { },
                  TransformTransform = Input { },
                  TransformRotation = Input { Value = 1, },
                  TransformShear = Input { },
                  TransformSize = Input { },
                  Properties1 = Input { },
                  Softness1 = Input { Value = 1, },
                  Position1 = Input { },
                  Rotation1 = Input { },
                  Shear1 = Input { },
                  Size1 = Input { },
                  TextText = Input { },
                  StyledText = Input { },
                  TabSpacing = Input { },
                  AdvancedFontControls = Input { },
                  ClearSelectedKerning = Input { },
                  ClearAllKerning = Input { },
                  ClearSelectedPlacement = Input { },
                  ClearAllPlacement = Input { },
                  Internal = Input { },
                  CommentsNest = Input { },
                  FrameRenderScriptNest = Input { },
                  StartRenderScripts = Input { },
                  EndRenderScripts = Input { },
                  Properties2 = Input { },
                  Softness2 = Input { Value = 1, },
                  Position2 = Input { },
                  Rotation2 = Input { },
                  Shear2 = Input { },
                  Size2 = Input { },
                  Properties3 = Input { },
                  Softness3 = Input { Value = 1, },
                  Position3 = Input { },
                  Rotation3 = Input { },
                  Shear3 = Input { },
                  Size3 = Input { },
                  Properties4 = Input { },
                  Softness4 = Input { Value = 1, },
                  Position4 = Input { },
                  Rotation4 = Input { },
                  Shear4 = Input { },
                  Size4 = Input { },
                  Properties5 = Input { },
                  Softness5 = Input { Value = 1, },
                  Position5 = Input { },
                  Rotation5 = Input { },
                  Shear5 = Input { },
                  Size5 = Input { },
               },
               ViewInfo = OperatorInfo { Pos = { 165, 16.5 } },
               UserControls = ordered() {
                  StyledText = {
                     TEC_ReadOnly = false,
                     LINKS_Name = "Styled Text",
                     ICS_ControlPage = "Text",
                     LINKID_DataType = "Text",
                     INPID_InputControl = "TextEditControl",
                     TEC_Lines = 1,
                     TEC_Wrap = false,
                  }
               }
            },
            Text2 = TextPlus {
               CtrlWShown = false,
               NameSet = true,
               SourceOp = "Text1",
               Inputs = {
                  EffectMask = Input { },
                  SettingsNest = Input { },
                  ImageNest = Input { },
                  ["Gamut.ColorSpaceNest"] = Input { },
                  ["Gamut.GammaSpaceNest"] = Input { },
                  Layout = Input { },
                  LayoutRotation = Input { Value = 1, },
                  Background = Input { },
                  TransformTransform = Input { },
                  TransformRotation = Input { Value = 1, },
                  TransformShear = Input { },
                  TransformSize = Input { },
                  Properties1 = Input { },
                  Softness1 = Input { Value = 1, },
                  Position1 = Input { },
                  Rotation1 = Input { },
                  Shear1 = Input { },
                  Size1 = Input { },
                  TextText = Input { },
                  StyledText = Input { },
                  TabSpacing = Input { },
                  AdvancedFontControls = Input { },
                  ClearSelectedKerning = Input { },
                  ClearAllKerning = Input { },
                  ClearSelectedPlacement = Input { },
                  ClearAllPlacement = Input { },
                  Internal = Input { },
                  CommentsNest = Input { },
                  FrameRenderScriptNest = Input { },
                  StartRenderScripts = Input { },
                  EndRenderScripts = Input { },
                  Properties2 = Input { },
                  Softness2 = Input { Value = 1, },
                  Position2 = Input { },
                  Rotation2 = Input { },
                  Shear2 = Input { },
                  Size2 = Input { },
                  Properties3 = Input { },
                  Softness3 = Input { Value = 1, },
                  Position3 = Input { },
                  Rotation3 = Input { },
                  Shear3 = Input { },
                  Size3 = Input { },
                  Properties4 = Input { },
                  Softness4 = Input { Value = 1, },
                  Position4 = Input { },
                  Rotation4 = Input { },
                  Shear4 = Input { },
                  Size4 = Input { },
                  Properties5 = Input { },
                  Softness5 = Input { Value = 1, },
                  Position5 = Input { },
                  Rotation5 = Input { },
                  Shear5 = Input { },
                  Size5 = Input { },
               },
               ViewInfo = OperatorInfo { Pos = { 275, 16.5 } },
               UserControls = ordered() {
                  StyledText = {
                     TEC_ReadOnly = false,
                     LINKS_Name = "Styled Text",
                     ICS_ControlPage = "Text",
                     LINKID_DataType = "Text",
                     INPID_InputControl = "TextEditControl",
                     TEC_Lines = 1,
                     TEC_Wrap = false,
                  }
               }
            },
            Text3 = TextPlus {
               CtrlWShown = false,
               NameSet = true,
               SourceOp = "Text1",
               Inputs = {
                  EffectMask = Input { },
                  SettingsNest = Input { },
                  ImageNest = Input { },
                  ["Gamut.ColorSpaceNest"] = Input { },
                  ["Gamut.GammaSpaceNest"] = Input { },
                  Layout = Input { },
                  LayoutRotation = Input { Value = 1, },
                  Background = Input { },
                  TransformTransform = Input { },
                  TransformRotation = Input { Value = 1, },
                  TransformShear = Input { },
                  TransformSize = Input { },
                  Properties1 = Input { },
                  Softness1 = Input { Value = 1, },
                  Position1 = Input { },
                  Rotation1 = Input { },
                  Shear1 = Input { },
                  Size1 = Input { },
                  TextText = Input { },
                  StyledText = Input { },
                  TabSpacing = Input { },
                  AdvancedFontControls = Input { },
                  ClearSelectedKerning = Input { },
                  ClearAllKerning = Input { },
                  ClearSelectedPlacement = Input { },
                  ClearAllPlacement = Input { },
                  Internal = Input { },
                  CommentsNest = Input { },
                  FrameRenderScriptNest = Input { },
                  StartRenderScripts = Input { },
                  EndRenderScripts = Input { },
                  StledText = Input { },
                  Properties2 = Input { },
                  Softness2 = Input { Value = 1, },
                  Position2 = Input { },
                  Rotation2 = Input { },
                  Shear2 = Input { },
                  Size2 = Input { },
                  Properties3 = Input { },
                  Softness3 = Input { Value = 1, },
                  Position3 = Input { },
                  Rotation3 = Input { },
                  Shear3 = Input { },
                  Size3 = Input { },
                  Properties4 = Input { },
                  Softness4 = Input { Value = 1, },
                  Position4 = Input { },
                  Rotation4 = Input { },
                  Shear4 = Input { },
                  Size4 = Input { },
                  Properties5 = Input { },
                  Softness5 = Input { Value = 1, },
                  Position5 = Input { },
                  Rotation5 = Input { },
                  Shear5 = Input { },
                  Size5 = Input { },
               },
               ViewInfo = OperatorInfo { Pos = { 385, 16.5 } },
               UserControls = ordered() {
                  StledText = {
                     TEC_ReadOnly = false,
                     LINKS_Name = "Styled Text",
                     ICS_ControlPage = "Text",
                     LINKID_DataType = "Text",
                     INPID_InputControl = "TextEditControl",
                     TEC_Lines = 1,
                     TEC_Wrap = false,
                  },
                  StyledText = {
                     TEC_ReadOnly = false,
                     LINKS_Name = "Styled Text",
                     ICS_ControlPage = "Text",
                     LINKID_DataType = "Text",
                     INPID_InputControl = "TextEditControl",
                     TEC_Lines = 1,
                     TEC_Wrap = false,
                  }
               }
            },
            Text4 = TextPlus {
               CtrlWShown = false,
               NameSet = true,
               SourceOp = "Text3",
               Inputs = {
                  EffectMask = Input { },
                  SettingsNest = Input { },
                  ImageNest = Input { },
                  ["Gamut.ColorSpaceNest"] = Input { },
                  ["Gamut.GammaSpaceNest"] = Input { },
                  Layout = Input { },
                  LayoutRotation = Input { Value = 1, },
                  Background = Input { },
                  TransformTransform = Input { },
                  TransformRotation = Input { Value = 1, },
                  TransformShear = Input { },
                  TransformSize = Input { },
                  Properties1 = Input { },
                  Softness1 = Input { Value = 1, },
                  Position1 = Input { },
                  Rotation1 = Input { },
                  Shear1 = Input { },
                  Size1 = Input { },
                  TextText = Input { },
                  StyledText = Input { },
                  TabSpacing = Input { },
                  AdvancedFontControls = Input { },
                  ClearSelectedKerning = Input { },
                  ClearAllKerning = Input { },
                  ClearSelectedPlacement = Input { },
                  ClearAllPlacement = Input { },
                  Internal = Input { },
                  CommentsNest = Input { },
                  FrameRenderScriptNest = Input { },
                  StartRenderScripts = Input { },
                  EndRenderScripts = Input { },
                  Properties2 = Input { },
                  Softness2 = Input { Value = 1, },
                  Position2 = Input { },
                  Rotation2 = Input { },
                  Shear2 = Input { },
                  Size2 = Input { },
                  Properties3 = Input { },
                  Softness3 = Input { Value = 1, },
                  Position3 = Input { },
                  Rotation3 = Input { },
                  Shear3 = Input { },
                  Size3 = Input { },
                  Properties4 = Input { },
                  Softness4 = Input { Value = 1, },
                  Position4 = Input { },
                  Rotation4 = Input { },
                  Shear4 = Input { },
                  Size4 = Input { },
                  Properties5 = Input { },
                  Softness5 = Input { Value = 1, },
                  Position5 = Input { },
                  Rotation5 = Input { },
                  Shear5 = Input { },
                  Size5 = Input { },
               },
               ViewInfo = OperatorInfo { Pos = { 495, 16.5 } },
               UserControls = ordered() {
                  StyledText = {
                     TEC_ReadOnly = false,
                     LINKS_Name = "Styled Text",
                     ICS_ControlPage = "Text",
                     LINKID_DataType = "Text",
                     INPID_InputControl = "TextEditControl",
                     TEC_Lines = 1,
                     TEC_Wrap = false,
                  }
               }
            },
            Text5 = TextPlus {
               CtrlWShown = false,
               NameSet = true,
               SourceOp = "Text3",
               Inputs = {
                  EffectMask = Input { },
                  SettingsNest = Input { },
                  ImageNest = Input { },
                  ["Gamut.ColorSpaceNest"] = Input { },
                  ["Gamut.GammaSpaceNest"] = Input { },
                  Layout = Input { },
                  LayoutRotation = Input { Value = 1, },
                  Background = Input { },
                  TransformTransform = Input { },
                  TransformRotation = Input { Value = 1, },
                  TransformShear = Input { },
                  TransformSize = Input { },
                  Properties1 = Input { },
                  Softness1 = Input { Value = 1, },
                  Position1 = Input { },
                  Rotation1 = Input { },
                  Shear1 = Input { },
                  Size1 = Input { },
                  TextText = Input { },
                  StyledText = Input { },
                  TabSpacing = Input { },
                  AdvancedFontControls = Input { },
                  ClearSelectedKerning = Input { },
                  ClearAllKerning = Input { },
                  ClearSelectedPlacement = Input { },
                  ClearAllPlacement = Input { },
                  Internal = Input { },
                  CommentsNest = Input { },
                  FrameRenderScriptNest = Input { },
                  StartRenderScripts = Input { },
                  EndRenderScripts = Input { },
                  Properties2 = Input { },
                  Softness2 = Input { Value = 1, },
                  Position2 = Input { },
                  Rotation2 = Input { },
                  Shear2 = Input { },
                  Size2 = Input { },
                  Properties3 = Input { },
                  Softness3 = Input { Value = 1, },
                  Position3 = Input { },
                  Rotation3 = Input { },
                  Shear3 = Input { },
                  Size3 = Input { },
                  Properties4 = Input { },
                  Softness4 = Input { Value = 1, },
                  Position4 = Input { },
                  Rotation4 = Input { },
                  Shear4 = Input { },
                  Size4 = Input { },
                  Properties5 = Input { },
                  Softness5 = Input { Value = 1, },
                  Position5 = Input { },
                  Rotation5 = Input { },
                  Shear5 = Input { },
                  Size5 = Input { },
               },
               ViewInfo = OperatorInfo { Pos = { 605, 16.5 } },
               UserControls = ordered() {
                  StyledText = {
                     TEC_ReadOnly = false,
                     LINKS_Name = "Styled Text",
                     ICS_ControlPage = "Text",
                     LINKID_DataType = "Text",
                     INPID_InputControl = "TextEditControl",
                     TEC_Lines = 1,
                     TEC_Wrap = false,
                  }
               }
            },
            Text6 = TextPlus {
               CtrlWShown = false,
               NameSet = true,
               SourceOp = "Text5",
               Inputs = {
                  EffectMask = Input { },
                  SettingsNest = Input { },
                  ImageNest = Input { },
                  ["Gamut.ColorSpaceNest"] = Input { },
                  ["Gamut.GammaSpaceNest"] = Input { },
                  Layout = Input { },
                  LayoutRotation = Input { Value = 1, },
                  Background = Input { },
                  TransformTransform = Input { },
                  TransformRotation = Input { Value = 1, },
                  TransformShear = Input { },
                  TransformSize = Input { },
                  Properties1 = Input { },
                  Softness1 = Input { Value = 1, },
                  Position1 = Input { },
                  Rotation1 = Input { },
                  Shear1 = Input { },
                  Size1 = Input { },
                  TextText = Input { },
                  StyledText = Input { },
                  TabSpacing = Input { },
                  AdvancedFontControls = Input { },
                  ClearSelectedKerning = Input { },
                  ClearAllKerning = Input { },
                  ClearSelectedPlacement = Input { },
                  ClearAllPlacement = Input { },
                  Internal = Input { },
                  CommentsNest = Input { },
                  FrameRenderScriptNest = Input { },
                  StartRenderScripts = Input { },
                  EndRenderScripts = Input { },
                  Properties2 = Input { },
                  Softness2 = Input { Value = 1, },
                  Position2 = Input { },
                  Rotation2 = Input { },
                  Shear2 = Input { },
                  Size2 = Input { },
                  Properties3 = Input { },
                  Softness3 = Input { Value = 1, },
                  Position3 = Input { },
                  Rotation3 = Input { },
                  Shear3 = Input { },
                  Size3 = Input { },
                  Properties4 = Input { },
                  Softness4 = Input { Value = 1, },
                  Position4 = Input { },
                  Rotation4 = Input { },
                  Shear4 = Input { },
                  Size4 = Input { },
                  Properties5 = Input { },
                  Softness5 = Input { Value = 1, },
                  Position5 = Input { },
                  Rotation5 = Input { },
                  Shear5 = Input { },
                  Size5 = Input { },
               },
               ViewInfo = OperatorInfo { Pos = { 715, 16.5 } },
               UserControls = ordered() {
                  StyledText = {
                     TEC_ReadOnly = false,
                     TEC_Wrap = false,
                     ICS_ControlPage = "Text",
                     LINKID_DataType = "Text",
                     INPID_InputControl = "TextEditControl",
                     TEC_Lines = 1,
                     LINKS_Name = "Styled Text",
                  }
               }
            },
            Text7 = TextPlus {
               CtrlWShown = false,
               NameSet = true,
               SourceOp = "Text5",
               Inputs = {
                  EffectMask = Input { },
                  SettingsNest = Input { },
                  ImageNest = Input { },
                  ["Gamut.ColorSpaceNest"] = Input { },
                  ["Gamut.GammaSpaceNest"] = Input { },
                  Layout = Input { },
                  LayoutRotation = Input { Value = 1, },
                  Background = Input { },
                  TransformTransform = Input { },
                  TransformRotation = Input { Value = 1, },
                  TransformShear = Input { },
                  TransformSize = Input { },
                  Properties1 = Input { },
                  Softness1 = Input { Value = 1, },
                  Position1 = Input { },
                  Rotation1 = Input { },
                  Shear1 = Input { },
                  Size1 = Input { },
                  TextText = Input { },
                  StyledText = Input { },
                  TabSpacing = Input { },
                  AdvancedFontControls = Input { },
                  ClearSelectedKerning = Input { },
                  ClearAllKerning = Input { },
                  ClearSelectedPlacement = Input { },
                  ClearAllPlacement = Input { },
                  Internal = Input { },
                  CommentsNest = Input { },
                  FrameRenderScriptNest = Input { },
                  StartRenderScripts = Input { },
                  EndRenderScripts = Input { },
                  Properties2 = Input { },
                  Softness2 = Input { Value = 1, },
                  Position2 = Input { },
                  Rotation2 = Input { },
                  Shear2 = Input { },
                  Size2 = Input { },
                  Properties3 = Input { },
                  Softness3 = Input { Value = 1, },
                  Position3 = Input { },
                  Rotation3 = Input { },
                  Shear3 = Input { },
                  Size3 = Input { },
                  Properties4 = Input { },
                  Softness4 = Input { Value = 1, },
                  Position4 = Input { },
                  Rotation4 = Input { },
                  Shear4 = Input { },
                  Size4 = Input { },
                  Properties5 = Input { },
                  Softness5 = Input { Value = 1, },
                  Position5 = Input { },
                  Rotation5 = Input { },
                  Shear5 = Input { },
                  Size5 = Input { },
               },
               ViewInfo = OperatorInfo { Pos = { 825, 16.5 } },
               UserControls = ordered() {
                  StyledText = {
                     TEC_ReadOnly = false,
                     TEC_Wrap = false,
                     ICS_ControlPage = "Text",
                     LINKID_DataType = "Text",
                     INPID_InputControl = "TextEditControl",
                     TEC_Lines = 1,
                     LINKS_Name = "Styled Text",
                  }
               }
            },
            Position = Transform {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Center = Input { Value = { 0.05, 0.1 }, },
                  Size = Input { Value = 0.5, },
                  Aspect = Input { Value = 1.0, },
                  Input = Input {
                     SourceOp = "M1",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 1045, 82.5 } },
            },
            plate = Background {
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Size = Input { Value = 0.5, },
                  Width = Input { Value = 1920, },
                  Height = Input { Value = 1080, },
                  UseFrameFormatSettings = Input { Value = 1, },
                  ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
                  TopLeftAlpha = Input { Value = 0, },
               },
               ViewInfo = OperatorInfo { Pos = { -220, 82.5 } },
            },
            M1 = Merge {
               CtrlWZoom = false,
               CtrlWShown = false,
               NameSet = true,
               Inputs = {
                  Background = Input {
                     SourceOp = "plate",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "MainText",
                     Source = "Output",
                  },
                  PerformDepthMerge = Input { Value = 0, },
                  Label01 = Input { Value = 1, },
                  Label02 = Input { Value = 1, },
                  Label03 = Input { Value = 1, },
                  Label04 = Input { Value = 1, },
                  Label05 = Input { Value = 1, },
               },
               ViewInfo = OperatorInfo { Pos = { 0, 82.5 } },
               UserControls = ordered() {
                  ClearAll = {
                     ICD_Width = 1,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key1', '')\n Shortcuts:SetInput('Key2','')\n Shortcuts:SetInput('Key3', '')\n Shortcuts:SetInput('Key4', '')\n Shortcuts:SetInput('Key5', '')\n Shortcuts:SetInput('Key6', '')\n Shortcuts:SetInput('Key7', '')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name = "Preset",
                  },
                  SelectTools = {
                     ICD_Width = 0.5,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key1', '')\n Shortcuts:SetInput('Key2', '')\n Shortcuts:SetInput('Key3', 'SHIFT ')\n Shortcuts:SetInput('Key4', '+ ')\n Shortcuts:SetInput('Key5', 'SPACE')\n Shortcuts:SetInput('Key6', '')\n Shortcuts:SetInput('Key7', '')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name = "Preset",
                  },
                  SelectAction = {
                     ICD_Width = 0.5,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key1', 'SHIFT ')\n Shortcuts:SetInput('Key2', '+ ')\n Shortcuts:SetInput('Key3', 'CTRL ')\n Shortcuts:SetInput('Key4', '+ ')\n Shortcuts:SetInput('Key5', 'SPACE')\n Shortcuts:SetInput('Key6', '')\n Shortcuts:SetInput('Key7', '')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name = "Preset",
                  },
                  Console = {
                     ICD_Width = 1,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key1', 'SHIFT + ')\n Shortcuts:SetInput('Key2', '0')\n Shortcuts:SetInput('Key3', '')\n Shortcuts:SetInput('Key4', '')\n Shortcuts:SetInput('Key5', '')\nShortcuts:SetInput('Key6','')\n Shortcuts:SetInput('Key7', '')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name = "Preset",
                  },
                  Hotkey = {
                     ICD_Width = 0.5,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key1', 'app:CustomizeHotkeys()')\n Shortcuts:SetInput('Key2', '')\n Shortcuts:SetInput('Key3', '')\n Shortcuts:SetInput('Key4', '')\n Shortcuts:SetInput('Key5', '')\nShortcuts:SetInput('Key6','')\n Shortcuts:SetInput('Key7', '')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name = "Preset",
                  },
                  Toolbar = {
                     ICD_Width = 0.5,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key1', 'app:CustomizeToolbars()')\n Shortcuts:SetInput('Key2', '')\n Shortcuts:SetInput('Key3', '')\n Shortcuts:SetInput('Key4', '')\n Shortcuts:SetInput('Key5', '')\nShortcuts:SetInput('Key6','')\n Shortcuts:SetInput('Key7', '')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name = "Preset",
                  },
                  
                  Submit = {
                     ICD_Width = 0.5,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key1', 'ENTER')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name = "Preset",
                  },
                  Delete = {
                     ICD_Width = 0.5,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key1', 'DELETE')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name = "Preset",
                  },
                  ShiftPlus = {
                     ICD_Width = 0.5,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key1', 'SHIFT + ')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name = "Preset",
                  },
                  CtrlPlus = {
                     ICD_Width = 0.5,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key2','CTRL + ')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name = "Preset",
                  },
                  AltPlus = {
                     ICD_Width = 0.5,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key3', 'ALT + ')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name = "Preset",
                  },
                  SpacePlus = {
                     ICD_Width = 0.5,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key4', 'SPACE + ')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name = "Preset",
                  },
                  InputA = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'A')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name = "Preset",
                  },
                  InputB = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'B')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputC = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'C')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputD = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'D')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputE = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'E')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputF = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'F')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputG = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'G')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputH = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'H')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputI = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'I')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputJ = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'J')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputK = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'K')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputL = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'L')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputM = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'M')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputN = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'N')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputO = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'O')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputP = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'P')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputQ = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'Q')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputR = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'R')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputS = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'S')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputT = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'T')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputU = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'U')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputV = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'V')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputW = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'W')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputX = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'X')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputY = {
                     ICD_Width = 0.2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'Y')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  InputZ = {
                     ICD_Width = 1.0,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key5', 'Z')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  Input0 = {
                     ICD_Width = .2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key6', '0')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  Input1 = {
                     ICD_Width = .2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key6', '1')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  Input2 = {
                     ICD_Width = .2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key6', '2')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  Input3 = {
                     ICD_Width = .2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key6', '3')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  Input4 = {
                     ICD_Width = .2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key6', '4')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  Input5 = {
                     ICD_Width = .2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key6', '5')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  Input6 = {
                     ICD_Width = .2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key6', '6')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  Input7 = {
                     ICD_Width = .2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key6', '7')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  Input8 = {
                     ICD_Width = .2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key6', '8')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  Input9 = {
                     ICD_Width = .2,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     BTNCS_Execute = "Shortcuts:SetInput('Key6', '9')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name ="Preset",
                  },
                  
                  
                  Shortcuts = {
                     INP_Integer = false,
                     LBLC_DropDownButton = true,
                     LINKID_DataType = "Number",
                     LBLC_NumInputs = 1,
                     INP_Passive = true,
                     INP_External = false,
                     INPID_InputControl = "LabelControl",
                     LINKS_Name = "Shortcuts",
                     },
                  Label02 = {
                     INP_Integer = false,
                     LBLC_DropDownButton = true,
                     LINKID_DataType = "Number",
                     LBLC_NumInputs = 32,
                     INP_Passive = true,
                     INP_External = false,
                     INPID_InputControl = "LabelControl",
                     LINKS_Name = "Label01",
                     },
                  Label03 = {
                     INP_Integer = false,
                     LBLC_DropDownButton = true,
                     LINKID_DataType = "Number",
                     LBLC_NumInputs = 10,
                     INP_Passive = true,
                     INP_External = false,
                     INPID_InputControl = "LabelControl",
                     LINKS_Name = "Label01",
                     },
                  Label04 = {
                     INP_Integer = false,
                     LBLC_DropDownButton = true,
                     LINKID_DataType = "Number",
                     LBLC_NumInputs =3,
                     INP_Passive = true,
                     INP_External = false,
                     INPID_InputControl = "LabelControl",
                     LINKS_Name = "Label01",
                     },
                  Label05 = {
                     INP_Integer = false,
                     LBLC_DropDownButton = true,
                     LINKID_DataType = "Number",
                     LBLC_NumInputs = 1,
                     INP_Passive = true,
                     INP_External = false,
                     INPID_InputControl = "LabelControl",
                     LINKS_Name = "Label01",
                     },
               }
            }
         },
      }
   },
   ActiveTool = "Shortcuts"
}


Example of Hide and Show Code using a checkbox and an expression on the label

Code: Select all
{
   Tools = ordered() {
      MacroTool5 = GroupOperator {
         CtrlWZoom = false,
         Inputs = ordered() {
            Input5 = InstanceInput {
               SourceOp = "Background1",
               Source = "Hide",
            },
            Label = InstanceInput {
               SourceOp = "Background1",
               Source = "Label",
               Expression = "iif(Input5 == 1,1,0)",
               Name = "Name",
               Page = "Controls",
            },
            Input1 = InstanceInput {
               SourceOp = "Background1",
               Source = "TopLeftRed",
               Name = "Color",
               ControlGroup = 1,
               Default = 0,
            },
            Input2 = InstanceInput {
               SourceOp = "Background1",
               Source = "TopLeftGreen",
               ControlGroup = 1,
               Default = 0,
            },
            Input3 = InstanceInput {
               SourceOp = "Background1",
               Source = "TopLeftBlue",
               ControlGroup = 1,
               Default = 0,
            },
            Input4 = InstanceInput {
               SourceOp = "Background1",
               Source = "TopLeftAlpha",
               ControlGroup = 1,
               Default = 1,
            }
         },
         Outputs = {
            MainOutput1 = InstanceOutput {
               SourceOp = "Background1",
               Source = "Output",
            }
         },
         ViewInfo = GroupInfo {
            Pos = { 165, -115.5 },
            Flags = {
               AllowPan = false,
               GridSnap = true,
               ConnectedSnap = true,
               AutoSnap = true,
               RemoveRouters = true
            },
            Size = { 126, 66.3636, 63, 24.2424 },
            Direction = "Horizontal",
            PipeStyle = "Orthogonal",
            Scale = 1,
            Offset = { 0, 0 }
         },
         Tools = ordered() {
            Background1 = Background {
               CtrlWZoom = false,
               CtrlWShown = false,
               Inputs = {
                  GlobalOut = Input { Value = 213, },
                  Width = Input { Value = 1920, },
                  Height = Input { Value = 1080, },
                  UseFrameFormatSettings = Input { Value = 1, },
                  ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
                  Label = Input { Expression = "iif(Input5 == 1,1,0)", },
               },
               ViewInfo = OperatorInfo { Pos = { 0, 8.75757 } },
               UserControls = ordered() {
                  Hide = {
                     CBC_TriState = false,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     INP_Passive = false,
                     INPID_InputControl = "CheckboxControl",
                     LINKS_Name = "Hide",
                  },
                  Label = {
                     INP_MaxAllowed = 1000000,
                     INP_Integer = false,
                     LBLC_DropDownButton = true,
                     INPID_InputControl = "LabelControl",
                     LBLC_NumInputs = 4,
                     INP_MaxScale = 1,
                     INP_MinScale = 0,
                     INP_MinAllowed = -1000000,
                     LINKID_DataType = "Number",
                     IC_Visible = false,
                     LBLC_NestLevel = 1,
                     INP_Passive = false,
                     LINKS_Name = "Label",
                  }
               }
            }
         },
      }
   }
}
Windows 10 Pro
AMD Ryzen 5 3600 6-Core Processor 3.60 GHz
64GB RAM
GTX1650 4GB :(
Samsung SSD 970 EVO Plus 1TB 1000.2 GB
Dual Monitors 32" & 27" Samsung
BM Multidock
Speed Editor
DR Studio Latest Version Fusion Studio Latest Version
Offline

JBroadway

  • Posts: 24
  • Joined: Tue Mar 03, 2020 7:20 pm
  • Real Name: Jeremiah Broadway

Re: Add/remove or set fusion tool control parameters from sc

PostMon Jan 02, 2023 12:00 am

John Holt wrote:The answer is a resounding YES!

Thank you so much! This is extremely useful. I'm very comfortable coding and will study your coding samples.

Thanks again!
Offline

JBroadway

  • Posts: 24
  • Joined: Tue Mar 03, 2020 7:20 pm
  • Real Name: Jeremiah Broadway

Re: Add/remove or set fusion tool control parameters from sc

PostSun Jan 15, 2023 9:29 pm

John Holt wrote:Same as the preset button as you can use it to change almost anything, including multiple parameters and the modes of the nodes.


Hey John, is there a way to self reference a macro when using BTNCS_Execute?

I noticed in your code when using the BTNCS_Execute attribute you reference the name of the macro itself as Shortcuts

Code: Select all
UserControls = ordered() {
                  ClearAll = {
                     ICD_Width = 1,
                     INP_Integer = false,
                     LINKID_DataType = "Number",
                     [b]BTNCS_Execute = "Shortcuts:SetInput('Key1', '')[/b]\n Shortcuts:SetInput('Key2','')\n Shortcuts:SetInput('Key3', '')\n Shortcuts:SetInput('Key4', '')\n Shortcuts:SetInput('Key5', '')\n Shortcuts:SetInput('Key6', '')\n Shortcuts:SetInput('Key7', '')",
                     ICS_ControlPage = "Controls",
                     INPID_InputControl = "ButtonControl",
                     LINKS_Name = "Preset",
                  },

Unfortunately, if you duplicate your macro, so you have two instances of it (shortcuts, and shortcuts_1), The buttons in shortcuts_1 do not work on itself and instead affects shortcuts.

Is there a way to get around this so duplicated instances of a macro work independently?
I tried BTNCS_Execute = "self:SetInput('Key1', '')" but that did not work.
Offline
User avatar

Bryan Ray

  • Posts: 2449
  • Joined: Mon Nov 28, 2016 5:32 am
  • Location: Los Angeles, CA, USA

Re: Add/remove or set fusion tool control parameters from sc

PostMon Jan 16, 2023 12:06 am

tool references the operator that the button was run from. For instance:

Code: Select all
{
   Tools = ordered() {
      BrightnessContrast1 = BrightnessContrast {
         CtrlWZoom = false,
         ViewInfo = OperatorInfo { Pos = { 552, 29.7879 } },
         UserControls = ordered() {
            NewControl = {
               LINKS_Name = "New Control",
               LINKID_DataType = "Number",
               INPID_InputControl = "ButtonControl",
               INP_Integer = false,
               BTNCS_Execute = "tool.Gain = 0.5",
               ICS_ControlPage = "Controls",
            }
         }
      }
   }
}


I'm not sure if that works on a Group or not. It might be necessary to put the button on a tool internal to the macro and instance it onto the Group's control panel.
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline

JBroadway

  • Posts: 24
  • Joined: Tue Mar 03, 2020 7:20 pm
  • Real Name: Jeremiah Broadway

Re: Add/remove or set fusion tool control parameters from sc

PostMon Jan 16, 2023 12:30 am

Bryan Ray wrote:tool references the operator that the button was run from.

Thanks a bunch! This works perfectly.
Offline

AsherRoland

  • Posts: 2
  • Joined: Wed Aug 10, 2022 11:33 pm
  • Real Name: Ethan Patrick

Re: Add/remove or set fusion tool control parameters from sc

PostSat Aug 19, 2023 12:10 am

Hey OP, I saw your use of BTNCS_Execute on a button. I was wondering if it could change an expression of a control that is on the same modifier as the button?
Offline

AsherRoland

  • Posts: 2
  • Joined: Wed Aug 10, 2022 11:33 pm
  • Real Name: Ethan Patrick

Re: Add/remove or set fusion tool control parameters from sc

PostSat Aug 19, 2023 12:14 am

Hi Bryan Ray, I saw this and i was wondering if you're also able to use BTNCS_Execute to change an expression on a control that is on the same modifier as the button?



Bryan Ray wrote:tool references the operator that the button was run from. For instance:

Code: Select all
{
   Tools = ordered() {
      BrightnessContrast1 = BrightnessContrast {
         CtrlWZoom = false,
         ViewInfo = OperatorInfo { Pos = { 552, 29.7879 } },
         UserControls = ordered() {
            NewControl = {
               LINKS_Name = "New Control",
               LINKID_DataType = "Number",
               INPID_InputControl = "ButtonControl",
               INP_Integer = false,
               BTNCS_Execute = "tool.Gain = 0.5",
               ICS_ControlPage = "Controls",
            }
         }
      }
   }
}


I'm not sure if that works on a Group or not. It might be necessary to put the button on a tool internal to the macro and instance it onto the Group's control panel.
Offline

xdnetOLEG

  • Posts: 2
  • Joined: Wed Sep 27, 2023 6:09 pm
  • Real Name: Олег Овчинников

Re: Add/remove or set fusion tool control parameters from sc

PostWed Sep 27, 2023 6:13 pm

Hello! please tell me where to look for more information about scripts called by the button.
I need a script that will reset the settings of a specific node.
Offline

Sander de Regt

  • Posts: 3295
  • Joined: Thu Nov 13, 2014 10:09 pm

Re: Add/remove or set fusion tool control parameters from sc

PostThu Sep 28, 2023 3:02 pm

Is a button more convenient than right-click 'reset defaults'?
Sander de Regt

ShadowMaker SdR
The Netherlands

Return to Fusion

Who is online

Users browsing this forum: Bing [Bot] and 20 guests