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