Hierarchy Manipulation (Bug?)

   1370   3   1
User Avatar
Member
9 posts
Joined: April 2015
Offline
Hello,
I am coming from Maya and have a question about how Houdini handles hierarchical transformation in the context of manipulation. I'm attempting to do something that works fine in Maya, but behaves erratically in Houdini.

The hierarchy looks like this:

root/inverter/handle

The inverter has expressions on the translate channels that look like this:
tx: ch(“../handle/tx”)*-1
ty: ch(“../handle/ty”)*-1
tz: ch(“../handle/tz”)*-1

The result is intended to negate translation, so the handle appears to be stationary, but in fact it stores some offset data in the translate attributes. If the values are entered and keyed on the handle's translate properties using the parameter interface, everything works as expected.

But if the translate manipulator is used instead (dragged in the viewport), the behavior becomes erratic. It looks like there is an accumulation problem due to how manipulation is being handled.

Rather than storing an initial manipulation identity vector at the start of manipulation, it appears a new vector is calculated as long as the manipulation cycle is active and there is a non-zero delta. Consequently, there is an undesirable additive effect that makes this technique unusable: The inverter shoots off quite quickly when it should just move in the opposite direction and magnitude of the cumulative manipulation vector. It is also unwieldy in when reversing direction of the manipulator, resulting in a rather laggy and sluggish feel.

In Maya this does not happen. I'm hoping this can be considered a bug because it is a technique I use a great deal for rigging. In this example I'm using translation, but this works equally well for rotation.

Attached is a file that has 2 simple hierarchies that are set up very similarly. The only difference is that one hierarchy is built using nulls, while the other is built from geometry nodes. Other than that, the functionality is identical. Just grab one of the green rings and drag a little. Watch what happens to the red box.

Thanks.
-Judah
Edited by judahbaron - Jan. 16, 2018 14:37:39

Attachments:
Handle_Inverter_Test_002.hipnc (183.8 KB)

User Avatar
Member
7737 posts
Joined: Sept. 2011
Offline
That shouldn't work at all. Parameters cannot reference themselves, that would be an infinite loop. The manipulator cannot normally be used when there are expressions on the channels linked to the manipulator. In maya this is the same as a control that has been overridden by a script. There's probably a way to get what you are after, but I'll let someone that is more familiar with rigging in Houdini provide a solution.
User Avatar
Member
9 posts
Joined: April 2015
Offline
My bad. The inverter's parameters are not referencing themselves. They are referencing the handle's parameters. That was a transcription error on my part. The uploaded sample files do not have this issue. I've updated the original post to reflect the expressions accurately.

Stranger, this problem seems to be intermittent. I just loaded the file that I posted earlier and I can't reproduce the problem.
Edited by judahbaron - Jan. 16, 2018 14:57:15
User Avatar
Member
7737 posts
Joined: Sept. 2011
Offline
Strange, then maybe you have found a bug.
  • Quick Links