hi Mark,
there's a gizmo on nukepedia that could be what you're looking for:
http://www.nukepedia.com/time/timemachine/
unfortunately, nukepedia is down at the moment. so i attached the gizmo.
here's the cached version by google for the description:
http://webcache.googleusercontent.com/search?q=cache:I7cU-UN1IIMJ:www.nukepedia.com/time/timemachine/+http://www.nukepedia.com/time/timemachine/&cd=1&hl=de&ct=clnk
cheers,
Holger
Am 03.06.2013 20:51, schrieb Mark Nettleton:
Is it possible to create a timeslice effect in Nuke?
Perhaps using the expression node to lookup pixels @ time?
Is that possible?
thanks
_______________________________________________
Nuke-users mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
--
Holger Hummel - [email protected]
Celluloid Visual Effects GmbH & Co. KG
Paul-Lincke-Ufer 39/40, 10999 Berlin
phone +49 (0)30 / 54 735 220 - [email protected]
#! /Applications/Nuke6.0v1-32/Nuke6.0v1.app/Contents/MacOS/Nuke6.0v1 -nx
version 6.0 v1
Gizmo {
inputs 2
help "Does a per-pixel time offset on the image, based on a secondary mask
input.\n\nPixels with a mask value of 1 will be offset by the number of frames
set in \"frames\".\nMask values of 0 will return the image at the current
frame. Values between 0-1 will return an interpolated offset."
onCreate "\n\ng = nuke.thisNode()\n\ni = nuke.toNode(\"img\")\ni2 =
nuke.toNode(\"mask\")\no = nuke.toNode(\"Output1\")\nc =
nuke.toNode(\"Copy1\")\n\n\ndefaultNodes = \[i,i2,o,c]\nfor n in
nuke.allNodes():\n if n not in defaultNodes:\n nuke.delete(n)\n
\n \nfvalue = g\['frames'].value()\nstep = 1\nif fvalue < 0:\n step =
-1\n\n\nfor f in range(0,fvalue+step,step):\n t = nuke.nodes.TimeOffset()\n
t\['time_offset'].setValue(-f)\n t.setInput(0,i)\n\n if f == 0 :\n
lastnode = t\n\n else :\n slice = nuke.nodes.Grade()\n
slice\['channels'].setValue(\"alpha\")\n
slice\['blackpoint'].setValue((1/(fvalue+1))*abs(f))\n
slice\['whitepoint'].setValue((1/(fvalue+1))*(abs(f)+1))\n
slice.setInput(0,c)\n exp = nuke.nodes.Expression()\n if
g\['method'].value() == \"average\":\n
exp\['expr3'].setValue('a>1?1:a')\n else:\n
exp\['expr3'].setValue('a>0?1:0')\n exp.setInput(0,slice)\n km =
nuke.nodes.Keymix()\n km.setInput(1,t)\n km.setInput(0,lastnode)\n
km.setInput(2,exp)\n lastnode = km \nsw =
nuke.nodes.Switch()\nsw.setInput(0,i)\nsw.setInput(1,lastnode)\nsw\['which'].setExpression('parent.maskChannel!=0')\no.setInput(0,sw)\n\nfor
n in nuke.allNodes():\n nuke.autoplace(n)\n"
knobChanged "\ng = nuke.thisNode()\nk = nuke.thisKnob()\n\nif k.name() in
\[\"frames\",\"method\"]:\n \n i = nuke.toNode(\"img\")\n i2 =
nuke.toNode(\"mask\")\n o = nuke.toNode(\"Output1\")\n c =
nuke.toNode(\"Copy1\")\n\n if k.name() == \"frames\":\n \n
defaultNodes = \[i,i2,o,c]\n for n in nuke.allNodes():\n if n
not in defaultNodes:\n nuke.delete(n)\n \n fvalue =
g\['frames'].value()\n step = 1\n if fvalue < 0:\n step
= -1\n \n for f in range(0,fvalue+step,step):\n t =
nuke.nodes.TimeOffset()\n t\['time_offset'].setValue(-f)\n
t.setInput(0,i)\n \n if f == 0 :\n lastnode =
t\n \n else :\n slice = nuke.nodes.Grade()\n
slice\['channels'].setValue(\"alpha\")\n
slice\['blackpoint'].setValue((1/(fvalue+1))*abs(f))\n
slice\['whitepoint'].setValue((1/(fvalue+1))*(abs(f)+1))\n
slice.setInput(0,c)\n exp = nuke.nodes.Expression()\n
if g\['method'].value() == \"average\":\n
exp\['expr3'].setValue('a>1?1:a')\n else:\n
exp\['expr3'].setValue('a>0?1:0')\n exp.setInput(0,slice)\n
km = nuke.nodes.Keymix()\n km.setInput(1,t)\n
km.setInput(0,lastnode)\n km.setInput(2,exp)\n
lastnode = km\n \n sw = nuke.nodes.Switch()\n
sw.setInput(0,i)\n sw.setInput(1,lastnode)\n
sw\['which'].setExpression('parent.maskChannel!=0')\n o.setInput(0,sw)\n
\n for n in nuke.allNodes():\n
nuke.autoplace(n)\n\n elif k.name() == \"method\":\n\n for e in
nuke.allNodes('Expression'):\n if g\['method'].value() ==
\"average\":\n e\['expr3'].setValue('a>1?1:a')\n
else:\n e\['expr3'].setValue('a>0?1:0')\n\n"
addUserKnob {20 User}
addUserKnob {41 maskChannel T Copy1.from0}
addUserKnob {26 ""}
addUserKnob {4 method M {nearest average}}
addUserKnob {3 frames}
}
Input {
inputs 0
name mask
xpos 400
ypos -57
number 1
}
set N20453280 [stack 0]
push $N20453280
Copy {
inputs 2
from0 rgba.alpha
name Copy1
xpos 400
ypos -33
}
Input {
inputs 0
name img
xpos 217
ypos -111
}
set N20461250 [stack 0]
TimeOffset {
name TimeOffset1
}
push $N20461250
Switch {
inputs 2
which {{parent.maskChannel!=0}}
name Switch1
}
Output {
name Output1
xpos 1390
ypos 87
}
end_group
_______________________________________________
Nuke-users mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users