View all animated parameters/channels in a project

   7574   14   4
User Avatar
Member
8 posts
Joined: April 2015
Offline
Hello everyone,
is there any way to view all animated parameters/channels in a project?
I'm asking because sometimes I tend to forget to group them in the channel editor or color the animated node - these are the 2 techniques I used to keep track of all animated channels…
Is there any other way?
Thank you very much…
User Avatar
Member
252 posts
Joined:
Offline
I was also gonna search for something that would help me see if some nodes are animated. Then I forgot about it until I stumbled upon your post. So I looked around the options in Houdini and found something that I myself might use next time

Hopefully, you might also find it useful.

On the Network Editor Display Options > Common tab, check out the Name Highlights on the right side, and under #3 (mine seems to default to None) you can set it to Animated Parameters.

Nodes with animated parameters are now shown with purple text.

P.S. I'm not sure if this still applies in the upcoming H16 though.
Edited by galagast - Feb. 12, 2017 11:15:42

Attachments:
animated_params.jpg (30.9 KB)

User Avatar
Member
252 posts
Joined:
Offline
Unfortunately, the coloring is also affected by parameters with non-animated expressions (like simple ch(“sizey”)/2).
As an alternative you could probably combine it with another option in the Display Options > Network View > Dependency > Show Time Dependencies toggle.

I'll try sending an RFE to separate the coloring of Animated Parameters and Parameters with Expressions.
User Avatar
Member
8 posts
Joined: April 2015
Offline
Thank you! This has been very helpful - I didn't know that option exists. On the other hand - what doesn't exist in Houdini

It's definitely a start - in Nuke i use sometimes a strange workaround for viewing all animated nodes: I up the limit in the properties bin to 99, select all nodes in a project and hit enter. Then in the dope sheet i see what parameters a doing what and when. Works only with that 99 node limit and it's dirty. but gets the job done sometimes.

Would still be a great thing to view every animated node in the curve editor or dope sheet in Houdini…

Thank you so much for your time.
User Avatar
Member
252 posts
Joined:
Offline
I emailed sidefx and got a reply. We would have to wait for H16 to see if the coloring issue was updated/fixed.

Neat trick on nuke! I'll keep than in mind. Thank you
User Avatar
Member
8 posts
Joined: April 2015
Offline
Well, sorry to post this here - I know this is no a nuke forum, but here's a script for selecting all animated nodes. Thanks!
https://www.reddit.com/r/vfx/comments/2d5xqk/select_all_nodes_with_animation_in_nuke/ [reddit.com]
Edited by Moritz Grund - Feb. 13, 2017 08:47:48
User Avatar
Member
252 posts
Joined:
Offline
Hi, thanks for the link. It inspired me to try it out in python.
The code below seems to work OK on my scenes.
nodeArr = hou.node("/").allSubChildren()
for n in nodeArr:
    if not n.isInsideLockedHDA():
        parmArr = n.parms()
        for p in parmArr:
            if p.isTimeDependent():
                n.setSelected(1)
  • It loops through all the nodes in the entire Houdini scene (disregarding nodes that are inside a locked asset).
  • Then it loops through each of the nodes' parameters to look for time-dependent items.
  • Once found, it will simply set the node as selected.

If you have an Animation Editor Pane open, it will scope the animated parameters from all the nodes selected across the networks.

So far, the minor drawback that I'm seeing is that by default, the Geometry Objects have their TRS parameters set to auto-scope. That means that non-animated parameters will appear on the Animation Editor even if just one of those parameters was animated.
Edited by galagast - Feb. 13, 2017 16:07:46
User Avatar
Member
8 posts
Joined: April 2015
Offline
Hey! Thank you so much for sharing - really awesome! This solution is exactly what I was searching for… *SOLVED*
Have a great day, cheers
User Avatar
Member
252 posts
Joined:
Offline
Cool! Glad I was able to help!
User Avatar
Member
206 posts
Joined: Jan. 2016
Offline
Galagast,
thank you very very very much! I got it working. Initially the script did not scope the channels in the Animation Editor for me. I am unfortunately no python expert, but I made it work by editing the last line to:

p.setScope(1)

That auto scope issue may be solved by these methods, maybe?

hou.Parm.keyframes()
hou.Parm.keyframesInRange(start_frame, end_frame)


Btw that highlighting in H15 looks great. Do you know if there is any similar option in H16?
User Avatar
Member
252 posts
Joined:
Offline
Heya ikoon! Great find, that indeed should set the scope for the parameter
Are you using the code in H16, I wrote that one in 15.5. Hopefully nothing broke aside from the scoping not being automatic.
For H16, I am not currently aware of any node name highlighting feature that is similar to H15. Closest I could probably suggest is to enable the Time Dependent Badge on the Network Display Option (press D)?
Maybe this can be sent as an RFE
User Avatar
Member
206 posts
Joined: Jan. 2016
Offline
Hi, yes the H16. It helps me a lot, thanks again! Yes, maybe RFE, but … well, it is hard to not clutter the network view more. I kind of help myself to organize my scenes like this:

I use QQ prefix for node names:

QQOUT_description
QQANIM_description

“qq” filter doesnt interfere with other searches in the tree view:

http://forums.odforce.net/topic/30009-h16-node-naming-coloring-and-layout-guidelines/?do=findComment&comment=168665 [forums.odforce.net]
User Avatar
Member
36 posts
Joined: July 2013
Offline
Hey,
little modification of the script.
As it was very slow in complex scenes, because it is forcing every time dependend node in the scene to recook.
Selects all “hand animated” parms in the scene. When Autoscope is enabled they will become scoped in the ANimation Editor.

nodes = hou.node("/").allSubChildren()

expr_list = [
        "constant()",
        "cubic()",
        "match()",
        "matchin()",
        "matchout()",
        "spline()",
        "bezier()",
        "qlinear()"
        ]

for n in nodes:
    if not n.isInsideLockedHDA():
        parms = n.parms()
        for p in parms:
            keys = p.keyframes()
            if keys != ():
                k = keys[0]
                if k.expression() in expr_list:
                    print "{} is animated".format(p.path())
                    n.setSelected(1)
User Avatar
Member
206 posts
Joined: Jan. 2016
Offline
Hello Adrian! Thank you very much for sharing the script!
User Avatar
Member
10 posts
Joined: March 2018
Offline
Thanks a lot for this script Adrian. It's a lifesaver :-)
  • Quick Links