Dan Fitzgerald

danfitz82

About Me

EXPERTISE
Freelancer
INDUSTRY
Advertising / Motion Graphics

Connect

LOCATION
London, United Kingdom

Houdini Skills

ADVANCED
Animation  | VEX
INTERMEDIATE
Procedural Modeling  | Digital Assets  | Character Rigging  | Pyro FX  | Fluids  | Destruction FX  | Python
BEGINNER
Hair & Fur  | Cloth  | Solaris  | Lighting

Availability

I am available for Freelance Work

Recent Forum Posts

APEX animate tool for drawing poses Dec. 15, 2025, 8:33 a.m.

JoshRizzo
Unfortunatly this breaks in 21.0 given this error:

I haven't had a chance yet to look at this in 21.0, there were a lot of changes to APEX so probably a lot of things to fix! If you do find a fix please let me know, otherwise I will get to it eventually.

Onion Skin in APEX Scene Animate? Aug. 16, 2025, 5:29 a.m.

maitlandvt
how are you going about it?

The HDA looks forward and backwards in time with a time shift, making copies of the incoming geometry at those time offsets with different colours for forwards/backwards frames. I popped it after the Scene Animate/Invoke SOPs and checked its template display flag, then it updates after you set a key in the Scene Animate node. It's slow because of all the copies and a bit frustrating because it only updates after moving a control (not while moving the control) so I haven't been using it anymore. I think a good, fast, interactive solution probably needs to be built into the Scene Animate node itself.

APEX animate tool for drawing poses April 17, 2025, 4:40 a.m.

johnlilpy
May I ask how you load the custom code into APEX Scene Animate? Thanks.

It's been a while since I looked at it so I've had a quick dig to try and remember, sorry if I forget anything, here's how it works:
  • The .py file for your custom tool has to be somewhere Houdini can load it (mine is in houdini_site\houdini20.5\python3.11libs\noadapextools\drawtool.py)
  • The APEX Animate state will look for a "load" function in your Python module that returns your custom tool:
    def load(viewer_state):
        return State(viewer_state)
    
    That State class is just "class State(object):", I don't think you have to inherit anything, but the APEX Animate's Python state will pass "onMouseEvent" and "onKeyEvent" to your object and maybe some others, I don't think there's documentation anywhere but if you dig through the APEX Animate state you'll find the functions it passes on.
  • I have a shelf script with this code to load the tool while you're editing in the Apex Animate node (you could probably assign a shortcut to make it easier?):
    import stateutils
    import apex.ui.statecommandutils as scu
    import hou
    
    viewer = scu.getSceneViewer()
    
    kwargs = {}
    viewer.runStateCommand("getState", kwargs)
    state = kwargs['state']
    
    scu.startTool("noadapextools.drawtool", kwargs)