If I need it to be as simple as this, I'll stay with Ivan's solution. If I'll need to condition it somehow, I'll switch to a regular loop.
Thanks guy! Ron Ganbar email: [email protected] tel: +44 (0)7968 007 309 [UK] +972 (0)54 255 9765 [Israel] url: http://ronganbar.wordpress.com/ On 19 April 2012 12:49, Howard Jones <[email protected]> wrote: > I still steer clear from list comprehensions for the reasons Ivan > mentions, though something like that example is pretty clear. > However the speed increase is likely to be negligible for something like > that isn't it Ivan? or not? > > Howard > > ------------------------------ > *From:* Ivan Busquets <[email protected]> > *To:* Nuke Python discussion <[email protected]> > *Sent:* Thursday, 19 April 2012, 6:54 > *Subject:* Re: [Nuke-python] Writing a Curve > > Yes, it's a list comprehension, which is just a quick way to create a list > from a series of statements, in this case a for loop. > > But I see you already got that. The only reason I mentioned readability is > that, when you start adding nested loops and conditions to the mix, then > list comprehensions get increasingly hard to read. On the other hand, they > are generally a little faster than the equivalent for loop(s). > > So, your choice :) I just meant that not for being shorter it was > necessarily a better approach. > > Cheers, > Ivan > > On Wed, Apr 18, 2012 at 10:27 PM, Ron Ganbar <[email protected]> wrote: > > Isn't what you have there simply a for loop, just written differently? > It's very readable anyway. > Thanks again, > R > On Apr 19, 2012 8:24 AM, "Ivan Busquets" <[email protected]> wrote: > > Yes, because addKey() takes either an AnimationKey or a list of them, I > just built a list of them using a list comprehension structure, which is > essentially a loop. > > But if a for loop makes more sense, then by all means you should use that. > Shorter is not always better, and the more readable you make it for > yourself, the easier it will be to go back and make changes to it :) > > > > On Wed, Apr 18, 2012 at 10:07 PM, Ron Ganbar <[email protected]> wrote: > > Thanks Ivan, > I figured it probably just needs a loop, but yours is far shorter than > mine. > > I'll have a look at those tutorials. > > > Ron Ganbar > email: [email protected] > tel: +44 (0)7968 007 309 [UK] > +972 (0)54 255 9765 [Israel] > url: http://ronganbar.wordpress.com/ > > > > On 19 April 2012 03:44, Ivan Busquets <[email protected]> wrote: > > Hey Ron, > > I assume you just want the shortest possible version of setting the whole > curve from values you already have, right? > So, say you have an animated knob that you've created like this: > > node = nuke.createNode( 'Blur' ) > k = node['size'] > k.setAnimated() > > And then you have list of keys and values that you want to feed at once as > an animation curve. > One thing you can do is put them all in a list of (frame,value) tuples, > like this: > > keys = [(0,20), (1,30), (5,70), (8,90)] > > And then get the AnimationCurve object for that knob, and add them all > like this: > > anim = k.animation(0) > anim.addKey([nuke.AnimationKey(frame, value) for (frame,value) in keys]) > > Of course, that is just an example for doing it in just a couple of lines. > Depending on how your initial data is formatted, you might want to take a > different approach. > If you want to dig any deeper into it, you can find more info and some > examples in the Python Developers Guide, under "Animation". > > Also check these two great tutorials from Nathan: > > http://www.nukepedia.com/python/knob-animation-and-python-a-primer/ > http://www.nukepedia.com/python/animationcurve-and-animationkey-objects/ > > Hope that helps. > > Cheers, > Ivan > > > On Wed, Apr 18, 2012 at 3:16 AM, Ron Ganbar <[email protected]> wrote: > > Hi guys, > quick question, back in Shake it was easy to type an animation curve, it > was simply hermite(0, 0@1, 15@10, 44@100). > Is there a way to easily create an animation curve like that in Nuke? > I know about setValueAt(), but that's for each keyframe rather than a > whole curve. > > Thanks! > Ron Ganbar > email: [email protected] > tel: +44 (0)7968 007 309 [UK] > +972 (0)54 255 9765 [Israel] > url: http://ronganbar.wordpress.com/ > > > _______________________________________________ > Nuke-python mailing list > [email protected], http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > > > _______________________________________________ > Nuke-python mailing list > [email protected], http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > > > _______________________________________________ > Nuke-python mailing list > [email protected], http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > > > _______________________________________________ > Nuke-python mailing list > [email protected], http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > > _______________________________________________ > Nuke-python mailing list > [email protected], http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > > > _______________________________________________ > Nuke-python mailing list > [email protected], http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > > > _______________________________________________ > Nuke-python mailing list > [email protected], http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > >
_______________________________________________ Nuke-python mailing list [email protected], http://forums.thefoundry.co.uk/ http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
