Group { name GM_CrossPattern tile_color 0xd5ff1dff 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 "" +STARTLINE} 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 N58a90a80 [stack 0] Remove { name CP_Remove1 xpos 70 ypos -328 } set N58a90700 [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 N58a90380 [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 $N58a90380 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 N58ac0700 [stack 0] Dot { name Dot1 xpos 366 ypos 5 } set N58ac0380 [stack 0] push $N58ac0380 Invert { name Invert1 xpos 177 ypos 34 } push $N58ac0380 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 N216f180 [stack 0] Merge2 { inputs 2 operation minus name Merge1 xpos 332 ypos 218 } push $N216f180 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 $N58ac0700 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 N21b5500 [stack 0] Dot { name Dot1 xpos 366 ypos 5 } set N21b5180 [stack 0] push $N21b5180 Invert { name Invert1 xpos 177 ypos 34 } push $N21b5180 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 N21b4000 [stack 0] Merge2 { inputs 2 operation minus name Merge1 xpos 332 ypos 218 } push $N21b4000 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 $N21b5500 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 N221b880 [stack 0] Dot { name Dot4 xpos 104 ypos 642 } set N221b500 [stack 0] push $N221b880 push $N58a90700 Dot { name Dot8 tile_color 0x949494ff note_font_size 22 note_font_color 0xffffffff xpos 434 ypos -318 } set N221b180 [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 N221aa80 [stack 0] Blur { size {{blur}} name Blur1 label "Size: \[value size]" xpos 730 ypos 625 } push $N221b180 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 N2245880 [stack 0] push $N2245880 push $N58a90a80 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 N2244e00 [stack 0] STMap { inputs 2 uv rgb name STMap1 label "UV: \[value uv]" xpos 1170 ypos 961 } push $N221b500 Dot { name Dot5 xpos 104 ypos 714 } set N2244700 [stack 0] Dot { name Dot6 xpos 104 ypos 834 } push $N2244700 push $N221aa80 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 N2277180 [stack 0] push $N2244e00 Merge2 { inputs 2 also_merge all name Merge1 xpos 950 ypos 1070 } push $N2277180 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