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

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)
    

APEX animate tool for drawing poses April 14, 2025, 5:20 a.m.

citizen
I was having in mind something like this:

ah I see! Yes that'd work for fixing to the start and preserving lengths, and it would keep the characteristics of the drawn curve if not the positions so there's definitely a use for this. I think there are situations where this could get frustrating (eg trying to get a character to scratch their own head, if we can't control the position of their hands at the other end of the joint chain), but maybe that's just where it would need an option to flip between preserving lengths or preserving positions.