Group { name volumizer help http://richardfrazer.com/tools-tutorials/frameblendmerge/ knobChanged "if nuke.thisKnob().name() == \"layers\":\n\n\tt = nuke.thisNode()\n\n\ttname = t.name()\n\n\t#print (\"tname: \" + tname)\n\n\n\tnuke.thisNode().begin()\n\n\tframestart = int(t\[\"start_frame\"].value())\n\n\tlayers = int(t\[\"layers\"].value())\n\n\toffsetframes = int(t\[\"offset_frames\"].value())\n\n\tframeend = framestart + (layers * offsetframes)\n\n\tp = -1000\n\n\tfor d in nuke.allNodes():\n\t if (d.Class() == \"FrameHold\") or (d.Class() == \"Scene\") or (d.Class() == \"Card2\"):\n\t nuke.delete(d) \n\n\n\tfor x in range(0, layers):\n\t nname = \"FrameHoldVol\" +str(x)\n\t n = nuke.nodes.FrameHold() \t\t\n\t n\[\"name\"].setValue( nname )\n\t uk = nuke.Int_Knob(\"index\", \"index\")\n\t n.addKnob(uk)\n\t n\[\"index\"].setValue( x )\n\t n\[\"first_frame\"].setExpression( \"parent.start_frame+(parent.offset_frames * index)\" )\n\t n.setXYpos( p, 600 )\n\t n.setInput(0, nuke.toNode( \"inputDot\" )) \n\n\t cname = \"CardVol\" +str(x)\n\t if(nuke.exists( nname )):\n\t #print (nname + \" exists\")\n\t k = nuke.toNode ( cname ) \n\t nuke.delete ( k )\n\t c = nuke.nodes.Card2() \n\t c\[\"name\"].setValue( cname )\n\t uk = nuke.Int_Knob(\"index\", \"index\")\n\t c.addKnob(uk)\n\t c\[\"index\"].setValue( x )\n\t c\[\"translate\"].setExpression( \"parent.offset_z*index\", 2 )\n\t c.setXYpos( p, 700 )\n\t c.setInput(0, nuke.toNode( nname )) \n\n\n\t p = p + 100\n\n\tnewMerge = nuke.nodes.Scene()\n\tnewMerge\[\"name\"].setValue( \"MergeFrames\" )\n\tnewMerge.setXYpos( -900, 800 ) \n\n\ti = 0\n\n\tfor x in range(0, layers):\n\t nname = \"CardVol\" +str(x)\n\t n = nuke.toNode( nname )\n\t #print(\"connecting input \" + str(i))\n\t newMerge.setInput(i, nuke.toNode( nname ))\n\t i=i+1\n\n\n\to = nuke.toNode( \"OutputVol\" )\n\to.setInput(0, newMerge)\n\n" label 1001-1010 selected true xpos 115 ypos -13 addUserKnob {20 User} addUserKnob {3 layers l "number of layers"} layers 9 addUserKnob {3 start_frame l "start frame"} start_frame 100 addUserKnob {3 offset_frames l "offset frames"} offset_frames 20 addUserKnob {26 ""} addUserKnob {7 offset_z l "offset volume"} offset_z 0.14 addUserKnob {22 InputRange l "Input Range" -STARTLINE T "n = nuke.thisNode()\nf = n.firstFrame()\nl = n.lastFrame() \n\nn\['framerangestart'].setValue(f)\nn\['framerangeend'].setValue(l)"} addUserKnob {26 ""} addUserKnob {26 textabout l "" +STARTLINE T "Volumizer v1.3\nby Richard Frazer"} } Input { inputs 0 name Input xpos -900 ypos 396 } Dot { name inputDot xpos -866 ypos 459 } set Ndee30f0 [stack 0] FrameHold { firstFrame {{"parent.start_frame+(parent.offset_frames * index)"}} name FrameHoldVol8 xpos -200 ypos 600 addUserKnob {20 User} addUserKnob {3 index} index 8 } Card2 { translate {0 0 {parent.offset_z*index}} control_points {3 3 3 6 1 {-0.5 -0.5 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {0 0 0} 1 {0 -0.5 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {0.5 0 0} 1 {0.5 -0.5 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {1 0 0} 1 {-0.5 0 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {0 0.5 0} 1 {0 0 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {0.5 0.5 0} 1 {0.5 0 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {1 0.5 0} 1 {-0.5 0.5 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {0 1 0} 1 {0 0.5 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {0.5 1 0} 1 {0.5 0.5 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {1 1 0} } name CardVol8 xpos -200 ypos 700 addUserKnob {20 User} addUserKnob {3 index} index 8 } push $Ndee30f0 FrameHold { firstFrame {{"parent.start_frame+(parent.offset_frames * index)"}} name FrameHoldVol7 xpos -300 ypos 600 addUserKnob {20 User} addUserKnob {3 index} index 7 } Card2 { translate {0 0 {parent.offset_z*index}} control_points {3 3 3 6 1 {-0.5 -0.5 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {0 0 0} 1 {0 -0.5 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {0.5 0 0} 1 {0.5 -0.5 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {1 0 0} 1 {-0.5 0 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {0 0.5 0} 1 {0 0 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {0.5 0.5 0} 1 {0.5 0 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {1 0.5 0} 1 {-0.5 0.5 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {0 1 0} 1 {0 0.5 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {0.5 1 0} 1 {0.5 0.5 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {1 1 0} } name CardVol7 xpos -300 ypos 700 addUserKnob {20 User} addUserKnob {3 index} index 7 } push $Ndee30f0 FrameHold { firstFrame {{"parent.start_frame+(parent.offset_frames * index)"}} name FrameHoldVol6 xpos -400 ypos 600 addUserKnob {20 User} addUserKnob {3 index} index 6 } Card2 { translate {0 0 {parent.offset_z*index}} control_points {3 3 3 6 1 {-0.5 -0.5 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {0 0 0} 1 {0 -0.5 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {0.5 0 0} 1 {0.5 -0.5 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {1 0 0} 1 {-0.5 0 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {0 0.5 0} 1 {0 0 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {0.5 0.5 0} 1 {0.5 0 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {1 0.5 0} 1 {-0.5 0.5 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {0 1 0} 1 {0 0.5 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {0.5 1 0} 1 {0.5 0.5 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {1 1 0} } name CardVol6 xpos -400 ypos 700 addUserKnob {20 User} addUserKnob {3 index} index 6 } push $Ndee30f0 FrameHold { firstFrame {{"parent.start_frame+(parent.offset_frames * index)"}} name FrameHoldVol5 xpos -500 ypos 600 addUserKnob {20 User} addUserKnob {3 index} index 5 } Card2 { translate {0 0 {parent.offset_z*index}} control_points {3 3 3 6 1 {-0.5 -0.5 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {0 0 0} 1 {0 -0.5 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {0.5 0 0} 1 {0.5 -0.5 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {1 0 0} 1 {-0.5 0 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {0 0.5 0} 1 {0 0 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {0.5 0.5 0} 1 {0.5 0 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {1 0.5 0} 1 {-0.5 0.5 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {0 1 0} 1 {0 0.5 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {0.5 1 0} 1 {0.5 0.5 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {1 1 0} } name CardVol5 xpos -500 ypos 700 addUserKnob {20 User} addUserKnob {3 index} index 5 } push $Ndee30f0 FrameHold { firstFrame {{"parent.start_frame+(parent.offset_frames * index)"}} name FrameHoldVol4 xpos -600 ypos 600 addUserKnob {20 User} addUserKnob {3 index} index 4 } Card2 { translate {0 0 {parent.offset_z*index}} control_points {3 3 3 6 1 {-0.5 -0.5 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {0 0 0} 1 {0 -0.5 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {0.5 0 0} 1 {0.5 -0.5 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {1 0 0} 1 {-0.5 0 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {0 0.5 0} 1 {0 0 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {0.5 0.5 0} 1 {0.5 0 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {1 0.5 0} 1 {-0.5 0.5 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {0 1 0} 1 {0 0.5 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {0.5 1 0} 1 {0.5 0.5 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {1 1 0} } name CardVol4 xpos -600 ypos 700 addUserKnob {20 User} addUserKnob {3 index} index 4 } push $Ndee30f0 FrameHold { firstFrame {{"parent.start_frame+(parent.offset_frames * index)"}} name FrameHoldVol3 xpos -700 ypos 600 addUserKnob {20 User} addUserKnob {3 index} index 3 } Card2 { translate {0 0 {parent.offset_z*index}} control_points {3 3 3 6 1 {-0.5 -0.5 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {0 0 0} 1 {0 -0.5 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {0.5 0 0} 1 {0.5 -0.5 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {1 0 0} 1 {-0.5 0 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {0 0.5 0} 1 {0 0 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {0.5 0.5 0} 1 {0.5 0 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {1 0.5 0} 1 {-0.5 0.5 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {0 1 0} 1 {0 0.5 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {0.5 1 0} 1 {0.5 0.5 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {1 1 0} } name CardVol3 xpos -700 ypos 700 addUserKnob {20 User} addUserKnob {3 index} index 3 } push $Ndee30f0 FrameHold { firstFrame {{"parent.start_frame+(parent.offset_frames * index)"}} name FrameHoldVol2 xpos -800 ypos 600 addUserKnob {20 User} addUserKnob {3 index} index 2 } Card2 { translate {0 0 {parent.offset_z*index}} control_points {3 3 3 6 1 {-0.5 -0.5 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {0 0 0} 1 {0 -0.5 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {0.5 0 0} 1 {0.5 -0.5 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {1 0 0} 1 {-0.5 0 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {0 0.5 0} 1 {0 0 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {0.5 0.5 0} 1 {0.5 0 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {1 0.5 0} 1 {-0.5 0.5 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {0 1 0} 1 {0 0.5 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {0.5 1 0} 1 {0.5 0.5 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {1 1 0} } name CardVol2 xpos -800 ypos 700 addUserKnob {20 User} addUserKnob {3 index} index 2 } push $Ndee30f0 FrameHold { firstFrame {{"parent.start_frame+(parent.offset_frames * index)"}} name FrameHoldVol1 xpos -900 ypos 600 addUserKnob {20 User} addUserKnob {3 index} index 1 } Card2 { translate {0 0 {parent.offset_z*index}} control_points {3 3 3 6 1 {-0.5 -0.5 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {0 0 0} 1 {0 -0.5 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {0.5 0 0} 1 {0.5 -0.5 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {1 0 0} 1 {-0.5 0 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {0 0.5 0} 1 {0 0 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {0.5 0.5 0} 1 {0.5 0 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {1 0.5 0} 1 {-0.5 0.5 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {0 1 0} 1 {0 0.5 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {0.5 1 0} 1 {0.5 0.5 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {1 1 0} } name CardVol1 xpos -900 ypos 700 addUserKnob {20 User} addUserKnob {3 index} index 1 } push $Ndee30f0 FrameHold { firstFrame {{"parent.start_frame+(parent.offset_frames * index)"}} name FrameHoldVol0 xpos -1000 ypos 600 addUserKnob {20 User} addUserKnob {3 index} } Card2 { translate {0 0 {parent.offset_z*index}} control_points {3 3 3 6 1 {-0.5 -0.5 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {0 0 0} 1 {0 -0.5 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {0.5 0 0} 1 {0.5 -0.5 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0.1666666865 0} 1 {0 0 0} 1 {1 0 0} 1 {-0.5 0 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {0 0.5 0} 1 {0 0 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {0.5 0.5 0} 1 {0.5 0 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0.1666666716 0} 1 {0 -0.1666666716 0} 1 {1 0.5 0} 1 {-0.5 0.5 0} 1 {0.1666666865 0 0} 1 {0 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {0 1 0} 1 {0 0.5 0} 1 {0.1666666716 0 0} 1 {-0.1666666716 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {0.5 1 0} 1 {0.5 0.5 0} 1 {0 0 0} 1 {-0.1666666865 0 0} 1 {0 0 0} 1 {0 -0.1666666865 0} 1 {1 1 0} } name CardVol0 xpos -1000 ypos 700 addUserKnob {20 User} addUserKnob {3 index} } Scene { inputs 9 name MergeFrames xpos -900 ypos 800 } Output { name OutputVol xpos -910 ypos 927 } push $Ndee30f0 Viewer { frame_range 0-103 frame_increment 8 fps 23.97602463 center_fstop 0 viewerProcess "Client3DLUT + grade (ACES)" name Viewer1 xpos -370 ypos -10 hide_input true } end_group