Ryan Pavlik

rpav

About Me

Connect

LOCATION
Not Specified
WEBSITE

Houdini Skills

Availability

Not Specified

Recent Forum Posts

[SOLVED] CHOPs (or any solution) for copying *relative* world rotation? March 13, 2017, 2:42 p.m.

The goal is to build a proxy rig. This seems like it should be simple: take a bone (B) with some arbitrary translate/rotate; use its relative rotation to control a separate, unparented axis-aligned null (N).

I can do this relatively easily in python: I store a “bind pose” matrix that's
M = B.getTransformTo(N)
, then:

T = (M * B.worldTransform()) * N.parentAndSubnetTransform().inverted * N.preTransform().inverted()
N.parmTuple('r').set(T.extractRotates())

This works. Using callbacks, I can rotate the proxy bone and it controls the null. This is great, except the callbacks don't fire for a lot of things, including IKs and during animation, which means it's not really a working solution (and no idea how this scales to hundreds of bones).

With CHOPs I seem to be able to get a world transform a few ways, but it seems unclear how to store the bind pose and generate a transform relative to that.But the CHOP solution seems to be ideal since it “just works” with IK and keyframes (and seems less “ick” than Python callbacks, since they need reestablished every load etc).

However I'm open to any working solution that I can wrap my head around.

Edit: Yes this is absolutely simple. `Transform` nodes can easily hold the constant matrices and do the math (though sadly there appears to be no way to set them directly). Then it's just some `ObjectChain` to get the proper worldspace from the hierarchy, chain the transforms, and export. Just took a bit of trial and error to figure out what did what. Apologies for the noise.

(H16) Find not finding everything? Also always-on-top breaking dialogs. March 9, 2017, 11:59 a.m.

The Find window (in the network view and elsewhere) no longer seems to find everything, only the first semi-random-number of matches. This is a problem especially when trying to select all for some operation, only to find an unpredictable fraction were actually selected.

Also, I have a second window for second head with the node editor, and the always-on-top feature seems to break most dialogs that pop up (like Find). Moving the mouse a bit makes the dialog drop behind the window, becoming unusable, and you can't alt-tab/w-tab or find it in the window list. If anything, the dialog would be more useful as always-on-top, or even as a pane tab. Selecting the ‘Always on top’ option from the window menu doesn't seem to change anything.

Houdini Indie 16.0.541 (also 16.0.504.20)
Windows 10.1
nvidia 378.78

Managing FBX bone structure Aug. 15, 2016, 11 a.m.

I finally found the specific setup required to export FBX to UE4 with the appropriate scale and root motion. This is great! I can use Houdini for rigging and animation.

However, there are still some issues with generated bone structure. There are what appear to be unnecessary “end_effector” joints, and any nodes in the structure also get inserted into the exported skeleton. E.g., if the chain_root isn't in “/obj”, it no longer gets to be the actual root bone, and that's a big problem. Specifying a “startnode” to the FBX exporter also prepends a “world_start” before the root bone. While I can put the entire skeleton in “/obj”, this seems a bit annoying and counter to using Houdini's features.

Is there a way to generate a bone structure extracted/baked from the “actual” bone structure? There doesn't appear to be a lot of control over the FBX export, and I'm obviously pretty new to Houdini and not sure how you'd generate a kind of “logical” node structure to be passed to the FBX exporter.