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 Nuke-users@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
-- Holger Hummel - hol...@celluloid-vfx.com Celluloid Visual Effects GmbH & Co. KG Paul-Lincke-Ufer 39/40, 10999 Berlin phone +49 (0)30 / 54 735 220 - m...@celluloid-vfx.com
#! /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 Nuke-users@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users