Home » Featured, Houdini, Miscellaneous

Houdini CHOPs: Curves from animation

21 July 2009 121,894 views 12 Comments

Creating the Digital Asset

Right click on the SubNetwork node and select “Create Digital Asset…”. You’ll see the following dialog appear, although you’ll have the default values.


Fill in the entries to match those shown above, and choose a location to save the OTL file. If you need more information about these settings, then take a look in the help files at Houdini10 > Reference > Windows > Create digital asset dialog


When you click Accept, you’ll get a warning dialog. You can safely click “Destroy Spare Parameters” to continue. (The reason you get this warning is because you created the extra interface parameters before creating the digital asset. If you want to avoid this in the future, then you need to create your digital asset before adding the parameters.)

The window that appears next, allows you to edit the definition of your new digital asset. You’ll notice that the Parameters tab looks identical to the Edit Parameter Interface window, but any changes you make here will be saved and shared with any other instances of the digital asset that exist. You can get back to this window at any time by right clicking on the digital asset and choosing “Type Properties..”.

For now, click Accept to continue.


Now that your digital asset has been created, press Tab and type “anim”. You should see your AnimationCurve V1.0 asset appear in the tab menu. Press Enter to create it and fill in the Node parameter to point to your animatedNull object. You should see your curve appear.

I hope that after reading this tutorial, you should have, if you didn’t already, a basic understanding of how CHOPs can be used. There are many other ways to use CHOPs, so have fun exploring. I’ll be posting more tutorials soon, so check back regularly, or better still, subscribe to the RSS feed.

(Don’t know what an RSS feed is? Read this!)

If you have any questions or comments, feel free to post comments below. Thanks.

The two scene files and the final Digital Asset (in non-commercial format) can be downloaded as a zip file by clicking below.

Download... Houdini V10.0 (24Kb)

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)


  • Dragos Stefan said:

    A great and clear tutorial! As an option, one can use an Object CHOP instead of the Fetch CHOP to get the animation into CHOPs. However, while the Object CHOP can be more flexible in some cases, it is also much slower, especially if it has to compute the whole timeline.

  • varomix said:

    HI Andy

    I totally loved this one, very useful one

    Do you think this could be made so that the curve(SOP) can shape the animation curves?

    or maybe add a little manipulator at each key an move it around?

    that would be awesome

    thank you Andy, please keep sharing this nice techniques


  • AndyN (author) said:

    Great, thanks for the feedback.

    As far as I know, you wouldn’t be able to feed this system back into the animation again, because you’d end up with cyclical evaluation. I did try it when I was putting this tutorial together and Houdini bombed on me. In the docs, it says that you can’t export CHOPs back to parameters if you’re already importing data from them in the same CHOP network.

    It would be trivial to drive a different object with that curve though.

  • Jason said:

    Awesome tutorial. I’m just starting to get into CHOP’s and this really helps out on learning it. This is probably realy simple, but do you have any suggestions on animating a curve through CHOPs that controls an IK rig. I tried hand animating it, but I didn’t get the look I was going for. Anyways, like I said this really helped me in getting started with CHOPs.

  • AndyN (author) said:

    Hi Jason,
    No problem, glad you found it helpful.

    It’s hard to give any recommendations based on what you’ve said about the curve animation. If you can send me more info, I might be able to help.

    You can email me here:



  • Helene said:

    Hi Andy,

    Just wanted to say ‘Hi’ and thank you for a great tutorial. I’m just beginning to get into CHOPs – am finding it fascinating. This is a lovely introduction. Just to say you tutorials are greatly appreciated. Keep up the great work. 🙂


  • AndyN (author) said:

    No problem Helene, thanks!

  • MJ said:

    Hi Andy,

    Does this work with OP control channels such as with the position (‘pos’) of an object following a path ? I could not make it work.

    Great tutorial !

  • ArturM said:

    Thank you very much, this is a very useful resource.

  • Gotta Getmedat said:

    so in python you have to do something like this?…
    (float(expandString(‘$TEND’)) – float(expandString(‘$TSTART’)) + (1/float(expandString(‘$FPS’)))) * ch(“../../chop_GetAnim/fetch_Anim/rate”)

    is there a better way?

  • AndyN (author) said:

    Hi MJ,
    Off the top of my head, no, I don’t believe this method would work, but I’d have to try.

    I’m sure there must be a workaround though. I’ll have to investigate further!


  • AndyN (author) said:

    Hi Gotta,
    I don’t usually use Python for expressions so I can’t advise. Using the standard Houdini expression language is nearly always less verbose (and in my experience, a more common and standard approach), so I’d recommend sticking with that where possible.


Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.