Animation Maker

Ease curves in Nuke, with just a right-click.

menu

I have made a little extension to Nuke that when right-clicking any animatable value on any node you can choose ‘Animation Maker…‘ from the pop up menu and a whole suite of customisable animation curves can be chosen. When you’re happy, it generates the expression to form that curve and puts it into the knob in question. It also adds a user tab to the node with sliders so you can refine it on the fly. No extra nodes or expression lines in your script and it’s available everywhere.

It does all the maths for you.

Contains ease curves such as Quad, Exponential, Bounce and Elastic. Wave curves such as Sine, Random, Noise, Triangle and Sawtooth. Options to combine a wave with an ease curve, turn a wave into a ‘square’ version or create a sequence of blips at certain intervals.

All contained in one .py file. No gizmos required. Just put the file in your .nuke directory (or wherever your plugins directory is located), then add two lines to your menu.py.

Download here

This supersedes my previous WaveMaker tool, so no need to have both installed.

AnimMaker

Pop up dialogue in Ease mode, showing the motion with a growing circle, a moving circle and a circle fading from black to white.

AnimMaker2

Pop up dialogue in Wave mode showing an example noise wave.

tab

When CREATE is pressed, a new tab like this will appear on the node.

expression

An expression will be put into the chosen knob which is linked to the new tab’s controls.

easeout

An example Expo Ease Out curve

ease

An example Expo Ease In curve

easeinandout

An example Expo Ease In & Out curve

bounce

An example Bounce curve

elastic

An example Elastic curve

noise

An example Noise wave

waveEase

An example Sine wave combined with a Linear ease in.

blip

An example Blip animation made from a Sine wave.

Advertisements

About davemne
VFX artist, developer and musician from the UK.

28 Responses to Animation Maker

  1. Bram Buddingh says:

    Wow, works like a charm. Thank you David! It is also a good learning tool for nuke expressions. Thanks again.

  2. SutoCom says:

    Reblogged this on Sutoprise Avenue, A SutoCom Source.

  3. Hi David,

    I was looking for something just like that.
    Could you help me with how to install it?

    I added the AnimationMaker.py to my plugins folder and also tryed
    plugins/nukescripts but I get this message:

    name ‘AnimationMaker’ is not defined

    with this details
    Traceback (most recent call last):
    File “”, line 1, in
    NameError: name ‘AnimationMaker’ is not defined

    I also added the line to the file plugin_menu.py
    This I think is working fine because the plugin name shows in the menu.

    Thank you for you help!

    • davemne says:

      If you can find your .nuke folder (in your home folder, which may be hidden on the mac) this is the only place you need to put it. In that same place you should see a menu.py file (if not, make one). Just add these lines somewhere in the menu.py and it should work:

      import AnimationMaker
      nuke.menu(‘Animation’).addCommand( ‘Animation Maker…’, ‘AnimationMaker.showWindow()’,”,icon=’ParticleBounce.png’)

      Nuke looks in your .nuke folder for any menu.py or init.py files and loads whatever plugins they specify. If you put the plugin in that same .nuke folder it will always find it. Don’t put it in a subfolder though, else you’ll have to tell Nuke to also look in the subfolder (inside the init.py file).

      Usually if you forget the ‘import AnimationMaker’ bit, it will give that error.
      Hope that helps,
      David

  4. Thanks for the fast reply and the great info!
    Works great now!

    My mistake was on adding the line to the menu file.

    Cheers!

  5. Anonymous says:

    Does this work in Nuke 8 David? Works for me in 7 but doesnt show up in nuke 8?

    • davemne says:

      Yes, works in Nuke8. If it’s not appearing in the menu, you probably need to add the line to the menu.py in Nuke8 too. Normally if you put the AnimationMaker file and the menu.py in your .nuke directory, all Nuke versions should pick it up. If you put it somewhere else, you’ll need to tell Nuke8 where to look for it in its init.py. Hope that helps.

  6. Kama Moiha says:

    Nice tool, been trying to add this to my current menu.py, i was able to but now am getting this error:

    “Traceback (most recent call last):
    File “”, line 1, in
    File “/Users/kmoiha/.nuke/AnimationMaker.py”, line 64, in showWindow
    animationWindow(k.name())
    AttributeError: ‘NoneType’ object has no attribute ‘name’ ”

    Any ideas?

    • davemne says:

      Hmm, not seen that before, does the Animation Maker right-click menu actually appear or does that happen when Nuke loads? What version of Nuke is it?

      • gilles wouters says:

        Hi, I have the same issue.
        In windows and in mac.
        When I call it with right-clic and with the menu link

        did you find something?

      • davemne says:

        Looks like it’s not finding the knob for some reason. How are installing the python file? To get it in the right-click menu it should be this:

        import AnimationMaker
        nuke.menu(‘Animation’).addCommand( ‘Animation Maker…’, ‘AnimationMaker.showWindow()’,”,icon=’ParticleBounce.png’)

        I’ve got that in my menu.py on Linux at work and Mac at home and not had this issue. I’m wondering what’s different.

      • gilles wouters says:

        Hi didn’t find the “Animation” menu in nuke with your nuke.menu(‘Animation’)

        so i put in something else but I keep the “addComment” part

        ———————————————————-
        import dw_globalDirReadSetup_v1_0, AnimationMaker

        toolbar = nuke.menu(“Nodes”)
        dwMenu = toolbar.addMenu(“DW Tools”, “dw_menu.png”)

        dwMenu.addCommand(“Readers/Global Directory”, “dw_globalDirReadSetup_v1_0.globalDirSep()”, “a”, “dw_globalDirSep.png”)
        dwMenu.addCommand(“Readers/GD-Read Associate Selected”, “dw_globalDirReadSetup_v1_0.gdReadSel()”, “ctrl+r”, “dw_gdReadSel.png”)
        dwMenu.addCommand(“Readers/GD-Read Setup”, “dw_globalDirReadSetup_v1_0.gdReadSetup()”, “shift+r”, “dw_gdReadSetup.png”)

        dwMenu.addCommand(‘Animation Maker…’, ‘AnimationMaker.showWindow()’,”,icon=’ParticleBounce.png’)
        ———————————————————

      • davemne says:

        Ah, that would be why. It has to go in the nuke animation menu for this tool to work. If you call it from a normal menu it doesn’t know which knob you are trying to animate. Try adding the line as I’ve written below and it should work. It doesn’t appear as a menu item in your custom menu, but instead only appears in the right-click menu throughout nuke.

      • davemne says:

        Also, check the quotes are correct. Sometimes if you copy text from wordpress it gives you the wrong ascii character for ‘.

      • gilles wouters says:

        Yes it work!

        Thanks a lot

  7. Vlad says:

    Awesome tool, thanks alot for making it available for everyone! Des it work with nuke 8,9?

  8. polo says:

    It’s superb tool! Just always crashing in Nuke 9 after right clicking on knob and selecting animation maker…, does anyone knows how to fix crashing?

    • davemne says:

      Running fine on Nuke 9 for me, can you run it through a terminal if possible to see if it shows where the error is happening? Are you on Mac, Windows or Linux? I’m on Linux.

  9. davemne says:

    Version 1.1 hopefully has fixed the crashing bug in Nuke 9 on the Mac and Windows. I’ve tested it in 9.0v8 on the Mac and it works now. Let me know if there’s any problems in Windows still.

    Animation Maker 1.1

  10. Vlad says:

    Works just fine on windows. Thanks for the fix!

  11. kako.hao says:

    hi.! its a very useful tool .but there is a problem , when i give a transform node to the nodegraph , a new viewer added in my script , it is not necessary , how can i remove this viewer . and another question ,after i removed Animation Maker (ps.remove from the menu.py), when i give a transform node again . there appears a new viewer again .well .this is boring me so much .,. help me ….plz

  12. Hope you’re still monitoring this. Just discovered this great add on. I had written my own noise generating node and thought about rewriting it to include some of your functionality when I realized your implementation is much better.

    One thing/request: Have/would you considered including fBM and Turbulance as noise pattern options? I have those in mine and I find they have distinct enough differences from random and noise to warrant inclusion.

    • davemne says:

      Yes, still monitoring, but been crazy busy on a project the last year. Sure, I’ll definitely have a look at fBM and Turbulence. noise() has generally been good enough, but if they’re distinct then it’s worth including them. Thanks for the tip.

  13. ~Schneeballen says:

    Hello David!

    Fantastic tool, I agree with Daniel, including the fBM and Turbulence noise functions would be sweet. I also had a couple of ideas if possible 🙂

    1) In your pop up gui window, we can’t increment using the arrow keys, this is pretty frustrating, is it possible to add it?

    2) Ability to multiply the entire curve by another value, so we can animate the wave ON and OFF.

    3) Anyway to create custom presets?

    Cheers,

    • davemne says:

      All good ideas, been meaning to update this tool for a while so will bear all those in mind, thanks for the feedback!

  14. Jungkeun Kim says:

    hi~ i’m a big fan of your animation maker nuke script but i when i click the edit button
    pop up this massage and can’t edit anymore..
    plz help me~

    invalid literal for int() with base 10: ‘50.0’

    • davemne says:

      Sorry to hear that, I’ll try to track down what’s causing it. Can you see if anything more appears in the Script Editor when that happens, and paste it here? It might tell me where the error is happening. Cheers.

      • davemne says:

        Oh, and I just realised this was posted before my update yesterday, so check out version 1.2 and see if you get the same problem…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: