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