Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
set cut_paste_input [stack 0] version 12.2 v7 push $cut_paste_input Group { name ImagePlane3D4 knobChanged "n = nuke.thisNode()\nk = nuke.thisKnob()\n\nif k.name() == 'inputChange':\n n\['distanceAxis'].setVisible(n\[\"isOn\"].value())\n n.knob('distance').setVisible(not n\[\"isOn\"].value())\n \nif k.name() == 'result':\n result = n.knob('result').getValue()\n if result == 0:\n n.knob('samples').setVisible(True)\n n.knob('motionblur').setVisible(False)\n elif result == 1 or result == 2 or result == 3 :\n n.knob('samples').setVisible(False)\n n.knob('motionblur').setVisible(True)\n" tile_color 0x3121a5ff label "ref \[value refFrame] dis: \[value distance]\n" note_font Verdana note_font_color 0xffffffff selected true xpos -370 ypos -213 addUserKnob {20 imagePlane3D l ImagePlane3D} addUserKnob {4 output l "
Output:" M {Stabilize Matchmove "" "" ""}} output Matchmove addUserKnob {4 result l Result: M {"3D Projection Setup" "Card3D Setup" "Live (Reconcile3D)" "Baked (Cornerpin)" "" "" "" "" "" "" ""}} result "Baked (Cornerpin)" addUserKnob {26 status l " Status:" T "
Is Baked on Frames: 1001-1030"} addUserKnob {3 refFrame l "Ref Frame"} refFrame 1001 addUserKnob {22 setRefFrame l "Set Ref Frame" -STARTLINE T "n = nuke.thisNode()\nref = n.knob('refFrame')\nframe = nuke.frame()\n\nref.setValue(frame)"} addUserKnob {7 distance l DistanceFromCam R 0 1000} distance 1.1 addUserKnob {22 bakeFramerange l "
Bake FrameRange" T "import time\nimport threading\n\nn = nuke.thisNode()\n#Define this node\n\nstatus = n.knob(\"status\")\nresult = n.knob('result')\n\nr1 = nuke.toNode(\"Reconcile3DTL\")\nr2 = nuke.toNode(\"Reconcile3DTR\")\nr3 = nuke.toNode(\"Reconcile3DBL\")\nr4 = nuke.toNode(\"Reconcile3DBR\")\nrL = \[r1,r2,r3,r4]\n# Define reconcile3D nodes\n\n#bcg = n.knob(\"bakeColors\")\n\ncps = nuke.toNode(\"CornerPin2DBakedStabilize\")\ncpm = nuke.toNode(\"CornerPin2DBakedMatchmove\")\n# Define cornerpin node\n\nfirst_frame = int(nuke.Root()\['first_frame'].getValue())\nlast_frame = int(nuke.Root()\['last_frame'].getValue())\n# Grab first and last frame from root\n\np = nuke.Panel(\"Execute on FrameRange\")\np.addSingleLineInput('First Frame', first_frame)\np.addSingleLineInput('Last Frame', last_frame)\np.addSingleLineInput('Increment', 1)\nif p.show():\n# Create user input panel\n \n ff = int(p.value(\"First Frame\"))\n lf = int(p.value(\"Last Frame\"))\n i = int(p.value(\"Increment\"))\n # Define first, last, increment from user input panel\n \n #k = \"status\"\n l = \"
Is Baked on Frames:\" + \" \" + str(ff) + \"-\" + str(lf)\n status.setValue(l)\n # Change status of node\n \n result.setValue(3)\n \n with n:\n r1\[\"calc_output\"].setValue(0)\n r2\[\"calc_output\"].setValue(0)\n r3\[\"calc_output\"].setValue(0)\n r4\[\"calc_output\"].setValue(0)\n # turn off live status of reconcile3Ds\n \n r1\[\"output\"].clearAnimated()\n r1\[\"outputxyz\"].clearAnimated()\n r2\[\"output\"].clearAnimated()\n r2\[\"outputxyz\"].clearAnimated()\n r3\[\"output\"].clearAnimated()\n r3\[\"outputxyz\"].clearAnimated()\n r4\[\"output\"].clearAnimated()\n r4\[\"outputxyz\"].clearAnimated()\n # Clear any data from all Reconcile3D nodes\n \n def execute(first,last,inc):\n runMe = True\n while runMe == True:\n nuke.execute(r1,first,last,inc) \n nuke.execute(r2,first,last,inc)\n nuke.execute(r3,first,last,inc)\n nuke.execute(r4,first,last,inc)\n stop_event.set()\n runMe = False\n print 'Reconcile3Ds done'\n break\n # Define Reconcile3D execution function\n \n global stop_event \n stop_event = threading.Event()\n threading.Thread(target=execute, kwargs=dict(first=ff,last=lf,inc=i) ).start() \n while not stop_event.is_set():\n time.sleep(0.1)\n # run Reconcile3Ds with threading\n \n cps\[\"from4\"].copyAnimations(r1\[\"output\"].animations())\n cps\[\"from3\"].copyAnimations(r2\[\"output\"].animations())\n cps\[\"from1\"].copyAnimations(r3\[\"output\"].animations())\n cps\[\"from2\"].copyAnimations(r4\[\"output\"].animations())\n \n cpm\[\"to4\"].copyAnimations(r1\[\"output\"].animations())\n cpm\[\"to3\"].copyAnimations(r2\[\"output\"].animations())\n cpm\[\"to1\"].copyAnimations(r3\[\"output\"].animations())\n cpm\[\"to2\"].copyAnimations(r4\[\"output\"].animations())\n # copy reconcile3D values over to cornerpins\n \n r1\[\"output\"].clearAnimated()\n r1\[\"outputxyz\"].clearAnimated()\n r2\[\"output\"].clearAnimated()\n r2\[\"outputxyz\"].clearAnimated()\n r3\[\"output\"].clearAnimated()\n r3\[\"outputxyz\"].clearAnimated()\n r4\[\"output\"].clearAnimated()\n r4\[\"outputxyz\"].clearAnimated()\n # clear animation from live reconcile3Ds\n \n r1\[\"calc_output\"].setValue(1)\n r2\[\"calc_output\"].setValue(1)\n r3\[\"calc_output\"].setValue(1)\n r4\[\"calc_output\"].setValue(1)\n # make reconcile3ds live again\n " +STARTLINE} addUserKnob {22 clearBaked l "
Clear Baked" -STARTLINE T "n = nuke.thisNode()\nw = n.width()\nh = n.height()\nresult = n.knob('result')\n\ncps = nuke.toNode(\"CornerPin2DBakedStabilize\")\ncpm = nuke.toNode(\"CornerPin2DBakedMatchmove\")\nstatus = n.knob(\"status\")\n\ncpsfrom1 = cps.knob(\"from1\")\ncpsfrom2 = cps.knob(\"from2\")\ncpsfrom3 = cps.knob(\"from3\")\ncpsfrom4 = cps.knob(\"from4\")\n\ncpmto1 = cpm.knob(\"to1\")\ncpmto2 = cpm.knob(\"to2\")\ncpmto3 = cpm.knob(\"to3\")\ncpmto4 = cpm.knob(\"to4\")\n\ncpsfrom1.clearAnimated()\ncpsfrom2.clearAnimated()\ncpsfrom3.clearAnimated()\ncpsfrom4.clearAnimated()\ncpmto1.clearAnimated()\ncpmto2.clearAnimated()\ncpmto3.clearAnimated()\ncpmto4.clearAnimated()\n\ncpsfrom1.setValue(0,0)\ncpsfrom1.setValue(0,1)\ncpsfrom2.setValue(w,0)\ncpsfrom2.setValue(0,1)\ncpsfrom3.setValue(w,0)\ncpsfrom3.setValue(h,1)\ncpsfrom4.setValue(0,0)\ncpsfrom4.setValue(h,1)\n\ncpmto1.setValue(0,0)\ncpmto1.setValue(0,1)\ncpmto2.setValue(w,0)\ncpmto2.setValue(0,1)\ncpmto3.setValue(w,0)\ncpmto3.setValue(h,1)\ncpmto4.setValue(0,0)\ncpmto4.setValue(h,1)\n\nstatus.setValue(\"
Is NOT Baked\")\nresult.setValue(2)"} addUserKnob {22 exportBakedTrack l "
Export Baked CornerPin" T "n = nuke.thisNode()\n\ncps = nuke.toNode(\"CornerPin2DBakedStabilize\")\ncpsName = str(n.name())\nrefFrame = int(n.knob(\"refFrame\").value())\ndist = n.knob(\"distance\").value()\n\ncpsfrom1 = cps.knob(\"from1\")\ncpsfrom2 = cps.knob(\"from2\")\ncpsfrom3 = cps.knob(\"from3\")\ncpsfrom4 = cps.knob(\"from4\")\n\nwith nuke.Root():\n posX = n.knob(\"xpos\").value()\n posY = n.knob(\"ypos\").value()\n nukescripts.clear_selection_recursive()\n cpn = nuke.createNode('CornerPin2D')\n cpn.setName(cpsName + \"_CnrPin\")\n cpn.knob('xpos').setValue(posX +100)\n cpn.knob('ypos').setValue(posY +70)\n cpn.autoplace()\n cpn.setInput(0, None)\n \n cpnto1 = cpn.knob('to1')\n cpnto2 = cpn.knob('to2')\n cpnto3 = cpn.knob('to3')\n cpnto4 = cpn.knob('to4')\n \n cpnfrom1 = cpn.knob('from1')\n cpnfrom2 = cpn.knob('from2')\n cpnfrom3 = cpn.knob('from3')\n cpnfrom4 = cpn.knob('from4')\n \n cpnfrom1.copyAnimations(cpsfrom1.animations())\n cpnfrom2.copyAnimations(cpsfrom2.animations())\n cpnfrom3.copyAnimations(cpsfrom3.animations())\n cpnfrom4.copyAnimations(cpsfrom4.animations())\n \n tab = nuke.Tab_Knob('settings', 'Settings')\n \n setCurrentFrameBtn = nuke.PyScript_Knob(\"setCurrentFrame\", \"Set to Current Frame\")\n setCurrentFrameBtn.setCommand('n = nuke.thisNode()\\nrefFrame = n.knob(\"refFrame\")\\nrefFrame.setValue(nuke.frame())\\nrefFrame = refFrame.getValue()\\noutput = n.knob(\"output\")\\nto1 = n.knob(\"to1\")\\nto2 = n.knob(\"to2\")\\nto3 = n.knob(\"to3\")\\nto4 = n.knob(\"to4\")\\nfrom1 = n.knob(\"from1\")\\nfrom2 = n.knob(\"from2\")\\nfrom3 = n.knob(\"from3\")\\nfrom4 = n.knob(\"from4\")\\nif output.getValue() == 0:\\n to1.setValue(from1.getValueAt(refFrame))\\n to2.setValue(from2.getValueAt(refFrame))\\n to3.setValue(from3.getValueAt(refFrame))\\n to4.setValue(from4.getValueAt(refFrame))\\nif output.getValue() == 1:\\n from1.setValue(to1.getValueAt(refFrame))\\n from2.setValue(to2.getValueAt(refFrame))\\n from3.setValue(to3.getValueAt(refFrame))\\n from4.setValue(to4.getValueAt(refFrame))')\n \n setFrameBtn = nuke.PyScript_Knob('setFrame', 'Set Frame')\n setFrameBtn.setCommand('n = nuke.thisNode()\\nrefFrame = n.knob(\\\"refFrame\\\").getValue()\\noutput = n.knob(\\\"output\\\")\\nto1 = n.knob(\\\"to1\\\")\\nto2 = n.knob(\\\"to2\\\")\\nto3 = n.knob(\\\"to3\\\")\\nto4 = n.knob(\\\"to4\\\")\\nfrom1 = n.knob(\\\"from1\\\")\\nfrom2 = n.knob(\\\"from2\\\")\\nfrom3 = n.knob(\\\"from3\\\")\\nfrom4 = n.knob(\\\"from4\\\")\\nif output.getValue() == 0:\\n to1.setValue(from1.getValueAt(refFrame))\\n to2.setValue(from2.getValueAt(refFrame))\\n to3.setValue(from3.getValueAt(refFrame))\\n to4.setValue(from4.getValueAt(refFrame))\\nif output.getValue() == 1:\\n from1.setValue(to1.getValueAt(refFrame))\\n from2.setValue(to2.getValueAt(refFrame))\\n from3.setValue(to3.getValueAt(refFrame))\\n from4.setValue(to4.getValueAt(refFrame))')\n \n StabBtn = nuke.PyScript_Knob(\"stabilize\", \"
Stabilize\")\n StabBtn.setFlag(nuke.STARTLINE)\n StabBtn.setCommand('n = nuke.thisNode()\\nstab = n.knob(\"stabilize\")\\nmatch = n.knob(\"matchmove\")\\noutput = n.knob(\"output\")\\nrefFrame = n.knob(\"refFrame\").getValue()\\nif output.getValue() == 1:\\n stab.setLabel(\"
Stabilize\")\\n match.setLabel(\"
Matchmove\")\\n to1 = n.knob(\"to1\")\\n to2 = n.knob(\"to2\")\\n to3 = n.knob(\"to3\")\\n to4 = n.knob(\"to4\")\\n from1 = n.knob(\"from1\")\\n from2 = n.knob(\"from2\")\\n from3 = n.knob(\"from3\")\\n from4 = n.knob(\"from4\")\\n from1.copyAnimations(to1.animations())\\n from2.copyAnimations(to2.animations())\\n from3.copyAnimations(to3.animations())\\n from4.copyAnimations(to4.animations())\\n to1.clearAnimated()\\n to2.clearAnimated()\\n to3.clearAnimated()\\n to4.clearAnimated()\\n to1.setValue(from1.getValueAt(refFrame))\\n to2.setValue(from2.getValueAt(refFrame))\\n to3.setValue(from3.getValueAt(refFrame))\\n to4.setValue(from4.getValueAt(refFrame))\\n output.setValue(0)')\n \n MatchBtn = nuke.PyScript_Knob(\"matchmove\", \"
Matchmove\")\n MatchBtn.setCommand('n = nuke.thisNode()\\nstab = n.knob(\"stabilize\")\\nmatch = n.knob(\"matchmove\")\\noutput = n.knob(\"output\")\\nrefFrame = n.knob(\"refFrame\").getValue()\\nif output.getValue() == 0:\\n stab.setLabel(\"
Stabilize\")\\n match.setLabel(\"
Matchmove\")\\n to1 = n.knob(\"to1\")\\n to2 = n.knob(\"to2\")\\n to3 = n.knob(\"to3\")\\n to4 = n.knob(\"to4\")\\n from1 = n.knob(\"from1\")\\n from2 = n.knob(\"from2\")\\n from3 = n.knob(\"from3\")\\n from4 = n.knob(\"from4\")\\n to1.copyAnimations(from1.animations())\\n to2.copyAnimations(from2.animations())\\n to3.copyAnimations(from3.animations())\\n to4.copyAnimations(from4.animations())\\n from1.clearAnimated()\\n from2.clearAnimated()\\n from3.clearAnimated()\\n from4.clearAnimated()\\n from1.setValue(to1.getValueAt(refFrame))\\n from2.setValue(to2.getValueAt(refFrame))\\n from3.setValue(to3.getValueAt(refFrame))\\n from4.setValue(to4.getValueAt(refFrame))\\n output.setValue(1)')\n\n pulldownStatus = nuke.Enumeration_Knob('output', 'Output', \['Stabilized', 'Matchmoved'])\n \n intFrame = nuke.Int_Knob(\"refFrame\", \"Ref Frame\")\n intFrame.setFlag(nuke.STARTLINE)\n cpn.addKnob(tab)\n \n cpn.addKnob(setCurrentFrameBtn)\n cpn.addKnob(intFrame)\n cpn.knob(\"refFrame\").setValue(refFrame)\n \n cpn.addKnob(setFrameBtn)\n \n cpn.addKnob(StabBtn)\n cpn.addKnob(MatchBtn)\n \n cpn.addKnob(pulldownStatus)\n cpn.knob('output').setVisible(False)\n \n cpnto1.setValue(cpnfrom1.getValueAt(refFrame))\n cpnto2.setValue(cpnfrom2.getValueAt(refFrame))\n cpnto3.setValue(cpnfrom3.getValueAt(refFrame))\n cpnto4.setValue(cpnfrom4.getValueAt(refFrame))\n \n cpn\['label'].setValue('rf: \[value refFrame] dist: \{\}'.format(dist))" +STARTLINE} addUserKnob {22 exportLinkedTrack l "
Export Linked CornerPin" -STARTLINE T "n = nuke.thisNode()\n\ncps = nuke.toNode(\"CornerPin2DBakedStabilize\")\nnName = str(n.name())\ncpsName = str(cps.name())\nrefFrame = int(n.knob(\"refFrame\").value())\ndist = n.knob(\"distance\").value()\n\ncpsfrom1 = cps.knob(\"from1\")\ncpsfrom2 = cps.knob(\"from2\")\ncpsfrom3 = cps.knob(\"from3\")\ncpsfrom4 = cps.knob(\"from4\")\n\nwith nuke.Root():\n posX = n.knob(\"xpos\").value()\n posY = n.knob(\"ypos\").value()\n cpn = nuke.createNode('CornerPin2D')\n cpn.setName(nName + \"_Tracker\")\n cpn.knob('xpos').setValue(posX +100)\n cpn.knob('ypos').setValue(posY +70)\n cpn.autoplace()\n cpn.setInput(0, None)\n \n cpnto1 = cpn.knob('to1')\n cpnto2 = cpn.knob('to2')\n cpnto3 = cpn.knob('to3')\n cpnto4 = cpn.knob('to4')\n \n cpnfrom1 = cpn.knob('from1')\n cpnfrom2 = cpn.knob('from2')\n cpnfrom3 = cpn.knob('from3')\n cpnfrom4 = cpn.knob('from4')\n \n cpnfrom1.setExpression(nName + \".\" + cpsName + \".\" + \"from1\")\n cpnfrom2.setExpression(nName + \".\" + cpsName + \".\" + \"from2\")\n cpnfrom3.setExpression(nName + \".\" + cpsName + \".\" + \"from3\")\n cpnfrom4.setExpression(nName + \".\" + cpsName + \".\" + \"from4\")\n \n tab = nuke.Tab_Knob('settings', 'Settings')\n \n setCurrentFrameBtn = nuke.PyScript_Knob(\"setCurrentFrame\", \"Set to Current Frame\")\n setCurrentFrameBtn.setCommand('n = nuke.thisNode()\\nrefFrame = n.knob(\"refFrame\")\\nrefFrame.setValue(nuke.frame())\\nrefFrame = refFrame.getValue()\\noutput = n.knob(\"output\")\\nto1 = n.knob(\"to1\")\\nto2 = n.knob(\"to2\")\\nto3 = n.knob(\"to3\")\\nto4 = n.knob(\"to4\")\\nfrom1 = n.knob(\"from1\")\\nfrom2 = n.knob(\"from2\")\\nfrom3 = n.knob(\"from3\")\\nfrom4 = n.knob(\"from4\")\\nif output.getValue() == 0:\\n to1.setValue(from1.getValueAt(refFrame))\\n to2.setValue(from2.getValueAt(refFrame))\\n to3.setValue(from3.getValueAt(refFrame))\\n to4.setValue(from4.getValueAt(refFrame))\\nif output.getValue() == 1:\\n from1.setValue(to1.getValueAt(refFrame))\\n from2.setValue(to2.getValueAt(refFrame))\\n from3.setValue(to3.getValueAt(refFrame))\\n from4.setValue(to4.getValueAt(refFrame))')\n \n setFrameBtn = nuke.PyScript_Knob('setFrame', 'Set Frame')\n setFrameBtn.setCommand('n = nuke.thisNode()\\nrefFrame = n.knob(\\\"refFrame\\\").getValue()\\noutput = n.knob(\\\"output\\\")\\nto1 = n.knob(\\\"to1\\\")\\nto2 = n.knob(\\\"to2\\\")\\nto3 = n.knob(\\\"to3\\\")\\nto4 = n.knob(\\\"to4\\\")\\nfrom1 = n.knob(\\\"from1\\\")\\nfrom2 = n.knob(\\\"from2\\\")\\nfrom3 = n.knob(\\\"from3\\\")\\nfrom4 = n.knob(\\\"from4\\\")\\nif output.getValue() == 0:\\n to1.setValue(from1.getValueAt(refFrame))\\n to2.setValue(from2.getValueAt(refFrame))\\n to3.setValue(from3.getValueAt(refFrame))\\n to4.setValue(from4.getValueAt(refFrame))\\nif output.getValue() == 1:\\n from1.setValue(to1.getValueAt(refFrame))\\n from2.setValue(to2.getValueAt(refFrame))\\n from3.setValue(to3.getValueAt(refFrame))\\n from4.setValue(to4.getValueAt(refFrame))')\n \n StabBtn = nuke.PyScript_Knob(\"stabilize\", \"
Stabilize\")\n StabBtn.setFlag(nuke.STARTLINE)\n StabBtn.setCommand('n = nuke.thisNode()\\nstab = n.knob(\"stabilize\")\\nmatch = n.knob(\"matchmove\")\\noutput = n.knob(\"output\")\\nrefFrame = n.knob(\"refFrame\").getValue()\\nif output.getValue() == 1:\\n stab.setLabel(\"
Stabilize\")\\n match.setLabel(\"
Matchmove\")\\n to1 = n.knob(\"to1\")\\n to2 = n.knob(\"to2\")\\n to3 = n.knob(\"to3\")\\n to4 = n.knob(\"to4\")\\n from1 = n.knob(\"from1\")\\n from2 = n.knob(\"from2\")\\n from3 = n.knob(\"from3\")\\n from4 = n.knob(\"from4\")\\n from1.copyAnimations(to1.animations())\\n from2.copyAnimations(to2.animations())\\n from3.copyAnimations(to3.animations())\\n from4.copyAnimations(to4.animations())\\n to1.clearAnimated()\\n to2.clearAnimated()\\n to3.clearAnimated()\\n to4.clearAnimated()\\n to1.setValue(from1.getValueAt(refFrame))\\n to2.setValue(from2.getValueAt(refFrame))\\n to3.setValue(from3.getValueAt(refFrame))\\n to4.setValue(from4.getValueAt(refFrame))\\n output.setValue(0)')\n \n MatchBtn = nuke.PyScript_Knob(\"matchmove\", \"
Matchmove\")\n MatchBtn.setCommand('n = nuke.thisNode()\\nstab = n.knob(\"stabilize\")\\nmatch = n.knob(\"matchmove\")\\noutput = n.knob(\"output\")\\nrefFrame = n.knob(\"refFrame\").getValue()\\nif output.getValue() == 0:\\n stab.setLabel(\"
Stabilize\")\\n match.setLabel(\"
Matchmove\")\\n to1 = n.knob(\"to1\")\\n to2 = n.knob(\"to2\")\\n to3 = n.knob(\"to3\")\\n to4 = n.knob(\"to4\")\\n from1 = n.knob(\"from1\")\\n from2 = n.knob(\"from2\")\\n from3 = n.knob(\"from3\")\\n from4 = n.knob(\"from4\")\\n to1.copyAnimations(from1.animations())\\n to2.copyAnimations(from2.animations())\\n to3.copyAnimations(from3.animations())\\n to4.copyAnimations(from4.animations())\\n from1.clearAnimated()\\n from2.clearAnimated()\\n from3.clearAnimated()\\n from4.clearAnimated()\\n from1.setValue(to1.getValueAt(refFrame))\\n from2.setValue(to2.getValueAt(refFrame))\\n from3.setValue(to3.getValueAt(refFrame))\\n from4.setValue(to4.getValueAt(refFrame))\\n output.setValue(1)')\n\n pulldownStatus = nuke.Enumeration_Knob('output', 'Output', \['Stabilized', 'Matchmoved'])\n \n intFrame = nuke.Int_Knob(\"refFrame\", \"Ref Frame\")\n intFrame.setFlag(nuke.STARTLINE)\n cpn.addKnob(tab)\n \n cpn.addKnob(setCurrentFrameBtn)\n cpn.addKnob(intFrame)\n cpn.knob(\"refFrame\").setValue(refFrame)\n \n cpn.addKnob(setFrameBtn)\n \n cpn.addKnob(StabBtn)\n cpn.addKnob(MatchBtn)\n \n cpn.addKnob(pulldownStatus)\n cpn.knob('output').setVisible(False)\n \n cpnto1.setValue(cpnfrom1.getValueAt(refFrame))\n cpnto2.setValue(cpnfrom2.getValueAt(refFrame))\n cpnto3.setValue(cpnfrom3.getValueAt(refFrame))\n cpnto4.setValue(cpnfrom4.getValueAt(refFrame))\n \n cpn\['label'].setValue('rf: \[value refFrame] dist: \{\}'.format(dist))"} addUserKnob {41 isOn +INVISIBLE T isON.isOn} addUserKnob {7 distanceAxis l DistanceToAxis +HIDDEN R 0 1000} distanceAxis {{AxisDistance.NoOp1.distance}} addUserKnob {26 overscanSettings l "
Overscan"} addUserKnob {7 overscan l Overscan R 0 200} overscan 200 addUserKnob {26 mBlurSettings l "
MotionBlur"} addUserKnob {7 samples +HIDDEN R 1 10} samples 1 addUserKnob {7 motionblur} addUserKnob {7 shutter R 0 2} shutter 0.5 addUserKnob {41 shutteroffset l "shutter offset" T TimeBlur.shutteroffset} } BackdropNode { inputs 0 name BackdropNode1 tile_color 0x57614e00 label Live note_font_size 60 note_font_color 0xffffffff xpos 1893 ypos 398 bdwidth 301 bdheight 350 } BackdropNode { inputs 0 name BackdropNode2 tile_color 0x3c472700 label Baked note_font_size 60 note_font_color 0xffffffff xpos 2354 ypos 382 bdwidth 300 bdheight 358 } BackdropNode { inputs 0 name BackdropNode3 tile_color 0x5e443cff label Card3D note_font_size 100 note_font_color 0xffffffff xpos 1129 ypos -908 bdwidth 400 bdheight 1690 } BackdropNode { inputs 0 name BackdropNode4 tile_color 0x686b5900 label "Projection 3D setup" note_font_size 60 note_font_color 0xffffffff xpos -13 ypos -827 bdwidth 735 bdheight 1748 } BackdropNode { inputs 0 name BackdropNode5 tile_color 0x44573100 label "Corners of Cards \nfor Reconcile 3D" note_font_size 60 note_font_color 0xffffffff xpos 1771 ypos -1109 bdwidth 763 bdheight 1355 } BackdropNode { inputs 0 name BackdropNode6 tile_color 0x555f6b00 label "input cam" note_font_size 60 note_font_color 0xffffffff xpos 929 ypos -1247 bdwidth 267 bdheight 232 } BackdropNode { inputs 0 name BackdropNode8 tile_color 0x4b5a2e00 label Camera note_font_size 60 note_font_color 0xffffffff xpos -638 ypos -401 bdwidth 442 bdheight 1189 } Input { inputs 0 name Inputcam xpos -598 ypos -300 number 1 } set Nb50bec00 [stack 0] Camera { projection_mode {{"\[value the_cam]projection_mode"}} focal {{"\[value \[value the_cam]focal]"}} haperture {{"\[value \[value the_cam]haperture]"}} vaperture {{"\[value \[value the_cam]vaperture]"}} near {{"\[value \[value the_cam]near]"}} far {{"\[value \[value the_cam]far]"}} win_translate {{"\[lindex \[value \[value the_cam]win_translate] 0]"} {"\[lindex \[value \[value the_cam]win_translate] 1]"}} win_scale {{"\[lindex \[value \[value the_cam]win_scale] 0]"} {"\[lindex \[value \[value the_cam]win_scale] 1]"}} winroll {{"\[value \[value the_cam]winroll]"}} focal_point {{"\[value \[value the_cam]focal_point]"}} fstop {{"\[value \[value the_cam]fstop]"}} name DummyCam help "DummyCam by Adrian Pueyo\n\nCamera that apart from the matrices also grabs all the \"Projection\" values from the upstream camera that it's connected to. Turns into a default Camera if not Camera connected.\n\nCan also be used inside of groups and gizmos, as many levels deep as you want :D\n\nAll using live and super fast TCL.\n\nadrianpueyo.com, 2019" onCreate "n = nuke.thisNode()\nfor k in \[\"projection_mode\",\"focal\",\"haperture\",\"vaperture\",\"near\",\"far\",\"win_translate\",\"win_scale\",\"winroll\",\"focal_point\",\"fstop\"]:\n n\[k].setFlag(0x0000000010000000)" xpos 969 ypos -1133 addUserKnob {20 DummyCam l Defaults} addUserKnob {43 the_cam +INVISIBLE} the_cam "\[\nset the_knob \"focal\"\nset knob_index 0\nset starting_point \"this.input0\"\nset default \"this\"\nset default \[append default \".d_\"]\n\n# If cam has no inputs, return the default...\nif \{\[exists \$starting_point]\} \{\n set x \[node \$starting_point]\n\} \{ \n return \$default\n\}\n\nset finished 0\nwhile \{\$finished != 1\} \{\n\n # First look for a Cam or Input or topnode.\n while \{\[class \$x] != \"Camera2\" && \[class \$x] != \"Camera\" && \[class \$x] != \"Input\" && \$x != \[topnode \$x]\} \{\n set x \[node \$x.input0]\n \}\n\n # Then, check if node is a cam (and return), and otherwise, if it's an input, see if the parent exists and move to it.\n if \{\[class \$x]==\"Camera2\"||\[class \$x]==\"Camera\"\} \{\n set x \[append x \".\"]\n return \$x\n \} \{ \n if \{\[class \$x]==\"Input\"\} \{ \n set inp \"\$x.parent.input\"\n set inputNum \[value \$x.number]\n set inp \[append inp \$inputNum]\n if \{\[exists \$inp]\} \{\n set x \[node \$inp]\n \} \{ \n set finished 1\n \}\n \} \{ \n set finished 1\n \}\n \}\n\}\nreturn \$default\n]" addUserKnob {4 d_projection_mode l projection M {perspective orthographic uv spherical ""}} addUserKnob {7 d_focal l focal R 0 100} d_focal 60 addUserKnob {7 d_haperture l "horiz aperture" R 0 50} d_haperture 24.576 addUserKnob {7 d_vaperture l "vert aperture" R 0 50} d_vaperture 18.672 addUserKnob {7 d_near l near R 0 10} d_near 0.1 addUserKnob {7 d_far l far R 0 10000} d_far 10000 addUserKnob {12 d_win_translate l "window translate"} addUserKnob {12 d_win_scale l "window scale"} d_win_scale {1 1} addUserKnob {7 d_winroll l "window roll" R 0 45} addUserKnob {7 d_focal_point l "focal distance" R 0 10} d_focal_point 2 addUserKnob {7 d_fstop l fstop R 0 30} d_fstop 16 addUserKnob {26 text l " " T "
DummyCam v1.0
-
adrianpueyo.com
, 2019
"} } Dot { name Dot27 note_font_size 41 xpos 993 ypos -974 } set Nb50be000 [stack 0] Dot { name Dot23 label cam note_font_size 41 xpos 1317 ypos -974 } Axis2 { translate {0 0 {-parent.Settings.camDistance}} name CameraDistance label "dist to cam : \[value translate.z]" xpos 1293 ypos -665 } Axis2 { uniform_scale {{(DummyCam.haperture/DummyCam.focal)*Settings.camDistance}} name ScaleToFilmGateAxis label "uniform Scale : \[value uniform_scale]" xpos 1293 ypos -539 } set Nb50bd000 [stack 0] Axis2 { scaling {1 {DummyCam.vaperture/parent.DummyCam.haperture} 1} name AspectRatioScaleY label "scale Y : \[value scaling.y]" xpos 2131 ypos -539 } Dot { name Dot1 note_font_size 41 xpos 2155 ypos -419 } set Nb3d77c00 [stack 0] Card2 { inputs 0 image_aspect false rows 4 columns 4 control_points {3 3 3 6 1 {-0.5 -0.5 0} 0 {0.1666666865 0 0} 0 {0 0 0} 0 {0 0.1666666865 0} 0 {0 0 0} 0 {0 0 0} 1 {0 -0.5 0} 0 {0.1666666716 0 0} 0 {-0.1666666716 0 0} 0 {0 0.1666666865 0} 0 {0 0 0} 0 {0.5 0 0} 1 {0.5 -0.5 0} 0 {0 0 0} 0 {-0.1666666865 0 0} 0 {0 0.1666666865 0} 0 {0 0 0} 0 {1 0 0} 1 {-0.5 0 0} 0 {0.1666666865 0 0} 0 {0 0 0} 0 {0 0.1666666716 0} 0 {0 -0.1666666716 0} 0 {0 0.5 0} 1 {0 0 0} 0 {0.1666666716 0 0} 0 {-0.1666666716 0 0} 0 {0 0.1666666716 0} 0 {0 -0.1666666716 0} 0 {0.5 0.5 0} 1 {0.5 0 0} 0 {0 0 0} 0 {-0.1666666865 0 0} 0 {0 0.1666666716 0} 0 {0 -0.1666666716 0} 0 {1 0.5 0} 1 {-0.5 0.5 0} 0 {0.1666666865 0 0} 0 {0 0 0} 0 {0 0 0} 0 {0 -0.1666666865 0} 0 {0 1 0} 1 {0 0.5 0} 0 {0.1666666716 0 0} 0 {-0.1666666716 0 0} 0 {0 0 0} 0 {0 -0.1666666865 0} 0 {0.5 1 0} 1 {0.5 0.5 0} 0 {0 0 0} 0 {-0.1666666865 0 0} 0 {0 0 0} 0 {0 -0.1666666865 0} 0 {1 1 0} } name ProjectionPlane xpos 442 ypos -505 } TransformGeo { inputs 2 name AlignProjectionPlane1 xpos 442 ypos -422 } FrameHold { first_frame {{parent.refFrame}} name FrameHold1 xpos 442 ypos -345 } Dot { name Dot10 note_font_size 41 xpos 476 ypos -62 } set Nb3d77000 [stack 0] Dot { name Dot16 note_font_size 41 xpos 296 ypos -62 } Dot { name Dot15 note_font_size 41 xpos 296 ypos 1345 } Input { inputs 0 name Inputimg xpos 849 ypos 174 } Reformat { format {{{parent.input0.format}}} pbb true name Reformat1 xpos 849 ypos 250 } Dot { name Dot12 label img note_font_size 41 xpos 883 ypos 333 } set Nb3d75800 [stack 0] Dot { name Dot7 label img note_font_size 41 xpos 1686 ypos 333 } set Nb3d75400 [stack 0] Dot { name Dot14 note_font_size 41 xpos 1967 ypos 334 } set Nb3d75000 [stack 0] Dot { name Dot6 label img note_font_size 41 xpos 2428 ypos 334 } Dot { name Dot25 note_font_size 41 xpos 2428 ypos 482 } set Nb3d74800 [stack 0] CornerPin2D { to1 {{curve x1001 -5.54865037e-05 -25.63124847 -56.08604431 -71.30036163 -83.46737671 -107.9873047 -141.9923706 -175.8965149 -198.5614319 -212.4110565 -229.5443268 -260.1188354 -296.4772339 -323.2683105 -350.8457336 -391.8320313 -427.5226135 -460.9609375 -487.8473206 -516.809082 -550.3614502 -574.2913208 -580.7318115 -573.619812 -568.5501709 -577.6804199 -593.4160767 -599.3457031 -606.0302734 -621.1759033} {curve x1001 -106.6666183 -111.7852936 -132.903595 -160.347229 -179.4461365 -193.0858459 -203.8371429 -217.9276123 -236.0983124 -252.4960938 -263.7530212 -279.315155 -308.9803162 -344.8827515 -375.7203369 -407.5403442 -425.8114014 -446.0387878 -470.0732422 -490.6462708 -517.3140869 -547.6869507 -568.3490601 -572.6419678 -558.5553589 -544.7201538 -547.7642822 -551.5206299 -549.9306641 -550.4000854}} to2 {{curve x1001 2048.000244 2041.854004 2038.14624 2049.502441 2058.58667 2053.650879 2040.704346 2031.078613 2032.462646 2039.262817 2040.22876 2031.775635 2024.435669 2025.660522 2020.821533 2006.330078 1995.567749 1987.827759 1983.789917 1976.824707 1971.432373 1976.448975 1990.057007 2004.999023 2011.498901 2009.25647 2008.615845 2012.878418 2011.836304 2003.605591} {curve x1001 -106.6665649 -113.2116241 -133.1286011 -158.5374908 -173.308197 -181.1758728 -191.9871674 -208.716507 -226.6538544 -237.8359985 -241.6056519 -246.1370392 -261.7627563 -278.9586792 -285.3890381 -292.7220764 -304.7340698 -316.7809448 -322.90271 -325.5470886 -337.2212219 -358.5812073 -376.5253906 -379.7476501 -372.2770081 -366.6139832 -373.3731384 -380.3668823 -381.1942139 -377.1599426}} to3 {{curve x1001 2048 2045.85022 2040.311523 2044.075073 2047.341064 2040.486206 2030.7229 2024.20874 2023.778076 2025.764648 2023.633545 2012.390381 1997.47229 1985.749878 1969.335571 1945.522095 1934.691284 1925.785645 1914.758057 1902.690918 1892.562256 1891.155151 1899.316772 1911.016235 1922.891724 1930.193726 1933.19165 1938.345337 1940.33667 1934.338135} {curve x1001 1258.666626 1262.909058 1253.782349 1241.921265 1239.612061 1240.375244 1236.341431 1227.352295 1219.145752 1218.131714 1222.436035 1223.530762 1213.466187 1202.515503 1199.346924 1192.93103 1184.356079 1176.632202 1173.952881 1173.917969 1166.405273 1152.32605 1142.969116 1146.701172 1158.908203 1168.207031 1165.588135 1162.850952 1164.080688 1167.479126}} to4 {{curve x1001 5.548650006e-05 -23.85838318 -48.07077408 -57.92486954 -69.96033478 -94.61101532 -122.5526962 -146.5423584 -161.789032 -174.4862213 -193.2120667 -223.4976349 -254.4747925 -278.5124817 -310.2148132 -350.7119141 -376.5684204 -401.5693054 -427.8048096 -457.161377 -483.9329224 -495.4501648 -493.0796814 -487.3604736 -485.4984131 -492.56073 -499.0982361 -498.6359558 -502.7892761 -518.0533447} {curve x1001 1258.666626 1270.175171 1268.425171 1254.435425 1247.434204 1249.898438 1258.049194 1263.644531 1261.701538 1258.83252 1262.259644 1267.574097 1261.832275 1246.817261 1237.488525 1232.030884 1235.847534 1238.282349 1235.361938 1236.865112 1235.203369 1225.286133 1216.171387 1215.87146 1232.246094 1255.069946 1264.222412 1266.866821 1273.8396 1283.052246}} invert false motionblur {{parent.motionblur}} shutter {{parent.shutter}} shutteroffset {{parent.shutteroffset}} from1 {{to1(refFrame)} {to1(refFrame)}} from2 {{to2(refFrame)} {to2(refFrame)}} from3 {{to3(refFrame)} {to3(refFrame)}} from4 {{to4(refFrame)} {to4(refFrame)}} name CornerPin2DBakedMatchmove xpos 2535 ypos 573 addUserKnob {20 User} addUserKnob {22 "set reference frame" -STARTLINE T "import addOnCreateUU; addOnCreateUU.cornerPinZero()"} } push $Nb3d74800 CornerPin2D { to1 {{from1(refFrame)} {from1(refFrame)}} to2 {{from2(refFrame)} {from2(refFrame)}} to3 {{from3(refFrame)} {from3(refFrame)}} to4 {{from4(refFrame)} {from4(refFrame)}} invert false motionblur {{parent.motionblur}} shutter {{parent.shutter}} shutteroffset {{parent.shutteroffset}} from1 {{curve x1001 -5.54865037e-05 -25.63124847 -56.08604431 -71.30036163 -83.46737671 -107.9873047 -141.9923706 -175.8965149 -198.5614319 -212.4110565 -229.5443268 -260.1188354 -296.4772339 -323.2683105 -350.8457336 -391.8320313 -427.5226135 -460.9609375 -487.8473206 -516.809082 -550.3614502 -574.2913208 -580.7318115 -573.619812 -568.5501709 -577.6804199 -593.4160767 -599.3457031 -606.0302734 -621.1759033} {curve x1001 -106.6666183 -111.7852936 -132.903595 -160.347229 -179.4461365 -193.0858459 -203.8371429 -217.9276123 -236.0983124 -252.4960938 -263.7530212 -279.315155 -308.9803162 -344.8827515 -375.7203369 -407.5403442 -425.8114014 -446.0387878 -470.0732422 -490.6462708 -517.3140869 -547.6869507 -568.3490601 -572.6419678 -558.5553589 -544.7201538 -547.7642822 -551.5206299 -549.9306641 -550.4000854}} from2 {{curve x1001 2048.000244 2041.854004 2038.14624 2049.502441 2058.58667 2053.650879 2040.704346 2031.078613 2032.462646 2039.262817 2040.22876 2031.775635 2024.435669 2025.660522 2020.821533 2006.330078 1995.567749 1987.827759 1983.789917 1976.824707 1971.432373 1976.448975 1990.057007 2004.999023 2011.498901 2009.25647 2008.615845 2012.878418 2011.836304 2003.605591} {curve x1001 -106.6665649 -113.2116241 -133.1286011 -158.5374908 -173.308197 -181.1758728 -191.9871674 -208.716507 -226.6538544 -237.8359985 -241.6056519 -246.1370392 -261.7627563 -278.9586792 -285.3890381 -292.7220764 -304.7340698 -316.7809448 -322.90271 -325.5470886 -337.2212219 -358.5812073 -376.5253906 -379.7476501 -372.2770081 -366.6139832 -373.3731384 -380.3668823 -381.1942139 -377.1599426}} from3 {{curve x1001 2048 2045.85022 2040.311523 2044.075073 2047.341064 2040.486206 2030.7229 2024.20874 2023.778076 2025.764648 2023.633545 2012.390381 1997.47229 1985.749878 1969.335571 1945.522095 1934.691284 1925.785645 1914.758057 1902.690918 1892.562256 1891.155151 1899.316772 1911.016235 1922.891724 1930.193726 1933.19165 1938.345337 1940.33667 1934.338135} {curve x1001 1258.666626 1262.909058 1253.782349 1241.921265 1239.612061 1240.375244 1236.341431 1227.352295 1219.145752 1218.131714 1222.436035 1223.530762 1213.466187 1202.515503 1199.346924 1192.93103 1184.356079 1176.632202 1173.952881 1173.917969 1166.405273 1152.32605 1142.969116 1146.701172 1158.908203 1168.207031 1165.588135 1162.850952 1164.080688 1167.479126}} from4 {{curve x1001 5.548650006e-05 -23.85838318 -48.07077408 -57.92486954 -69.96033478 -94.61101532 -122.5526962 -146.5423584 -161.789032 -174.4862213 -193.2120667 -223.4976349 -254.4747925 -278.5124817 -310.2148132 -350.7119141 -376.5684204 -401.5693054 -427.8048096 -457.161377 -483.9329224 -495.4501648 -493.0796814 -487.3604736 -485.4984131 -492.56073 -499.0982361 -498.6359558 -502.7892761 -518.0533447} {curve x1001 1258.666626 1270.175171 1268.425171 1254.435425 1247.434204 1249.898438 1258.049194 1263.644531 1261.701538 1258.83252 1262.259644 1267.574097 1261.832275 1246.817261 1237.488525 1232.030884 1235.847534 1238.282349 1235.361938 1236.865112 1235.203369 1225.286133 1216.171387 1215.87146 1232.246094 1255.069946 1264.222412 1266.866821 1273.8396 1283.052246}} name CornerPin2DBakedStabilize xpos 2394 ypos 573 addUserKnob {20 User} addUserKnob {22 "set reference frame" -STARTLINE T "import addOnCreateUU; addOnCreateUU.cornerPinZero()"} } Switch { inputs 2 which {{output}} name Switch7 xpos 2394 ypos 650 } Dot { name Dot22 note_font_size 41 xpos 2428 ypos 1281 } push $Nb3d75000 Dot { name Dot26 note_font_size 41 xpos 1967 ypos 498 } set Nb2c22800 [stack 0] CornerPin2D { to1 {{parent.Reconcile3DBL.output} {parent.Reconcile3DBL.output}} to2 {{parent.Reconcile3DBR.output} {parent.Reconcile3DBR.output}} to3 {{parent.Reconcile3DTR.output} {parent.Reconcile3DTR.output}} to4 {{parent.Reconcile3DTL.output} {parent.Reconcile3DTL.output}} invert false motionblur {{parent.motionblur}} shutter {{parent.shutter}} shutteroffset {{parent.shutteroffset}} from1 {{to1(refFrame)} {to1(refFrame)}} from2 {{to2(refFrame)} {to2(refFrame)}} from3 {{to3(refFrame)} {to3(refFrame)}} from4 {{to4(refFrame)} {to4(refFrame)}} name CornerPin2DLiveMatchmove xpos 2074 ypos 582 addUserKnob {20 User} addUserKnob {22 "set reference frame" -STARTLINE T "import addOnCreateUU; addOnCreateUU.cornerPinZero()"} } push $Nb2c22800 CornerPin2D { to1 {{parent.Reconcile3DBL.output(refFrame)} {parent.Reconcile3DBL.output(refFrame)}} to2 {{parent.Reconcile3DBR.output(refFrame)} {parent.Reconcile3DBR.output(refFrame)}} to3 {{parent.Reconcile3DTR.output(refFrame)} {parent.Reconcile3DTR.output(refFrame)}} to4 {{parent.Reconcile3DTL.output(refFrame)} {parent.Reconcile3DTL.output(refFrame)}} invert false motionblur {{parent.motionblur}} shutter {{parent.shutter}} shutteroffset {{parent.shutteroffset}} from1 {{parent.Reconcile3DBL.output} {parent.Reconcile3DBL.output}} from2 {{parent.Reconcile3DBR.output} {parent.Reconcile3DBR.output}} from3 {{parent.Reconcile3DTR.output} {parent.Reconcile3DTR.output}} from4 {{parent.Reconcile3DTL.output} {parent.Reconcile3DTL.output}} name CornerPin2DLiveStabilize xpos 1933 ypos 583 addUserKnob {20 User} addUserKnob {22 "set reference frame" -STARTLINE T "import addOnCreateUU; addOnCreateUU.cornerPinZero()"} } Switch { inputs 2 which {{output}} name Switch5 xpos 1933 ypos 644 } Dot { name Dot3 note_font_size 41 xpos 1967 ypos 785 } push $Nb50bd000 Dot { name Dot19 note_font_size 41 xpos 1317 ypos -361 } set Nb2c20c00 [stack 0] push $Nb2c20c00 FrameHold { first_frame {{parent.refFrame}} name FrameHold4 xpos 1418 ypos -293 } Switch { inputs 2 which {{!output}} name Switch6 label "\[value which]" xpos 1283 ypos -224 } push $Nb50bec00 Dot { name Dot18 note_font_size 41 xpos -564 ypos -54 } set Nb2c20400 [stack 0] Dot { name Dot4 note_font_size 41 xpos -564 ypos 271 } set Nb848fc00 [stack 0] FrameHold { first_frame {{parent.refFrame}} name FrameHold2 xpos -454 ypos 264 } set Nf6f7cf00 [stack 0] Dot { name Dot13 note_font_size 41 xpos -420 ypos 536 } push $Nb848fc00 Dot { name Dot11 note_font_size 41 xpos -564 ypos 442 } set Nb848f400 [stack 0] Switch { inputs 2 which {{!output}} name Switch3 label "\[value which]" xpos -598 ypos 529 } Dot { name Dot8 note_font_size 41 xpos -564 ypos 629 } set Nb848ec00 [stack 0] push $Nb3d75800 Card3D { inputs 3 translate {0 0 0} format {{{parent.Reformat1.format}}} shutter {{parent.shutter}} shutteroffset {{parent.shutteroffset}} name Card3D1 xpos 1283 ypos 625 } Dot { name Dot9 note_font_size 41 xpos 1317 ypos 725 } push $Nb848ec00 Dot { name Dot5 note_font_size 41 xpos -564 ypos 736 } push $Nf6f7cf00 Dot { name Dot24 note_font_size 41 xpos -282 ypos 271 } push $Nb848f400 Switch { inputs 2 which {{output}} name Switch2 label "\[value which]" xpos -316 ypos 435 } push $Nb3d75800 Dot { name Dot29 label img note_font_size 41 xpos 626 ypos 333 } Project3D2 { inputs 2 crop false name Project3D1 xpos 592 ypos 432 } Dot { name Dot2 note_font_size 41 xpos 626 ypos 520 } push $Nb3d77000 ApplyMaterial { inputs 2 name ApplyMaterial1 xpos 442 ypos 517 } Reformat { inputs 0 format {{{parent.input0.format}}} resize none pbb true name Reformat2 xpos 591 ypos 733 } ScanlineRender { inputs 3 conservative_shader_sampling false overscan {{parent.overscan}} motion_vectors_type off MB_channel none name ScanlineRender1 xpos 442 ypos 733 } TimeBlur { divisions {{parent.samples}} shutter {{parent.shutter}} shutteroffset centred shuttercustomoffset 0 name TimeBlur xpos 442 ypos 833 disable {{"divisions == 1 ? 1 : 0"}} } Switch { inputs 4 which {{"result == 2 && !\$gui == 1 ? 0 : result"}} name Switch1 xpos 442 ypos 1277 } Switch { inputs 2 which 1 name Switch4 xpos 442 ypos 1342 disable true } Output { name Output1 xpos 442 ypos 1423 } push $Nb3d77c00 FrameHold { first_frame {{parent.refFrame}} name FrameHold3 xpos 2121 ypos -309 } Dot { name Dot21 note_font_size 41 xpos 2155 ypos -250 } set Nb7d96400 [stack 0] Axis2 { translate {0.5 0.5 0} name TopRight xpos 2043 ypos -178 } set Nb7d96000 [stack 0] push $Nb50be000 Dot { name Dot20 label cam note_font_size 41 xpos 993 ypos 11 } Dot { name Dot17 label cam note_font_size 41 xpos 1837 ypos 11 } set Nb7d95400 [stack 0] push $Nb3d75400 Reconcile3D { inputs 3 calc_output true output {1934.338135 1167.479126} outputxyz {0.488941133 0.397094816 -1.439435005} name Reconcile3DTR xpos 2033 ypos 103 } push $Nb7d96400 Axis2 { translate {-0.5 -0.5 0} name BottomLeft xpos 2219 ypos -178 } set Nb7d94c00 [stack 0] push $Nb7d95400 push $Nb3d75400 Reconcile3D { inputs 3 calc_output true output {-621.1759033 -550.4000854} outputxyz {-0.6424835324 -0.349278301 -1.364200354} name Reconcile3DBL xpos 2209 ypos 99 } push $Nb7d96400 Axis2 { translate {0.5 -0.5 0} name BottomRight xpos 2358 ypos -184 } set Nb779bc00 [stack 0] push $Nb7d95400 push $Nb3d75400 Reconcile3D { inputs 3 calc_output true output {2003.605591 -377.1599426} outputxyz {0.4838566184 -0.3558466733 -1.448682785} name Reconcile3DBR xpos 2348 ypos 101 } push $Nb7d96400 Axis2 { translate {-0.5 0.5 0} name TopLeft xpos 1883 ypos -180 } set Nb779b000 [stack 0] push $Nb7d95400 push $Nb3d75400 Reconcile3D { inputs 3 calc_output true output {-518.0533447 1283.052246} outputxyz {-0.6373990178 0.4036631882 -1.354952574} name Reconcile3DTL xpos 1873 ypos 99 } push $Nb3d77000 push $Nb779bc00 push $Nb7d94c00 push $Nb7d96000 push $Nb779b000 Scene { inputs 5 name SceneTest xpos 2124 ypos -86 } Input { inputs 0 name InputAxis xpos -382 ypos -301 number 2 } NoOp { name isON xpos -382 ypos -248 addUserKnob {20 User} addUserKnob {6 isOn +STARTLINE} isOn {{"\[exists input2]"}} } push $Nb2c20400 Group { inputs 2 name AxisDistance tile_color 0x9c0000ff xpos -382 ypos -57 addUserKnob {20 tab1 l TNT_AxisDistance} addUserKnob {41 distance T NoOp1.distance} } Output { inputs 0 name Output1 xpos 488 ypos 194 } Input { inputs 0 name axis2 xpos 740 ypos -220 number 1 } Axis2 { name A2 xpos 750 ypos -150 } NoOp { inputs 0 name NoOp1 xpos 620 ypos -70 addUserKnob {20 User} addUserKnob {7 distance R 0 100} distance {{sqrt((pow2(parent.A1.world_matrix.3-parent.A2.world_matrix.3))+(pow2(parent.A1.world_matrix.7-parent.A2.world_matrix.7))+(pow2(parent.A1.world_matrix.11-parent.A2.world_matrix.11)))}} } Input { inputs 0 name axis1 xpos 500 ypos -220 } Axis2 { name A1 xpos 510 ypos -150 } end_group NoOp { name Settings xpos -382 ypos 35 addUserKnob {20 User} addUserKnob {7 camDistance l "Camera Distance" R 0 2000} camDistance {{"isOn == 0 ? parent.distance : AxisDistance.distance"}} } end_group
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)