Schmutz

Thumbnail for Schmutz
Gizmo1/13/2025

Particle box for Nuke

Particle box for Nuke

set cut_paste_input [stack 0]
version 11.1 v3
push $cut_paste_input
Group {
name waterSchmutz
tile_color 0x421010ff
selected true
xpos 8204
ypos 1091
addUserKnob {20 User l waterSchmutz}
addUserKnob {41 cube l boundaries T Cube1.cube}
addUserKnob {26 ""}
addUserKnob {41 translate T Cube1.translate}
addUserKnob {41 rotate T Cube1.rotate}
addUserKnob {26 ""}
addUserKnob {6 spriteView +STARTLINE}
addUserKnob {6 customSpriteSwitch l "custom sprite" -STARTLINE}
addUserKnob {41 start_frame l "start at" T ParticleEmitter3.start_frame}
addUserKnob {7 particleDensity l "particle density"}
particleDensity 1
addUserKnob {41 size T ParticleEmitter3.size}
addUserKnob {41 size_variation l "size range" T ParticleEmitter3.size_variation}
addUserKnob {22 update l "Refresh Particles" T "import random\nnuke.thisNode().knob('seed').setValue( random.randint(1,16384) )" +STARTLINE}
addUserKnob {3 seed -STARTLINE}
seed 4191
addUserKnob {41 to l "wind direction" T ParticleWind1.to}
addUserKnob {6 wrapPart l "wrap particles" +STARTLINE}
wrapPart true
addUserKnob {7 edgefade l "edge fade"}
edgefade 0.4
addUserKnob {26 ""}
addUserKnob {7 tScale l "turbulence scale" R 0 10}
tScale 8
addUserKnob {7 tStrength l "turbulence stregth"}
tStrength 1
addUserKnob {26 ""}
addUserKnob {26 lbl l "" +STARTLINE T "waterSchmutz v1.5"}
addUserKnob {22 btn l DerekVFX.ca T "nuke.tcl('start', 'https://derekvfx.ca')" +STARTLINE}
addUserKnob {20 render l renderSettings}
addUserKnob {41 format l "output format" T Reformat3.format}
addUserKnob {41 antialiasing T ScanlineRender1.antialiasing}
addUserKnob {41 overscan T ScanlineRender1.overscan}
addUserKnob {6 proxyRender l "proxy mode" +STARTLINE}
proxyRender true
addUserKnob {6 guiDisable l "GUI Disable" +STARTLINE}
addUserKnob {26 ""}
addUserKnob {41 samples T ScanlineRender1.samples}
addUserKnob {41 shutter T ScanlineRender1.shutter}
addUserKnob {41 stochastic_samples l "stochastic samples" T ScanlineRender1.stochastic_samples}
addUserKnob {20 particleSettings}
addUserKnob {41 format_1 l format T Constant1.format}
addUserKnob {41 first l "frame range" T Constant1.first}
addUserKnob {41 last l "" -STARTLINE T Constant1.last}
addUserKnob {41 start_frame_animation l "start at" T ParticleEmitter3.start_frame_animation}
addUserKnob {41 start_wrap l "limit to range" -STARTLINE T ParticleEmitter3.start_wrap}
addUserKnob {41 frame_advance l advance T ParticleEmitter3.frame_advance}
addUserKnob {41 max_clip_length l "max clip length" -STARTLINE T ParticleEmitter3.max_clip_length}
addUserKnob {26 div l "" +STARTLINE T " "}
addUserKnob {20 spriteSettings n 1}
addUserKnob {41 type T Noise1.type}
addUserKnob {41 size_1 l x/ysize T Noise1.size}
addUserKnob {41 zoffset l z T Noise1.zoffset}
addUserKnob {41 gain T Noise1.gain}
addUserKnob {20 endGroup n -1}
}
Cube {
inputs 0
display wireframe
render_mode wireframe
rows 1
columns 1
cube {-500 0 -500 500 500 500}
pivot {{"abs(cube.x-cube.r)/2+((cube.x<cube.r) ? cube.x : cube.r)"} {"abs(cube.y-cube.t)/2+((cube.y<cube.t) ? cube.y : cube.t)"} {"abs(cube.n-cube.f)/2+((cube.n<cube.f) ? cube.n : cube.f)"}}
name Cube1
tile_color 0xffcc00ff
gl_color 0xff3b00ff
xpos -870
ypos 484
hide_input true
addUserKnob {20 User}
addUserKnob {7 volume}
volume {{abs(cube.x-cube.r)*abs(cube.y-cube.t)*abs(cube.n-cube.f)}}
}
Input {
inputs 0
name customSprite
xpos -879
ypos 210
}
Reformat {
format {{{parent.Constant1.format}}}
resize distort
name Reformat1
xpos -879
ypos 313
}
Constant {
inputs 0
channels rgb
format "128 128 0 0 128 128 1 texture"
last 100
name Constant1
xpos -714
ypos 8
}
Noise {
size 82
zoffset 3.12
gain 0.57
center {1024 576}
name Noise1
xpos -714
ypos 135
}
Roto {
output alpha
replace true
curves {{{v x3f99999a}
{f 0}
{n
{layer Root
{f 2097152}
{t x44800000 x44100000}
{a pt1x 0 pt1y 0 pt2x 0 pt2y 0 pt3x 0 pt3y 0 pt4x 0 pt4y 0 ptex00 0 ptex01 0 ptex02 0 ptex03 0 ptex10 0 ptex11 0 ptex12 0 ptex13 0 ptex20 0 ptex21 0 ptex22 0 ptex23 0 ptex30 0 ptex31 0 ptex32 0 ptex33 0 ptof1x 0 ptof1y 0 ptof2x 0 ptof2y 0 ptof3x 0 ptof3y 0 ptof4x 0 ptof4y 0 pterr 0 ptrefset 0 ptmot x40800000 ptref 0}
{curvegroup Ellipse1 512 bezier
{{cc
{f 8192}
{px x4483e000
{xc1db2587 0}
{x42833332 x4179999c}
{x41db2586 0}
{0 xc1db2588}
{x42e66664 x42826666}
{0 x41db2588}
{x41db2586 0}
{x42833332 x42e59999}
{xc1db2587 0}
{0 x41db2588}
{x417ffff4 x42826666}
{0 xc1db2588}}}
{cc
{f 8192}
{px x4483e000
{xc1db2587 0}
{0 0}
{x41db2586 0}
{0 xc1db2588}
{0 0}
{0 x41db2588}
{x41db2586 0}
{0 0}
{xc1db2587 0}
{0 x41db2588}
{0 0}
{0 xc1db2588}}}}
{tx x4483e000 x4260cccc x4280cccd}
{a osw x41200000 osf 0 str 1 spx x44800000 spy x44100000 sb 1 ltn x4483e000 ltm x4483e000 tt x40e00000}}}}}}
toolbox {selectAll {
{ selectAll str 1 ssx 1 ssy 1 sf 1 }
{ createBezier str 1 ssx 1 ssy 1 sf 1 sb 1 tt 4 }
{ createBezierCusped str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ createBSpline str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ createEllipse str 1 ssx 1 ssy 1 sf 1 sb 1 tt 7 }
{ createRectangle str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ createRectangleCusped str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ brush str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ eraser src 2 str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ clone src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ reveal src 3 str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ dodge src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ burn src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ blur src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ sharpen src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ smear src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 }
} }
toolbar_brush_hardness 0.200000003
toolbar_source_transform_scale {1 1}
toolbar_source_transform_center {1024 576}
colorOverlay {0 0 0 0}
lifetime_type "all frames"
lifetime_start 1055
lifetime_end 1055
motionblur_shutter_offset_type centred
source_black_outside true
name Roto1
xpos -714
ypos 169
}
Blur {
channels alpha
size 23.4
name Blur1
xpos -714
ypos 207
}
Premult {
name Premult2
xpos -714
ypos 245
}
Crop {
box {0 0 128 128}
softness 25.8
name Crop1
xpos -714
ypos 271
}
Switch {
inputs 2
which {{customSpriteSwitch}}
name Switch1
xpos -714
ypos 319
}
set Nc6486a80 [stack 0]
Dot {
name Dot1
xpos -422
ypos 323
}
Dot {
name Dot2
xpos -422
ypos 928
}
Input {
inputs 0
name camera
xpos -886
ypos 802
number 1
}
push $Nc6486a80
BlendMat {
operation plus
surfaceblend modulate
name BlendMat1
xpos -714
ypos 369
}
push 0
push 0
ParticleEmitter {
inputs 3
emit_from faces
rate {{"frame-start_frame > 0 & frame-start_frame < 2 ? ((Cube1.volume/1000000)*particleDensity) : 0"}}
lifetime inf
velocity 0
size 1
size_variation 4
start_wrap true
seed {{parent.seed}}
name ParticleEmitter3
knobChanged 5
xpos -714
ypos 461
disable {{"guiDisable ? \$gui : 0"}}
}
ParticleExpression {
temp_name1 c
temp_expr1 "v(\[value Cube1.cube.x],\[value Cube1.cube.y],\[value Cube1.cube.n])"
temp_name2 b
temp_expr2 "v(\[value Cube1.cube.r],\[value Cube1.cube.t],\[value Cube1.cube.f])"
posexpr v(random*abs(x(c)-x(b))+x(c),random*abs(y(c)-y(b))+y(c),random*abs(z(c)-z(b))+z(c))
posexpr_onlynew true
name spread
xpos -714
ypos 487
disable {{"guiDisable ? \$gui : 0"}}
}
ParticleTurbulence {
strength {{waterSchmutz.tStrength} {strength.x} {strength.x}}
scale {{waterSchmutz.tScale} {scale.x} {scale.x}}
name ParticleTurbulence1
xpos -714
ypos 525
disable {{"guiDisable ? \$gui : 0"}}
}
ParticleWind {
to {5 0 0}
name ParticleWind1
xpos -714
ypos 563
disable {{"guiDisable ? \$gui : 0"}}
}
ParticleExpression {
temp_name1 f
temp_expr1 "v(\[value Cube1.cube.x],\[value Cube1.cube.y],\[value Cube1.cube.n])"
temp_name2 b
temp_expr2 "v(\[value Cube1.cube.r],\[value Cube1.cube.t],\[value Cube1.cube.f])"
temp_name3 poz
temp_expr3 pos
posexpr v(x(poz)>x(b)?x(f):(x(poz)<x(f)?x(b):x(poz)),y(poz)>y(b)?y(f):(y(poz)<y(f)?y(b):y(poz)),z(poz)>z(b)?z(f):(z(poz)<z(f)?z(b):z(poz)))
name ParticleWrapper
xpos -714
ypos 601
disable {{"wrapPart == 0"}}
}
ParticleExpression {
temp_name0 f
temp_expr0 "v(\[value Cube1.cube.x],\[value Cube1.cube.y],\[value Cube1.cube.n])"
temp_name1 b
temp_expr1 "v(\[value Cube1.cube.r],\[value Cube1.cube.t],\[value Cube1.cube.f])"
temp_name2 m
temp_expr2 (abs((v(x(f),y(f),z(f))-v(x(b),y(b),z(b))))/2)+f
temp_name3 fade
temp_expr3 (1-(abs(x(pos)-x(m)))/abs(x(f)-x(m)))*(1-(abs(y(pos)-y(m)))/abs(y(f)-y(m)))*(1-(abs(z(pos)-z(m)))/abs(z(f)-z(m)))
opacityexpr "\[value edgefade] <=0 ? 1 : fade*(1/\[value edgefade])"
name ParticleExpression1
xpos -714
ypos 639
disable {{"edgefade == 0 "}}
}
TransformGeo {
translate {{parent.Cube1.translate} {parent.Cube1.translate} {parent.Cube1.translate}}
rotate {{parent.Cube1.rotate} {parent.Cube1.rotate} {parent.Cube1.rotate}}
pivot {{parent.Cube1.pivot} {parent.Cube1.pivot} {parent.Cube1.pivot}}
name TransformGeo1
xpos -714
ypos 712
}
Constant {
inputs 0
channels rgb
format "128 128 0 0 128 128 1 128x128"
name Constant2
xpos -592
ypos 657
}
Reformat {
resize distort
name Reformat3
xpos -592
ypos 729
}
Reformat {
type scale
scale 0.5
name Reformat2
xpos -592
ypos 802
disable {{"proxyRender == 0"}}
}
add_layer {p p.x p.y p.z}
ScanlineRender {
inputs 3
conservative_shader_sampling false
antialiasing medium
motion_vectors_type distance
output_shader_vectors true
P_channel p
name ScanlineRender1
xpos -714
ypos 802
}
Reformat {
format {{{parent.Reformat3.format}}}
pbb true
name Reformat4
xpos -714
ypos 868
}
Switch {
inputs 2
which {{spriteView}}
name Switch2
xpos -714
ypos 924
}
Output {
name Output1
xpos -714
ypos 976
}
end_group