BackdropNode { inputs 0 name BackdropNode10 tile_color 0x666666ff label "
Motion Graphics" note_font "Verdana Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold" note_font_size 42 selected true xpos 170 ypos -1091 bdwidth 761 bdheight 1126 z_order -856886 } BackdropNode { inputs 0 name BackdropNode11 tile_color 0x444444ff label "
Repeaters" note_font "Verdana Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold" note_font_size 42 selected true xpos 275 ypos -954 bdwidth 551 bdheight 179 z_order 1 } BackdropNode { inputs 0 name BackdropNode12 tile_color 0x444444ff label "
Pattern generators" note_font "Verdana Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold" note_font_size 42 selected true xpos 275 ypos -714 bdwidth 551 bdheight 179 z_order 1 } BackdropNode { inputs 0 name BackdropNode13 tile_color 0x444444ff label "
Alpha edge treatments" note_font "Verdana Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold" note_font_size 42 selected true xpos 275 ypos -474 bdwidth 551 bdheight 179 z_order 1 } BackdropNode { inputs 0 name BackdropNode14 tile_color 0x444444ff label "
Switches" note_font "Verdana Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold" note_font_size 42 selected true xpos 275 ypos 102 bdwidth 551 bdheight 179 z_order 1 } BackdropNode { inputs 0 name BackdropNode15 tile_color 0x444444ff label "
Roto helpers" note_font "Verdana Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold" note_font_size 42 selected true xpos 275 ypos 342 bdwidth 551 bdheight 179 z_order 1 } BackdropNode { inputs 0 name BackdropNode16 tile_color 0x444444ff label "
Cleanup tool" note_font "Verdana Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold" note_font_size 42 selected true xpos 275 ypos 606 bdwidth 551 bdheight 179 z_order 1 } BackdropNode { inputs 0 name BackdropNode17 tile_color 0x444444ff label "
Roundtable tool" note_font "Verdana Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold" note_font_size 42 selected true xpos 275 ypos 870 bdwidth 551 bdheight 179 z_order 1 } BackdropNode { inputs 0 name BackdropNode18 tile_color 0x444444ff label "
Info checker" note_font "Verdana Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold" note_font_size 42 selected true xpos 275 ypos 1134 bdwidth 551 bdheight 179 z_order 1 } BackdropNode { inputs 0 name BackdropNode19 tile_color 0x444444ff label "
Filter" note_font "Verdana Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold" note_font_size 42 selected true xpos 275 ypos -210 bdwidth 551 bdheight 179 z_order 1 } push $cut_paste_input Group { name GM_CrossPattern tile_color 0xd5ff1dff selected true xpos 400 ypos -592 addUserKnob {20 User} addUserKnob {4 output l Output M {"Pattern Only" "Pattern Over Image" "Distorted Image" STMap "" ""}} output "Pattern Over Image" addUserKnob {6 keep_alpha l "Keep Original Alpha" -STARTLINE} keep_alpha true addUserKnob {26 ""} addUserKnob {41 operation1 l Operation T Merge_Proxy.operation1} addUserKnob {26 ""} addUserKnob {41 type l Type T CP_Expression.type} addUserKnob {41 type2 l Type2 T CP_Expression.type2} addUserKnob {41 direction l Direction T CP_Expression.direction} addUserKnob {41 direction2 l Direction2 T CP_Expression.direction2} addUserKnob {41 size l Size T CP_Expression.size} addUserKnob {41 size2 l Size2 T CP_Expression.size2} addUserKnob {41 offset l Offset T CP_Expression.offset} addUserKnob {41 offset2 l Offset2 T CP_Expression.offset2} addUserKnob {41 speed l Speed T CP_Expression.speed} addUserKnob {41 speed2 l Speed2 T CP_Expression.speed2} addUserKnob {41 multiply l Color T CP_Grade2.multiply} addUserKnob {6 invert l Invert +STARTLINE} addUserKnob {26 ""} addUserKnob {7 roundness l Roundness R 0 100} roundness 30 addUserKnob {7 contr l Contrast} addUserKnob {7 blur l Blur R 0 100} addUserKnob {26 ""} addUserKnob {41 mix l Mix T Merge1.mix} addUserKnob {26 ""} addUserKnob {22 tut l Tutorial T "import os\nimport sys\n\ntry:\n import subprocess\n def _run(cmd, shell, wait):\n opener = subprocess.Popen(cmd, shell=shell)\n if wait:\n opener.wait()\n return opener.pid\nexcept ImportError:\n import popen2\n def _run(cmd, shell, wait):\n opener = popen2.Popen3(cmd)\n if wait:\n opener.wait()\n return opener.pid\n\ndef _open(url, wait=0):\n if sys.platform == \"darwin\":\n cmd = \[\"open\", url]\n elif hasattr(os, \"startfile\"):\n return os.startfile(url)\n elif os.environ.has_key(\"KDE_FULL_SESSION\") or os.environ.has_key(\"KDE_MULTIHEAD\") or \\\n os.environ.has_key(\"GNOME_DESKTOP_SESSION_ID\") or os.environ.has_key(\"GNOME_KEYRING_SOCKET\"):\n cmd = \[\"xdg-open\", url]\n else:\n raise OSError, \"Desktop not supported.\"\n\n return _run(cmd, 0, wait)\n\n_open('https://www.gatimedia.co.uk/cross-pattern')\n" +STARTLINE} addUserKnob {26 ""} addUserKnob {26 TEXT l "" +STARTLINE T "1.01 version"} addUserKnob {26 HeadlineB l "" +STARTLINE T "GM_CrossPattern© by Attila Gasparetz"} } Input { inputs 0 name Input xpos 70 ypos -634 } Dot { name Dot1 xpos 104 ypos -534 } set N1331d880 [stack 0] Remove { name CP_Remove1 xpos 70 ypos -328 } set N1331d500 [stack 0] Expression { expr0 "ceil((\[value type](y/size\[if \{\[numvalue direction] == 0\} \{return \"-\"\} else \{return \"+\"\}]((frame+offset)*(speed/100)))) + (\[value type](x/size\[if \{\[numvalue direction] == 0\} \{return \"-\"\} else \{return \"+\"\}]((frame+offset)*(speed/100)))))" expr1 "ceil((\[value type2](y/size2\[if \{\[numvalue direction2] == 0\} \{return \"-\"\} else \{return \"+\"\}]((frame+offset2)*(speed2/100)))) / (\[value type2](x/size2\[if \{\[numvalue direction2] == 0\} \{return \"-\"\} else \{return \"+\"\}]((frame+offset2)*(speed2/100)))))" name CP_Expression xpos 70 ypos -274 addUserKnob {20 User} addUserKnob {4 type l Type M {sin cos tan}} addUserKnob {4 type2 l Type2 M {sin cos tan}} addUserKnob {4 direction l Direction M {Up Down ""}} addUserKnob {4 direction2 l Direction2 M {Up Down}} direction2 Down addUserKnob {7 size l Size R 0 100} size 30 addUserKnob {7 size2 l Size2 R 0 100} size2 60 addUserKnob {7 offset l Offset R 0 100} addUserKnob {7 offset2 l Offset2 R 0 100} addUserKnob {7 speed l Speed R 0 100} speed 5 addUserKnob {7 speed2 l Speed2 R 0 100} speed2 5 } set N1331d180 [stack 0] Shuffle { green black blue black alpha black name CP_ShuffleR xpos -40 ypos -154 } Clamp { name CP_Clamp1 xpos -40 ypos -88 } push $N1331d180 Shuffle { red green green black blue black alpha black name CP_ShuffleG xpos 180 ypos -154 } Clamp { name CP_Clamp2 xpos 180 ypos -88 } Merge2 { inputs 2 operation {{Merge_Proxy.operation1}} Achannels {rgba.red -rgba.green -rgba.blue rgba.alpha} Bchannels {rgba.red rgba.green -rgba.blue rgba.alpha} output rgb name CP_Merge xpos 70 ypos 14 } Clamp { name CP_Clamp3 xpos 70 ypos 56 } Shuffle { red black green black blue black alpha red name Shuffle4 xpos 70 ypos 134 } Invert { name CP_Invert xpos 70 ypos 176 disable {{!invert}} } Group { name key_chew help "======== KeyChew beta ========\n=============================\n\nThis is a port of the KeyChew macro for Shake to Nuke.\n\nThere might be tiny differences on the results given in both apps. Some of them are caused by the internal algorithms of each app, and others by the way I faked the JSplineV\nexpression of Shake in Nuke. If you know a better way to solve this, let\nme know!!\n\n=============================\n 2009 Cuco Bures\n=============================" xpos 70 ypos 230 addUserKnob {20 Controls} addUserKnob {7 chew t "\t\t" R -200 200} chew {{-parent.roundness}} addUserKnob {7 soften R 0 200} addUserKnob {6 matteMult +STARTLINE} } Input { inputs 0 name Input xpos 0 } set N1334ee00 [stack 0] Dot { name Dot1 xpos 366 ypos 5 } set N1334ea80 [stack 0] push $N1334ea80 Invert { name Invert1 xpos 177 ypos 34 } push $N1334ea80 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch1 xpos 177 ypos 87 } Blur { size {{"(floor(abs(\[value parent.chew]))/4)+(floor(abs(\[value parent.chew]))/8)" i}} name FgEdgeBlur xpos 177 ypos 111 } Grade { channels alpha multiply {1 1 1 {max(FgEdgeBlur.size*1.5,1) i}} black_clamp false name FgEdgeMult xpos 177 ypos 165 } Grade { channels alpha gamma {1 1 1 {JSplineVFake(floor(abs(parent.chew))) i}} name FgEdgeGamma1 xpos 177 ypos 213 addUserKnob {20 User} addUserKnob {7 JSplineVFake} JSplineVFake {{curve i l 0.9958 k x5 0.95 0.8 x20 0.5 x40 0.3 x80 0.2 l x200 0.1}} } set N1338d880 [stack 0] Merge2 { inputs 2 operation minus name Merge1 xpos 332 ypos 218 } push $N1338d880 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch2 xpos 177 ypos 284 } Clamp { name Clamp2 xpos 177 ypos 323 } Blur { size {{"(floor(abs(\[value parent.soften]))/4)+(floor(abs(\[value parent.soften]))/8)"}} name BlurResult xpos 177 ypos 446 } push $N1334ee00 ShuffleCopy { inputs 2 name ShuffleCopy1 xpos 0 ypos 451 } Premult { name Premult1 xpos 0 ypos 486 disable {{"1-\[value parent.matteMult]" i}} } Output { name Output1 xpos 0 ypos 556 } end_group Group { name key_chew1 help "======== KeyChew beta ========\n=============================\n\nThis is a port of the KeyChew macro for Shake to Nuke.\n\nThere might be tiny differences on the results given in both apps. Some of them are caused by the internal algorithms of each app, and others by the way I faked the JSplineV\nexpression of Shake in Nuke. If you know a better way to solve this, let\nme know!!\n\n=============================\n 2009 Cuco Bures\n=============================" xpos 70 ypos 302 addUserKnob {20 Controls} addUserKnob {7 chew t "\t\t" R -200 200} chew {{-parent.key_chew.chew}} addUserKnob {7 soften R 0 200} addUserKnob {6 matteMult +STARTLINE} } Input { inputs 0 name Input xpos 0 } set N134d3c00 [stack 0] Dot { name Dot1 xpos 366 ypos 5 } set N134d3880 [stack 0] push $N134d3880 Invert { name Invert1 xpos 177 ypos 34 } push $N134d3880 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch1 xpos 177 ypos 87 } Blur { size {{"(floor(abs(\[value parent.chew]))/4)+(floor(abs(\[value parent.chew]))/8)" i}} name FgEdgeBlur xpos 177 ypos 111 } Grade { channels alpha multiply {1 1 1 {max(FgEdgeBlur.size*1.5,1) i}} black_clamp false name FgEdgeMult xpos 177 ypos 165 } Grade { channels alpha gamma {1 1 1 {JSplineVFake(floor(abs(parent.chew))) i}} name FgEdgeGamma1 xpos 177 ypos 213 addUserKnob {20 User} addUserKnob {7 JSplineVFake} JSplineVFake {{curve i l 0.9958 k x5 0.95 0.8 x20 0.5 x40 0.3 x80 0.2 l x200 0.1}} } set N134d2700 [stack 0] Merge2 { inputs 2 operation minus name Merge1 xpos 332 ypos 218 } push $N134d2700 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch2 xpos 177 ypos 284 } Clamp { name Clamp2 xpos 177 ypos 323 } Blur { size {{"(floor(abs(\[value parent.soften]))/4)+(floor(abs(\[value parent.soften]))/8)"}} name BlurResult xpos 177 ypos 446 } push $N134d3c00 ShuffleCopy { inputs 2 name ShuffleCopy1 xpos 0 ypos 451 } Premult { name Premult1 xpos 0 ypos 486 disable {{"1-\[value parent.matteMult]" i}} } Output { name Output1 xpos 0 ypos 556 } end_group Clamp { name CP_Clamp4 xpos 70 ypos 368 } Grade { channels all blackpoint {{"parent.contr * .45"}} whitepoint {{"1 - ( blackpoint * 1.1) "}} white_clamp true name CP_Grade xpos 70 ypos 440 } Shuffle { red alpha green alpha blue alpha name Shuffle5 xpos 70 ypos 494 } Dot { name Dot3 xpos 104 ypos 570 } set N13506000 [stack 0] Dot { name Dot4 xpos 104 ypos 642 } set N13539c00 [stack 0] push $N13506000 push $N1331d500 Dot { name Dot8 tile_color 0x949494ff note_font_size 22 note_font_color 0xffffffff xpos 434 ypos -318 } set N13539880 [stack 0] Copy { inputs 2 from0 rgba.alpha to0 rgba.red name CP_CopyR tile_color 0xff0000ff xpos 400 ypos 560 } Copy { inputs 2 from0 rgba.alpha to0 rgba.green name CP_CopyG tile_color 0x1fff00ff xpos 400 ypos 632 } set N13539180 [stack 0] Blur { size {{blur}} name Blur1 label "Size: \[value size]" xpos 730 ypos 625 } push $N13539880 Dot { name Dot2 tile_color 0x949494ff note_font_size 22 note_font_color 0xffffffff xpos 1204 ypos -318 } Expression { expr0 (x+0.5)/width expr1 (y+0.5)/height name Expression1 xpos 1170 ypos -58 } Merge2 { inputs 2 mix {{Merge1.mix/5}} name Merge2 xpos 1170 ypos 638 } set N13538000 [stack 0] push $N13538000 push $N1331d880 Dot { name Dot7 xpos 984 ypos -534 } Shuffle { alpha black name Shuffle1 label "\[value in]" xpos 950 ypos 776 disable {{keep_alpha}} } Dot { name Dot9 tile_color 0x949494ff note_font_size 22 note_font_color 0xffffffff xpos 984 ypos 978 } set N13569500 [stack 0] STMap { inputs 2 uv rgb name STMap1 label "UV: \[value uv]" xpos 1170 ypos 961 } push $N13539c00 Dot { name Dot5 xpos 104 ypos 714 } set N13568e00 [stack 0] Dot { name Dot6 xpos 104 ypos 834 } push $N13568e00 push $N13539180 Copy { inputs 2 from0 rgba.alpha to0 rgba.blue name CP_CopyB tile_color 0x3fffff xpos 400 ypos 704 } Grade { name CP_Grade2 xpos 400 ypos 758 } Copy { inputs 2 from0 rgba.alpha to0 rgba.alpha name CP_CopyA tile_color 0x999999ff xpos 400 ypos 824 } Blur { size {{Blur1.size}} name Blur2 label "Size: \[value size]" xpos 400 ypos 913 } Premult { name Premult1 xpos 400 ypos 1070 } set N1359b880 [stack 0] push $N13569500 Merge2 { inputs 2 also_merge all name Merge1 xpos 950 ypos 1070 } push $N1359b880 Switch { inputs 4 which {{output}} name Switch1 label "Which: \[value which]" xpos 950 ypos 1232 } Output { name Output1 xpos 950 ypos 1454 } NoOp { inputs 0 name Merge_Proxy xpos 180 ypos 14 addUserKnob {20 User} addUserKnob {4 operation1 M {atop average color-burn color-dodge conjoint-over copy difference disjoint-over divide exclusion from geometric hard-light hypot in mask matte max min minus multiply out over overlay plus screen soft-light stencil under xor ""}} operation1 multiply } end_group push $cut_paste_input Group { name GM_Moving_Lines tile_color 0xe8f57dff note_font "DejaVu Sans" selected true xpos 620 ypos -591 addUserKnob {20 User} addUserKnob {4 output l Output M {"Pattern Only" "Pattern Over Image" "Distorted Image" STMap ""}} output "Pattern Over Image" addUserKnob {6 keep_a l "Keep Original Alpha" -STARTLINE} keep_a true addUserKnob {26 ""} addUserKnob {41 type_1 l Type T proxy.type} addUserKnob {41 axis_1 l Axis T proxy.axis} addUserKnob {41 direction_1 l Direction T proxy.direction} addUserKnob {41 thickness_1 l Thickness T proxy.thickness} addUserKnob {41 chew l Gap T key_chew_ML.chew} addUserKnob {41 speed_1 l Speed T proxy.speed} addUserKnob {41 value_1 l Value +INVISIBLE T proxy.value} addUserKnob {41 offset_1 l Offset T proxy.offset} addUserKnob {7 blur l Blur R 0 100} addUserKnob {41 multiply l Color T Grade_ML.multiply} addUserKnob {6 invert +STARTLINE} invert true addUserKnob {26 ""} addUserKnob {6 cross l "Enable Cross" +STARTLINE} cross true addUserKnob {41 operation1 l Operation T Merge_Proxy.operation1} addUserKnob {26 ""} addUserKnob {41 mix l Mix T Merge2.mix} addUserKnob {26 ""} addUserKnob {22 tut l Tutorial T "import os\nimport sys\n\ntry:\n import subprocess\n def _run(cmd, shell, wait):\n opener = subprocess.Popen(cmd, shell=shell)\n if wait:\n opener.wait()\n return opener.pid\nexcept ImportError:\n import popen2\n def _run(cmd, shell, wait):\n opener = popen2.Popen3(cmd)\n if wait:\n opener.wait()\n return opener.pid\n\ndef _open(url, wait=0):\n if sys.platform == \"darwin\":\n cmd = \[\"open\", url]\n elif hasattr(os, \"startfile\"):\n return os.startfile(url)\n elif os.environ.has_key(\"KDE_FULL_SESSION\") or os.environ.has_key(\"KDE_MULTIHEAD\") or \\\n os.environ.has_key(\"GNOME_DESKTOP_SESSION_ID\") or os.environ.has_key(\"GNOME_KEYRING_SOCKET\"):\n cmd = \[\"xdg-open\", url]\n else:\n raise OSError, \"Desktop not supported.\"\n\n return _run(cmd, 0, wait)\n\n_open('https://www.gatimedia.co.uk/moving-lines')\n" +STARTLINE} addUserKnob {26 ""} addUserKnob {26 TEXT l "" +STARTLINE T "1.01 version"} addUserKnob {26 HeadlineB l "" +STARTLINE T "GM_Moving_Lines© by Attila Gasparetz"} } Input { inputs 0 name Input xpos 180 ypos -874 } Dot { name Dot9 xpos 214 ypos -750 } set N1359a380 [stack 0] Remove { name Remove_ML tile_color 0x555555ff xpos 180 ypos -640 } Dot { name Dot5 tile_color 0x949494ff note_font_size 22 note_font_color 0xffffffff xpos 214 ypos -534 } set N135c7c00 [stack 0] Dot { name Dot7 tile_color 0x949494ff note_font_size 22 note_font_color 0xffffffff xpos -6 ypos -534 } Expression { channel3 alpha expr3 "( \[value proxy.type](\[if \{\[numvalue proxy.axis] == 0\} \{return \"y\"\} else \{return \"x\"\}]/proxy.thickness \[if \{\[numvalue proxy.direction] == 0\} \{return \"-\"\} else \{return \"+\"\}] (frame+proxy.offset)*proxy.speed ) )*proxy.value" name Moving_Lines_Exp1 tile_color 0x555555ff selected true xpos -40 ypos -490 addUserKnob {20 User} addUserKnob {4 type M {sin cos tan}} addUserKnob {4 axis M {x y}} axis y addUserKnob {4 direction M {up down}} direction down addUserKnob {7 thickness R 1 100} thickness 34.5 addUserKnob {7 speed R 0 2} speed 0.3 addUserKnob {7 value R 0 10} value 1 addUserKnob {7 offset R 0 100} } Clamp { name Clamp_ML1 tile_color 0x555555ff xpos -40 ypos -424 } Group { name key_chew_ML1 help "======== KeyChew beta ========\n=============================\n\nThis is a port of the KeyChew macro for Shake to Nuke.\n\nThere might be tiny differences on the results given in both apps. Some of them are caused by the internal algorithms of each app, and others by the way I faked the JSplineV\nexpression of Shake in Nuke. If you know a better way to solve this, let\nme know!!\n\n=============================\n 2009 Cuco Bures\n=============================" tile_color 0x555555ff xpos -40 ypos -346 addUserKnob {20 Controls} addUserKnob {7 chew t "\t\t" R -200 200} chew {{parent.key_chew_ML.chew}} addUserKnob {7 soften R 0 200} soften {{parent.key_chew_ML.soften}} addUserKnob {6 matteMult +STARTLINE} } Input { inputs 0 name Input xpos 0 } set N135c6a80 [stack 0] Dot { name Dot1 xpos 366 ypos 5 } set N135c6700 [stack 0] push $N135c6700 Invert { name Invert1 xpos 177 ypos 34 } push $N135c6700 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch1 xpos 177 ypos 87 } Blur { size {{"(floor(abs(\[value parent.chew]))/4)+(floor(abs(\[value parent.chew]))/8)" i}} name FgEdgeBlur xpos 177 ypos 111 } Grade { channels alpha multiply {1 1 1 {max(FgEdgeBlur.size*1.5,1) i}} black_clamp false name FgEdgeMult xpos 177 ypos 165 } Grade { channels alpha gamma {1 1 1 {JSplineVFake(floor(abs(parent.chew))) i}} name FgEdgeGamma1 xpos 177 ypos 213 addUserKnob {20 User} addUserKnob {7 JSplineVFake} JSplineVFake {{curve i l 0.9958 k x5 0.95 0.8 x20 0.5 x40 0.3 x80 0.2 l x200 0.1}} } set N135f3500 [stack 0] Merge2 { inputs 2 operation minus name Merge1 xpos 332 ypos 218 } push $N135f3500 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch2 xpos 177 ypos 284 } Clamp { name Clamp2 xpos 177 ypos 323 } Blur { size {{"(floor(abs(\[value parent.soften]))/4)+(floor(abs(\[value parent.soften]))/8)"}} name BlurResult xpos 177 ypos 446 } push $N135c6a80 ShuffleCopy { inputs 2 name ShuffleCopy1 xpos 0 ypos 451 } Premult { name Premult1 xpos 0 ypos 486 disable {{"1-\[value parent.matteMult]" i}} } Output { name Output1 xpos 0 ypos 556 } end_group Dot { name Dot8 tile_color 0x949494ff note_font_size 22 note_font_color 0xffffffff xpos -6 ypos -270 } push $N135c7c00 Expression { channel3 alpha expr3 "( \[value proxy.type](\[if \{\[numvalue proxy.axis] == 0\} \{return \"x\"\} else \{return \"y\"\}]/proxy.thickness \[if \{\[numvalue proxy.direction] == 0\} \{return \"-\"\} else \{return \"+\"\}] (frame+proxy.offset)*proxy.speed ) )*proxy.value" name Moving_Lines_Exp tile_color 0x555555ff xpos 180 ypos -490 addUserKnob {20 User} addUserKnob {4 type M {sin cos tan}} addUserKnob {4 axis M {x y}} axis y addUserKnob {4 direction M {up down}} direction down addUserKnob {7 thickness R 1 100} thickness 19.5 addUserKnob {7 speed R 0 2} speed 0.3 addUserKnob {7 value R 0 10} value 1 addUserKnob {7 offset R 0 100} addUserKnob {7 rotate R 0 180} rotate 23.6 } Clamp { name Clamp_ML tile_color 0x555555ff xpos 180 ypos -424 } Group { name key_chew_ML help "======== KeyChew beta ========\n=============================\n\nThis is a port of the KeyChew macro for Shake to Nuke.\n\nThere might be tiny differences on the results given in both apps. Some of them are caused by the internal algorithms of each app, and others by the way I faked the JSplineV\nexpression of Shake in Nuke. If you know a better way to solve this, let\nme know!!\n\n=============================\n 2009 Cuco Bures\n=============================" tile_color 0x555555ff xpos 180 ypos -346 addUserKnob {20 Controls} addUserKnob {7 chew t "\t\t" R -200 200} addUserKnob {7 soften R 0 200} addUserKnob {6 matteMult +STARTLINE} } Input { inputs 0 name Input xpos 0 } set N13636a80 [stack 0] Dot { name Dot1 xpos 366 ypos 5 } set N13636700 [stack 0] push $N13636700 Invert { name Invert1 xpos 177 ypos 34 } push $N13636700 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch1 xpos 177 ypos 87 } Blur { size {{"(floor(abs(\[value parent.chew]))/4)+(floor(abs(\[value parent.chew]))/8)" i}} name FgEdgeBlur xpos 177 ypos 111 } Grade { channels alpha multiply {1 1 1 {max(FgEdgeBlur.size*1.5,1) i}} black_clamp false name FgEdgeMult xpos 177 ypos 165 } Grade { channels alpha gamma {1 1 1 {JSplineVFake(floor(abs(parent.chew))) i}} name FgEdgeGamma1 xpos 177 ypos 213 addUserKnob {20 User} addUserKnob {7 JSplineVFake} JSplineVFake {{curve i l 0.9958 k x5 0.95 0.8 x20 0.5 x40 0.3 x80 0.2 l x200 0.1}} } set N13663500 [stack 0] Merge2 { inputs 2 operation minus name Merge1 xpos 332 ypos 218 } push $N13663500 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch2 xpos 177 ypos 284 } Clamp { name Clamp2 xpos 177 ypos 323 } Blur { size {{"(floor(abs(\[value parent.soften]))/4)+(floor(abs(\[value parent.soften]))/8)"}} name BlurResult xpos 177 ypos 446 } push $N13636a80 ShuffleCopy { inputs 2 name ShuffleCopy1 xpos 0 ypos 451 } Premult { name Premult1 xpos 0 ypos 486 disable {{"1-\[value parent.matteMult]" i}} } Output { name Output1 xpos 0 ypos 556 } end_group Merge2 { inputs 2 operation {{Merge_Proxy.operation1}} name Merge_ML tile_color 0x555555ff xpos 180 ypos -274 disable {{"parent.cross ==0"}} } Invert { name Invert_ML tile_color 0x555555ff xpos 180 ypos -160 disable {{"parent.invert == 0"}} } Dot { name Dot6 tile_color 0x949494ff note_font_size 22 note_font_color 0xffffffff xpos 214 ypos -78 } set N136a1180 [stack 0] Dot { name Dot2 xpos 214 ypos 18 } set N136a0e00 [stack 0] push $N136a1180 push $N135c7c00 Dot { name Dot1 xpos 544 ypos -534 } set N136a0a80 [stack 0] ShuffleCopy { inputs 2 red alpha green black blue black alpha black name ShuffleCopy_R tile_color 0x555555ff xpos 510 ypos -82 } ShuffleCopy { inputs 2 green alpha blue black alpha black name ShuffleCopy_G tile_color 0x555555ff xpos 510 ypos 14 } Dot { name Dot12 xpos 544 ypos 66 } set N136a0000 [stack 0] Blur { size {{blur}} name Blur1 label "Size: \[value size]" xpos 730 ypos 49 } push $N136a0a80 Dot { name Dot10 xpos 1204 ypos -534 } Expression { expr0 (x+0.5)/width expr1 (y+0.5)/height name Expression1 xpos 1170 ypos -346 } Merge2 { inputs 2 mix {{Merge2.mix/5}} name Merge1 xpos 1170 ypos 62 } set N136c8e00 [stack 0] push $N136c8e00 push $N1359a380 Dot { name Dot11 xpos 984 ypos -750 } Shuffle { alpha black name Shuffle1 label "\[value in]" xpos 950 ypos -184 disable {{keep_a}} } Dot { name Dot13 xpos 984 ypos 258 } set N136c8380 [stack 0] STMap { inputs 2 uv rgb name STMap1 label "UV: \[value uv]" xpos 1170 ypos 241 } push $N136a0e00 Dot { name Dot3 xpos 214 ypos 114 } set N136f3c00 [stack 0] Dot { name Dot4 xpos 214 ypos 210 } push $N136f3c00 push $N136a0000 ShuffleCopy { inputs 2 blue alpha alpha black name ShuffleCopy_B tile_color 0x555555ff xpos 510 ypos 110 } Grade { name Grade_ML xpos 510 ypos 158 } ShuffleCopy { inputs 2 name ShuffleCopy_A tile_color 0x555555ff xpos 510 ypos 206 disable {{"parent.alpha == 0"}} } Blur { size {{Blur1.size}} name Blur2 label "Size: \[value size]" xpos 510 ypos 265 } Premult { name Premult1 xpos 510 ypos 374 } set N136f2700 [stack 0] push $N136c8380 Merge2 { inputs 2 name Merge2 xpos 950 ypos 374 } push $N136f2700 Switch { inputs 4 which {{output}} name Switch1 label "Which: \[value which]" xpos 950 ypos 536 } Output { name Output xpos 950 ypos 686 } NoOp { inputs 0 name Merge_Proxy xpos 290 ypos -274 addUserKnob {20 User} addUserKnob {4 operation1 M {atop average color-burn color-dodge conjoint-over copy difference disjoint-over divide exclusion from geometric hard-light hypot in mask matte max min minus multiply out over overlay plus screen soft-light stencil under xor ""}} operation1 over } NoOp { inputs 0 name proxy tile_color 0x555555ff xpos -150 ypos -490 addUserKnob {20 User} addUserKnob {4 type l typ M {sin cos tan}} addUserKnob {4 axis M {x y}} addUserKnob {4 direction M {up down}} addUserKnob {7 thickness R 1 100} thickness 30 addUserKnob {7 speed R 0 2} speed 1 addUserKnob {7 value R 0 10} value 10 addUserKnob {7 offset R 0 100} } end_group push $cut_paste_input Group { name GM_Round_Matte tile_color 0xffbb56ff selected true xpos 400 ypos -346 addUserKnob {20 User} addUserKnob {7 round1 l Roundness R 0 200} round1 40 addUserKnob {7 contr l "Edge Contrast"} contr 0.5 addUserKnob {26 ""} addUserKnob {6 conc l "Keep Concave Angle" +STARTLINE} conc true addUserKnob {6 prem l Premult +STARTLINE} prem true addUserKnob {26 ""} addUserKnob {7 mix l Mix} mix 1 addUserKnob {26 ""} addUserKnob {22 tut l Tutorial t "Opens the relevant tutorial from my site in your browser. " -STARTLINE T "import os\nimport sys\n\ntry:\n import subprocess\n def _run(cmd, shell, wait):\n opener = subprocess.Popen(cmd, shell=shell)\n if wait:\n opener.wait()\n return opener.pid\nexcept ImportError:\n import popen2\n def _run(cmd, shell, wait):\n opener = popen2.Popen3(cmd)\n if wait:\n opener.wait()\n return opener.pid\n\ndef _open(url, wait=0):\n if sys.platform == \"darwin\":\n cmd = \[\"open\", url]\n elif hasattr(os, \"startfile\"):\n return os.startfile(url)\n elif os.environ.has_key(\"KDE_FULL_SESSION\") or os.environ.has_key(\"KDE_MULTIHEAD\") or \\\n os.environ.has_key(\"GNOME_DESKTOP_SESSION_ID\") or os.environ.has_key(\"GNOME_KEYRING_SOCKET\"):\n cmd = \[\"xdg-open\", url]\n else:\n raise OSError, \"Desktop not supported.\"\n\n return _run(cmd, 0, wait)\n\n_open('https://www.gatimedia.co.uk/round-matte')\n"} addUserKnob {26 ""} addUserKnob {26 TEXT l "" +STARTLINE T "1.01 version"} addUserKnob {26 HeadlineB l "" +STARTLINE T "GM_Round_Matte© by Attila Gasparetz"} } Input { inputs 0 name Input tile_color 0x555555ff xpos -370 ypos -586 } Dot { name Dot2 xpos -336 ypos -486 } set N13728e00 [stack 0] Dot { name Dot23 xpos -556 ypos -486 } set N13728a80 [stack 0] Clamp { name Clamp tile_color 0x555555ff xpos -700 ypos -496 } Group { name key_chew help "======== KeyChew beta ========\n=============================\n\nThis is a port of the KeyChew macro for Shake to Nuke.\n\nThere might be tiny differences on the results given in both apps. Some of them are caused by the internal algorithms of each app, and others by the way I faked the JSplineV\nexpression of Shake in Nuke. If you know a better way to solve this, let\nme know!!\n\n=============================\n 2009 Cuco Bures\n=============================" tile_color 0x555555ff xpos -810 ypos -490 addUserKnob {20 Controls} addUserKnob {7 chew t "\t\t" R -200 200} chew {{"- parent.round1"}} addUserKnob {7 soften R 0 200} addUserKnob {6 matteMult +STARTLINE} } Input { inputs 0 name Input xpos 0 } set N13728380 [stack 0] Dot { name Dot1 xpos 366 ypos 5 } set N13728000 [stack 0] push $N13728000 Invert { name Invert1 xpos 177 ypos 34 } push $N13728000 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch1 xpos 177 ypos 87 } Blur { size {{"(floor(abs(\[value parent.chew]))/4)+(floor(abs(\[value parent.chew]))/8)" i}} name FgEdgeBlur xpos 177 ypos 111 } Grade { channels alpha multiply {1 1 1 {max(FgEdgeBlur.size*1.5,1) i}} black_clamp false name FgEdgeMult xpos 177 ypos 165 } Grade { channels alpha gamma {1 1 1 {JSplineVFake(floor(abs(parent.chew))) i}} name FgEdgeGamma1 xpos 177 ypos 213 addUserKnob {20 User} addUserKnob {7 JSplineVFake} JSplineVFake {{curve i l 0.9958 k x5 0.95 0.8 x20 0.5 x40 0.3 x80 0.2 l x200 0.1}} } set N13750e00 [stack 0] Merge2 { inputs 2 operation minus name Merge1 xpos 332 ypos 218 } push $N13750e00 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch2 xpos 177 ypos 284 } Clamp { name Clamp2 xpos 177 ypos 323 } Blur { size {{"(floor(abs(\[value parent.soften]))/4)+(floor(abs(\[value parent.soften]))/8)"}} name BlurResult xpos 177 ypos 446 } push $N13728380 ShuffleCopy { inputs 2 name ShuffleCopy1 xpos 0 ypos 451 } Premult { name Premult1 xpos 0 ypos 486 disable {{"1-\[value parent.matteMult]" i}} } Output { name Output1 xpos 0 ypos 556 } end_group Group { name key_chew2 help "======== KeyChew beta ========\n=============================\n\nThis is a port of the KeyChew macro for Shake to Nuke.\n\nThere might be tiny differences on the results given in both apps. Some of them are caused by the internal algorithms of each app, and others by the way I faked the JSplineV\nexpression of Shake in Nuke. If you know a better way to solve this, let\nme know!!\n\n=============================\n 2009 Cuco Bures\n=============================" tile_color 0x555555ff xpos -810 ypos -346 addUserKnob {20 Controls} addUserKnob {7 chew t "\t\t" R -200 200} chew {{"- parent.key_chew.chew"}} addUserKnob {7 soften R 0 200} addUserKnob {6 matteMult +STARTLINE} } Input { inputs 0 name Input xpos 0 } set N13795180 [stack 0] Dot { name Dot1 xpos 366 ypos 5 } set N13794e00 [stack 0] push $N13794e00 Invert { name Invert1 xpos 177 ypos 34 } push $N13794e00 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch1 xpos 177 ypos 87 } Blur { size {{"(floor(abs(\[value parent.chew]))/4)+(floor(abs(\[value parent.chew]))/8)" i}} name FgEdgeBlur xpos 177 ypos 111 } Grade { channels alpha multiply {1 1 1 {max(FgEdgeBlur.size*1.5,1) i}} black_clamp false name FgEdgeMult xpos 177 ypos 165 } Grade { channels alpha gamma {1 1 1 {JSplineVFake(floor(abs(parent.chew))) i}} name FgEdgeGamma1 xpos 177 ypos 213 addUserKnob {20 User} addUserKnob {7 JSplineVFake} JSplineVFake {{curve i l 0.9958 k x5 0.95 0.8 x20 0.5 x40 0.3 x80 0.2 l x200 0.1}} } set N137c3c00 [stack 0] Merge2 { inputs 2 operation minus name Merge1 xpos 332 ypos 218 } push $N137c3c00 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch2 xpos 177 ypos 284 } Clamp { name Clamp2 xpos 177 ypos 323 } Blur { size {{"(floor(abs(\[value parent.soften]))/4)+(floor(abs(\[value parent.soften]))/8)"}} name BlurResult xpos 177 ypos 446 } push $N13795180 ShuffleCopy { inputs 2 name ShuffleCopy1 xpos 0 ypos 451 } Premult { name Premult1 xpos 0 ypos 486 disable {{"1-\[value parent.matteMult]" i}} } Output { name Output1 xpos 0 ypos 556 } end_group set N135de800 [stack 0] Dot { name Dot1 xpos -776 ypos -246 } push $N135de800 push $N13728a80 Merge2 { inputs 2 operation mask name Merge tile_color 0x555555ff xpos -590 ypos -346 } Switch { inputs 2 which {{parent.conc}} name Switch tile_color 0x555555ff xpos -590 ypos -250 } Grade { channels alpha blackpoint {{"parent.contr * .45"}} whitepoint {{"1 - ( blackpoint * 1.1) "}} white_clamp true name Grade tile_color 0x555555ff xpos -480 ypos -256 } push $N13728e00 Copy { inputs 2 from0 rgba.alpha to0 rgba.alpha mix {{parent.mix}} name Copy tile_color 0x555555ff xpos -370 ypos -256 } Premult { name Premult tile_color 0x555555ff xpos -370 ypos -34 disable {{"parent.prem == 0"}} } Output { name Output1 tile_color 0x555555ff xpos -370 ypos 38 } end_group push $cut_paste_input Group { name GM_Matte_Edge tile_color 0xcc9800ff selected true xpos 620 ypos -346 addUserKnob {20 User} addUserKnob {4 method l Method M {"Merge In/Out" "Separate In/Out"}} addUserKnob {26 out l "Outside"} addUserKnob {41 in_1 l Size T proxy.in} addUserKnob {41 size_1 l Blur T Blur_IN.size} addUserKnob {41 which l Mix T Dissolve1.which} addUserKnob {26 in l "Inside"} addUserKnob {41 out_1 l Size T proxy.out} addUserKnob {41 size_3 l Blur T Blur_OUT.size} addUserKnob {41 which_1 l Mix T Dissolve2.which} addUserKnob {26 ""} addUserKnob {6 prem l Premult +STARTLINE} addUserKnob {26 ""} addUserKnob {7 mix_all l Mix} mix_all 1 addUserKnob {26 ""} addUserKnob {22 tut l Tutorial T "import os\nimport sys\n\ntry:\n import subprocess\n def _run(cmd, shell, wait):\n opener = subprocess.Popen(cmd, shell=shell)\n if wait:\n opener.wait()\n return opener.pid\nexcept ImportError:\n import popen2\n def _run(cmd, shell, wait):\n opener = popen2.Popen3(cmd)\n if wait:\n opener.wait()\n return opener.pid\n\ndef _open(url, wait=0):\n if sys.platform == \"darwin\":\n cmd = \[\"open\", url]\n elif hasattr(os, \"startfile\"):\n return os.startfile(url)\n elif os.environ.has_key(\"KDE_FULL_SESSION\") or os.environ.has_key(\"KDE_MULTIHEAD\") or \\\n os.environ.has_key(\"GNOME_DESKTOP_SESSION_ID\") or os.environ.has_key(\"GNOME_KEYRING_SOCKET\"):\n cmd = \[\"xdg-open\", url]\n else:\n raise OSError, \"Desktop not supported.\"\n\n return _run(cmd, 0, wait)\n\n_open('https://www.gatimedia.co.uk/matte-edge')\n" +STARTLINE} addUserKnob {26 ""} addUserKnob {26 TEXT l "" +STARTLINE T "1.01 version"} addUserKnob {26 HeadlineB l "" +STARTLINE T "GM_Matte Edge© by Attila Gasparetz"} } Input { inputs 0 name Input tile_color 0x666666ff xpos -480 ypos 38 } Dot { name Dot14 xpos -446 ypos 378 } set N137f6380 [stack 0] Dot { name Dot15 xpos -556 ypos 378 } set N137f6000 [stack 0] Group { name key_chew help "======== KeyChew beta ========\n=============================\n\nThis is a port of the KeyChew macro for Shake to Nuke.\n\nThere might be tiny differences on the results given in both apps. Some of them are caused by the internal algorithms of each app, and others by the way I faked the JSplineV\nexpression of Shake in Nuke. If you know a better way to solve this, let\nme know!!\n\n=============================\n 2009 Cuco Bures\n=============================" tile_color 0x555555ff xpos -700 ypos 518 addUserKnob {20 Controls} addUserKnob {7 chew t "\t\t" R -200 200} chew {{parent.proxy.in}} addUserKnob {7 soften R 0 200} addUserKnob {6 matteMult +STARTLINE} } Input { inputs 0 name Input xpos -40 ypos -10 } set N13831c00 [stack 0] Dot { name Dot1 xpos 324 ypos -6 } set N13831880 [stack 0] push $N13831880 Invert { name Invert1 xpos 180 ypos 32 } push $N13831880 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch1 xpos 180 ypos 86 } Blur { size {{"(floor(abs(\[value parent.chew]))/4)+(floor(abs(\[value parent.chew]))/8)"}} name FgEdgeBlur xpos 180 ypos 128 } Grade { channels alpha multiply {1 1 1 {max(FgEdgeBlur.size*1.5,1)}} black_clamp false name FgEdgeMult xpos 180 ypos 176 } Grade { channels alpha gamma {1 1 1 {JSplineVFake(floor(abs(parent.chew)))}} name FgEdgeGamma1 selected true xpos 180 ypos 224 addUserKnob {20 User} addUserKnob {7 JSplineVFake} JSplineVFake {{curve l 0.9958 k x5 0.95 0.8 x20 0.5 x40 0.3 x80 0.2 l x200 0.1}} } set N13830700 [stack 0] Merge2 { inputs 2 operation minus name Merge1 xpos 290 ypos 230 } push $N13830700 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch2 xpos 180 ypos 278 } Clamp { name Clamp2 xpos 180 ypos 320 } Blur { size {{"(floor(abs(\[value parent.soften]))/4)+(floor(abs(\[value parent.soften]))/8)"}} name BlurResult xpos 180 ypos 440 } push $N13831c00 ShuffleCopy { inputs 2 name ShuffleCopy1 xpos -40 ypos 446 } Premult { name Premult1 xpos -40 ypos 494 disable {{"1-\[value parent.matteMult]" i}} } Output { name Output1 xpos -40 ypos 566 } end_group push $N137f6000 Dissolve { inputs 2 which 1 name Dissolve2 tile_color 0x555555ff xpos -590 ypos 584 } Blur { channels alpha size 5 name Blur_IN tile_color 0x666666ff xpos -590 ypos 656 } Dot { name Dot16 xpos -556 ypos 762 } push $N137f6380 Dot { name Dot8 xpos -336 ypos 378 } set N13864000 [stack 0] Group { name key_chew1 help "======== KeyChew beta ========\n=============================\n\nThis is a port of the KeyChew macro for Shake to Nuke.\n\nThere might be tiny differences on the results given in both apps. Some of them are caused by the internal algorithms of each app, and others by the way I faked the JSplineV\nexpression of Shake in Nuke. If you know a better way to solve this, let\nme know!!\n\n=============================\n 2009 Cuco Bures\n=============================" tile_color 0x555555ff xpos -260 ypos 518 addUserKnob {20 Controls} addUserKnob {7 chew t "\t\t" R -200 200} chew {{-proxy.out}} addUserKnob {7 soften R 0 200} addUserKnob {6 matteMult +STARTLINE} } Input { inputs 0 name Input xpos 0 } set N13899c00 [stack 0] Dot { name Dot1 xpos 366 ypos 5 } set N13899880 [stack 0] push $N13899880 Invert { name Invert1 xpos 177 ypos 34 } push $N13899880 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch1 xpos 177 ypos 87 } Blur { size {{"(floor(abs(\[value parent.chew]))/4)+(floor(abs(\[value parent.chew]))/8)" i}} name FgEdgeBlur xpos 177 ypos 111 } Grade { channels alpha multiply {1 1 1 {max(FgEdgeBlur.size*1.5,1) i}} black_clamp false name FgEdgeMult xpos 177 ypos 165 } Grade { channels alpha gamma {1 1 1 {JSplineVFake(floor(abs(parent.chew))) i}} name FgEdgeGamma1 xpos 177 ypos 213 addUserKnob {20 User} addUserKnob {7 JSplineVFake} JSplineVFake {{curve i l 0.9958 k x5 0.95 0.8 x20 0.5 x40 0.3 x80 0.2 l x200 0.1}} } set N13898700 [stack 0] Merge2 { inputs 2 operation minus name Merge1 xpos 332 ypos 218 } push $N13898700 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch2 xpos 177 ypos 284 } Clamp { name Clamp2 xpos 177 ypos 323 } Blur { size {{"(floor(abs(\[value parent.soften]))/4)+(floor(abs(\[value parent.soften]))/8)"}} name BlurResult xpos 177 ypos 446 } push $N13899c00 ShuffleCopy { inputs 2 name ShuffleCopy1 xpos 0 ypos 451 } Premult { name Premult1 xpos 0 ypos 486 disable {{"1-\[value parent.matteMult]" i}} } Output { name Output1 xpos 0 ypos 556 } end_group push $N13864000 Dissolve { inputs 2 which 1 name Dissolve1 tile_color 0x555555ff xpos -370 ypos 584 } set N138d0a80 [stack 0] Dot { name Dot18 xpos -336 ypos 762 } ChannelMerge { inputs 2 operation xor name ChannelMerge tile_color 0x666666ff xpos -480 ypos 745 } push $N13864000 Dot { name Dot3 xpos -116 ypos 378 } set N138d0000 [stack 0] Dot { name Dot4 xpos -116 ypos 930 } set N13901c00 [stack 0] Invert { name Invert1 tile_color 0x555555ff xpos -260 ypos 920 } ChannelMerge { inputs 2 operation multiply name ChannelMerge4 tile_color 0x555555ff label "\[value operation]" xpos -480 ypos 907 } push $N138d0000 Dot { name Dot11 xpos 214 ypos 378 } set N13901180 [stack 0] Dot { name Dot5 xpos 214 ypos 426 } set N13900e00 [stack 0] Dot { name Dot6 xpos 104 ypos 426 } set N13900a80 [stack 0] Group { name key_chew2 help "======== KeyChew beta ========\n=============================\n\nThis is a port of the KeyChew macro for Shake to Nuke.\n\nThere might be tiny differences on the results given in both apps. Some of them are caused by the internal algorithms of each app, and others by the way I faked the JSplineV\nexpression of Shake in Nuke. If you know a better way to solve this, let\nme know!!\n\n=============================\n 2009 Cuco Bures\n=============================" tile_color 0x555555ff xpos -40 ypos 566 addUserKnob {20 Controls} addUserKnob {7 chew t "\t\t" R -200 200} chew {{parent.proxy.in}} addUserKnob {7 soften R 0 200} addUserKnob {6 matteMult +STARTLINE} } Input { inputs 0 name Input xpos -40 ypos -10 } set N13900700 [stack 0] Dot { name Dot1 xpos 324 ypos -6 } set N13900380 [stack 0] push $N13900380 Invert { name Invert1 xpos 180 ypos 32 } push $N13900380 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch1 xpos 180 ypos 86 } Blur { size {{"(floor(abs(\[value parent.chew]))/4)+(floor(abs(\[value parent.chew]))/8)"}} name FgEdgeBlur xpos 180 ypos 128 } Grade { channels alpha multiply {1 1 1 {max(FgEdgeBlur.size*1.5,1)}} black_clamp false name FgEdgeMult xpos 180 ypos 176 } Grade { channels alpha gamma {1 1 1 {JSplineVFake(floor(abs(parent.chew)))}} name FgEdgeGamma1 selected true xpos 180 ypos 224 addUserKnob {20 User} addUserKnob {7 JSplineVFake} JSplineVFake {{curve l 0.9958 k x5 0.95 0.8 x20 0.5 x40 0.3 x80 0.2 l x200 0.1}} } set N1392d180 [stack 0] Merge2 { inputs 2 operation minus name Merge1 xpos 290 ypos 230 } push $N1392d180 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch2 xpos 180 ypos 278 } Clamp { name Clamp2 xpos 180 ypos 320 } Blur { size {{"(floor(abs(\[value parent.soften]))/4)+(floor(abs(\[value parent.soften]))/8)"}} name BlurResult xpos 180 ypos 440 } push $N13900700 ShuffleCopy { inputs 2 name ShuffleCopy1 xpos -40 ypos 446 } Premult { name Premult1 xpos -40 ypos 494 disable {{"1-\[value parent.matteMult]" i}} } Output { name Output1 xpos -40 ypos 566 } end_group push $N13900a80 Dissolve { inputs 2 which {{Dissolve2.which}} name Dissolve4 tile_color 0x555555ff xpos 70 ypos 632 } Dot { name Dot7 xpos 104 ypos 810 } push $N13900e00 Dot { name Dot9 xpos 324 ypos 426 } set N13966e00 [stack 0] Group { name key_chew3 help "======== KeyChew beta ========\n=============================\n\nThis is a port of the KeyChew macro for Shake to Nuke.\n\nThere might be tiny differences on the results given in both apps. Some of them are caused by the internal algorithms of each app, and others by the way I faked the JSplineV\nexpression of Shake in Nuke. If you know a better way to solve this, let\nme know!!\n\n=============================\n 2009 Cuco Bures\n=============================" tile_color 0x555555ff xpos 400 ypos 566 addUserKnob {20 Controls} addUserKnob {7 chew t "\t\t" R -200 200} chew {{-proxy.out}} addUserKnob {7 soften R 0 200} addUserKnob {6 matteMult +STARTLINE} } Input { inputs 0 name Input xpos 0 } set N13966a80 [stack 0] Dot { name Dot1 xpos 366 ypos 5 } set N13966700 [stack 0] push $N13966700 Invert { name Invert1 xpos 177 ypos 34 } push $N13966700 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch1 xpos 177 ypos 87 } Blur { size {{"(floor(abs(\[value parent.chew]))/4)+(floor(abs(\[value parent.chew]))/8)" i}} name FgEdgeBlur xpos 177 ypos 111 } Grade { channels alpha multiply {1 1 1 {max(FgEdgeBlur.size*1.5,1) i}} black_clamp false name FgEdgeMult xpos 177 ypos 165 } Grade { channels alpha gamma {1 1 1 {JSplineVFake(floor(abs(parent.chew))) i}} name FgEdgeGamma1 xpos 177 ypos 213 addUserKnob {20 User} addUserKnob {7 JSplineVFake} JSplineVFake {{curve i l 0.9958 k x5 0.95 0.8 x20 0.5 x40 0.3 x80 0.2 l x200 0.1}} } set N1398f500 [stack 0] Merge2 { inputs 2 operation minus name Merge1 xpos 332 ypos 218 } push $N1398f500 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch2 xpos 177 ypos 284 } Clamp { name Clamp2 xpos 177 ypos 323 } Blur { size {{"(floor(abs(\[value parent.soften]))/4)+(floor(abs(\[value parent.soften]))/8)"}} name BlurResult xpos 177 ypos 446 } push $N13966a80 ShuffleCopy { inputs 2 name ShuffleCopy1 xpos 0 ypos 451 } Premult { name Premult1 xpos 0 ypos 486 disable {{"1-\[value parent.matteMult]" i}} } Output { name Output1 xpos 0 ypos 556 } end_group push $N13966e00 Dissolve { inputs 2 which {{Dissolve1.which}} name Dissolve5 tile_color 0x555555ff xpos 290 ypos 632 } Blur { channels alpha size {{parent.Blur_OUT.size}} name Blur_OUT1 tile_color 0x666666ff xpos 290 ypos 704 } Dot { name Dot10 xpos 324 ypos 810 } ChannelMerge { inputs 2 operation xor name ChannelMerge1 tile_color 0x666666ff xpos 180 ypos 793 } push $N13901c00 ChannelMerge { inputs 2 operation multiply name ChannelMerge3 tile_color 0x555555ff label "\[value operation]" xpos 180 ypos 907 } ChannelMerge { inputs 2 operation plus name ChannelMerge2 tile_color 0x555555ff label "\[value operation]" xpos -150 ypos 1003 } push $N137f6000 Dot { name Dot21 xpos -996 ypos 378 } Dot { name Dot12 xpos -996 ypos 618 } set N139d4000 [stack 0] Dot { name Dot13 xpos -1106 ypos 618 } set N13a01c00 [stack 0] Group { name key_chew4 help "======== KeyChew beta ========\n=============================\n\nThis is a port of the KeyChew macro for Shake to Nuke.\n\nThere might be tiny differences on the results given in both apps. Some of them are caused by the internal algorithms of each app, and others by the way I faked the JSplineV\nexpression of Shake in Nuke. If you know a better way to solve this, let\nme know!!\n\n=============================\n 2009 Cuco Bures\n=============================" tile_color 0x555555ff xpos -1250 ypos 758 addUserKnob {20 Controls} addUserKnob {7 chew t "\t\t" R -200 200} chew {{parent.proxy.in}} addUserKnob {7 soften R 0 200} addUserKnob {6 matteMult +STARTLINE} } Input { inputs 0 name Input xpos -40 ypos -10 } set N13a01880 [stack 0] Dot { name Dot1 xpos 324 ypos -6 } set N13a01500 [stack 0] push $N13a01500 Invert { name Invert1 xpos 180 ypos 32 } push $N13a01500 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch1 xpos 180 ypos 86 } Blur { size {{"(floor(abs(\[value parent.chew]))/4)+(floor(abs(\[value parent.chew]))/8)"}} name FgEdgeBlur xpos 180 ypos 128 } Grade { channels alpha multiply {1 1 1 {max(FgEdgeBlur.size*1.5,1)}} black_clamp false name FgEdgeMult xpos 180 ypos 176 } Grade { channels alpha gamma {1 1 1 {JSplineVFake(floor(abs(parent.chew)))}} name FgEdgeGamma1 selected true xpos 180 ypos 224 addUserKnob {20 User} addUserKnob {7 JSplineVFake} JSplineVFake {{curve l 0.9958 k x5 0.95 0.8 x20 0.5 x40 0.3 x80 0.2 l x200 0.1}} } set N13a00380 [stack 0] Merge2 { inputs 2 operation minus name Merge1 xpos 290 ypos 230 } push $N13a00380 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch2 xpos 180 ypos 278 } Clamp { name Clamp2 xpos 180 ypos 320 } Blur { size {{"(floor(abs(\[value parent.soften]))/4)+(floor(abs(\[value parent.soften]))/8)"}} name BlurResult xpos 180 ypos 440 } push $N13a01880 ShuffleCopy { inputs 2 name ShuffleCopy1 xpos -40 ypos 446 } Premult { name Premult1 xpos -40 ypos 494 disable {{"1-\[value parent.matteMult]" i}} } Output { name Output1 xpos -40 ypos 566 } end_group push $N13a01c00 Dissolve { inputs 2 which {{Dissolve2.which}} name Dissolve6 tile_color 0x555555ff xpos -1140 ypos 824 } Blur { channels alpha size {{parent.Blur_IN.size}} name Blur_IN1 tile_color 0x666666ff xpos -1140 ypos 872 } Dot { name Dot17 xpos -1106 ypos 1002 } push $N139d4000 Dot { name Dot19 xpos -886 ypos 618 } set N13a67c00 [stack 0] Group { name key_chew5 help "======== KeyChew beta ========\n=============================\n\nThis is a port of the KeyChew macro for Shake to Nuke.\n\nThere might be tiny differences on the results given in both apps. Some of them are caused by the internal algorithms of each app, and others by the way I faked the JSplineV\nexpression of Shake in Nuke. If you know a better way to solve this, let\nme know!!\n\n=============================\n 2009 Cuco Bures\n=============================" tile_color 0x555555ff xpos -810 ypos 758 addUserKnob {20 Controls} addUserKnob {7 chew t "\t\t" R -200 200} chew {{-proxy.out}} addUserKnob {7 soften R 0 200} addUserKnob {6 matteMult +STARTLINE} } Input { inputs 0 name Input xpos 0 } set N13a67880 [stack 0] Dot { name Dot1 xpos 366 ypos 5 } set N13a67500 [stack 0] push $N13a67500 Invert { name Invert1 xpos 177 ypos 34 } push $N13a67500 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch1 xpos 177 ypos 87 } Blur { size {{"(floor(abs(\[value parent.chew]))/4)+(floor(abs(\[value parent.chew]))/8)" i}} name FgEdgeBlur xpos 177 ypos 111 } Grade { channels alpha multiply {1 1 1 {max(FgEdgeBlur.size*1.5,1) i}} black_clamp false name FgEdgeMult xpos 177 ypos 165 } Grade { channels alpha gamma {1 1 1 {JSplineVFake(floor(abs(parent.chew))) i}} name FgEdgeGamma1 xpos 177 ypos 213 addUserKnob {20 User} addUserKnob {7 JSplineVFake} JSplineVFake {{curve i l 0.9958 k x5 0.95 0.8 x20 0.5 x40 0.3 x80 0.2 l x200 0.1}} } set N13a66380 [stack 0] Merge2 { inputs 2 operation minus name Merge1 xpos 332 ypos 218 } push $N13a66380 Switch { inputs 2 which {{"\[value parent.chew]>=0?0:1"}} name Switch2 xpos 177 ypos 284 } Clamp { name Clamp2 xpos 177 ypos 323 } Blur { size {{"(floor(abs(\[value parent.soften]))/4)+(floor(abs(\[value parent.soften]))/8)"}} name BlurResult xpos 177 ypos 446 } push $N13a67880 ShuffleCopy { inputs 2 name ShuffleCopy1 xpos 0 ypos 451 } Premult { name Premult1 xpos 0 ypos 486 disable {{"1-\[value parent.matteMult]" i}} } Output { name Output1 xpos 0 ypos 556 } end_group push $N13a67c00 Dissolve { inputs 2 which {{Dissolve1.which}} name Dissolve7 tile_color 0x555555ff xpos -920 ypos 824 } Blur { channels alpha size {{parent.Blur_OUT.size}} name Blur_OUT2 tile_color 0x666666ff xpos -920 ypos 896 } Dot { name Dot20 xpos -886 ypos 1002 } ChannelMerge { inputs 2 operation xor name ChannelMerge5 tile_color 0x666666ff xpos -1030 ypos 985 } Dot { name Dot22 xpos -996 ypos 1146 } Switch { inputs 2 which {{parent.method}} name Switch1 tile_color 0x555555ff xpos -150 ypos 1142 } Clamp { name Clamp tile_color 0x555555ff xpos -150 ypos 1304 } Dot { name Dot2 xpos -116 ypos 1434 } push $N13901180 Dot { name Dot1 xpos 874 ypos 378 } Dissolve { inputs 2 channels alpha which {{parent.mix_all}} name Dissolve3 tile_color 0x555555ff xpos 840 ypos 1424 } Premult { name Premult1 tile_color 0x555555ff xpos 840 ypos 1550 disable {{"parent.prem == 0"}} } Output { name Output tile_color 0x666666ff xpos 840 ypos 1598 } NoOp { inputs 0 name proxy tile_color 0x666666ff xpos -480 ypos 518 addUserKnob {20 User} addUserKnob {7 in l Size R 0 100} in 10 addUserKnob {7 out l Size R 0 100} out 10 } push $N138d0a80 Blur { channels alpha size 5 name Blur_OUT tile_color 0x666666ff xpos -260 ypos 656 } end_group push $cut_paste_input Group { name GM_Alpha_Puli tile_color 0xffae53ff selected true xpos 400 ypos 470 addUserKnob {20 checker l Checker} addUserKnob {4 over l Mode t "Choose between the preferred visibility modes to test your matte. For `Overlay` you can choose between colors. " M {Overlay Grey Black White Checkerboard "" "" "" "" "" "" "" "" ""}} addUserKnob {4 overlay l Overlay t "Choose between the colors to see the edges better when the Mode is on `Overlay`." M {Pink Blue Yellow Green Red "" "" "" "" "" "" ""}} addUserKnob {41 mix l "Color Mix" t "Adjust the Mix of the preferred color." T Keymix2.mix} addUserKnob {41 boxsize l "Box size" t "Adjust the size of the checkerboard IF that is selected." T CheckerBoard2.boxsize} addUserKnob {6 invert l "Invert Alpha" +STARTLINE} addUserKnob {26 fg l "Adjust RGB"} addUserKnob {41 saturation t "Allows to change the saturation of the plate" T ColorCorrect1.saturation} addUserKnob {41 contrast t "Allows to change the contrast of the plate" T ColorCorrect1.contrast} addUserKnob {41 gamma t "Allows to change the gamma of the plate" T ColorCorrect1.gamma} addUserKnob {41 gain t "Allows to change the gain of the plate" T ColorCorrect1.gain} addUserKnob {26 chcker l "Adjust Alpha"} addUserKnob {4 checker_1 l "Checker " t "Allows to check for holes ( high values ) and rogue alpha patches ( low values ) on the `matte`. " M {"Leave Alpha" "Check high values" "Check low values " "" ""}} addUserKnob {6 exposure l "Show illegal values ( a<0, 11.02 version"} addUserKnob {26 HeadlineB l "" +STARTLINE T "GM_Alpha Puli© by Attila Gasparetz"} addUserKnob {20 qc l QC} addUserKnob {6 c_sheet l "Contact Sheet View" t "Allows you to turn on the Contact Sheet View and view your rgba in different setups" +STARTLINE} addUserKnob {26 ""} addUserKnob {26 info l "" +STARTLINE T "Further settings are ONLY working if the `Contact Sheet View` is selected"} addUserKnob {26 ""} addUserKnob {6 contact_labels l Labels t "Allows you to turn on the labels of the setups" +STARTLINE} contact_labels true addUserKnob {7 lab_size l "Label Scale" t "Allows you to change the size of the letters" R 0 2} lab_size 0.5 addUserKnob {4 bg_color l "Background Color" t "Allows you to change the background for `high values` and `low values` " M {Grey Black White Checkerboard ""}} addUserKnob {4 over_color l "Overlay Color" t "Allows you to change the color for `outline` `overlay` and `overlay invert`" M {Red Blue Yellow Green Pink "" ""}} addUserKnob {41 mix_1 l "Overlay Mix" t "Adjust the Mix of the preferred color on `outline` `overlay` and `overlay invert`" T Keymix_overlay.mix} addUserKnob {41 scale l INVISIBLE +INVISIBLE T Image_Res.scale} addUserKnob {7 sheet_res l "Sheet Resolution" t "Allows you to change the resolution of the contact sheet"} sheet_res 1 addUserKnob {20 endGroup n -1} } BackdropNode { inputs 0 name BackdropNode1 tile_color 0x656565ff label "
Illegal\nValues" note_font_size 42 xpos 2687 ypos -92 bdwidth 566 bdheight 1240 } BackdropNode { inputs 0 name BackdropNode10 tile_color 0x656565ff label
Checker note_font_size 72 xpos -304 ypos -40 bdwidth 2368 bdheight 1855 } BackdropNode { inputs 0 name BackdropNode2 tile_color 0x656565ff label "
High\nValues" note_font_size 42 xpos 3347 ypos -92 bdwidth 566 bdheight 1240 } BackdropNode { inputs 0 name BackdropNode3 tile_color 0x656565ff label "
Low\nValues" note_font_size 42 xpos 4007 ypos -92 bdwidth 566 bdheight 1240 } BackdropNode { inputs 0 name BackdropNode4 tile_color 0x656565ff label
Overlay note_font_size 42 xpos 4667 ypos -92 bdwidth 566 bdheight 1240 } BackdropNode { inputs 0 name BackdropNode5 tile_color 0x656565ff label "
Overlay\nInvert" note_font_size 42 xpos 5327 ypos -92 bdwidth 566 bdheight 1240 } BackdropNode { inputs 0 name BackdropNode6 tile_color 0x656565ff label "
Low\nAlpha" note_font_size 42 xpos 8077 ypos -92 bdwidth 566 bdheight 1240 } BackdropNode { inputs 0 name BackdropNode7 tile_color 0x656565ff label
Outline note_font_size 42 xpos 5987 ypos -92 bdwidth 566 bdheight 1240 } BackdropNode { inputs 0 name BackdropNode8 tile_color 0x656565ff label "
Only\nAlpha" note_font_size 42 xpos 6757 ypos -92 bdwidth 566 bdheight 1240 } BackdropNode { inputs 0 name BackdropNode9 tile_color 0x656565ff label "
High\nAlpha" note_font_size 42 xpos 7417 ypos -92 bdwidth 566 bdheight 1240 } Input { inputs 0 name Matte xpos 730 ypos -994 number 1 } Dot { name Dot14 xpos 764 ypos -534 } set N13b4aa80 [stack 0] Crop { box {0 0 {width} {height}} name Crop1 xpos 2600 ypos -538 } set C13b4a700 [stack 0] Dot { name Dot16 xpos 3074 ypos -534 } set N13b4a380 [stack 0] Dot { name Dot20 xpos 3734 ypos -534 } set N13b4a000 [stack 0] Dot { name Dot23 xpos 4394 ypos -534 } set N13b67c00 [stack 0] Dot { name Dot29 xpos 4944 ypos -534 } set N13b67880 [stack 0] Dot { name Dot34 xpos 5604 ypos -534 } set N13b67500 [stack 0] Dot { name Dot43 xpos 6264 ypos -534 } set N13b67180 [stack 0] Dot { name Dot35 xpos 7034 ypos -534 } set N13b66e00 [stack 0] Dot { name Dot51 xpos 7694 ypos -534 } set N13b66a80 [stack 0] Dot { name Dot41 xpos 8354 ypos -534 } Grade { channels alpha gamma 10 name Grade_LOW_VALUE2 xpos 8320 ypos 104 } Shuffle { red alpha green alpha blue alpha name Shuffle3 label "\[value in 1]" xpos 8320 ypos 248 } Text2 { font_size_toolbar 150 font_width_toolbar 100 font_height_toolbar 100 output {rgba.red rgba.green rgba.blue mask.a} message "LOW ALPHA" old_message {{76 79 87 32 65 76 80 72 65} } box {{parent.Text_QC.box} {parent.Text_QC.box} {parent.Text_QC.box} {parent.Text_QC.box}} xjustify center yjustify center transforms {{0 2} } font_size_values {{0 150 1 150 2 150 3 150 4 150 5 150 6 150 7 150 8 150 0 150 1 150 2 150 3 150 4 150 5 150 6 150 7 150 8 150} } cursor_position 9 font {{ Bitstream Charter : Regular : BitstreamCharter.pfb : 0 }} global_font_scale {{parent.lab_size}} font_size 150 scale {1 1} cursor_initialised true autofit_bbox false initial_cursor_position {{0 2304} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 2048 1152 0 0 1 1 0 0 0 0} } name Text_QC7 xpos 8320 ypos 944 disable {{"parent.contact_labels== 0 ? 1 : 0"}} } set N13b8dc00 [stack 0] push $N13b8dc00 Dilate { channels mask size 8 name Dilate8 xpos 8210 ypos 944 } Multiply { inputs 1+1 channels mask value 0 maskChannelMask mask.a name Multiply7 xpos 8210 ypos 1040 } push $N13b8dc00 Multiply { inputs 1+1 value 0 maskChannelMask mask.a name Multiply15 xpos 8320 ypos 1040 disable {{"parent.contact_labels== 0 ? 1 : 0"}} } Reformat { type scale name Image_Res xpos 8320 ypos 1214 } set C13b8ca80 [stack 0] Dot { name Dot42 xpos 8354 ypos 1458 } push $N13b66a80 Grade { channels alpha gamma 1e-06 name Grade_HIGH_VALUE2 xpos 7660 ypos 104 } Shuffle { red alpha green alpha blue alpha name Shuffle2 label "\[value in 1]" xpos 7660 ypos 248 } Text2 { font_size_toolbar 150 font_width_toolbar 100 font_height_toolbar 100 output {rgba.red rgba.green rgba.blue mask.a} message "HIGH ALPHA" old_message {{72 73 71 72 32 65 76 80 72 65} } box {{parent.Text_QC.box} {parent.Text_QC.box} {parent.Text_QC.box} {parent.Text_QC.box}} xjustify center yjustify center transforms {{0 2} } font_size_values {{0 150 1 150 2 150 3 150 4 150 5 150 6 150 7 150 8 150 9 150 0 150 1 150 2 150 3 150 4 150 5 150 6 150 7 150 8 150 9 150} } cursor_position 10 font {{ Bitstream Charter : Regular : BitstreamCharter.pfb : 0 }} global_font_scale {{parent.lab_size}} font_size 150 scale {1 1} cursor_initialised true autofit_bbox false initial_cursor_position {{0 2304} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 2048 1152 0 0 1 1 0 0 0 0} } name Text_QC6 xpos 7660 ypos 944 disable {{"parent.contact_labels== 0 ? 1 : 0"}} } set N13bc9c00 [stack 0] push $N13bc9c00 Dilate { channels mask size 8 name Dilate5 xpos 7550 ypos 944 } Multiply { inputs 1+1 channels mask value 0 maskChannelMask mask.a name Multiply5 xpos 7550 ypos 1040 } push $N13bc9c00 Multiply { inputs 1+1 value 0 maskChannelMask mask.a name Multiply14 xpos 7660 ypos 1040 disable {{"parent.contact_labels== 0 ? 1 : 0"}} } clone $C13b8ca80 { xpos 7660 ypos 1214 selected false } Dot { name Dot52 xpos 7694 ypos 1458 } push $N13b66e00 Shuffle { red alpha green alpha blue alpha name Shuffle1 label "\[value in 1]" xpos 7000 ypos 248 } Text2 { font_size_toolbar 150 font_width_toolbar 100 font_height_toolbar 100 output {rgba.red rgba.green rgba.blue mask.a} message ALPHA old_message {{65 76 80 72 65} } box {{parent.Text_QC.box} {parent.Text_QC.box} {parent.Text_QC.box} {parent.Text_QC.box}} xjustify center yjustify center transforms {{0 2} } font_size_values {{0 150 1 150 2 150 3 150 4 150 0 150 1 150 2 150 3 150 4 150} } cursor_position 5 font {{ Bitstream Charter : Regular : BitstreamCharter.pfb : 0 }} global_font_scale {{parent.lab_size}} font_size 150 scale {1 1} cursor_initialised true autofit_bbox false initial_cursor_position {{0 2304} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 2048 1152 0 0 1 1 0 0 0 0} } name Text_QC5 xpos 7000 ypos 944 disable {{"parent.contact_labels== 0 ? 1 : 0"}} } set N13bc8000 [stack 0] push $N13bc8000 Dilate { channels mask size 8 name Dilate4 xpos 6890 ypos 944 } Multiply { inputs 1+1 channels mask value 0 maskChannelMask mask.a name Multiply4 xpos 6890 ypos 1040 } push $N13bc8000 Multiply { inputs 1+1 value 0 maskChannelMask mask.a name Multiply13 xpos 7000 ypos 1040 disable {{"parent.contact_labels== 0 ? 1 : 0"}} } clone $C13b8ca80 { xpos 7000 ypos 1214 selected false } Dot { name Dot47 xpos 7034 ypos 1458 } push $N13b67180 Grade { channels alpha blackpoint 0.1 whitepoint 0.5 name Grade1 xpos 6230 ypos -16 } Dot { name Dot48 xpos 6264 ypos 66 } set N13c0a380 [stack 0] Dot { name Dot49 xpos 6154 ypos 66 } FilterErode { size 5 name FilterErode6 tile_color 0x6aff55ff label IN note_font "Bitstream Vera Sans Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold" note_font_size 12 xpos 6120 ypos 96 } Blur { channels alpha size 2 name Blur8 tile_color 0x6aff55ff xpos 6120 ypos 176 } Dot { name Dot50 xpos 6154 ypos 234 } push $N13c0a380 Dot { name Dot53 xpos 6374 ypos 66 } FilterErode { size -5 name FilterErode7 tile_color 0xff5594ff label OUT note_font "Bitstream Vera Sans Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold" note_font_size 12 xpos 6340 ypos 96 } Blur { channels alpha size 2 name Blur9 tile_color 0xff5594ff xpos 6340 ypos 176 } Dot { name Dot54 xpos 6374 ypos 234 } ChannelMerge { inputs 2 operation xor name ChannelMerge4 xpos 6230 ypos 217 } set N13c42380 [stack 0] Dot { name Dot64 xpos 6264 ypos 282 } set N13c42000 [stack 0] Dot { name Dot65 xpos 6044 ypos 282 } Dot { name Dot63 xpos 6044 ypos 522 } push $N13c42000 Constant { inputs 0 channels rgb color {1 0 1 0} color_panelDropped true format {{{Reformat_MAIN.format}}} name Constant19 xpos 5240 ypos -897 } Constant { inputs 0 channels rgb color {0 1 0 0} color_panelDropped true format {{{Reformat_MAIN.format}}} name Constant17 xpos 5130 ypos -897 } Constant { inputs 0 channels rgb color {1 1 0 0} color_panelDropped true format {{{Reformat_MAIN.format}}} name Constant18 xpos 5020 ypos -897 } Constant { inputs 0 channels rgb color {0 0 1 0} color_panelDropped true format {{{Reformat_MAIN.format}}} name Constant20 xpos 4910 ypos -897 } Constant { inputs 0 channels rgb color {1 0 0 0} color_panelDropped true format {{{Reformat_MAIN.format}}} name Constant12 xpos 4800 ypos -897 } set N13c6e700 [stack 0] Switch { inputs 5 which {{parent.over_color}} name QC_Overlay_Color xpos 5020 ypos -682 } set N13c6e380 [stack 0] Dot { name Dot55 label " RED" note_font_size 21 xpos 6154 ypos 330 hide_input true } set N13c6e000 [stack 0] push $N13c42380 Invert { name Invert7 xpos 6340 ypos 272 } push $N13c6e000 Invert { name Invert6 xpos 6340 ypos 320 } Input { inputs 0 name RGB xpos 400 ypos -994 } Dot { name Dot15 xpos 434 ypos -342 } set N13c97180 [stack 0] clone $C13b4a700 { xpos 2600 ypos -346 selected false } Dot { name Dot17 xpos 2854 ypos -342 } set N13c96a80 [stack 0] Dot { name Dot21 xpos 3624 ypos -342 } set N13c96700 [stack 0] Dot { name Dot24 xpos 4284 ypos -342 } set N13c96380 [stack 0] Dot { name Dot31 xpos 4834 ypos -342 } set N13c96000 [stack 0] Dot { name Dot36 xpos 5714 ypos -342 } set N13cb9c00 [stack 0] Dot { name Dot44 xpos 6484 ypos -342 } Merge2 { inputs 2+1 mix 0.3 name Merge12 xpos 6450 ypos 326 } Dot { name Dot45 xpos 6484 ypos 426 } Keymix { inputs 3 mix 0.5 name Keymix_overlay xpos 6230 ypos 416 } set C13cb8e00 [stack 0] Copy { inputs 2 from0 rgba.alpha to0 rgba.alpha name Copy9 xpos 6230 ypos 512 } Text2 { font_size_toolbar 150 font_width_toolbar 100 font_height_toolbar 100 output {rgba.red rgba.green rgba.blue mask.a} message OUTLINE old_message {{79 85 84 76 73 78 69} } box {{parent.Text_QC.box} {parent.Text_QC.box} {parent.Text_QC.box} {parent.Text_QC.box}} xjustify center yjustify center transforms {{0 2} } font_size_values {{0 150 1 150 2 150 3 150 4 150 5 150 6 150 0 150 1 150 2 150 3 150 4 150 5 150 6 150} } cursor_position 7 font {{ Bitstream Charter : Regular : BitstreamCharter.pfb : 0 }} global_font_scale {{parent.lab_size}} font_size 150 scale {1 1} cursor_initialised true autofit_bbox false initial_cursor_position {{0 2304} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 2048 1152 0 0 1 1 0 0 0 0} } name Text_QC8 xpos 6230 ypos 944 disable {{"parent.contact_labels== 0 ? 1 : 0"}} } set N13cb8700 [stack 0] push $N13cb8700 Dilate { channels mask size 8 name Dilate9 xpos 6120 ypos 944 } Multiply { inputs 1+1 channels mask value 0 maskChannelMask mask.a name Multiply6 xpos 6120 ypos 1040 } push $N13cb8700 Multiply { inputs 1+1 value 0 maskChannelMask mask.a name Multiply16 xpos 6230 ypos 1040 disable {{"parent.contact_labels== 0 ? 1 : 0"}} } clone $C13b8ca80 { xpos 6230 ypos 1214 selected false } Dot { name Dot46 xpos 6264 ypos 1434 } push $N13b67880 push $N13b67880 push $N13c6e380 Dot { name Dot30 xpos 5054 ypos 426 } set N13ceae00 [stack 0] push $N13c96000 Dot { name Dot32 xpos 4834 ypos 426 } clone $C13cb8e00 { inputs 3 xpos 4910 ypos 416 selected false } Copy { inputs 2 from0 rgba.alpha to0 rgba.alpha name Copy10 xpos 4910 ypos 536 } Text2 { font_size_toolbar 150 font_width_toolbar 100 font_height_toolbar 100 output {rgba.red rgba.green rgba.blue mask.a} message OVERLAY old_message {{79 86 69 82 76 65 89} } box {{parent.Text_QC.box} {parent.Text_QC.box} {parent.Text_QC.box} {parent.Text_QC.box}} xjustify center yjustify center transforms {{0 2} } font_size_values {{0 150 1 150 2 150 3 150 4 150 5 150 6 150 0 150 1 150 2 150 3 150 4 150 5 150 6 150} } font {{ Bitstream Charter : Regular : BitstreamCharter.pfb : 0 }} global_font_scale {{parent.lab_size}} font_size 150 scale {1 1} cursor_initialised true autofit_bbox false initial_cursor_position {{0 2304} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 2048 1152 0 0 1 1 0 0 0 0} } name Text_QC3 xpos 4910 ypos 944 disable {{"parent.contact_labels== 0 ? 1 : 0"}} } set N13cea000 [stack 0] push $N13cea000 Dilate { channels mask size 8 name Dilate2 xpos 4800 ypos 944 } Multiply { inputs 1+1 channels mask value 0 maskChannelMask mask.a name Multiply2 xpos 4800 ypos 1040 } push $N13cea000 Multiply { inputs 1+1 value 0 maskChannelMask mask.a name Multiply11 xpos 4910 ypos 1040 disable {{"parent.contact_labels== 0 ? 1 : 0"}} } clone $C13b8ca80 { xpos 4910 ypos 1214 selected false } Dot { name Dot33 xpos 4944 ypos 1434 } push $N13b67500 Invert { name Invert5 xpos 5570 ypos 248 } set N13d1e700 [stack 0] push $N13d1e700 push $N13ceae00 push $N13cb9c00 Dot { name Dot37 xpos 5714 ypos 426 } clone $C13cb8e00 { inputs 3 xpos 5570 ypos 416 selected false } Copy { inputs 2 from0 rgba.alpha to0 rgba.alpha name Copy11 xpos 5570 ypos 560 } Text2 { font_size_toolbar 150 font_width_toolbar 100 font_height_toolbar 100 output {rgba.red rgba.green rgba.blue mask.a} message "OVERLAY INVERT" old_message {{79 86 69 82 76 65 89 32 73 78 86 69 82 84} } box {{parent.Text_QC.box} {parent.Text_QC.box} {parent.Text_QC.box} {parent.Text_QC.box}} xjustify center yjustify center transforms {{0 2} } font_size_values {{0 150 1 150 2 150 3 150 4 150 5 150 6 150 7 150 8 150 9 150 10 150 11 150 12 150 13 150 0 150 1 150 2 150 3 150 4 150 5 150 6 150 7 150 8 150 9 150 10 150 11 150 12 150 13 150} } cursor_position 14 font {{ Bitstream Charter : Regular : BitstreamCharter.pfb : 0 }} global_font_scale {{parent.lab_size}} font_size 150 scale {1 1} cursor_initialised true autofit_bbox false initial_cursor_position {{0 2304} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 2048 1152 0 0 1 1 0 0 0 0} } name Text_QC4 xpos 5570 ypos 944 disable {{"parent.contact_labels== 0 ? 1 : 0"}} } set N13d55880 [stack 0] push $N13d55880 Dilate { channels mask size 8 name Dilate3 xpos 5460 ypos 944 } Multiply { inputs 1+1 channels mask value 0 maskChannelMask mask.a name Multiply3 xpos 5460 ypos 1040 } push $N13d55880 Multiply { inputs 1+1 value 0 maskChannelMask mask.a name Multiply12 xpos 5570 ypos 1040 disable {{"parent.contact_labels== 0 ? 1 : 0"}} } clone $C13b8ca80 { xpos 5570 ypos 1214 selected false } Dot { name Dot40 xpos 5604 ypos 1434 } push $N13b67c00 Grade { channels alpha gamma 10 name Grade_LOW_VALUE1 xpos 4360 ypos 200 } push $N13c96380 Copy { inputs 2 from0 rgba.alpha to0 rgba.alpha name Copy6 xpos 4250 ypos 200 } Premult { name Premult5 xpos 4250 ypos 446 } CheckerBoard2 { inputs 0 format {{{Reformat_MAIN.format}}} centerlinewidth 0 name CheckerBoard1 xpos 3590 ypos -873 } Constant { inputs 0 channels rgb color {1 1 1 0} color_panelDropped true format {{{Reformat_MAIN.format}}} name Constant14 xpos 3480 ypos -873 } Constant { inputs 0 channels rgb color {0 0 0 0} color_panelDropped true format {{{Reformat_MAIN.format}}} name Constant15 xpos 3370 ypos -873 } Constant { inputs 0 channels rgb color 0.18 format {{{Reformat_MAIN.format}}} name Constant16 xpos 3260 ypos -873 } Switch { inputs 4 which {{parent.bg_color}} name QC_BG_Color xpos 3480 ypos -682 } Dot { name Dot26 xpos 3514 ypos 378 } set N13d96380 [stack 0] Dot { name Dot25 xpos 4174 ypos 378 } Merge2 { inputs 2 name Merge11 xpos 4140 ypos 446 } Text2 { font_size_toolbar 150 font_width_toolbar 100 font_height_toolbar 100 output {rgba.red rgba.green rgba.blue mask.a} message "LOW VALUES" old_message {{76 79 87 32 86 65 76 85 69 83} } box {{parent.Text_QC.box} {parent.Text_QC.box} {parent.Text_QC.box} {parent.Text_QC.box}} xjustify center yjustify center transforms {{0 2} } font_size_values {{0 150 1 150 2 150 3 150 4 150 5 150 6 150 7 150 8 150 9 150 0 150 1 150 2 150 3 150 4 150 5 150 6 150 7 150 8 150 9 150} } cursor_position 10 font {{ Bitstream Charter : Regular : BitstreamCharter.pfb : 0 }} global_font_scale {{parent.lab_size}} font_size 150 scale {1 1} cursor_initialised true autofit_bbox false initial_cursor_position {{0 2304} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 2048 1152 0 0 1 1 0 0 0 0} } name Text_QC2 xpos 4140 ypos 944 disable {{"parent.contact_labels== 0 ? 1 : 0"}} } set N13dc5880 [stack 0] push $N13dc5880 Dilate { channels mask size 8 name Dilate1 xpos 4030 ypos 944 } Multiply { inputs 1+1 channels mask value 0 maskChannelMask mask.a name Multiply1 xpos 4030 ypos 1040 } push $N13dc5880 Multiply { inputs 1+1 value 0 maskChannelMask mask.a name Multiply10 xpos 4140 ypos 1040 disable {{"parent.contact_labels== 0 ? 1 : 0"}} } clone $C13b8ca80 { xpos 4140 ypos 1214 selected false } Dot { name Dot28 xpos 4174 ypos 1410 } push $N13b4a000 Grade { channels alpha gamma 1e-06 name Grade_HIGH_VALUE1 xpos 3700 ypos 224 } push $N13c96700 Copy { inputs 2 from0 rgba.alpha to0 rgba.alpha name Copy5 xpos 3590 ypos 224 } Premult { name Premult4 xpos 3590 ypos 446 } push $N13d96380 Merge2 { inputs 2 name Merge10 xpos 3480 ypos 446 } Text2 { font_size_toolbar 150 font_width_toolbar 100 font_height_toolbar 100 output {rgba.red rgba.green rgba.blue mask.a} message "HIGH VALUES" old_message {{72 73 71 72 32 86 65 76 85 69 83} } box {{parent.Text_QC.box} {parent.Text_QC.box} {parent.Text_QC.box} {parent.Text_QC.box}} xjustify center yjustify center transforms {{0 2} } font_size_values {{0 150 1 150 2 150 3 150 4 150 5 150 6 150 7 150 8 150 9 150 10 150 0 150 1 150 2 150 3 150 4 150 5 150 6 150 7 150 8 150 9 150 10 150} } cursor_position 11 font {{ Bitstream Charter : Regular : BitstreamCharter.pfb : 0 }} global_font_scale {{parent.lab_size}} font_size 150 scale {1 1} cursor_initialised true autofit_bbox false initial_cursor_position {{0 2304} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 2048 1152 0 0 1 1 0 0 0 0} } name Text_QC1 xpos 3480 ypos 944 disable {{"parent.contact_labels== 0 ? 1 : 0"}} } set N13e05180 [stack 0] push $N13e05180 Dilate { channels mask size 8 name Dilate7 xpos 3370 ypos 944 } Multiply { inputs 1+1 channels mask value 0 maskChannelMask mask.a name Multiply8 xpos 3370 ypos 1040 } push $N13e05180 Multiply { inputs 1+1 value 0 maskChannelMask mask.a name Multiply9 xpos 3480 ypos 1040 disable {{"parent.contact_labels== 0 ? 1 : 0"}} } clone $C13b8ca80 { xpos 3480 ypos 1214 selected false } Dot { name Dot27 xpos 3514 ypos 1410 } push $N13b4a380 Dot { name Dot18 xpos 3074 ypos 450 } set N13e45880 [stack 0] Clamp { channels alpha name Clamp4 xpos 3150 ypos 440 } push $N13e45880 Merge2 { inputs 2 operation difference name Merge7 xpos 3040 ypos 566 } Clamp { name Clamp5 xpos 3040 ypos 632 } Expression { channel3 alpha expr3 "a==0 ? 0:1" name Expression2 xpos 3040 ypos 710 } push $N13c6e700 Dot { name Dot19 label " RED" note_font_size 21 xpos 2964 ypos 354 hide_input true } set N13e44380 [stack 0] Copy { inputs 2 from0 rgba.alpha to0 rgba.alpha name Copy4 xpos 2930 ypos 704 } Premult { name Premult3 xpos 2930 ypos 782 } push $N13e44380 Invert { name Invert4 xpos 2930 ypos 488 } push $N13c96a80 Merge2 { inputs 2 name Merge8 xpos 2820 ypos 494 } Shuffle { alpha black name Shuffle5 label "\[value in 1]" xpos 2820 ypos 704 } Merge2 { inputs 2 name Merge9 xpos 2820 ypos 782 } Text2 { font_size_toolbar 150 font_width_toolbar 100 font_height_toolbar 100 output {rgba.red rgba.green rgba.blue mask.a} message "ILLEGAL VALUES" old_message {{73 76 76 69 71 65 76 32 86 65 76 85 69 83} } box {0 {(height)-(height/10)} {width} {height-50}} xjustify center yjustify center transforms {{0 2} } font_size_values {{0 150 1 150 2 150 3 150 4 150 5 150 6 150 7 150 8 150 9 150 10 150 11 150 12 150 13 150 0 150 1 150 2 150 3 150 4 150 5 150 6 150 7 150 8 150 9 150 10 150 11 150 12 150 13 150} } cursor_position 14 font {{ Bitstream Charter : Bold : BitstreamCharterBold.pfb : 0 }} global_font_scale {{parent.lab_size}} font_size 150 scale {1 1} cursor_initialised true autofit_bbox false initial_cursor_position {{0 2304} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 2048 1152 0 0 1 1 0 0 0 0} } name Text_QC xpos 2820 ypos 944 disable {{"parent.contact_labels== 0 ? 1 : 0" x1018 1}} } set N13e78a80 [stack 0] push $N13e78a80 Dilate { channels mask size 8 name Dilate6 xpos 2710 ypos 944 } Multiply { inputs 1+1 channels mask value 0 maskChannelMask mask.a name Multiply19 xpos 2710 ypos 1040 } push $N13e78a80 Multiply { inputs 1+1 value 0 maskChannelMask mask.a name Multiply20 xpos 2820 ypos 1040 disable {{"parent.contact_labels== 0 ? 1 : 0" x1001 0}} } clone $C13b8ca80 { xpos 2820 ypos 1214 selected false } Dot { name Dot22 xpos 2854 ypos 1410 } ContactSheet { inputs 9 width {{(parent.Crop1.box.r)*3}} height {{(parent.Crop1.box.t)*3}} columns 3 gap 10 roworder TopBottom colorder Snake name ContactSheet1 xpos 5130 ypos 2078 } Crop { box {0 0 {"parent.ContactSheet1.knob.width + ContactSheet1.knob.gap"} {"parent.ContactSheet1.knob.height+ ContactSheet1.knob.gap"}} reformat true crop false name Crop2 xpos 5130 ypos 2318 } Reformat { type scale scale {{parent.sheet_res}} name Contact_Res xpos 4470 ypos 2318 } push $N13b4aa80 Dot { name Dot1 xpos 764 ypos 162 } set N13eb6700 [stack 0] Dot { name Dot2 xpos 874 ypos 162 } set N13eb6380 [stack 0] Dot { name Dot3 xpos 984 ypos 162 } set N13eb6000 [stack 0] Grade { channels alpha gamma 10 name Grade_LOW_VALUE xpos 950 ypos 200 } push $N13eb6380 Grade { channels alpha gamma 1e-06 name Grade_HIGH_VALUE xpos 840 ypos 200 } push $N13eb6700 Switch { inputs 3 which {{parent.checker_1}} name Switch_CHECKER xpos 730 ypos 278 } Invert { name Invert2 xpos 730 ypos 344 } Invert { channels alpha name Invert1 xpos 730 ypos 632 disable {{parent.invert}} } Clamp { name Clamp3 xpos 510 ypos 632 } push $N13c97180 Dot { name Dot11 xpos 434 ypos 498 } set N13ee2700 [stack 0] ColorCorrect { shadows 0 midtones 0 highlights 0 name ColorCorrect1 xpos 400 ypos 566 } Copy { inputs 2 from0 rgba.alpha to0 rgba.alpha name Copy1 xpos 400 ypos 632 } Reformat { name Reformat_MAIN note_font "Verdana Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold" note_font_size 21 xpos 400 ypos 950 } Dot { name Dot38 xpos 434 ypos 1050 } set N13f33880 [stack 0] Dot { name Dot4 xpos 434 ypos 1674 } Constant { inputs 0 channels alpha color {1 1 1 1} color_panelDropped true format {{{Reformat_MAIN.format}}} name Constant10 xpos 510 ypos 1520 } set N13f33180 [stack 0] push $N13f33880 Dot { name Dot39 xpos 544 ypos 1050 } set N13f32e00 [stack 0] Premult { name Premult2 xpos 620 ypos 1046 } set N13f32a80 [stack 0] Dot { name Dot7 xpos 654 ypos 1098 } set N13f32700 [stack 0] Dot { name Dot13 xpos 654 ypos 1146 } set N13f32380 [stack 0] Dot { name Dot12 xpos 654 ypos 1194 } CheckerBoard2 { inputs 0 format {{{Reformat_MAIN.format}}} centerlinewidth 0 name CheckerBoard2 xpos 1060 ypos 927 } Merge2 { inputs 2 name Merge6 xpos 1060 ypos 1190 } push $N13f32380 Constant { inputs 0 channels rgb color {1 1 1 0} color_panelDropped true format {{{Reformat_MAIN.format}}} name Constant8 xpos 950 ypos 927 } Merge2 { inputs 2 name Merge5 xpos 950 ypos 1142 } push $N13f32700 Constant { inputs 0 channels rgb color {0 0 0 0} color_panelDropped true format {{{Reformat_MAIN.format}}} name Constant7 xpos 840 ypos 927 } Merge2 { inputs 2 name Merge4 xpos 840 ypos 1094 } push $N13f32a80 Constant { inputs 0 channels rgb color 0.18 format {{{Reformat_MAIN.format}}} name Constant4 xpos 730 ypos 927 } Merge2 { inputs 2 name Merge21 xpos 730 ypos 1046 } push $N13f33880 Constant { inputs 0 channels rgb color {1 0 0 0} color_panelDropped true format {{{Reformat_MAIN.format}}} name Constant3 xpos 180 ypos 1239 } Constant { inputs 0 channels rgb color {0 1 0 0} color_panelDropped true format {{{Reformat_MAIN.format}}} name Constant2 xpos 70 ypos 1239 } Constant { inputs 0 channels rgb color {1 1 0 0} color_panelDropped true format {{{Reformat_MAIN.format}}} name Constant1 xpos -40 ypos 1239 } Constant { inputs 0 channels rgb color {0 0 1 0} color_panelDropped true format {{{Reformat_MAIN.format}}} name Constant5 xpos -150 ypos 1239 } Constant { inputs 0 channels rgb color {1 0 1 0} color_panelDropped true format {{{Reformat_MAIN.format}}} name Constant6 xpos -260 ypos 1239 } Switch { inputs 5 which {{parent.overlay}} name Colors xpos -40 ypos 1406 } push $N13f32e00 Keymix { inputs 3 mix 0.2 name Keymix2 xpos 510 ypos 1400 } Switch { inputs 5 which {{parent.over}} name Mode_Controller xpos 730 ypos 1406 } set N13f8a700 [stack 0] Dot { name Dot10 xpos 874 ypos 1410 } Dot { name Dot9 xpos 874 ypos 1626 } push $N13f33180 push $N13eb6000 Dot { name Dot6 xpos 1864 ypos 162 } Dot { name Dot5 xpos 1864 ypos 930 } set N13fb5880 [stack 0] Clamp { channels alpha name Clamp1 xpos 1940 ypos 920 } push $N13fb5880 Merge2 { inputs 2 operation difference name Merge1 xpos 1830 ypos 1046 } Clamp { name Clamp2 xpos 1830 ypos 1160 } Expression { channel3 alpha expr3 "a==0 ? 0:1" name Expression1 xpos 1830 ypos 1238 } Constant { inputs 0 channels rgb color {1 0 0 0} format {{{Reformat_MAIN.format}}} name Constant9 xpos 1720 ypos 831 } Dot { name Dot56 xpos 1754 ypos 978 } set N13fb4000 [stack 0] Copy { inputs 2 from0 rgba.alpha to0 rgba.alpha name Copy3 xpos 1720 ypos 1232 } Premult { name Premult1 xpos 1720 ypos 1550 } push $N13fb4000 Invert { name Invert3 xpos 1610 ypos 968 } push $N13ee2700 Dot { name Dot8 xpos 1424 ypos 498 } Merge2 { inputs 2 name Merge3 xpos 1390 ypos 974 } Merge2 { inputs 2 name Merge2 xpos 1390 ypos 1550 } push $N13f8a700 Keymix { inputs 3 name Keymix1 xpos 730 ypos 1544 } Keymix { inputs 3 name Keymix3 xpos 730 ypos 1616 disable {{parent.exposure x1 1}} } Copy { inputs 2 from0 rgba.alpha to0 rgba.alpha name Copy2 xpos 730 ypos 1664 } Switch { inputs 2 which {{parent.c_sheet}} name Switch_contact_sheet xpos 730 ypos 2318 } Output { name Output1 xpos 730 ypos 3110 } end_group push $cut_paste_input Group { name GM_Channel_Puli tile_color 0xffae53ff selected true xpos 620 ypos 470 addUserKnob {20 tab1 l Settings} addUserKnob {26 info_title l Information} addUserKnob {26 info l "" +STARTLINE T "The node automacially sends the alpha\nvalue to the channel that is the input`s\nname and keeps the incoming alpha\nvalue on the alpha channel combined."} addUserKnob {26 adj_out l "Adjust RGBA "} addUserKnob {6 rem_alpha l "Remove Alpha" t "Allows you to remove the alpha value." +STARTLINE} addUserKnob {6 rem_a_r l "Remove Alpha from Red" t "Allows you to remove the alpha value from the outcome that comes in on the Red input. " +STARTLINE} addUserKnob {6 rem_a_g l "Remove Alpha from Green" t "Allows you to remove the alpha value from the outcome that comes in on the Green input. " +STARTLINE} addUserKnob {6 rem_a_b l "Remove Alpha from Blue" t "Allows you to remove the alpha value from the outcome that comes in on the Blue input. " +STARTLINE} addUserKnob {6 rem_rgb l "Remove RGB" t "Allows you to remove the rgb value." +STARTLINE} addUserKnob {6 shuff_a_rgb l "Shuffle Alpha to RGB" t "Allows you to shuffle alpha value to rgb." +STARTLINE} addUserKnob {26 cr_ch l "Create new channels"} addUserKnob {41 out l "Red to" t "Allows you to shuffle the `alpha` on the `Red` input to a different channel. " T ShuffleCopy_r.out} addUserKnob {41 out_1 l "Green to" t "Allows you to shuffle the `alpha` on the `Green` input to a different channel. " T ShuffleCopy_g.out} addUserKnob {41 out_2 l "Blue to" t "Allows you to shuffle the `alpha` on the `Blue` input to a different channel. " T ShuffleCopy_b.out} addUserKnob {41 out_3 l "Red Invert to" t "Allows you to shuffle the inverted `alpha` on the `Red` input to a different channel. " T ShuffleCopy_r_inv.out} addUserKnob {41 out_4 l "Green Invert to " t "Allows you to shuffle the inverted `alpha` on the `Green` input to a different channel. " T ShuffleCopy_g_inv.out} addUserKnob {41 out_5 l "Blue Invert to " t "Allows you to shuffle the inverted `alpha` on the `Blue` input to a different channel. " T ShuffleCopy_b_inv.out} addUserKnob {26 layer_cs l "Layer Contact Sheet"} addUserKnob {6 show_lcs l "Show in Layer Contact Sheet" t "Allows you to turn on the Layer Contact Sheet view." +STARTLINE} addUserKnob {41 showLayerNames l "Show Layer Names" t "Allows you to turn on the names of the layers." T LayerContactSheet.showLayerNames} addUserKnob {41 width l Resolution T LayerContactSheet.width} addUserKnob {41 height l "" -STARTLINE T LayerContactSheet.height} addUserKnob {26 ref_puli l "Crop / Reformat"} addUserKnob {6 crop_inpu l "Crop Inputs" t "Allows you to crop your inputs." +STARTLINE} addUserKnob {6 app_ref l "Apply Reformat" t "Allows you to reformat the output. " +STARTLINE} addUserKnob {41 format l "Output Format" T Reformat_c_p.format} addUserKnob {26 ""} addUserKnob {22 tut l Tutorial t "Opens the relevant tutorial from my site in your browser. " -STARTLINE T "import os\nimport sys\n\ntry:\n import subprocess\n def _run(cmd, shell, wait):\n opener = subprocess.Popen(cmd, shell=shell)\n if wait:\n opener.wait()\n return opener.pid\nexcept ImportError:\n import popen2\n def _run(cmd, shell, wait):\n opener = popen2.Popen3(cmd)\n if wait:\n opener.wait()\n return opener.pid\n\ndef _open(url, wait=0):\n if sys.platform == \"darwin\":\n cmd = \[\"open\", url]\n elif hasattr(os, \"startfile\"):\n return os.startfile(url)\n elif os.environ.has_key(\"KDE_FULL_SESSION\") or os.environ.has_key(\"KDE_MULTIHEAD\") or \\\n os.environ.has_key(\"GNOME_DESKTOP_SESSION_ID\") or os.environ.has_key(\"GNOME_KEYRING_SOCKET\"):\n cmd = \[\"xdg-open\", url]\n else:\n raise OSError, \"Desktop not supported.\"\n\n return _run(cmd, 0, wait)\n\n_open('https://www.gatimedia.co.uk/channel-puli')\n"} addUserKnob {26 ""} addUserKnob {26 TEXT l "" +STARTLINE T "1.01 version"} addUserKnob {26 HeadlineB l "" +STARTLINE T "GM_Channel Puli© by Attila Gasparetz"} } BackdropNode { inputs 0 name BackdropNode1 tile_color 0x777777ff label
Inputs note_font_size 42 xpos 127 ypos -734 bdwidth 406 bdheight 124 } Input { inputs 0 name Blue tile_color 0x3fffff xpos 400 ypos -658 } Crop { box {0 0 4096 2304} crop false name Crop tile_color 0x888888ff xpos 400 ypos -538 disable {{crop_inpu==0}} } set C14014e00 [stack 0] Dot { name Dot3 xpos 434 ypos -294 } set N14014a80 [stack 0] Dot { name Dot6 xpos 434 ypos -78 } set N14014700 [stack 0] Shuffle { red black green black blue alpha name Shuffle_b tile_color 0x3fffff label "\[value in 1]" xpos 400 ypos 224 } set N14014380 [stack 0] Remove { channels alpha name Remove_a_b tile_color 0x3fffff xpos 400 ypos 272 disable {{"(parent.rem_a_b) == 0"}} } push 0 Input { inputs 0 name Green tile_color 0x1fff00ff xpos 290 ypos -658 number 1 } clone $C14014e00 { xpos 290 ypos -538 selected false } Dot { name Dot2 xpos 324 ypos -342 } set N14045500 [stack 0] Dot { name Dot5 xpos 324 ypos -126 } set N14045180 [stack 0] Shuffle { red black green alpha blue black name Shuffle_g tile_color 0x1fff00ff label "\[value in 1]" xpos 290 ypos 152 } set N14044e00 [stack 0] Remove { channels alpha name Remove_a_g tile_color 0x1fff00ff xpos 290 ypos 272 disable {{"(parent.rem_a_g) == 0"}} } Input { inputs 0 name Red tile_color 0xff0000ff xpos 180 ypos -658 number 2 } clone $C14014e00 { xpos 180 ypos -538 selected false } Dot { name Dot1 xpos 214 ypos -390 } set N14044000 [stack 0] Dot { name Dot4 xpos 214 ypos -174 } set N14067c00 [stack 0] Shuffle { red alpha green black blue black name Shuffle_r tile_color 0xff0000ff label "\[value in 1]" xpos 180 ypos 80 } set N14067880 [stack 0] Remove { channels alpha name Remove_a_r tile_color 0xff0000ff xpos 180 ypos 272 disable {{"(parent.rem_a_r) == 0"}} } Merge2 { inputs 3+1 operation max name Merge_channel tile_color 0x777777ff label "\[value operation]" note_font "Verdana Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold" xpos 290 ypos 440 } push $N14014380 push $N14044e00 push $N14067880 push $N14014700 Invert { name Invert_b tile_color 0x777777ff xpos 620 ypos -88 } push $N14045180 Invert { name Invert_g tile_color 0x777777ff xpos 620 ypos -136 } push $N14067c00 Invert { name Invert_r tile_color 0x777777ff xpos 620 ypos -184 } push $N14014a80 push $N14045500 push $N14044000 Constant { inputs 0 channels rgb name base xpos 840 ypos -658 postage_stamp false } ShuffleCopy { inputs 2 red alpha green alpha blue alpha name ShuffleCopy_r tile_color 0xff0000ff label "\[value out]" xpos 840 ypos -400 } ShuffleCopy { inputs 2 red alpha green alpha blue alpha name ShuffleCopy_g tile_color 0x1fff00ff label "\[value out]" xpos 840 ypos -352 } ShuffleCopy { inputs 2 red alpha green alpha blue alpha name ShuffleCopy_b tile_color 0x3fffff label "\[value out]" note_font Verdana xpos 840 ypos -304 } ShuffleCopy { inputs 2 red alpha green alpha blue alpha name ShuffleCopy_r_inv tile_color 0xff0000ff label "\[value out]" xpos 840 ypos -184 } ShuffleCopy { inputs 2 red alpha green alpha blue alpha name ShuffleCopy_g_inv tile_color 0x1fff00ff label "\[value out]" xpos 840 ypos -136 } ShuffleCopy { inputs 2 red alpha green alpha blue alpha name ShuffleCopy_b_inv tile_color 0x3fffff label "\[value out]" note_font Verdana xpos 840 ypos -88 } Copy { inputs 2 from0 rgba.red to0 rgba.red name Copy_r tile_color 0xff0000ff xpos 840 ypos 80 } Copy { inputs 2 from0 rgba.green to0 rgba.green name Copy_g tile_color 0x1fff00ff xpos 840 ypos 152 } Copy { inputs 2 from0 rgba.blue to0 rgba.blue name Copy_b tile_color 0x3fffff xpos 840 ypos 224 } Copy { inputs 2 from0 rgba.alpha to0 rgba.alpha name Copy4 tile_color 0xaaaaaaff xpos 840 ypos 440 } Remove { channels alpha name Remove_a tile_color 0xaaaaaaff xpos 840 ypos 536 disable {{"(parent.rem_alpha) == 0"}} } Remove { channels rgb name Remove_rgb tile_color 0xaaaaaaff label "\[value channels]" xpos 840 ypos 608 disable {{"(parent.rem_rgb) == 0"}} } Shuffle { red alpha green alpha blue alpha name Shuffle_a_rgb tile_color 0x666666ff label "\[value in 1]" xpos 840 ypos 680 disable {{"(parent.shuff_a_rgb) == 0"}} } Reformat { name Reformat_c_p tile_color 0x888888ff xpos 840 ypos 752 disable {{"(parent.app_ref) ==0"}} } LayerContactSheet { name LayerContactSheet xpos 840 ypos 830 disable {{"(parent.show_lcs) == 0" x1024 1}} } Output { name Output1 xpos 840 ypos 902 } end_group Group { inputs 0 name GM_Camera_Around tile_color 0xea6827ff selected true xpos 510 ypos 974 addUserKnob {20 User l Settings} addUserKnob {41 translate l Center t "Allows you to adjust the center point." T ca1.translate} addUserKnob {7 dis_cam l Distance t "Allows you to adjust the camera`s distance from the center point." R 0 100} dis_cam 6 addUserKnob {7 hei_cam l Height t "Allows you to adjust the camera`s height on the Y-axis." R -50 50} hei_cam 2 addUserKnob {7 spe_cam l Speed t "Allows you to adjust the velocity of the rotation." R -50 50} spe_cam 2 addUserKnob {7 cam_tilt l Tilt t "Allows you to tilt the camera." R -90 90} addUserKnob {7 offset l Offset t "Allows you to offset the camera. " R 0 360} addUserKnob {26 ""} addUserKnob {7 ang_cam l Angle t "Allows you to adjust the camera`s angle." R -90 90} addUserKnob {26 ang_info l "" +STARTLINE T "You can adjust the camera here when the `Disable Look` is on."} addUserKnob {26 ""} addUserKnob {41 translate_1 l Look t "Allows you to define where the camera is facing. " T ca_look.translate} addUserKnob {41 disable_1 l "Disable Look" t "Allows you to disable the use of `Look` and change where the camera`s facing with the `Angle`. " T ca_look.disable} addUserKnob {26 ""} addUserKnob {26 info l "" +STARTLINE T "Connect the Camera`s Axis input to the node\nto get your Camera rotate around the Center point."} addUserKnob {26 ""} addUserKnob {22 tut l Tutorial t "Opens the relevant tutorial from my site in your browser. " -STARTLINE T "import os\nimport sys\n\ntry:\n import subprocess\n def _run(cmd, shell, wait):\n opener = subprocess.Popen(cmd, shell=shell)\n if wait:\n opener.wait()\n return opener.pid\nexcept ImportError:\n import popen2\n def _run(cmd, shell, wait):\n opener = popen2.Popen3(cmd)\n if wait:\n opener.wait()\n return opener.pid\n\ndef _open(url, wait=0):\n if sys.platform == \"darwin\":\n cmd = \[\"open\", url]\n elif hasattr(os, \"startfile\"):\n return os.startfile(url)\n elif os.environ.has_key(\"KDE_FULL_SESSION\") or os.environ.has_key(\"KDE_MULTIHEAD\") or \\\n os.environ.has_key(\"GNOME_DESKTOP_SESSION_ID\") or os.environ.has_key(\"GNOME_KEYRING_SOCKET\"):\n cmd = \[\"xdg-open\", url]\n else:\n raise OSError, \"Desktop not supported.\"\n\n return _run(cmd, 0, wait)\n\n_open('https://www.gatimedia.co.uk/camera-around')\n"} addUserKnob {26 ""} addUserKnob {26 TEXT l "" +STARTLINE T "1.01 version"} addUserKnob {26 HeadlineB l "" +STARTLINE T "GM_Camera Around© by Attila Gasparetz"} } Axis2 { inputs 0 name ca_look selected true xpos 300 ypos 546 } Axis2 { inputs 0 rotate {0 {parent.offset} 0} name ca1 xpos 410 ypos 258 } Axis2 { translate {{parent.dis_cam} 0 0} rotate {0 {frame*ca0.slid01} 0} pivot {{-(translate.x)} 0 0} name ca2 xpos 410 ypos 354 } set N140d4000 [stack 0] push $N140d4000 Axis2 { inputs 2 translate {0 {hei_cam} 0} rotate {{ang_cam} 90 0} look_rotate_x false look_rotate_y false name ca3 xpos 410 ypos 450 } Axis2 { inputs 2 name ca5 xpos 410 ypos 546 disable {{ca_look.disable}} } Axis2 { rotate {0 180 0} name ca6 xpos 410 ypos 642 disable {{ca_look.disable}} } Axis2 { rotate {0 0 {parent.cam_tilt}} name ca7 xpos 410 ypos 738 } Output { name ca4 xpos 400 ypos 902 } NoOp { inputs 0 name ca0 xpos 620 ypos 374 addUserKnob {20 User} addUserKnob {7 slid01 l slider01 R 0 50} slid01 {{spe_cam}} } end_group push $cut_paste_input Group { name GM_Input_Info tile_color 0xff9455ff selected true xpos 510 ypos 1262 addUserKnob {20 User} addUserKnob {41 text_pos l "Text Position" T proxy.text_pos} addUserKnob {26 ""} addUserKnob {6 shotname l "Shot Name" +STARTLINE} shotname true addUserKnob {3 shot_n_number l "Shot Name Parts"} shot_n_number 2 addUserKnob {6 framerange l "Frame Range" +STARTLINE} framerange true addUserKnob {6 versio l Version +STARTLINE} versio true addUserKnob {6 filename l "File Name" +STARTLINE} filename true addUserKnob {6 fileextension l "File Extension" +STARTLINE} fileextension true addUserKnob {6 inputtc l "Input TC" +STARTLINE} inputtc true addUserKnob {6 frame l "Frame number" +STARTLINE} frame true addUserKnob {6 format l Format +STARTLINE} format true addUserKnob {6 format_name l "Format Name" +STARTLINE} format_name true addUserKnob {6 colorspace l Colorspace +STARTLINE} colorspace true addUserKnob {26 ""} addUserKnob {22 selectnone l "Select None" T "import nuke\n\nknobs = \['shotname','framerange','versio','filename','fileextension','inputtc','frame','format','format_name','colorspace']\n\nfor knob in knobs:\n nuke.thisNode()\[knob].setValue(False)\n" +STARTLINE} addUserKnob {22 selectall l "Select All" -STARTLINE T "import nuke\n\nknobs = \['shotname','framerange','versio','filename','fileextension','inputtc','frame','format','format_name','colorspace']\n\nfor knob in knobs:\n nuke.thisNode()\[knob].setValue(True)\n"} addUserKnob {26 ""} addUserKnob {6 text_only l "Show Only text" +STARTLINE} addUserKnob {6 no_alpha l "No Alpha" +STARTLINE} addUserKnob {7 spacing l "Line Spacing" R -200 200} addUserKnob {26 ""} addUserKnob {20 edit_text l "Edit Text" n 1} edit_text 0 addUserKnob {7 fontsize l "Font Size" R 1 200} fontsize 60 addUserKnob {41 color l "Text Color" T TextColor.color} addUserKnob {41 translate_1 l translate T Transform_all.translate} addUserKnob {41 rotate T Transform_all.rotate} addUserKnob {41 scale T Transform_all.scale} addUserKnob {41 center T Transform_all.center} addUserKnob {22 setcenter l "Set Center" -STARTLINE T "this_width = nuke.thisGroup().width()\n\nthis_height = nuke.thisGroup().height()\n\nnewWidth = this_width/2\nnewHeight = this_height/2\n\nnuke.thisGroup().knob(\"center\").setValue(\[newWidth, newHeight])"} addUserKnob {26 ""} addUserKnob {41 mix_2 l mix T Merge_text.mix} addUserKnob {20 endGroup_1 l endGroup n -1} addUserKnob {26 ""} addUserKnob {20 shadow l Shadow n 1} shadow 0 addUserKnob {6 shad l "Enable Shadow" +STARTLINE} shad true addUserKnob {7 angle l Angle R -180 180} angle 45 addUserKnob {7 distance l Distance R 0 50} distance 4 addUserKnob {41 color_1 l "Shadow color" T ShadowColor.color} addUserKnob {41 size l "Blur size" T Blur_shadow.size} addUserKnob {26 ""} addUserKnob {41 mix_1 l mix T Merge_shadow.mix} addUserKnob {20 endGroup n -1} addUserKnob {26 ""} addUserKnob {22 tut l Tutorial T "import os\nimport sys\n\ntry:\n import subprocess\n def _run(cmd, shell, wait):\n opener = subprocess.Popen(cmd, shell=shell)\n if wait:\n opener.wait()\n return opener.pid\nexcept ImportError:\n import popen2\n def _run(cmd, shell, wait):\n opener = popen2.Popen3(cmd)\n if wait:\n opener.wait()\n return opener.pid\n\ndef _open(url, wait=0):\n if sys.platform == \"darwin\":\n cmd = \[\"open\", url]\n elif hasattr(os, \"startfile\"):\n return os.startfile(url)\n elif os.environ.has_key(\"KDE_FULL_SESSION\") or os.environ.has_key(\"KDE_MULTIHEAD\") or \\\n os.environ.has_key(\"GNOME_DESKTOP_SESSION_ID\") or os.environ.has_key(\"GNOME_KEYRING_SOCKET\"):\n cmd = \[\"xdg-open\", url]\n else:\n raise OSError, \"Desktop not supported.\"\n\n return _run(cmd, 0, wait)\n\n_open('https://www.gatimedia.co.uk/input-info')\n" +STARTLINE} addUserKnob {26 ""} addUserKnob {26 TEXT l "" +STARTLINE T "1.01 version"} addUserKnob {26 HeadlineB l "" +STARTLINE T "GM_Input_Info© by Attila Gasparetz"} } Input { inputs 0 name Input xpos 180 ypos -754 } Dot { name Dot8 xpos 214 ypos -606 } set N1411e380 [stack 0] Crop { box {{input.format.x} {input.format.y} {input.format.r} {input.format.t}} name Crop_proxy xpos 1060 ypos -610 } push $N1411e380 Dot { name Dot1 xpos 214 ypos -486 } set N1415dc00 [stack 0] Shuffle { red black green black blue black alpha black name Shuffle1 label "\[value in 1]" xpos 400 ypos -496 } set N1415d880 [stack 0] Dot { name Dot2 xpos 874 ypos -486 } set N1415d500 [stack 0] Dot { name Dot3 xpos 1094 ypos -486 } set N1415d180 [stack 0] Dot { name Dot4 xpos 1314 ypos -486 } set N1415ce00 [stack 0] Dot { name Dot9 xpos 1534 ypos -486 } set N1415ca80 [stack 0] Dot { name Dot7 xpos 1754 ypos -486 } set N1415c700 [stack 0] Dot { name Dot5 xpos 1974 ypos -486 } set N1415c380 [stack 0] Dot { name Dot6 xpos 2194 ypos -486 } set N1415c000 [stack 0] Dot { name Dot14 xpos 2414 ypos -486 } set N14179c00 [stack 0] Dot { name Dot15 xpos 2634 ypos -486 } set N14179880 [stack 0] Dot { name Dot16 xpos 2854 ypos -486 } Text2 { font_size_toolbar 100 font_width_toolbar 100 font_height_toolbar 100 message "Colorspace: \[split \[knob \[topnode parent.input0].colorspace] ]" old_message {{67 111 108 111 114 115 112 97 99 101 58 32 32 91 115 112 108 105 116 32 91 107 110 111 98 32 91 116 111 112 110 111 100 101 32 112 97 114 101 110 116 46 105 110 112 117 116 48 93 46 99 111 108 111 114 115 112 97 99 101 93 32 93} } box {{parent.shot_name.box.x} {parent.shot_name.box.y} {parent.shot_name.box.r} {parent.shot_name.box.t}} xjustify {{"proxy.text_pos == 0 || proxy.text_pos == 2 ? 0 :2"}} yjustify {{"proxy.text_pos == 2 || proxy.text_pos == 3 ? 2 :0"}} transforms {{0 2} } font_size_values {{0 100 11 100} } cursor_position 10 global_font_scale {{parent.fontsize/100}} center {1920 1080} cursor_initialised true autofit_bbox false initial_cursor_position {{65.60009766 299.2997437} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 1920 1080 0 0 1 1 0 0 0 0} } shadow_opacity 0.8 shadow_angle 317 name colorspace xpos 2820 ypos -442 disable {{parent.colorspace==0}} } Transform { translate {0 {"(shot_name.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(frame_range.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(version.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(file_name.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(file_extension.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(input_timecode.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(frame_1.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(format_1.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(format_name_1.disable ? 0:-(fontsize))\n+\nproxy.gap"}} center {1920 1080} name Transform_colorspace xpos 2820 ypos -394 disable {{parent.colorspace==0 x1018 1}} } push $N14179880 Text2 { font_size_toolbar 100 font_width_toolbar 100 font_height_toolbar 100 message "Format name: \[lrange \[split \[knob \[topnode parent.input0].format] ] 7 15]" old_message {{70 111 114 109 97 116 32 110 97 109 101 58 32 91 108 114 97 110 103 101 32 91 115 112 108 105 116 32 91 107 110 111 98 32 91 116 111 112 110 111 100 101 32 112 97 114 101 110 116 46 105 110 112 117 116 48 93 46 102 111 114 109 97 116 93 32 93 32 55 32 49 53 93} } box {{parent.shot_name.box.x} {parent.shot_name.box.y} {parent.shot_name.box.r} {parent.shot_name.box.t}} xjustify {{"proxy.text_pos == 0 || proxy.text_pos == 2 ? 0 :2"}} yjustify {{"proxy.text_pos == 2 || proxy.text_pos == 3 ? 2 :0"}} transforms {{0 2} } font_size_values {{0 100 12 100} } cursor_position 73 global_font_scale {{parent.fontsize/100}} center {1920 1080} cursor_initialised true autofit_bbox false initial_cursor_position {{65.60009766 299.2997437} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 1920 1080 0 0 1 1 0 0 0 0} } shadow_opacity 0.8 shadow_angle 317 name format_name_1 xpos 2600 ypos -442 disable {{parent.format_name==0}} } Transform { translate {0 {"(shot_name.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(frame_range.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(version.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(file_name.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(file_extension.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(input_timecode.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(frame_1.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(format_1.disable ? 0:-(fontsize))\n+\nproxy.gap"}} center {1920 1080} name Transform_format_name xpos 2600 ypos -394 disable {{parent.format_name==0}} } push $N14179c00 Text2 { font_size_toolbar 100 font_width_toolbar 100 font_height_toolbar 100 message "Format: \[value Crop_proxy.box.r] * \[value Crop_proxy.box.t]" old_message {{70 111 114 109 97 116 58 32 49 57 50 48 32 42 32 49 48 56 48} } old_expression_markers {{8 11 15 18} } box {{parent.shot_name.box.x} {parent.shot_name.box.y} {parent.shot_name.box.r} {parent.shot_name.box.t}} xjustify {{"proxy.text_pos == 0 || proxy.text_pos == 2 ? 0 :2"}} yjustify {{"proxy.text_pos == 2 || proxy.text_pos == 3 ? 2 :0"}} transforms {{0 2} } font_size_values {{0 100 6 100 7 100} } cursor_position 58 global_font_scale {{parent.fontsize/100}} center {1920 1080} cursor_initialised true autofit_bbox false initial_cursor_position {{65.60009766 299.2997437} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 1920 1080 0 0 1 1 0 0 0 0} } shadow_opacity 0.8 shadow_angle 317 name format_1 xpos 2380 ypos -442 disable {{parent.format==0}} } Transform { translate {0 {"(shot_name.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(frame_range.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(version.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(file_name.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(file_extension.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(input_timecode.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(frame_1.disable ? 0:-(fontsize))\n+\nproxy.gap"}} center {1920 1080} name Transform_format xpos 2380 ypos -394 } push $N1415c000 Text2 { font_size_toolbar 100 font_width_toolbar 100 font_height_toolbar 100 message "Frame number: \[value frame]\n" old_message {{70 114 97 109 101 32 110 117 109 98 101 114 58 32 49 48 51 56 10} } old_expression_markers {{14 17} } box {{parent.shot_name.box.x} {parent.shot_name.box.y} {parent.shot_name.box.r} {parent.shot_name.box.t}} xjustify {{"proxy.text_pos == 0 || proxy.text_pos == 2 ? 0 :2"}} yjustify {{"proxy.text_pos == 2 || proxy.text_pos == 3 ? 2 :0"}} transforms {{0 2} } font_size_values {{0 100 1 100 2 100 3 100 4 100 12 100 13 100 18 100} } cursor_position 12 global_font_scale {{parent.fontsize/100}} center {1920 1080} cursor_initialised true autofit_bbox false initial_cursor_position {{65.60009766 299.2997437} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 1920 1080 0 0 1 1 0 0 0 0} } shadow_opacity 0.8 shadow_angle 317 name frame_1 xpos 2160 ypos -442 disable {{parent.knob.frame==0}} } Transform { translate {0 {"(shot_name.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(frame_range.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(version.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(file_name.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(file_extension.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(input_timecode.disable ? 0:-(fontsize))\n+\nproxy.gap"}} center {1920 1080} name Transform_frame xpos 2160 ypos -394 } push $N1415c380 Text2 { font_size_toolbar 100 font_width_toolbar 100 font_height_toolbar 100 message "Input/timecode: \[metadata input/timecode]\n" old_message {{73 110 112 117 116 47 116 105 109 101 99 111 100 101 58 32 10} } old_expression_markers {{16 15} } box {{parent.shot_name.box.x} {parent.shot_name.box.y} {parent.shot_name.box.r} {parent.shot_name.box.t}} xjustify {{"proxy.text_pos == 0 || proxy.text_pos == 2 ? 0 :2"}} yjustify {{"proxy.text_pos == 2 || proxy.text_pos == 3 ? 2 :0"}} transforms {{0 2} } font_size_values {{0 100 1 100 2 100 3 100 4 100 5 100 6 100 7 100 8 100 9 100 10 100 11 100 12 100 16 100} } cursor_position 41 global_font_scale {{parent.fontsize/100}} center {1920 1080} cursor_initialised true autofit_bbox false initial_cursor_position {{65.60009766 299.2997437} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 1920 1080 0 0 1 1 0 0 0 0} } shadow_opacity 0.8 shadow_angle 317 name input_timecode xpos 1940 ypos -442 disable {{parent.inputtc==0}} } Transform { translate {0 {"(shot_name.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(frame_range.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(version.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(file_name.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(file_extension.disable ? 0:-(fontsize))\n+\nproxy.gap"}} center {1920 1080} name Transform_input_timecode xpos 1940 ypos -394 } push $N1415c700 Text2 { font_size_toolbar 100 font_width_toolbar 100 font_height_toolbar 100 message "File extension: \[file extension \[knob \[topnode parent.input0].file]]" old_message {{70 105 108 101 32 101 120 116 101 110 115 105 111 110 58 32 91 102 105 108 101 32 101 120 116 101 110 115 105 111 110 32 91 107 110 111 98 32 91 116 111 112 110 111 100 101 32 112 97 114 101 110 116 46 105 110 112 117 116 48 93 46 102 105 108 101 93 93} } box {{parent.shot_name.box.x} {parent.shot_name.box.y} {parent.shot_name.box.r} {parent.shot_name.box.t}} xjustify {{"proxy.text_pos == 0 || proxy.text_pos == 2 ? 0 :2"}} yjustify {{"proxy.text_pos == 2 || proxy.text_pos == 3 ? 2 :0"}} transforms {{0 2} } font_size_values {{0 100} } cursor_position 60 global_font_scale {{parent.fontsize/100}} center {1920 1080} cursor_initialised true autofit_bbox false initial_cursor_position {{65.60009766 299.2997437} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 1920 1080 0 0 1 1 0 0 0 0} } shadow_opacity 0.8 shadow_angle 317 name file_extension xpos 1720 ypos -442 disable {{parent.fileextension==0}} } Transform { translate {0 {"(shot_name.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(frame_range.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(version.disable ? 0:-(fontsize))\n+\nproxy.gap\n+\n(file_name.disable ? 0:-(fontsize))\n+\nproxy.gap"}} center {1920 1080} name Transform_file_extension xpos 1720 ypos -394 } push $N1415ca80 Text2 { font_size_toolbar 100 font_width_toolbar 100 font_height_toolbar 100 message "File name: \[file tail \[knob \[topnode parent.input0].file]]\n" old_message {{70 105 108 101 32 110 97 109 101 58 32 91 102 105 108 101 32 116 97 105 108 32 91 107 110 111 98 32 91 116 111 112 110 111 100 101 32 112 97 114 101 110 116 46 105 110 112 117 116 48 93 46 102 105 108 101 93 93 10} } box {{parent.shot_name.box.x} {parent.shot_name.box.y} {parent.shot_name.box.r} {parent.shot_name.box.t}} xjustify {{"proxy.text_pos == 0 || proxy.text_pos == 2 ? 0 :2"}} yjustify {{"proxy.text_pos == 2 || proxy.text_pos == 3 ? 2 :0"}} transforms {{0 2} } font_size_values {{0 100 58 100} } cursor_position 37 global_font_scale {{parent.fontsize/100}} center {1920 1080} cursor_initialised true autofit_bbox false initial_cursor_position {{65.60009766 299.2997437} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 1920 1080 0 0 1 1 0 0 0 0} } shadow_opacity 0.8 shadow_angle 317 name file_name xpos 1500 ypos -442 disable {{parent.filename==0}} } Transform { translate {0 {"(shot_name.disable==1 ? 0:-(fontsize))\n+\nproxy.gap\n+\n(frame_range.disable==1 ? 0:-(fontsize))\n+\nproxy.gap\n+\n(version.disable==1 ? 0:-(fontsize))\n+\nproxy.gap"}} center {1920 1080} name Transform_file_name xpos 1500 ypos -394 } push $N1415ce00 Text2 { font_size_toolbar 100 font_width_toolbar 100 font_height_toolbar 100 message "Version: \[lindex \[split \[lindex \[split \[lindex \[split \[value \[topnode parent.input0].file] /] end] _] end] .] 0]" old_message {{86 101 114 115 105 111 110 58 32 91 108 105 110 100 101 120 32 91 115 112 108 105 116 32 91 108 105 110 100 101 120 32 91 115 112 108 105 116 32 91 108 105 110 100 101 120 32 91 115 112 108 105 116 32 91 118 97 108 117 101 32 91 116 111 112 110 111 100 101 32 112 97 114 101 110 116 46 105 110 112 117 116 48 93 46 102 105 108 101 93 32 47 93 32 101 110 100 93 32 95 93 32 101 110 100 93 32 46 93 32 48 93} } box {{parent.shot_name.box.x} {parent.shot_name.box.y} {parent.shot_name.box.r} {parent.shot_name.box.t}} xjustify {{"proxy.text_pos == 0 || proxy.text_pos == 2 ? 0 :2"}} yjustify {{"proxy.text_pos == 2 || proxy.text_pos == 3 ? 2 :0"}} transforms {{0 2} } font_size_values {{0 100 1 100 2 100 3 100 4 100 5 100 6 100 7 100 8 100 9 100 10 100 11 100} } cursor_position 112 global_font_scale {{parent.fontsize/100}} center {1920 1080} cursor_initialised true autofit_bbox false initial_cursor_position {{65.60009766 299.2997437} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 1920 1080 0 0 1 1 0 0 0 0} } shadow_opacity 0.8 shadow_angle 317 name version xpos 1280 ypos -442 disable {{parent.versio==0}} } Transform { translate {0 {"(shot_name.disable==1 ? 0:-(parent.fontsize))\n+\nproxy.gap\n+\n(frame_range.disable==1 ? 0:-(parent.fontsize))\n+\nproxy.gap\n\n"}} center {1920 1080} name Transform_version xpos 1280 ypos -394 } push 0 push $N1415d180 Text2 { font_size_toolbar 100 font_width_toolbar 100 font_height_toolbar 100 message "Frame Range: \[value \[topnode parent.input0].first] - \[value \[topnode parent.input0].last]" old_message {{70 114 97 109 101 32 82 97 110 103 101 58 32 91 118 97 108 117 101 32 91 116 111 112 110 111 100 101 32 112 97 114 101 110 116 46 105 110 112 117 116 48 93 46 102 105 114 115 116 93 32 45 32 91 118 97 108 117 101 32 91 116 111 112 110 111 100 101 32 112 97 114 101 110 116 46 105 110 112 117 116 48 93 46 108 97 115 116 93} } box {{parent.shot_name.box.x} {parent.shot_name.box.y} {parent.shot_name.box.r} {parent.shot_name.box.t}} xjustify {{"proxy.text_pos == 0 || proxy.text_pos == 2 ? 0 :2"}} yjustify {{"proxy.text_pos == 2 || proxy.text_pos == 3 ? 2 :0"}} transforms {{0 2} } cursor_position 89 global_font_scale {{parent.shot_name.global_font_scale}} center {1920 1080} cursor_initialised true autofit_bbox false initial_cursor_position {{65.60009766 299.2997437} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 1920 1080 0 0 1 1 0 0 0 0} } background_color 0 shadow_opacity 0.8 shadow_angle 317 name frame_range xpos 1060 ypos -442 disable {{"parent.framerange ==0"}} } Transform { translate {0 {"shot_name.disable==1 ? 0:-(parent.fontsize)\n+ proxy.gap"}} center {1920 1080} name Transform_frame_range xpos 1060 ypos -394 } push $N1415d500 Text2 { font_size_toolbar 100 font_width_toolbar 100 font_height_toolbar 100 message "Shot name: \[lrange \[split \[file tail \[knob \[topnode parent.input0].file]] _ ] 0 \[value shot_n_number] ]" old_message {{83 104 111 116 32 110 97 109 101 58 32 91 108 114 97 110 103 101 32 91 115 112 108 105 116 32 91 102 105 108 101 32 116 97 105 108 32 91 107 110 111 98 32 91 116 111 112 110 111 100 101 32 112 97 114 101 110 116 46 105 110 112 117 116 48 93 46 102 105 108 101 93 93 32 95 32 93 32 48 32 50 32 93} } old_expression_markers {{80 80} } box {{input.format.x+(input.format.r*.02)} {"input.format.y + (input.format.t*.02)"} {input.format.r-(input.format.r*.02)} {input.format.t-(input.format.t*.02)}} xjustify {{"proxy.text_pos == 0 || proxy.text_pos == 2 ? 0 :2"}} yjustify {{"proxy.text_pos == 2 || proxy.text_pos == 3 ? 2 :0"}} transforms {{0 2} } font_size_values {{0 100 1 100 2 100 3 100 4 100 5 100 6 100 7 100 8 100 9 100 10 100 0 {curve x1018 114} 1 114 2 110 3 110 4 110 5 110 6 110 7 110 8 110 9 110 10 110} } global_font_scale {{parent.fontsize/100}} scale {1 1} cursor_initialised true autofit_bbox false initial_cursor_position {{65.60009766 299.2997437} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 1920 1080 0 0 1 1 0 0 0 0} } shadow_opacity 0.8 shadow_angle 317 name shot_name xpos 840 ypos -442 disable {{"parent.shotname == 0"}} } Merge2 { inputs 10+1 operation max name Merge_TEXT xpos 840 ypos -106 } Transform { translate {0 {"proxy.text_pos < 2 ? 0 :(-Transform_colorspace.translate.y)"}} center {960 540} shutteroffset centred name Transform1 xpos 840 ypos -58 } Crop { box {{parent.Crop_proxy.box.x} {parent.Crop_proxy.box.y} {parent.Crop_proxy.box.r} {parent.Crop_proxy.box.t}} name Crop_TEXT xpos 840 ypos -10 } set N14568380 [stack 0] Constant { inputs 0 channels rgb color 1 name TextColor xpos 1060 ypos 567 } Crop { box {{parent.Crop_proxy.box.x} {parent.Crop_proxy.box.y} {parent.Crop_proxy.box.r} {parent.Crop_proxy.box.t}} reformat true crop false name Crop_text_BG xpos 1060 ypos 806 } Copy { inputs 2 from0 rgba.alpha to0 rgba.alpha name Copy_text xpos 840 ypos 800 } Premult { name Premult_text xpos 840 ypos 926 } push $N14568380 Dot { name Dot10 xpos 764 ypos -6 } Expression { channel3 alpha expr3 "a==1 ? 1:0" name Expression_alpha_treat xpos 730 ypos 254 } Blur { size {{1.5-(parent.Merge_text.mix*1.5)}} name Blur_text xpos 730 ypos 320 } push $N14568380 Dot { name Dot11 xpos 1314 ypos -6 } Transform { translate {{"sin(\[value angle]*3.14159265/180)*\[value distance]"} {"-1*cos(\[value angle]*3.14159265/180)*\[value distance]"}} center {960 540} name Transform_shadow xpos 1280 ypos 110 } Blur { size 2 name Blur_shadow xpos 1280 ypos 224 } Crop { box {{parent.Crop_proxy.box.x} {parent.Crop_proxy.box.y} {parent.Crop_proxy.box.r} {parent.Crop_proxy.box.t}} name Crop_shadow xpos 1280 ypos 302 } Constant { inputs 0 channels rgb name ShadowColor xpos 1500 ypos 111 } Crop { box {{parent.Crop_proxy.box.x} {parent.Crop_proxy.box.y} {parent.Crop_proxy.box.r} {parent.Crop_proxy.box.t}} reformat true crop false name Crop_shadow_BG xpos 1500 ypos 350 } Copy { inputs 2 from0 rgba.alpha to0 rgba.alpha name Copy_shadow xpos 1280 ypos 344 } Premult { name Premult_shadow xpos 1280 ypos 422 } Merge2 { inputs 2 operation stencil name Merge_text_stencil xpos 730 ypos 422 } push $N1415d880 Merge2 { inputs 2 name Merge_shadow xpos 400 ypos 422 disable {{parent.shad==0}} } Merge2 { inputs 2 name Merge_text xpos 400 ypos 926 } Transform { center {960 540} name Transform_all xpos 400 ypos 974 } set N1461bc00 [stack 0] push $N1415dc00 Dot { name Dot12 xpos 214 ypos 762 } set N1461b880 [stack 0] Dot { name Dot13 xpos -6 ypos 762 } Merge2 { inputs 2 output rgb name Merge_all_no_alpha xpos -40 ypos 974 } push $N1461bc00 Shuffle { alpha black name Shuffle2 label "\[value in 1]" xpos 400 ypos 1136 } Switch { inputs 2 which {{parent.show_only_text.which==0}} name Switch_na_alpha1 label "\[value which]" xpos 70 ypos 1136 } push $N1461bc00 push $N1461bc00 push $N1461b880 Merge2 { inputs 2 name Merge_all xpos 180 ypos 974 } Switch { inputs 2 which {{text_only}} name show_only_text label "\[value which]" selected true xpos 180 ypos 1064 } Switch { inputs 2 which {{parent.no_alpha}} name Switch_na_alpha2 label "\[value which]" xpos 180 ypos 1280 } Shuffle { red black green black blue black alpha black name if_input_exists label "\[value in 1]" xpos 180 ypos 1376 disable {{"\[exists parent.input0]"}} } Output { name Output1 xpos 180 ypos 1574 } NoOp { inputs 0 name proxy xpos 620 ypos -394 addUserKnob {20 User} addUserKnob {7 gap l Gap R -200 200} gap {{-parent.spacing}} addUserKnob {4 text_pos l "Text Position" M {"Top Left" "Top Right" "Bottom Left" "Bottom Right"}} text_pos "Top Right" } end_group push $cut_paste_input Group { name GM_Liquid_Distortion tile_color 0x55ffbfff selected true xpos 620 ypos -82 addUserKnob {20 User l Liquid} addUserKnob {7 contrast_liq l Contrast R 1 4} contrast_liq 3 addUserKnob {41 scale1 l Scale T CONTROL.scale1} addUserKnob {7 speed_liq l Speed R 1 100} speed_liq 50 addUserKnob {41 slid_03 l Offset T CONTROL.slid_03} addUserKnob {41 size l Blur T Blur_liq.size} addUserKnob {6 crop l Crop +STARTLINE} crop true addUserKnob {26 ""} addUserKnob {7 mix l Mix} mix 0.5 addUserKnob {26 ""} addUserKnob {22 tut l Tutorial T "import os\nimport sys\n\ntry:\n import subprocess\n def _run(cmd, shell, wait):\n opener = subprocess.Popen(cmd, shell=shell)\n if wait:\n opener.wait()\n return opener.pid\nexcept ImportError:\n import popen2\n def _run(cmd, shell, wait):\n opener = popen2.Popen3(cmd)\n if wait:\n opener.wait()\n return opener.pid\n\ndef _open(url, wait=0):\n if sys.platform == \"darwin\":\n cmd = \[\"open\", url]\n elif hasattr(os, \"startfile\"):\n return os.startfile(url)\n elif os.environ.has_key(\"KDE_FULL_SESSION\") or os.environ.has_key(\"KDE_MULTIHEAD\") or \\\n os.environ.has_key(\"GNOME_DESKTOP_SESSION_ID\") or os.environ.has_key(\"GNOME_KEYRING_SOCKET\"):\n cmd = \[\"xdg-open\", url]\n else:\n raise OSError, \"Desktop not supported.\"\n\n return _run(cmd, 0, wait)\n\n_open('https://www.gatimedia.co.uk/liquid-distortion')\n" +STARTLINE} addUserKnob {26 ""} addUserKnob {26 TEXT l "" +STARTLINE T "1.01 version"} addUserKnob {26 credit l "" +STARTLINE T "GM_Liquid Distortion© by Attila Gasparetz"} } Input { inputs 0 name mask xpos -260 ypos -202 number 1 } Input { inputs 0 name Input xpos 400 ypos -514 } Dot { name Dot18 xpos 434 ypos -270 } set N14687880 [stack 0] Dot { name Dot12 xpos 214 ypos -270 } set N14687500 [stack 0] Dot { name Dot17 xpos 214 ypos -438 } Dot { name Dot2 xpos -6 ypos -438 } set N14686e00 [stack 0] Shuffle { red black green black blue black alpha white name Shuffle1 xpos -40 ypos -298 } ChannelMerge { inputs 2 operation multiply name ChannelMerge1 xpos -40 ypos -215 disable {{"!\[exists parent.input1]"}} } push $N14686e00 Expression { temp_name0 seed temp_expr0 "\[ regexp -inline \{\\d+\} \[knob name] ]" temp_name1 scale temp_expr1 CONTROL.slid_02*random(seed*2) temp_name2 offset temp_expr2 random(seed)*CONTROL.slid_03 expr0 noise((cx+offset)*scale,(cy+offset)*scale,frame/CONTROL.slid_01) expr1 noise((cx+offset)*scale,(cy+offset)*scale,frame/CONTROL.slid_01) expr2 0 name ELEMENTS_liq xpos -590 ypos -442 } ColorCorrect { contrast {{contrast_liq}} shadows 0 name ColorCorrect_liq xpos -590 ypos -346 } Dot { name Dot13 xpos -556 ypos -294 } set N146ab880 [stack 0] TimeOffset { time_offset 2 time "" name TimeOffset_to_red xpos -700 ypos -298 } push $N146ab880 Copy { inputs 2 from0 rgba.red to0 rgba.red name Copy3 xpos -590 ypos -232 } Dot { name Dot14 xpos -556 ypos -150 } set N146ab180 [stack 0] TimeOffset { time_offset {{-TimeOffset_to_red.time_offset}} time "" name TimeOffset_to_green xpos -700 ypos -154 } push $N146ab180 Copy { inputs 2 from0 rgba.green to0 rgba.green name Copy4 xpos -590 ypos -88 } Blur { channels rgb size 30 name Blur_liq xpos -370 ypos -82 } Merge2 { inputs 2 operation mask name Merge1 xpos -40 ypos -82 } push $N14687500 Expression { expr0 (x+0.5)/width expr1 (y+0.5)/height name Expression_STmap xpos 180 ypos -178 } Merge2 { inputs 2 mix {{(parent.mix)/100 x1005 0.1}} name Merge_dist_to_st xpos 180 ypos -82 } Dot { name Dot1 tile_color 0x949494ff note_font_size 22 note_font_color 0xffffffff xpos 214 ypos -6 } push $N14687880 STMap { inputs 2 uv rgb name STMap_liq xpos 400 ypos -16 } Crop { box {{input.format.x} {input.format.y} {input.width} {input.height}} name Crop_liq xpos 400 ypos 62 disable {{!parent.crop}} } Output { name Output xpos 400 ypos 110 } NoOp { inputs 0 name CONTROL tile_color 0x444444ff note_font_size 30 xpos -590 ypos -523 addUserKnob {20 User} addUserKnob {7 slid_01 l slider01_speed R 1 100} slid_01 {{101-(speed_liq)}} addUserKnob {7 slid_02 l slider02_scale R 0 100} slid_02 {{100-scale1}} addUserKnob {7 slid_03 l slider03_seed R 1 100} slid_03 1 addUserKnob {7 scale1 l scale R 0 100} scale1 50 } end_group push $cut_paste_input Group { name GM_Color_Flicker tile_color 0xffbf00ff selected true xpos 400 ypos -82 addUserKnob {20 User l "Color Flicker"} addUserKnob {26 wa_co l "Wave Control"} addUserKnob {41 freq l "Wave Length " T proxy.freq} addUserKnob {41 maxVal l Max T proxy.maxVal} addUserKnob {41 minVal l Min T proxy.minVal} addUserKnob {41 offset l Offset T proxy.offset} addUserKnob {26 clamp l "Clamp"} addUserKnob {41 minimum l Minimum T Clamp_red.minimum} addUserKnob {41 maximum l Maximum T Clamp_red.maximum} addUserKnob {26 mix_4 l "Mix "} addUserKnob {41 mix_1 l "Red mix" T Copy_RED.mix} addUserKnob {41 mix_2 l "Green Mix" T Copy_GREEN.mix} addUserKnob {41 mix_3 l "Blue Mix" T Copy_BLUE.mix} addUserKnob {41 which l Mix T Dissolve1.which} addUserKnob {26 ""} addUserKnob {22 tut1 l Tutorial T "import os\nimport sys\n\ntry:\n import subprocess\n def _run(cmd, shell, wait):\n opener = subprocess.Popen(cmd, shell=shell)\n if wait:\n opener.wait()\n return opener.pid\nexcept ImportError:\n import popen2\n def _run(cmd, shell, wait):\n opener = popen2.Popen3(cmd)\n if wait:\n opener.wait()\n return opener.pid\n\ndef _open(url, wait=0):\n if sys.platform == \"darwin\":\n cmd = \[\"open\", url]\n elif hasattr(os, \"startfile\"):\n return os.startfile(url)\n elif os.environ.has_key(\"KDE_FULL_SESSION\") or os.environ.has_key(\"KDE_MULTIHEAD\") or \\\n os.environ.has_key(\"GNOME_DESKTOP_SESSION_ID\") or os.environ.has_key(\"GNOME_KEYRING_SOCKET\"):\n cmd = \[\"xdg-open\", url]\n else:\n raise OSError, \"Desktop not supported.\"\n\n return _run(cmd, 0, wait)\n\n_open('https://www.gatimedia.co.uk/color-flicker')\n" +STARTLINE} addUserKnob {26 ""} addUserKnob {26 TEXT l "" +STARTLINE T "1.01 version"} addUserKnob {26 HeadlineB l "" +STARTLINE T "GM_Color Flicker© by Attila Gasparetz"} } BackdropNode { inputs 0 name BackdropNode7 tile_color 0x181818ff label "
\nRED\nrandom((frame+proxy.offset+1)/(proxy.freq)) * (proxy.maxVal-proxy.minVal) + proxy.minVal\n\nGREEN\nrandom((frame+proxy.offset+3)/(proxy.freq)) * (proxy.maxVal-proxy.minVal) + proxy.minVal\n\nBLUE\nrandom((frame+proxy.offset+5)/(proxy.freq)) * (proxy.maxVal-proxy.minVal) + proxy.minVal" note_font_size 42 xpos -328 ypos -113 bdwidth 1537 bdheight 658 } Input { inputs 0 name Mask xpos -1470 ypos 135 number 1 } Input { inputs 0 name Input xpos -1030 ypos -57 } Dot { name Dot1 xpos -996 ypos 66 } set N14719c00 [stack 0] Expression { channel3 alpha expr3 1 name Expression xpos -1250 ypos 63 } ChannelMerge { inputs 2 operation multiply name ChannelMerge tile_color 0xff xpos -1250 ypos 123 disable {{"!\[exists parent.input1]"}} } set N14719180 [stack 0] Dot { name Dot2 tile_color 0x949494ff note_font_size 22 note_font_color 0xffffffff xpos -1216 ypos 378 } push $N14719180 push $N14719c00 Dot { name Dot3 xpos -666 ypos 66 } set N14718a80 [stack 0] Grade { multiply {{"random((frame+proxy.offset+5)/(proxy.freq)) * (proxy.maxVal-proxy.minVal) + proxy.minVal"}} name Grade_B xpos -700 ypos 279 } Clamp { channels rgb minimum {{Clamp_red.minimum}} maximum {{Clamp_red.maximum}} mix {{Grade_RED.mix}} name Clamp_blue tile_color 0x777777ff xpos -920 ypos 279 } push $N14719180 push $N14718a80 Grade { multiply {{"random((frame+proxy.offset+3)/(proxy.freq)) * (proxy.maxVal-proxy.minVal) + proxy.minVal\n"}} name Grade_G xpos -700 ypos 207 } Clamp { channels rgb minimum {{Clamp_red.minimum}} maximum {{Clamp_red.maximum}} mix {{Grade_RED.mix}} name Clamp_green tile_color 0x777777ff xpos -920 ypos 207 } push $N14719180 push $N14718a80 Grade { multiply {{"random((frame+proxy.offset+1)/(proxy.freq)) * (proxy.maxVal-proxy.minVal) + proxy.minVal\n"}} name Grade_R xpos -700 ypos 135 } Clamp { channels rgb mix {{Grade_RED.mix}} name Clamp_red tile_color 0x777777ff xpos -920 ypos 135 } push $N14719c00 Copy { inputs 2+1 from0 rgba.red to0 rgba.red name Copy_RED tile_color 0xff0000ff xpos -1030 ypos 129 disable {{"!\[exists parent.input0]"}} } Copy { inputs 2+1 from0 rgba.green to0 rgba.green name Copy_GREEN tile_color 0x1fff00ff xpos -1030 ypos 201 disable {{"!\[exists parent.input0]"}} } Copy { inputs 2+1 from0 rgba.blue to0 rgba.blue name Copy_BLUE tile_color 0x3fffff xpos -1030 ypos 273 disable {{"!\[exists parent.input0]"}} } push $N14719c00 Dissolve { inputs 2+1 which 1 name Dissolve1 label "Which: \[value which]" xpos -1030 ypos 363 } Output { name Output1 xpos -1030 ypos 543 } NoOp { inputs 0 name proxy tile_color 0xff selected true xpos -480 ypos 207 addUserKnob {20 User} addUserKnob {7 freq l Frequency R 0 10} freq 2 addUserKnob {7 offset l Offset R 0 100} addUserKnob {7 maxVal l Max R 0 20} maxVal 3 addUserKnob {7 minVal l Min R 0 20} minVal 1 } end_group push $cut_paste_input push 0 Group { inputs 2 name GM_TransformColorTexture tile_color 0xaa55ffff selected true xpos 510 ypos 728 addUserKnob {20 User} addUserKnob {4 output l Options M {Texture Color Both "" "" "" "" "" "" "" ""}} output Both addUserKnob {26 ""} addUserKnob {41 size l "over separation" t "Allows you to adjust the texture/color separation on the layer that goes over the other one." T Blur_TCT2.size} addUserKnob {41 size_1 l "under separation" t "Allows you to adjust the texture/color separation on the layer that goes under the other one." T Blur_TCT1.size} addUserKnob {26 ""} addUserKnob {41 translate T Transform1_TCT.translate} addUserKnob {41 rotate T Transform1_TCT.rotate} addUserKnob {41 scale1 l scale T Scale_Proxy.scale1} addUserKnob {41 skewX l "skew X" T Transform1_TCT.skewX} addUserKnob {41 skewY l "skew Y" T Transform1_TCT.skewY} addUserKnob {41 skew_order l "skew order" T Transform1_TCT.skew_order} addUserKnob {41 center T Transform1_TCT.center} addUserKnob {22 setcenter l "Set Center" -STARTLINE T "this_width = nuke.thisGroup().width()\n\nthis_height = nuke.thisGroup().height()\n\nnewWidth = this_width/2\nnewHeight = this_height/2\n\nnuke.thisGroup().knob(\"center\").setValue(\[newWidth, newHeight])"} addUserKnob {41 invert_matrix l invert T Transform1_TCT.invert_matrix} addUserKnob {41 filter T Transform1_TCT.filter} addUserKnob {41 clamp -STARTLINE T Transform1_TCT.clamp} addUserKnob {41 black_outside l "black outside" -STARTLINE T Transform1_TCT.black_outside} addUserKnob {41 motionblur T Transform1_TCT.motionblur} addUserKnob {41 shutter T Transform1_TCT.shutter} addUserKnob {41 shutteroffset l "shutter offset" T Transform1_TCT.shutteroffset} addUserKnob {41 shuttercustomoffset l "" -STARTLINE T Transform1_TCT.shuttercustomoffset} addUserKnob {26 ""} addUserKnob {41 from0 l "mask channel" T Copy_TCT.from0} addUserKnob {6 keep_bb l "Keep BBox" +STARTLINE} keep_bb true addUserKnob {26 ""} addUserKnob {41 mix T Merge_TCT.mix} addUserKnob {26 ""} addUserKnob {20 info n 1} info 0 addUserKnob {26 inf l "" +STARTLINE T "When the node`s A input is not in use the node will \nuse the information comes on the B input."} addUserKnob {20 endGroup n -1} addUserKnob {26 ""} addUserKnob {22 tut l Tutorial t "Opens the relevant tutorial from my site in your browser. " -STARTLINE T "import os\nimport sys\n\ntry:\n import subprocess\n def _run(cmd, shell, wait):\n opener = subprocess.Popen(cmd, shell=shell)\n if wait:\n opener.wait()\n return opener.pid\nexcept ImportError:\n import popen2\n def _run(cmd, shell, wait):\n opener = popen2.Popen3(cmd)\n if wait:\n opener.wait()\n return opener.pid\n\ndef _open(url, wait=0):\n if sys.platform == \"darwin\":\n cmd = \[\"open\", url]\n elif hasattr(os, \"startfile\"):\n return os.startfile(url)\n elif os.environ.has_key(\"KDE_FULL_SESSION\") or os.environ.has_key(\"KDE_MULTIHEAD\") or \\\n os.environ.has_key(\"GNOME_DESKTOP_SESSION_ID\") or os.environ.has_key(\"GNOME_KEYRING_SOCKET\"):\n cmd = \[\"xdg-open\", url]\n else:\n raise OSError, \"Desktop not supported.\"\n\n return _run(cmd, 0, wait)\n\n_open('https://www.gatimedia.co.uk/transformcolortexture')\n"} addUserKnob {26 ""} addUserKnob {26 TEXT l "" +STARTLINE T "1.02 version"} addUserKnob {26 HeadlineB l "" +STARTLINE T "GM_TransformColorTexture© by Attila Gasparetz"} } Input { inputs 0 name B xpos -1360 ypos 375 } set N14a66e00 [stack 0] Input { inputs 0 name A xpos -480 ypos 279 number 1 } Switch { inputs 2 which {{"!\[exists parent.input1]"}} name Switch1_TCT tile_color 0x666666ff label "which: \[value which]" xpos -480 ypos 369 } set N14a66700 [stack 0] Dot { name Dot1 xpos -446 ypos 522 } set N14a66380 [stack 0] Dot { name Dot3 tile_color 0x949494ff note_font_size 22 note_font_color 0xffffffff xpos -556 ypos 522 } Transform { translate {{parent.Transform1_TCT.translate} {parent.Transform1_TCT.translate}} rotate {{parent.Transform1_TCT.rotate}} scale {{parent.Transform1_TCT.scale}} skewX {{parent.Transform1_TCT.skewX}} skewY {{parent.Transform1_TCT.skewY}} skew_order {{parent.Transform1_TCT.skew_order}} center {{parent.Transform1_TCT.center} {parent.Transform1_TCT.center}} invert_matrix {{parent.Transform1_TCT.invert_matrix}} filter {{Transform1_TCT.filter}} clamp {{parent.Transform1_TCT.clamp}} black_outside {{parent.Transform1_TCT.black_outside}} motionblur {{parent.Transform1_TCT.motionblur}} shutter {{parent.Transform1_TCT.shutter}} shutteroffset {{Transform1_TCT.shutteroffset}} name Transform2_TCT1 tile_color 0x666666ff label "\[value skew_order]\n\[value filter]\n\[value shutteroffset]" xpos -590 ypos 1412 } Input { inputs 0 name mask xpos -480 ypos 1215 number 2 } push $N14a66e00 Dot { name Dot2 xpos -1326 ypos 522 } set N14a8f500 [stack 0] Dot { name Dot11 xpos -1106 ypos 522 } set N14a8f180 [stack 0] Dot { name Dot5 xpos -886 ypos 522 } set N14a8ee00 [stack 0] Dot { name Dot12 xpos -666 ypos 522 } Expression { channel3 alpha expr3 1 name Expression_A1_TCT1 tile_color 0x666666ff label "a: \[value expr3]" xpos -700 ypos 609 } set N14a8e700 [stack 0] ChannelMerge { inputs 2 operation multiply name ChannelMerge tile_color 0x444444ff label "\[value disable]" selected true xpos -700 ypos 1196 disable {{"!\[exists parent.input2]"}} } push $N14a66380 Dot { name Dot7 xpos -226 ypos 522 } set N14aafc00 [stack 0] Dot { name Dot14 xpos -6 ypos 522 } Transform { translate {{parent.Transform1_TCT.translate} {parent.Transform1_TCT.translate}} rotate {{parent.Transform1_TCT.rotate}} scale {{parent.Transform1_TCT.scale} {parent.Transform1_TCT.scale}} skewX {{parent.Transform1_TCT.skewX}} skewY {{parent.Transform1_TCT.skewY}} skew_order {{Transform1_TCT.skew_order}} center {{parent.Transform1_TCT.center} {parent.Transform1_TCT.center}} invert_matrix {{parent.Transform1_TCT.invert_matrix}} filter {{Transform1_TCT.filter}} clamp {{parent.Transform1_TCT.clamp}} black_outside {{parent.Transform1_TCT.black_outside}} motionblur {{parent.Transform1_TCT.motionblur}} shutter {{parent.Transform1_TCT.shutter}} shutteroffset {{Transform1_TCT.shutteroffset}} name Transform3_TCT tile_color 0x666666ff label "\[value skew_order]\n\[value filter]\n\[value shutteroffset]" xpos -40 ypos 740 } Dot { name Dot4 xpos -6 ypos 1026 } push $N14a8e700 push $N14aafc00 Blur { size 30 name Blur_TCT2 tile_color 0x666666ff label "size: \[value size]" xpos -260 ypos 603 } set N14aaee00 [stack 0] Transform { translate {{parent.Transform1_TCT.translate} {parent.Transform1_TCT.translate}} rotate {{parent.Transform1_TCT.rotate}} scale {{parent.Transform1_TCT.scale} {parent.Transform1_TCT.scale}} skewX {{parent.Transform1_TCT.skewX}} skewY {{parent.Transform1_TCT.skewY}} skew_order {{parent.Transform1_TCT.skew_order}} center {{parent.Transform1_TCT.center} {parent.Transform1_TCT.center}} invert_matrix {{parent.Transform1_TCT.invert_matrix}} filter {{Transform1_TCT.filter}} clamp {{parent.Transform1_TCT.clamp}} black_outside {{parent.Transform1_TCT.black_outside}} motionblur {{parent.Transform1_TCT.motionblur}} shutter {{parent.Transform1_TCT.shutter}} shutteroffset {{Transform1_TCT.shutteroffset}} name Transform2_TCT tile_color 0x666666ff label "\[value skew_order]\n\[value filter]\n\[value shutteroffset]" xpos -260 ypos 740 } push $N14a8ee00 Blur { size 30 name Blur_TCT1 tile_color 0x666666ff xpos -920 ypos 609 } set N14aae700 [stack 0] Keymix { inputs 3 name Keymix2_TCT tile_color 0x666666ff xpos -920 ypos 753 disable {{"output == 1 ? 0 : 1"}} } Dot { name Dot13 xpos -886 ypos 882 } push $N14a8e700 push $N14a66380 push $N14aaee00 Merge2 { inputs 2 operation divide name MergeDiv_TCT2 tile_color 0x666666ff xpos -480 ypos 615 } Transform { translate {100 0} scale {{Scale_Proxy.scale1} {Scale_Proxy.scale1}} center {960 540} shutteroffset centred name Transform1_TCT tile_color 0x666666ff label "\[value skew_order]\n\[value filter]\n\[value shutteroffset]" xpos -480 ypos 740 } push $N14a8f180 push $N14aae700 Merge2 { inputs 2 operation divide name MergeDiv_TCT1 tile_color 0x666666ff xpos -1140 ypos 615 } Keymix { inputs 3 name Keymix1_TCT tile_color 0x666666ff xpos -1140 ypos 753 disable {{"output == 0 ? 0 : 1"}} } Merge2 { inputs 2 operation multiply name MergeMult_TCT1 tile_color 0x666666ff xpos -1140 ypos 879 } Switch { inputs 2 which {{"output <2 ? 0 : 1"}} name Switch_TCT tile_color 0x666666ff label "which: \[value which]" xpos -1140 ypos 1017 } Copy { inputs 2 from0 rgba.alpha to0 rgba.alpha name Copy_TCT tile_color 0x666666ff xpos -1140 ypos 1209 } Premult { name Premult_TCT tile_color 0x666666ff xpos -1140 ypos 1335 } set N14ada380 [stack 0] ChannelMerge { inputs 2 operation multiply name ChannelMerge_TCT1 tile_color 0x555555ff xpos -1140 ypos 1419 } push $N14a8f500 Dot { name Dot6 tile_color 0x949494ff note_font_size 22 note_font_color 0xffffffff xpos -1326 ypos 1218 } set N14b15c00 [stack 0] Dot { name Dot8 tile_color 0x949494ff note_font_size 22 note_font_color 0xffffffff xpos -1546 ypos 1218 } ChannelMerge { inputs 2 name ChannelMerge_TCT2 tile_color 0x555555ff xpos -1580 ypos 1419 } Dot { name Dot9 tile_color 0x949494ff note_font_size 22 note_font_color 0xffffffff xpos -1546 ypos 1530 } push $N14ada380 push $N14b15c00 Merge2 { inputs 2 also_merge all name Merge_TCT tile_color 0x666666ff xpos -1360 ypos 1335 } Copy { inputs 2 from0 rgba.alpha to0 rgba.alpha name Copy_TCT2 tile_color 0x555555ff xpos -1360 ypos 1521 } Crop { box {{Crop_proxy_TCT.box.x} {Crop_proxy_TCT.box.y} {Crop_proxy_TCT.box.r} {Crop_proxy_TCT.box.t}} name Crop_TCT tile_color 0x555555ff xpos -1360 ypos 1647 disable {{!parent.keep_bb}} } Output { name Output xpos -1360 ypos 1743 } push $N14a66700 Crop { box {{input.format.x} {input.format.y} {input.width} {input.height}} name Crop_proxy_TCT tile_color 0x555555ff xpos -260 ypos 375 } StickyNote { inputs 0 name StickyNote3 label "output == 0 ? 0 : 1" xpos -1151 ypos 807 } StickyNote { inputs 0 name StickyNote1 label "output == 1 ? 0 : 1" xpos -931 ypos 807 } StickyNote { inputs 0 name StickyNote4 label "output <2 ? 0 : 1" xpos -1147 ypos 1071 } NoOp { inputs 0 name Scale_Proxy tile_color 0x666666ff xpos -480 ypos 879 addUserKnob {20 User} addUserKnob {14 scale1 R 0 100} scale1 1 } end_group push $cut_paste_input Group { name GM_ShapeRepeater tile_color 0xf25400ff selected true xpos 620 ypos -832 addUserKnob {20 User} addUserKnob {4 output l Output M {"Pattern Only" "Pattern Over Image"}} addUserKnob {26 shape l "S H A P E"} addUserKnob {41 position l Position T Flare.position} addUserKnob {22 set_center_pos l "Set Center" -STARTLINE T "this_width = nuke.thisGroup().width()\n\nthis_height = nuke.thisGroup().height()\n\nnewWidth = this_width/2\nnewHeight = this_height/2\n\nnuke.thisGroup().knob(\"position\").setValue(\[newWidth, newHeight])"} addUserKnob {41 size_mult l "Size " T Flare.size_mult} addUserKnob {41 anamorph l Anamorph T Flare.anamorph} addUserKnob {41 corners l Points T Flare.corners} addUserKnob {41 flattening l "Edge Flattening" T Flare.flattening} addUserKnob {41 sharpness l "Corner Sharpness" T Flare.sharpness} addUserKnob {41 corners_angle l Angle T Flare.corners_angle} addUserKnob {41 falloff l Falloff T proxy1.falloff} addUserKnob {41 multiply l Color T Grade.multiply} addUserKnob {20 trans_shape l "T r a n s f o r m S h a p e" n 1} trans_shape 0 addUserKnob {41 translate2 l translate T Trans_COPY1_proxy_2.translate2} addUserKnob {41 rotate2 l rotate T Trans_COPY1_proxy_2.rotate2} addUserKnob {41 scale2 l scale T Trans_COPY1_proxy_2.scale2} addUserKnob {41 skewX2 l skewX T Trans_COPY1_proxy_2.skewX2} addUserKnob {41 skewY2 l skewY T Trans_COPY1_proxy_2.skewY2} addUserKnob {41 skeworder2 l "skew order" T Trans_COPY1_proxy_2.skeworder2} addUserKnob {41 center2 l center T Trans_COPY1_proxy_2.center2} addUserKnob {22 set_senter_trans_shape l "Set Center" -STARTLINE T "this_width = nuke.thisGroup().width()\n\nthis_height = nuke.thisGroup().height()\n\nnewWidth = this_width/2\nnewHeight = this_height/2\n\nnuke.thisGroup().knob(\"center2\").setValue(\[newWidth, newHeight])"} addUserKnob {41 invert2 l invert T Trans_COPY1_proxy_2.invert2} addUserKnob {41 filter2 l filter T Trans_COPY1_proxy_2.filter2} addUserKnob {20 endGroup n -1} addUserKnob {26 rep1 l "R E P E A T E R"} addUserKnob {41 copy1 l Copies T PROXY_MAIN1.copy1} addUserKnob {41 fadeout1 l "Fade Out" T Trans_COPY1_proxy.fadeout1} addUserKnob {41 fadein1 l "Fade In" T Trans_COPY1_proxy.fadein1} addUserKnob {6 apply_on_copy1 l "Apply Transform on Original Shape" +STARTLINE} addUserKnob {41 translate1 l translate T Trans_COPY1_proxy.translate1} addUserKnob {41 rotate1 l rotate T Trans_COPY1_proxy.rotate1} addUserKnob {41 scale1 l scale T Trans_COPY1_proxy.scale1} addUserKnob {41 skewX1 l skewX T Trans_COPY1_proxy.skewX1} addUserKnob {41 skewY1 l skewY T Trans_COPY1_proxy.skewY1} addUserKnob {41 skeworder1 l "skew order" T Trans_COPY1_proxy.skeworder1} addUserKnob {41 center1 l center T Trans_COPY1_proxy.center1} addUserKnob {41 invert1 l invert T Trans_COPY1_proxy.invert1} addUserKnob {41 filter1 l filter T Trans_COPY1_proxy.filter1} addUserKnob {41 motionblur1 l motionblur T Trans_COPY1_proxy.motionblur1} addUserKnob {41 shutter1 l shutter T Trans_COPY1_proxy.shutter1} addUserKnob {26 ""} addUserKnob {22 tut l Tutorial T "import os\nimport sys\n\ntry:\n import subprocess\n def _run(cmd, shell, wait):\n opener = subprocess.Popen(cmd, shell=shell)\n if wait:\n opener.wait()\n return opener.pid\nexcept ImportError:\n import popen2\n def _run(cmd, shell, wait):\n opener = popen2.Popen3(cmd)\n if wait:\n opener.wait()\n return opener.pid\n\ndef _open(url, wait=0):\n if sys.platform == \"darwin\":\n cmd = \[\"open\", url]\n elif hasattr(os, \"startfile\"):\n return os.startfile(url)\n elif os.environ.has_key(\"KDE_FULL_SESSION\") or os.environ.has_key(\"KDE_MULTIHEAD\") or \\\n os.environ.has_key(\"GNOME_DESKTOP_SESSION_ID\") or os.environ.has_key(\"GNOME_KEYRING_SOCKET\"):\n cmd = \[\"xdg-open\", url]\n else:\n raise OSError, \"Desktop not supported.\"\n\n return _run(cmd, 0, wait)\n\n_open('https://www.gatimedia.co.uk/shape-repeater')\n" +STARTLINE} addUserKnob {26 ""} addUserKnob {26 TEXT l "" +STARTLINE T "1.01 version"} addUserKnob {26 HeadlineB l "" +STARTLINE T "GM_ShapeRepeater© by Attila Gasparetz"} } BackdropNode { inputs 0 name BackdropNode1 tile_color 0xff label "
DON`T TOUCH\nstatic" note_font "Verdana Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold" note_font_size 42 xpos 738 ypos 63 bdwidth 285 bdheight 305 } NoOp { inputs 0 name proxy1 label static xpos 620 ypos 248 addUserKnob {20 User} addUserKnob {7 falloff l Falloff R 0 100} falloff 5 } NoOp { inputs 0 name PROXY_MAIN1 knobChanged "\nm = nuke.thisNode()\nkc = nuke.thisKnob()\nif kc.name() in \[\"copy1\"]:\n for n in nuke.allNodes():\n if \"static\" not in n\['label'].getValue():\n nuke.delete(n)\n \n iRep = m.knob('copy1').getValue()\n iRepeats = int(iRep)-1\n RepMax = int(iRep)\n bfirstLoop = True\n \n # Main Transform for Copy1\n w = nuke.toNode('Trans_COPY1')\n \n # Last Merge connected to this\n b = nuke.toNode('COPIES1_end')\n \n # Dot would be connected to this and allows toggle between original and modified source \n s = nuke.toNode('Switch1')\n \n nDot = nuke.nodes.Dot()\n nDot.setInput(0, s)\n\n nMult = nuke.toNode('mu1t2_1')\n \n if (iRepeats+1) >= 2: \n \n for i in range(iRepeats):\n RepNum = int(i)+1\n RepNum2 = int(i)+2\n nMult.knob('ReMax').setValue( RepMax )\n nMult.knob('value').setExpression('((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) + ( ( 1- ((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) ) * Trans_COPY1_proxy.fadein )')\n CTrans = nuke.nodes.Transform(name = \"t\" + str(i))\n CTrans.knob('translate').setExpression('Trans_COPY1.translate')\n CTrans.knob('rotate').setExpression('Trans_COPY1.rotate')\n CTrans\['scale'].setSingleValue(False)\n CTrans\['scale'].setExpression(('Trans_COPY1.scale.w'),0)\n CTrans\['scale'].setExpression(('Trans_COPY1.scale.h'),1)\n CTrans.knob('skewX').setExpression('Trans_COPY1.skewX')\n CTrans.knob('skewY').setExpression('Trans_COPY1.skewY')\n CTrans.knob('skew_order').setExpression('Trans_COPY1.skew_order')\n CTrans.knob('center').setExpression('Trans_COPY1.center')\n CTrans.knob('invert_matrix').setExpression('Trans_COPY1.invert_matrix')\n CTrans.knob('filter').setExpression('Trans_COPY1.filter')\n CTrans.knob('motionblur').setExpression('Trans_COPY1.motionblur')\n CTrans.knob('shutter').setExpression('Trans_COPY1.shutter')\n CTrans.knob('shutteroffset').setValue(0)\n CMult1 = nuke.nodes.Multiply(name = \"mu1_\" + str(i))\n k = nuke.Int_Knob('ReMax', 'ReMax' )\n k2 = nuke.Int_Knob('ReNum', 'ReNum' )\n CMult1.addKnob(k)\n CMult1.addKnob(k2)\n CMult1.knob('ReMax').setValue( RepMax )\n CMult1.knob('ReNum').setValue( RepNum )\n CMult1.knob('value').setExpression('((1/(ReMax-1))*(ReMax-ReNum)) + ( ( 1- ((1/(ReMax-1))*(ReMax-ReNum)) ) * Trans_COPY1_proxy.fadeout )')\n CMult1.setInput(0, CTrans)\n CMult2 = nuke.nodes.Multiply(name = \"mu1t2_\" + str(RepNum2))\n k = nuke.Int_Knob('ReMax', 'ReMax' )\n k2 = nuke.Int_Knob('ReNum', 'ReNum' )\n CMult2.addKnob(k)\n CMult2.addKnob(k2)\n CMult2.knob('ReMax').setValue( RepMax )\n CMult2.knob('ReNum').setValue( RepNum )\n CMult2.knob('value').setExpression('((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) + ( ( 1- ((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) ) * Trans_COPY1_proxy.fadein )')\n CMult2.setInput(0, CMult1)\n nMerge = nuke.nodes.Merge2(name = \"m\" + str(i))\n nMerge.knob('also_merge').setValue('all')\n nMerge.setInput(1, CMult2)\n \n if bfirstLoop:\n bfirstLoop = False\n CTrans.setInput(0, nDot)\n CMult1.setInput(0, CTrans)\n CMult2.setInput(0, CMult1)\n nMerge.setInput(0, nMult)\n else:\n CTrans.setInput(0, nPrevTrans)\n CMult1.setInput(0, CTrans)\n CMult2.setInput(0, CMult1)\n nMerge.setInput(0, nPrevMerge)\n \n nPrevMerge = nMerge\n nPrevTrans = CTrans\n nPrevMult1 = CMult1\n nPrevMult2 = CMult2\n \n MNum = int(iRepeats) - 1\n \n p = nuke.toNode(\"m\" + str(MNum))\n \n b.setInput(0, p)\n\n\n else:\n b.setInput(0, nDot)\n" label static xpos 840 ypos 248 addUserKnob {20 User} addUserKnob {3 copy1 l Copies1} copy1 3 } Input { inputs 0 name Input label static xpos 510 ypos -16 } Dot { name Dot2 label static xpos 544 ypos 90 } set N13273c00 [stack 0] Remove { name Remove label static xpos 510 ypos 169 } Flare { position {960 540} radius {100 {radius.0} {100+parent.proxy1.falloff}} ring_color {1 1 1} inner_color {1 1 1} outer_falloff {1 1 1} inner_falloff {1 1 1} brightness {1 1 1} vis_out 1 flattening 6 sharpness 1 corners_angle 0.1 mult_offset 0 name Flare label static xpos 510 ypos 248 } Shuffle { alpha red name Shuffle1 label static xpos 510 ypos 320 } Clamp { name Clamp label static xpos 510 ypos 361 } Transform { translate {{Trans_COPY1_proxy_2.translate2} {Trans_COPY1_proxy_2.translate2}} rotate {{Trans_COPY1_proxy_2.rotate2}} scale {{Trans_COPY1_proxy_2.scale2} {Trans_COPY1_proxy_2.scale2}} skewX {{Trans_COPY1_proxy_2.skewX2}} skewY {{Trans_COPY1_proxy_2.skewY2}} skew_order {{Trans_COPY1_proxy_2.skeworder2}} center {{Trans_COPY1_proxy_2.center2} {Trans_COPY1_proxy_2.center2}} invert_matrix {{Trans_COPY1_proxy_2.invert2}} filter {{Trans_COPY1_proxy_2.filter2}} shutteroffset centred name Transform1 label static xpos 510 ypos 416 } Grade { name Grade label static xpos 510 ypos 488 } set N13272700 [stack 0] push $N13272700 Transform { translate {{Trans_COPY1_proxy.translate1} {Trans_COPY1_proxy.translate1}} rotate {{Trans_COPY1_proxy.rotate1}} scale {{Trans_COPY1_proxy.scale1} {Trans_COPY1_proxy.scale1}} skewX {{Trans_COPY1_proxy.skewX1}} skewY {{Trans_COPY1_proxy.skewY1}} skew_order {{Trans_COPY1_proxy.skeworder1}} center {{"Flare.position - translate.x + Trans_COPY1_proxy.center1.x"} {"Flare.position- translate.y + + Trans_COPY1_proxy.center1.y"}} invert_matrix {{Trans_COPY1_proxy.invert1}} filter {{Trans_COPY1_proxy.filter1}} motionblur {{Trans_COPY1_proxy.motionblur1}} shutter {{Trans_COPY1_proxy.shutter1}} shutteroffset centred name Trans_COPY1 label static xpos 400 ypos 488 } Switch { inputs 2 which {{!apply_on_copy1}} name Switch1 label static xpos 510 ypos 608 } set N13272000 [stack 0] Dot { name Dot1 } Transform { translate {{Trans_COPY1.translate} {Trans_COPY1.translate}} rotate {{Trans_COPY1.rotate}} scale {{Trans_COPY1.scale.w} {Trans_COPY1.scale.h}} skewX {{Trans_COPY1.skewX}} skewY {{Trans_COPY1.skewY}} skew_order {{Trans_COPY1.skew_order}} center {{Trans_COPY1.center} {Trans_COPY1.center}} invert_matrix {{Trans_COPY1.invert_matrix}} filter {{Trans_COPY1.filter}} motionblur {{Trans_COPY1.motionblur}} shutter {{Trans_COPY1.shutter}} shutteroffset centred name t0 } set N28ab9180 [stack 0] Transform { translate {{Trans_COPY1.translate} {Trans_COPY1.translate}} rotate {{Trans_COPY1.rotate}} scale {{Trans_COPY1.scale.w} {Trans_COPY1.scale.h}} skewX {{Trans_COPY1.skewX}} skewY {{Trans_COPY1.skewY}} skew_order {{Trans_COPY1.skew_order}} center {{Trans_COPY1.center} {Trans_COPY1.center}} invert_matrix {{Trans_COPY1.invert_matrix}} filter {{Trans_COPY1.filter}} motionblur {{Trans_COPY1.motionblur}} shutter {{Trans_COPY1.shutter}} shutteroffset centred name t1 } Multiply { value {{"((1/(ReMax-1))*(ReMax-ReNum)) + ( ( 1- ((1/(ReMax-1))*(ReMax-ReNum)) ) * Trans_COPY1_proxy.fadeout )"}} name mu1_1 addUserKnob {20 User} addUserKnob {3 ReMax} ReMax 3 addUserKnob {3 ReNum} ReNum 2 } Multiply { value {{"((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) + ( ( 1- ((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) ) * Trans_COPY1_proxy.fadein )"}} name mu1t2_3 addUserKnob {20 User} addUserKnob {3 ReMax} ReMax 3 addUserKnob {3 ReNum} ReNum 2 } push $N28ab9180 Multiply { value {{"((1/(ReMax-1))*(ReMax-ReNum)) + ( ( 1- ((1/(ReMax-1))*(ReMax-ReNum)) ) * Trans_COPY1_proxy.fadeout )"}} name mu1_0 addUserKnob {20 User} addUserKnob {3 ReMax} ReMax 3 addUserKnob {3 ReNum} ReNum 1 } Multiply { value {{"((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) + ( ( 1- ((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) ) * Trans_COPY1_proxy.fadein )"}} name mu1t2_2 addUserKnob {20 User} addUserKnob {3 ReMax} ReMax 3 addUserKnob {3 ReNum} ReNum 1 } push $N13272000 Multiply { value {{"((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) + ( ( 1- ((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) ) * Trans_COPY1_proxy.fadein )"}} name mu1t2_1 label static xpos 730 ypos 601 addUserKnob {20 User} addUserKnob {3 ReMax} ReMax 3 addUserKnob {3 ReNum} ReNum 1 } Merge2 { inputs 2 also_merge all name m0 } Merge2 { inputs 2 also_merge all name m1 } NoOp { name COPIES1_end label static xpos 510 ypos 2456 } Crop { box {{input.format.x} {input.format.y} {input.format.r} {input.format.t}} name Crop1 label "Box: \[value box]\nstatic" xpos 510 ypos 2593 } set N132ed500 [stack 0] push $N13273c00 Dot { name Dot4 label static xpos 104 ypos 2610 } Merge2 { inputs 2 name Merge1 label static xpos 290 ypos 2600 } push $N132ed500 Switch { inputs 2 which {{output}} name Switch2 label "Which: \[value which]\nstatic" xpos 510 ypos 2689 } Output { name Output1 label static xpos 510 ypos 2816 } NoOp { inputs 0 name Trans_COPY1_proxy_2 label static xpos 290 ypos 464 addUserKnob {20 User} addUserKnob {12 translate2} addUserKnob {7 rotate2 R -180 180} addUserKnob {14 scale2 R 0 100} scale2 1 addUserKnob {7 skewX2 R -1 1} addUserKnob {7 skewY2 R -1 1} addUserKnob {4 skeworder2 M {XY YX ""}} addUserKnob {12 center2} center2 {960 540} addUserKnob {6 invert2 +STARTLINE} addUserKnob {4 filter2 M {Impulse Cubic Keys Simon Rifman Mitchell Parzen Notsch Lanczos4 Lanczos6 Sinc4 ""}} filter2 Cubic } NoOp { inputs 0 name Trans_COPY1_proxy label static xpos 180 ypos 656 addUserKnob {20 User} addUserKnob {12 translate1} translate1 {200 0} addUserKnob {7 rotate1 R -180 180} addUserKnob {14 scale1 R 0 100} scale1 1 addUserKnob {7 skewX1 R -1 1} addUserKnob {7 skewY1 R -1 1} addUserKnob {4 skeworder1 M {XY YX}} addUserKnob {12 center1} addUserKnob {6 invert1 +STARTLINE} addUserKnob {4 filter1 M {Impulse Cubic Keys Simon Rifman Mitchell Parzen Notsch Lanczos4 Lanczos6 Sinc4}} filter1 Cubic addUserKnob {7 motionblur1 R 0 4} motionblur1 1 addUserKnob {7 shutter1 R 0 2} shutter1 0.5 addUserKnob {26 ""} addUserKnob {7 fadeout l "Fade Out"} fadeout {{1-fadeout1}} addUserKnob {7 fadeout1 l "Fade Out 1"} addUserKnob {7 fadein l "Fade In"} fadein {{1-fadein1}} addUserKnob {7 fadein1 l "Fade In"} } end_group push $cut_paste_input Group { name GM_Repeater tile_color 0xdf7100ff selected true xpos 400 ypos -826 addUserKnob {20 User} addUserKnob {26 shape l "I N P U T"} addUserKnob {41 translate2 l translate T Trans_COPY1_proxy_2.translate2} addUserKnob {41 rotate2 l rotate T Trans_COPY1_proxy_2.rotate2} addUserKnob {41 scale2 l scale T Trans_COPY1_proxy_2.scale2} addUserKnob {41 skewX2 l skewX T Trans_COPY1_proxy_2.skewX2} addUserKnob {41 skewY2 l skewY T Trans_COPY1_proxy_2.skewY2} addUserKnob {41 skeworder2 l "skew order" T Trans_COPY1_proxy_2.skeworder2} addUserKnob {41 center2 l center T Trans_COPY1_proxy_2.center2} addUserKnob {22 set_center_2 l "Set Center" -STARTLINE T "this_width = nuke.thisGroup().width()\n\nthis_height = nuke.thisGroup().height()\n\nnewWidth = this_width/2\nnewHeight = this_height/2\n\nnuke.thisGroup().knob(\"center2\").setValue(\[newWidth, newHeight])"} addUserKnob {41 invert2 l invert T Trans_COPY1_proxy_2.invert2} addUserKnob {41 filter2 l filter T Trans_COPY1_proxy_2.filter2} addUserKnob {26 rep1 l "R E P E A T E R"} addUserKnob {41 copies l Copies T PROXY.copies} addUserKnob {41 fadeout1 l "Fade Out" T Trans_COPY1_proxy.fadeout1} addUserKnob {41 fadein1 l "Fade In" T Trans_COPY1_proxy.fadein1} addUserKnob {6 apply_on_copy1 l "Apply Transform on Input Image" +STARTLINE} apply_on_copy1 true addUserKnob {41 operation1 l Operation T Merge_Proxy.operation1} addUserKnob {41 translate1 l translate T Trans_COPY1_proxy.translate1} addUserKnob {41 rotate1 l rotate T Trans_COPY1_proxy.rotate1} addUserKnob {41 scale1 l scale T Trans_COPY1_proxy.scale1} addUserKnob {41 skewX1 l skewX T Trans_COPY1_proxy.skewX1} addUserKnob {41 skewY1 l skewY T Trans_COPY1_proxy.skewY1} addUserKnob {41 skeworder1 l skeworder T Trans_COPY1_proxy.skeworder1} addUserKnob {41 center1 l center T Trans_COPY1_proxy.center1} addUserKnob {22 set_center_center l "Set Center" -STARTLINE T "this_width = nuke.thisGroup().width()\n\nthis_height = nuke.thisGroup().height()\n\nnewWidth = this_width/2\nnewHeight = this_height/2\n\nnuke.thisGroup().knob(\"center1\").setValue(\[newWidth, newHeight])"} addUserKnob {41 invert1 l invert T Trans_COPY1_proxy.invert1} addUserKnob {41 filter1 l filter T Trans_COPY1_proxy.filter1} addUserKnob {41 motionblur1 l motionblur T Trans_COPY1_proxy.motionblur1} addUserKnob {41 shutter1 l shutter T Trans_COPY1_proxy.shutter1} addUserKnob {26 ""} addUserKnob {6 clamp l Clamp +STARTLINE} clamp true addUserKnob {6 crop l Crop +STARTLINE} crop true addUserKnob {26 ""} addUserKnob {22 tut l Tutorial T "import os\nimport sys\n\ntry:\n import subprocess\n def _run(cmd, shell, wait):\n opener = subprocess.Popen(cmd, shell=shell)\n if wait:\n opener.wait()\n return opener.pid\nexcept ImportError:\n import popen2\n def _run(cmd, shell, wait):\n opener = popen2.Popen3(cmd)\n if wait:\n opener.wait()\n return opener.pid\n\ndef _open(url, wait=0):\n if sys.platform == \"darwin\":\n cmd = \[\"open\", url]\n elif hasattr(os, \"startfile\"):\n return os.startfile(url)\n elif os.environ.has_key(\"KDE_FULL_SESSION\") or os.environ.has_key(\"KDE_MULTIHEAD\") or \\\n os.environ.has_key(\"GNOME_DESKTOP_SESSION_ID\") or os.environ.has_key(\"GNOME_KEYRING_SOCKET\"):\n cmd = \[\"xdg-open\", url]\n else:\n raise OSError, \"Desktop not supported.\"\n\n return _run(cmd, 0, wait)\n\n_open('https://www.gatimedia.co.uk/repeater')\n" +STARTLINE} addUserKnob {26 ""} addUserKnob {26 TEXT l "" +STARTLINE T "1.01 version"} addUserKnob {26 HeadlineB l "" +STARTLINE T "GM_Repeater© by Attila Gasparetz"} } BackdropNode { inputs 0 name BackdropNode1 tile_color 0xff label "
DON`T TOUCH\nstatic" note_font "Verdana Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold" note_font_size 42 xpos 738 ypos 63 bdwidth 285 bdheight 305 } Input { inputs 0 name Input label static xpos 510 ypos 272 } Transform { translate {{Trans_COPY1_proxy_2.translate2} {Trans_COPY1_proxy_2.translate2}} rotate {{Trans_COPY1_proxy_2.rotate2}} scale {{Trans_COPY1_proxy_2.scale2} {Trans_COPY1_proxy_2.scale2}} skewX {{Trans_COPY1_proxy_2.skewX2}} skewY {{Trans_COPY1_proxy_2.skewY2}} skew_order {{Trans_COPY1_proxy_2.skeworder2}} center {{Trans_COPY1_proxy_2.center2} {Trans_COPY1_proxy_2.center2}} invert_matrix {{Trans_COPY1_proxy_2.invert2}} filter {{Trans_COPY1_proxy_2.filter2}} shutteroffset centred name Trans_COPY2 label static xpos 510 ypos 464 } set N1319d180 [stack 0] push $N1319d180 Transform { translate {{Trans_COPY1_proxy.translate1} {Trans_COPY1_proxy.translate1}} rotate {{Trans_COPY1_proxy.rotate1}} scale {{Trans_COPY1_proxy.scale1} {Trans_COPY1_proxy.scale1}} skewX {{Trans_COPY1_proxy.skewX1}} skewY {{Trans_COPY1_proxy.skewY1}} skew_order {{Trans_COPY1_proxy.skeworder1}} center {{Trans_COPY1_proxy.center1.x} {Trans_COPY1_proxy.center1.y}} invert_matrix {{Trans_COPY1_proxy.invert1}} filter {{Trans_COPY1_proxy.filter1}} motionblur {{Trans_COPY1_proxy.motionblur1}} shutter {{Trans_COPY1_proxy.shutter1}} shutteroffset centred name Trans_COPY1 label static xpos 400 ypos 632 } Switch { inputs 2 which {{!apply_on_copy1}} name Switch1 label static xpos 510 ypos 632 } set N1319ca80 [stack 0] Dot { name Dot1 } Transform { translate {{Trans_COPY1.translate} {Trans_COPY1.translate}} rotate {{Trans_COPY1.rotate}} scale {{Trans_COPY1.scale.w} {Trans_COPY1.scale.h}} skewX {{Trans_COPY1.skewX}} skewY {{Trans_COPY1.skewY}} skew_order {{Trans_COPY1.skew_order}} center {{Trans_COPY1.center} {Trans_COPY1.center}} invert_matrix {{Trans_COPY1.invert_matrix}} filter {{Trans_COPY1.filter}} motionblur {{Trans_COPY1.motionblur}} shutter {{Trans_COPY1.shutter}} shutteroffset centred name t0 } set N6122b180 [stack 0] Transform { translate {{Trans_COPY1.translate} {Trans_COPY1.translate}} rotate {{Trans_COPY1.rotate}} scale {{Trans_COPY1.scale.w} {Trans_COPY1.scale.h}} skewX {{Trans_COPY1.skewX}} skewY {{Trans_COPY1.skewY}} skew_order {{Trans_COPY1.skew_order}} center {{Trans_COPY1.center} {Trans_COPY1.center}} invert_matrix {{Trans_COPY1.invert_matrix}} filter {{Trans_COPY1.filter}} motionblur {{Trans_COPY1.motionblur}} shutter {{Trans_COPY1.shutter}} shutteroffset centred name t1 } set N6122a380 [stack 0] Transform { translate {{Trans_COPY1.translate} {Trans_COPY1.translate}} rotate {{Trans_COPY1.rotate}} scale {{Trans_COPY1.scale.w} {Trans_COPY1.scale.h}} skewX {{Trans_COPY1.skewX}} skewY {{Trans_COPY1.skewY}} skew_order {{Trans_COPY1.skew_order}} center {{Trans_COPY1.center} {Trans_COPY1.center}} invert_matrix {{Trans_COPY1.invert_matrix}} filter {{Trans_COPY1.filter}} motionblur {{Trans_COPY1.motionblur}} shutter {{Trans_COPY1.shutter}} shutteroffset centred name t2 } set N8fd57500 [stack 0] Transform { translate {{Trans_COPY1.translate} {Trans_COPY1.translate}} rotate {{Trans_COPY1.rotate}} scale {{Trans_COPY1.scale.w} {Trans_COPY1.scale.h}} skewX {{Trans_COPY1.skewX}} skewY {{Trans_COPY1.skewY}} skew_order {{Trans_COPY1.skew_order}} center {{Trans_COPY1.center} {Trans_COPY1.center}} invert_matrix {{Trans_COPY1.invert_matrix}} filter {{Trans_COPY1.filter}} motionblur {{Trans_COPY1.motionblur}} shutter {{Trans_COPY1.shutter}} shutteroffset centred name t3 } Multiply { value {{"((1/(ReMax-1))*(ReMax-ReNum)) + ( ( 1- ((1/(ReMax-1))*(ReMax-ReNum)) ) * Trans_COPY1_proxy.fadeout )"}} name mu1_3 addUserKnob {20 User} addUserKnob {3 ReMax} ReMax 5 addUserKnob {3 ReNum} ReNum 4 } Multiply { value {{"((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) + ( ( 1- ((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) ) * Trans_COPY1_proxy.fadein )"}} name mu1t2_5 addUserKnob {20 User} addUserKnob {3 ReMax} ReMax 5 addUserKnob {3 ReNum} ReNum 4 } push $N8fd57500 Multiply { value {{"((1/(ReMax-1))*(ReMax-ReNum)) + ( ( 1- ((1/(ReMax-1))*(ReMax-ReNum)) ) * Trans_COPY1_proxy.fadeout )"}} name mu1_2 addUserKnob {20 User} addUserKnob {3 ReMax} ReMax 5 addUserKnob {3 ReNum} ReNum 3 } Multiply { value {{"((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) + ( ( 1- ((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) ) * Trans_COPY1_proxy.fadein )"}} name mu1t2_4 addUserKnob {20 User} addUserKnob {3 ReMax} ReMax 5 addUserKnob {3 ReNum} ReNum 3 } push $N6122a380 Multiply { value {{"((1/(ReMax-1))*(ReMax-ReNum)) + ( ( 1- ((1/(ReMax-1))*(ReMax-ReNum)) ) * Trans_COPY1_proxy.fadeout )"}} name mu1_1 addUserKnob {20 User} addUserKnob {3 ReMax} ReMax 5 addUserKnob {3 ReNum} ReNum 2 } Multiply { value {{"((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) + ( ( 1- ((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) ) * Trans_COPY1_proxy.fadein )"}} name mu1t2_3 addUserKnob {20 User} addUserKnob {3 ReMax} ReMax 5 addUserKnob {3 ReNum} ReNum 2 } push $N6122b180 Multiply { value {{"((1/(ReMax-1))*(ReMax-ReNum)) + ( ( 1- ((1/(ReMax-1))*(ReMax-ReNum)) ) * Trans_COPY1_proxy.fadeout )"}} name mu1_0 addUserKnob {20 User} addUserKnob {3 ReMax} ReMax 5 addUserKnob {3 ReNum} ReNum 1 } Multiply { value {{"((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) + ( ( 1- ((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) ) * Trans_COPY1_proxy.fadein )"}} name mu1t2_2 addUserKnob {20 User} addUserKnob {3 ReMax} ReMax 5 addUserKnob {3 ReNum} ReNum 1 } push $N1319ca80 Multiply { value {{"((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) + ( ( 1- ((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) ) * Trans_COPY1_proxy.fadein )"}} name mu1t2_1 label static xpos 695 ypos 577 addUserKnob {20 User} addUserKnob {3 ReMax} ReMax 5 addUserKnob {3 ReNum} ReNum 1 } Merge2 { inputs 2 operation {{Merge_Proxy.operation1}} also_merge all name m0 } Merge2 { inputs 2 operation {{Merge_Proxy.operation1}} also_merge all name m1 } Merge2 { inputs 2 operation {{Merge_Proxy.operation1}} also_merge all name m2 } Merge2 { inputs 2 operation {{Merge_Proxy.operation1}} also_merge all name m3 } NoOp { name COPIES1_end label static xpos 510 ypos 1832 } Clamp { name Clamp label static xpos 510 ypos 1921 disable {{!parent.clamp}} } Crop { box {{input.format.x} {input.format.y} {input.format.r} {input.format.t}} name Crop1 label "Box: \[value box]\nstatic" xpos 510 ypos 2017 disable {{!parent.crop}} } Output { name Output1 label static xpos 510 ypos 2096 } NoOp { inputs 0 name Trans_COPY1_proxy_2 label static xpos 290 ypos 464 addUserKnob {20 User} addUserKnob {12 translate2} addUserKnob {7 rotate2 R -180 180} addUserKnob {14 scale2 R 0 100} scale2 1 addUserKnob {7 skewX2 R -1 1} addUserKnob {7 skewY2 R -1 1} addUserKnob {4 skeworder2 M {XY YX ""}} addUserKnob {12 center2} center2 {960 540} addUserKnob {6 invert2 +STARTLINE} addUserKnob {4 filter2 M {Impulse Cubic Keys Simon Rifman Mitchell Parzen Notsch Lanczos4 Lanczos6 Sinc4 ""}} filter2 Cubic } NoOp { inputs 0 name PROXY knobChanged "\nm = nuke.thisNode()\nkc = nuke.thisKnob()\nif kc.name() in \[\"copies\"]:\n for n in nuke.allNodes():\n if \"static\" not in n\['label'].getValue():\n nuke.delete(n)\n \n iRep = m.knob('copies').getValue()\n iRepeats = int(iRep)-1\n RepMax = int(iRep)\n bfirstLoop = True\n \n # Main Transform for Copy1\n w = nuke.toNode('Trans_COPY1')\n \n # Last Merge connected to this\n b = nuke.toNode('COPIES1_end')\n \n # Dot would be connected to this and allows toggle between original and modified source \n s = nuke.toNode('Switch1')\n \n nDot = nuke.nodes.Dot()\n nDot.setInput(0, s)\n\n nMult = nuke.toNode('mu1t2_1')\n \n if (iRepeats+1) >= 2: \n \n for i in range(iRepeats):\n RepNum = int(i)+1\n RepNum2 = int(i)+2\n nMult.knob('ReMax').setValue( RepMax )\n nMult.knob('value').setExpression('((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) + ( ( 1- ((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) ) * Trans_COPY1_proxy.fadein )')\n CTrans = nuke.nodes.Transform(name = \"t\" + str(i))\n CTrans.knob('translate').setExpression('Trans_COPY1.translate')\n CTrans.knob('rotate').setExpression('Trans_COPY1.rotate')\n CTrans\['scale'].setSingleValue(False)\n CTrans\['scale'].setExpression(('Trans_COPY1.scale.w'),0)\n CTrans\['scale'].setExpression(('Trans_COPY1.scale.h'),1)\n CTrans.knob('skewX').setExpression('Trans_COPY1.skewX')\n CTrans.knob('skewY').setExpression('Trans_COPY1.skewY')\n CTrans.knob('skew_order').setExpression('Trans_COPY1.skew_order')\n CTrans.knob('center').setExpression('Trans_COPY1.center')\n CTrans.knob('invert_matrix').setExpression('Trans_COPY1.invert_matrix')\n CTrans.knob('filter').setExpression('Trans_COPY1.filter')\n CTrans.knob('motionblur').setExpression('Trans_COPY1.motionblur')\n CTrans.knob('shutter').setExpression('Trans_COPY1.shutter')\n CTrans.knob('shutteroffset').setValue(0)\n CMult1 = nuke.nodes.Multiply(name = \"mu1_\" + str(i))\n k = nuke.Int_Knob('ReMax', 'ReMax' )\n k2 = nuke.Int_Knob('ReNum', 'ReNum' )\n CMult1.addKnob(k)\n CMult1.addKnob(k2)\n CMult1.knob('ReMax').setValue( RepMax )\n CMult1.knob('ReNum').setValue( RepNum )\n CMult1.knob('value').setExpression('((1/(ReMax-1))*(ReMax-ReNum)) + ( ( 1- ((1/(ReMax-1))*(ReMax-ReNum)) ) * Trans_COPY1_proxy.fadeout )')\n CMult1.setInput(0, CTrans)\n CMult2 = nuke.nodes.Multiply(name = \"mu1t2_\" + str(RepNum2))\n k = nuke.Int_Knob('ReMax', 'ReMax' )\n k2 = nuke.Int_Knob('ReNum', 'ReNum' )\n CMult2.addKnob(k)\n CMult2.addKnob(k2)\n CMult2.knob('ReMax').setValue( RepMax )\n CMult2.knob('ReNum').setValue( RepNum )\n CMult2.knob('value').setExpression('((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) + ( ( 1- ((1/(ReMax-1))*(ReMax-(ReMax-ReNum))) ) * Trans_COPY1_proxy.fadein )')\n CMult2.setInput(0, CMult1)\n nMerge = nuke.nodes.Merge2(name = \"m\" + str(i))\n nMerge.knob('also_merge').setValue('all')\n nMerge.knob('operation').setExpression('Merge_Proxy.operation1')\n nMerge.setInput(1, CMult2)\n \n if bfirstLoop:\n bfirstLoop = False\n CTrans.setInput(0, nDot)\n CMult1.setInput(0, CTrans)\n CMult2.setInput(0, CMult1)\n nMerge.setInput(0, nMult)\n else:\n CTrans.setInput(0, nPrevTrans)\n CMult1.setInput(0, CTrans)\n CMult2.setInput(0, CMult1)\n nMerge.setInput(0, nPrevMerge)\n \n nPrevMerge = nMerge\n nPrevTrans = CTrans\n nPrevMult1 = CMult1\n nPrevMult2 = CMult2\n \n MNum = int(iRepeats) - 1\n \n p = nuke.toNode(\"m\" + str(MNum))\n \n b.setInput(0, p)\n else:\n b.setInput(0, nDot)\n\n" label static xpos 840 ypos 272 addUserKnob {20 User} addUserKnob {3 copies l Copies} copies 5 } NoOp { inputs 0 name Merge_Proxy label static xpos 620 ypos 464 addUserKnob {20 User} addUserKnob {4 operation1 M {atop average color-burn color-dodge conjoint-over copy difference disjoint-over divide exclusion from geometric hard-light hypot in mask matte max min minus multiply out over overlay plus screen soft-light stencil under xor ""}} operation1 xor } NoOp { inputs 0 name Trans_COPY1_proxy label static xpos 290 ypos 632 addUserKnob {20 User} addUserKnob {12 translate1} translate1 {50 0} addUserKnob {7 rotate1 R -180 180} addUserKnob {14 scale1 R 0 100} scale1 1 addUserKnob {7 skewX1 R -1 1} addUserKnob {7 skewY1 R -1 1} addUserKnob {4 skeworder1 M {XY YX}} addUserKnob {12 center1} center1 {960 540} addUserKnob {6 invert1 +STARTLINE} addUserKnob {4 filter1 M {Impulse Cubic Keys Simon Rifman Mitchell Parzen Notsch Lanczos4 Lanczos6 Sinc4}} filter1 Cubic addUserKnob {7 motionblur1 R 0 4} motionblur1 1 addUserKnob {7 shutter1 R 0 2} shutter1 0.5 addUserKnob {26 ""} addUserKnob {7 fadeout l "Fade Out"} fadeout {{1-fadeout1}} addUserKnob {7 fadeout1 l "Fade Out"} addUserKnob {7 fadein l "Fade In"} fadein {{1-fadein1}} addUserKnob {7 fadein1 l "Fade In"} } end_group push $cut_paste_input Group { name GM_Switch_Highlight tile_color 0xffff00ff label "\[if \{\[numvalue this.which_highlight] == 0\} \{return \[value this.zero_is]\} else \{return \[value this.one_is]\}]\nGroup: \[value group_n]\n\[knob tile_color \[ expr \{ \[value which_highlight]? 16711935 : 4294902015 \}]]\n" note_font "Bitstream Vera Sans Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold Bold" note_font_size 13 selected true xpos 620 ypos 216 addUserKnob {20 User} addUserKnob {41 which_highlight l which T Switch1.which} addUserKnob {26 ""} addUserKnob {1 zero_is l "0 is"} zero_is "on script" addUserKnob {1 one_is l "1 is"} one_is "on precomp" addUserKnob {26 ""} addUserKnob {1 group_n l Group} group_n "Light passes" addUserKnob {26 ""} addUserKnob {22 control1 l "Set All 0" T "nodes_classes = \[\"Group\"]\n\nfor node in nuke.allNodes(group=nuke.root()):\n if node.Class() in nodes_classes:\n try:\n node\[\"which_highlight\"].setValue(False)\n except Exception:\n pass\n" +STARTLINE} addUserKnob {22 control2 l "Set All 1" -STARTLINE T "nodes_classes = \[\"Group\"]\n\nfor node in nuke.allNodes(group=nuke.root()):\n if node.Class() in nodes_classes:\n try:\n node\[\"which_highlight\"].setValue(True)\n except Exception:\n pass\n"} addUserKnob {26 ""} addUserKnob {22 setgroup0 l "Set same group 0" T "m = nuke.thisGroup()\nk = m.knob('group_n').getValue()\n\nnodes_classes = \[\"Group\"]\n\nfor node in nuke.allNodes(group=nuke.root()):\n if node.Class() in nodes_classes:\n try:\n if node\[\"group_n\"].getValue() == k:\n node\[\"which_highlight\"].setValue(False)\n else:\n pass \n except Exception:\n pass\n" +STARTLINE} addUserKnob {22 setgroup1 l "Set same group 1" -STARTLINE T "m = nuke.thisGroup()\nk = m.knob('group_n').getValue()\n\nnodes_classes = \[\"Group\"]\n\nfor node in nuke.allNodes(group=nuke.root()):\n if node.Class() in nodes_classes:\n try:\n if node\[\"group_n\"].getValue() == k:\n node\[\"which_highlight\"].setValue(True)\n else:\n pass \n except Exception:\n pass\n"} addUserKnob {26 ""} addUserKnob {22 tut l Tutorial t "Opens the relevant tutorial from my site in your browser. " T "import os\nimport sys\n\ntry:\n import subprocess\n def _run(cmd, shell, wait):\n opener = subprocess.Popen(cmd, shell=shell)\n if wait:\n opener.wait()\n return opener.pid\nexcept ImportError:\n import popen2\n def _run(cmd, shell, wait):\n opener = popen2.Popen3(cmd)\n if wait:\n opener.wait()\n return opener.pid\n\ndef _open(url, wait=0):\n if sys.platform == \"darwin\":\n cmd = \[\"open\", url]\n elif hasattr(os, \"startfile\"):\n return os.startfile(url)\n elif os.environ.has_key(\"KDE_FULL_SESSION\") or os.environ.has_key(\"KDE_MULTIHEAD\") or \\\n os.environ.has_key(\"GNOME_DESKTOP_SESSION_ID\") or os.environ.has_key(\"GNOME_KEYRING_SOCKET\"):\n cmd = \[\"xdg-open\", url]\n else:\n raise OSError, \"Desktop not supported.\"\n\n return _run(cmd, 0, wait)\n\n_open('https://www.gatimedia.co.uk/switch-highlight')\n" +STARTLINE} addUserKnob {26 ""} addUserKnob {26 TEXT l "" +STARTLINE T "1.02 version"} addUserKnob {26 HeadlineB l "" +STARTLINE T "GM_Switch_Highlight© by Attila Gasparetz"} } Input { inputs 0 name Input1 xpos 290 ypos 398 number 1 } Input { inputs 0 name Input0 xpos 510 ypos 398 } Switch { inputs 2 name Switch1 xpos 400 ypos 494 } Output { name Output1 xpos 400 ypos 590 } end_group push $cut_paste_input Group { name GM_Render_Switch tile_color 0xbbbbbbff selected true xpos 400 ypos 230 addUserKnob {20 User} addUserKnob {26 info1 l "Switch this node"} addUserKnob {6 r_s_tick l "Show 1" +STARTLINE} addUserKnob {26 info2 l "Switch all nodes"} addUserKnob {22 control1 l "Set All 0" T "nodes_classes = \[\"Group\"]\n\nfor node in nuke.allNodes(group=nuke.root()):\n if node.Class() in nodes_classes:\n try:\n node\[\"r_s_tick\"].setValue(False)\n except Exception:\n pass\n" +STARTLINE} addUserKnob {22 control2 l "Set All 1" -STARTLINE T "nodes_classes = \[\"Group\"]\n\nfor node in nuke.allNodes(group=nuke.root()):\n if node.Class() in nodes_classes:\n try:\n node\[\"r_s_tick\"].setValue(True)\n except Exception:\n pass\n"} addUserKnob {26 ""} addUserKnob {26 info3 l "" +STARTLINE T "Recommended use:\n0 - Lighter nodes\n1 - Heavy nodes\n-------------------------\nThe nodes on 1 will be\n used in rendering."} addUserKnob {26 ""} addUserKnob {22 tut l Tutorial t "Opens the relevant tutorial from my site in your browser. " -STARTLINE T "import os\nimport sys\n\ntry:\n import subprocess\n def _run(cmd, shell, wait):\n opener = subprocess.Popen(cmd, shell=shell)\n if wait:\n opener.wait()\n return opener.pid\nexcept ImportError:\n import popen2\n def _run(cmd, shell, wait):\n opener = popen2.Popen3(cmd)\n if wait:\n opener.wait()\n return opener.pid\n\ndef _open(url, wait=0):\n if sys.platform == \"darwin\":\n cmd = \[\"open\", url]\n elif hasattr(os, \"startfile\"):\n return os.startfile(url)\n elif os.environ.has_key(\"KDE_FULL_SESSION\") or os.environ.has_key(\"KDE_MULTIHEAD\") or \\\n os.environ.has_key(\"GNOME_DESKTOP_SESSION_ID\") or os.environ.has_key(\"GNOME_KEYRING_SOCKET\"):\n cmd = \[\"xdg-open\", url]\n else:\n raise OSError, \"Desktop not supported.\"\n\n return _run(cmd, 0, wait)\n\n_open('https://www.gatimedia.co.uk/render-switch')\n"} addUserKnob {26 ""} addUserKnob {26 TEXT l "" +STARTLINE T "1.01 version"} addUserKnob {26 credit l "" +STARTLINE T "GM_Render Switch© by Attila Gasparetz and Nicholas Zissimos - 2019"} } Input { inputs 0 name Input1 xpos 400 ypos 494 number 1 } set N8fd94380 [stack 0] Input { inputs 0 name Input0 xpos 620 ypos 494 } Switch { inputs 2 which {{"\[python nuke.executing()]"}} name Switch1 label "\[value which]" xpos 620 ypos 632 } set N8fd94000 [stack 0] push $N8fd94380 push $N8fd94000 Switch { inputs 2 which {{parent.r_s_tick}} name Switch2 label "\[value which]" xpos 400 ypos 632 } Switch { inputs 2 which {{"\[python nuke.executing()]"}} name Switch3 label "\[value which]" xpos 400 ypos 728 } Output { name Output1 xpos 400 ypos 830 } end_group