Dan Fitzgerald

danfitz82

About Me

専門知識
Freelancer
業界:
Advertising / Motion Graphics

Connect

LOCATION
London, United Kingdom
ウェブサイト

Houdini Engine

ADVANCED
Animation  | VEX
INTERMEDIATE
プロシージャルワークフロー  | Digital Assets  | キャラクタ & アニメーション  | Pyro FX  | Fluids  | 説明  | Python
BEGINNER
Hair & Fur  | Cloth  | Solaris  | Lighting

Availability

I am available for Freelance Work

Recent Forum Posts

APEX animate tool for drawing poses 2025年12月15日8:33

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? 2025年8月16日5:29

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 2025年4月17日4:40

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)