Group { inputs 2 name GM_TransformColorTexture tile_color 0xaa55ffff 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 Nb20bfc00 [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 Nb20bf500 [stack 0] Dot { name Dot1 xpos -446 ypos 522 } set Nb20bf180 [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 $Nb20bfc00 Dot { name Dot2 xpos -1326 ypos 522 } set Nb20be380 [stack 0] Dot { name Dot11 xpos -1106 ypos 522 } set Nb20be000 [stack 0] Dot { name Dot5 xpos -886 ypos 522 } set Nb20dfc00 [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 Nb20df500 [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 $Nb20bf180 Dot { name Dot7 xpos -226 ypos 522 } set Nb20dea80 [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 $Nb20df500 push $Nb20dea80 Blur { size 30 name Blur_TCT2 tile_color 0x666666ff label "size: \[value size]" xpos -260 ypos 603 } set Nb2115c00 [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 $Nb20dfc00 Blur { size 30 name Blur_TCT1 tile_color 0x666666ff xpos -920 ypos 609 } set Nb2115500 [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 $Nb20df500 push $Nb20bf180 push $Nb2115c00 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 $Nb20be000 push $Nb2115500 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 Nb2145180 [stack 0] ChannelMerge { inputs 2 operation multiply name ChannelMerge_TCT1 tile_color 0x555555ff xpos -1140 ypos 1419 } push $Nb20be380 Dot { name Dot6 tile_color 0x949494ff note_font_size 22 note_font_color 0xffffffff xpos -1326 ypos 1218 } set Nb2144a80 [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 $Nb2145180 push $Nb2144a80 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 $Nb20bf500 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