Decided to put my head into APEX. I have to admit that jumping straight into a hand rig wasn't the best idea. I overestimated how different APEX feels from my previous DCC experience, especially when you want to do something custom. But the drive to learn won, and I sunk deep into it. Things that feel quite simple in other DCCs became a few days of challenge to figure out in APEX.
For example, I wanted to add corrective shapes driven by the joint transforms. I did a simple example putting the nodes in manually, ok, it is possible, but it would be a nightmare to connect 60+ blendshapes that way. Autorig component is a must. I tried to build the component that updates the riggraph with nodes, but it got too complicated fast. Ok, looks like I should jump to APEX script. At first, it looked like Python, but I was mistaken. It is not Python... it is APEX script.
I am sure SideFX is doing its best with the APEX script language documentation, but I found a lot of functions that do not have an entry in the docs at all. The sparse documentation was a challenge, but gladly Houdini ships with APEX script snippets and I learned a lot from them. After one component I needed another one, and another one, and one more. You really have to get used to the idea that you are not building the rig itself, but you are building tools to rig first.Few things from my wishlist that i collected during this experience:
Node Isolation: To temporarily isolate nodes on the rig graph would be amazing. I liked a lot that the nodes newly created by the component are automatically colored green, but almost every time I was selecting them and dragging them aside to check if all the connections were created correctly in a clear view. Especially when the node count gets above a few thousand. The "layout selected" function somehow did not work for me at all.
Straight Connections: Another most wanted wish was straight connections, because it was almost impossible to see where connections are going on nodes with a lot of ports, they visually draw over each other. I was very happy to find out that in H22 you can finally change to straight lines! Jay!
Slider Ranges: Not sure why sliders on the component UI are stuck on the 0-10 range. I wasn't able to change them to, for example, -1 to 1 like in a normal parm slider. It accepts all values, but you need to type them in. That kind of breaks the idea of using the slider.
Interactive Joint Selection: On the component, you can add a field that lets you select tags in the viewport interactively. Very useful, but the ability to select joint names with the same interactivity would be amazing too. Often I needed to select just one specific joint, and adding a tag for only one joint felt like a bit of overkill. You always have to check the specific name of the joint to type it in, which slows the workflow a lot.
Ramps in Multiparms: I missed them a lot... APEX script lets you create them, but then it is not able to read the values. Reported this as a bug. Fine-tuning the values was a highly desirable thing in a multiparm.
UI Functionality: The autorig components got complicated fast, and the UI is currently missing a lot of parameter interface functionality that other nodes have. I thought that I just didn't know how to build them in APEX script, but after a lot of trial and error, I recognized that it is probably not implemented yet.
Reloading Setup Parms: When testing the autorig component with already populated values, if you need to "Reload Setup Parms", it removes all the values. When you are dealing with 30+ already populated parms and they get set to defaults every time, my eyelids start to glitch!
I wrote a simple Python script to update the node and copy the previous values back to the fields that did not change, but built-in functionality for something like this would be very welcome. I was constantly adding parms and sliders while building and testing my autorig components.Code Editor Colors: It looks strange that the APEX script editor does not even color the functions of APEX script itself. It is very hard to read, and it forced me to use an external editor.
A disclaimer:
I have to admit that I might be missing something obvious, and maybe some things on my wishlist already have another solution or I am looking at it the wrong way. I am still learning from scratch. Any input is welcome. If someone is trying to do something like this, I am very willing to share my freshly cooked experience.
Credits:
I had nothing to do with the hand geometry itself. The model and textures were done by Chris Jones (www.chrisj.com.au). Very well made asset. His rig in Blender inspired me to try and achieve something like it in APEX. I watched his demo frame by frame a million times while trying to reverse engineer it!
Mine skinwrap solution still need some love, so far its a bit too buggy inside apex and slow...

