Full Version: Houdini transformations - case study
anon_user_89151269
Here I’m gonna discuss the problems I’m having with Houdini transformations. I’ll address the translate mainly but also touch on rotation and scale when I deem it necessary.
The scope here is to make these things more accesible to scripting agnostic artists that want an easy and versatile way of manipulating objects and components in the viewport, w/o resorting to asking a TD for scripting and/or tool writing.

I’ll start first with what I perceive to be a bug.

Global Control (GC)
In XSI this feature is found under the name of COG and here’s how it works:
when off, translating multiple objects in their own space (local/object) on their say Y axis, each will follow their own Y axis

In Houdini, having GC Off is almost the same as having it On, with the only difference of having the gizmo snap to the selection’s center of mass when On (which is good).

Having it Off shouldn’t behave like shown below.

Imagine having a pair of symmetrical (by position and orientation) controls in a rigged character . If one wants to animate these while keeping them symmetrical, in H you’d have to do it manually for both.
For modeling purposes this is a big problem as well.
The reason I’m thinking this is a bug is because both the rotation and scaling seem to work, only the translation is acting up.

Spaces (frames of reference)
In Houdini aligning the gizmo to a space, does just that – borrows an orientation from ‘something’ for viewport manipulation purposes only. This is all good since there are cases when you want just that. Problem is that H, AFAIK, doesn’t provide the user a means to change the object’s space. This is an interaction crutch since it changes the values in the transform boxes based on what the user picked.

Let’s talk examples.
Create a box and a sphere in Houdini, both at (0,0,0) and move then the sphere to X=2. Now parent the sphere to the box with ‘keep pos…” On. Now move the box to X=-1. When I select the sphere and align the gizmo to “world” I expect the sphere’s X pos to show me 1, but it shows 2 which is the frame of reference of the box. If I were to select “parent” then 2 would’ve been correct.

Here’s a series of pics analyzing different cases.

One can see that Softimage provides the user modes that will “mix” the object’s space regarding the coord. it displayes in the value boxes and the alignment of the gizmo/handle:

-Global/World - world coord; world alignment
-Local - local coord; local alignment
-View - local coord; world alignment
-Parent - local coord; parent alignment
- Ref - reference* coord; reference* alignment
(*‘reference’ is a manually picked object. Or point, edge or polygon which can belong to the to be transformed object or other object)
- Plane – same as Ref, with the distincion of having a construction plane aligned to a picked object which comes with some advantages like grid snapping and creating things in this plane which would otherwise use the screen space.

Here I’ve aligned the constr. Plane (by RMB on Plane > Pick Object Reference) to a randomly rotated cube and created a polygon* in it.

*Used the ‘N’ tool in Softimage which lets me create a new poly to an object as well as creating a new object if none is selected a priori. The Polyknit tool doesn’t allow the user to do this, but that’s the least of Polyknit’s problems right now.

Trivia - there’s no screen (View in H) alignment mode in XSI – one can simply grab the center of the gizmo or click outsite the gizmo to translate in screen space. The reason I'm mentioning this has little to no importance, except that Houdini can also move in screen space by grabbing the center of the gizmo and since one has to cycle through these modes with ‘M’, removing it from the list means one less thing to cycle through. Better yet if you insist having it listed there, rename it Screen and make these modes accessible at the first RMB click (no submenu in a menu).

As I previously said, in H aligning the gizmo is just for viewport interaction but doesn’t allow manual numeric input since the frame of reference reflected in the values shown is not changed. Huge bummer.

Here’s a quick demo showing one application (among so many) of having the possibility of editing points in global space.

Example of using global coord to edit points [mcnistor.com]

If I want to quickly make a box of four units in width I quickly move points from each side as shown above, without messing with the Object’s scale.
This might not have many applications in simulations or a dirty editing of an organic shape, but for hard-surface or arch-viz modeling this is a huge workflow improvement.

Reference in Tweak tool
One extension of having the posibility to pick Objects (or any of their components) as a reference for TRS transformations is having a “on the fly” picking when in tweak component mode.

Demo of a reference picking on the fly. [mcnistor.com]

Edge sliding, component rotations based on other components and other tricks become possible and a joy to use.

Let’s see how reference related stuff works in Houdini.

Clip of orient picking in Houdini. [mcnistor.com]

Leaving aside the buggy behavior (if the object had been at t(0,0,0), it would have kinda* worked) how does RMB > going through the meu to find the option > click in the viewport where’s no indication (highlight) on what you’re clicking to Softimage’s simple MMB?
That and the fact that there’s no polygon or object picking.
* kinda, because there would be no poly translation, but there would be a rotation in case of an edge pick; for a point pick you have both a translation and a rotation. I’m assuming this is a bug since I want the handle to just orient itself not perform an actual transform.

If I forgot something I’ll add it later by editing.

Quick tip for XSI users: if you’re a heavy user of placing/snapping the gizmo (with alt) into various places for transforms tricks, you’d want to use the Attach to Geomtry toggle (shortcut ‘), not the pivot (Ins hotkey) which doesn’t work anyway in component mode. At some point in the future, when transient keys will find Houdini and hopefully the alt key will be released from its death grip of redundancy, well…

Speaking of which, is the alt key ever be made available for those who choose to navigate with space? I know it’s possible (in general, not sure about Houdini) since Softimage, not long after Adsk acquired it, got a Maya nav. model which uses alt instead of ‘S’.

edit1:

Center
In Soft there's an entity called ‘center’. I've looked it up in Houdini and seems that there's a ‘centroid’, an expression function -not exactly what I was looking for.
This center mode in XSI allows me to move an object in the scene while keeping its geometry in place.

Not to be confused with the pivot - see the kine. window with the Pivot tab aside - which is not affected when editing the center.

In Houdini this would be equivalent to moving the points of a cube say 1 unit on Y and then going at Scene level and translating the cube with -1 on Y and thus ending up with the cube's geometry in the same place.
There are many in cases I use this in Softimage, especially modeling, but rigging too (like say moving the center of a curve control while keeping its geometry in place).

A quick way to implement this in Houdini is to add under “Keep position when parenting” a Keep geometry in place when transforming" option which would probably need to create an edit node inside when checked On.

edit2:

Tweak mode

The main problem I'm having with the edit tool (something I've suspected even before testing when I read that it replaces the old edit mode) is that it is in tweak mode and in that only when having a transform tool active. That makes it impossible to select when zoomed in, as is often the case when detailing some small part of a mesh - it forces the user to either go in select mode or to zoom out to be able to drag select from outside the silhouette of the mesh if what you want to select is best suited for a box-selelction.
Disabling polygons with ‘4’ and edges with ‘3’ just to be in point mode seems like a chore and counter-intuitive. Isolating any of the components is an exclusion of the other two and coupled with the fact that Houdini will try to select the previous (the “active” component) makes it almost impossible to work with this

Proposed fix

Bring back the old mode of the edit node and make the current one a toggle:

I miss the old way of editing for its non-intrusiveness. Tweak mode is cool, a long awaited feature which will hopefully become great with a few enhancements (like picking a reference component on the fly, collapsing points, etc), but please let the user decide when to use it.

I've looked in the Hotkey editor and I didn't find an entry for those modes. They have to have a hotkey (by default or assigned by the user) for quickly accessing those modes.

Transforming Components

There are two transformation types for components Houdini that are currently very limited, making one of them usable only in certain situations and the other practically unusable.
One of them is transforming in a Reference space (‘start orientation picking’) which is buggy regarding the results and hard to use in terms of interactivity. It also lacks a listing in the ‘M’ cycling menu which means that once you transformed in a reference space, you’ll have to repick.
The other is “Component” (listed in the ‘M’ cycle) which is a local transformation type. This is a good thing (the fact that it exists and it’s listed), but it’s limited in the following way:

Each component is not transforming in their own local space, but in an “averaged” one (not a translation along the normal and rotation with a common pivot). This is good, we need this, but this would be the normal behavior for when a GC (global control) is On.
Where’s the GC in component mode? Looks like it’s there, implicitely activated and hidden from the user. It has to be exposed and toggle-able, with memory preferably.
Here’s how a ‘Component’ (local in other apps) looks like with GC Off and is currently missing in H:

“Peak” (which is not only limited but also buggy) would oviously be made redundant from a modeling PoV by this.
Also, can we have ‘Y’ up/normal for components if it’s not something that would eat a lot of dev. time? Not a hugely important thing, it’s just that it makes more sense.
Another issue is the current scale handle. Not the first time I’m saying this, but currently you have to aim very precissely to pick an axis. If a classical (like the translate) scale gizmo is off the table for some reason, at least make the axis handles a bit longer towards the center, like ½ of its total possible length.

The other mode which is not even listed in the ‘M’ cycleable menu is the Reference mode. You saw earlier how powerfull this is for the tweak tool when you have the possiblity to pick a reference on the fly.

For a non-tweak mode (aka classic edit) this is almost as important. Having the possibilty to pick points, edge and polys of the same object, another object’s and even an object (Scene lvl) is crucial.

I’m aware that Houdini (as well as other s/w) doesn’t allow picking another OBJ at scene lvl. when in the component mode of another. For example, Softimage doesn’t normaly allow this either, but it makes an exception when it comes to picking a Reference. If in Houdini such a thing would be hard to achieve or even impossible, this could be solved (albeit not the optimal way) by going at the scene lvl, picking your Object (or one its comp.) Ref. and then going back to component of the initial Obj where you activate the Ref mode (which again, currently is missing in the list) which would remember the last picked reference.This would be a whole lot more easier if Houdini would allow component editing for two or more selected Objects, a thing not really about transforms, but clearly with consequences.
julca
Well explained, +100 !

As an heavy user of placing/snapping the gizmo, I dream about an more accessible transient hotkey like “alt” (which is actually redundant with the space bar) instead "'".

If I can add 2 things here which I think are complementary, this is the snap (one global push button with an accessible transient hotkey) and custom increments (with also an accessible transient hotkey).
I leave you explain further if you think it can be part of this thread.
anon_user_89151269
Thanks julca,
Regarding the snap - unless I misunderstood, at one time one of the devs - don't remember which one - said that they intend to unify the snapping. Let's hope it didn't go completely under the radar and it will get implemented at some point.
Regarding the custom increments - I assume you're referring to hold shift/ctrl in XSI for transformations. I personally don't think Houdini needs that feature from XSI because it has something better - the MMB ladder. Sure, it's not as fast XSI's one, but it's a hell of lot more versatile, a trade I'm happy to make in this case. If you really think otherwise, make sure to submit a RFE.

edited for an omitted word
julca
Hello McNistor ! Thanks for the info.

To finish about increments, yes I'm referring to hold shift in XSI for transformations. If you find me a bit “glutton” about this feature is just because when I model an archviz building for example, I always made windows/doors, etc. width with a precision at 5cm, so I'm always taped to my shift keys to visually being right.
Anyway, I like the MMB ladder :wink: !

I hope that all your others requests will be well taken into account. It can push Houdini a step forward to be a powerful interactive modeling app.
Werner Ziemerink
I love this thread and will become one with it.
anon_user_89151269
Now that you're here, I've remembered about an issue you've mentioned a while ago about which I said nothing in the main post: local transforms for components.
Peak, even if it worked perfectly (produces undesirable results for edges) is a too weak tool since it addresses only translation, on only one axis.
Will address these problems as well, soon.
Werner Ziemerink
McNistor
Now that you're here, I've remembered about an issue you've mentioned a while ago about which I said nothing in the main post: local transforms for components.
Peak, even if it worked perfectly (produces undesirable results for edges) is a too weak tool since it addresses only translation, on only one axis.
Will address these problems as well, soon.

Yes. Moving components independently in local space is very much the same as your example above. There is no way to do this currently on objects or components.
anon_user_89151269
OP updated.
sidenimjay
have you submitted this to SESI support database so there is a ticket to follow?

would love to see these enhancements in H16
anon_user_89151269
I did submit some. Some have been dealt with by Support to which I'm very grateful as I was in no disposition to convert these to a RFE “format”. Hopefully they're still willing to help out as I've been regurgitating by copy-pasting what I described above into RFEs leaving sorting things out into their care.
Thanks Support! 8)
cval
+100000!

As a rigger I agree 100% with your posts. Those tools and space modes are so important to get right!
anon_user_89151269
The lack of official response regarding the matters presented here, is a bit disconcerting. For someone that expects it, of course.
pezetko
anon_user_89151269
I think I've messed this up a bit.
What I was referring to was the lack of response here, on this thread from devs.
The RFEs have been logged with great help (like previously stated) from Support to which I can't thank them enough. It's only the silence from devs. that got me concerned a bit, because these are extremely important and the said silence means that, most likely, these are not in their top of priorities regarding the modeling/interaction oriented stuff.
If H16 comes with other new and improved modeling ops. it's all good, but I couldn't adopt Houdini for modeling without these presented above. Much more important for me than a cool extrude.
Goddy McRoodt
McNistor
I think I've messed this up a bit.
What I was referring to was the lack of response here, on this thread from devs.
The RFEs have been logged with great help (like previously stated) from Support to which I can't thank them enough. It's only the silence from devs. that got me concerned a bit, because these are extremely important and the said silence means that, most likely, these are not in their top of priorities regarding the modeling/interaction oriented stuff.
If H16 comes with other new and improved modeling ops. it's all good, but I couldn't adopt Houdini for modeling without these presented above. Much more important for me than a cool extrude.

agree, houdini could kick some serious ass if it was nice to use in the start of the pipeline as wel, would also mean less software licenses to buy for me
Werner Ziemerink
Just can't find a way to do this in Houdini. Currently my biggest issues with modeling in H.
Goddy McRoodt
Werner Ziemerink
ID: 75553

Man, this one is really killing me.
anon_user_89151269
Hey Werner,
Strange…I've been using the edit SOP to model (organic modeling) over the last week and I'm loving it. Once I let go of the Softimage method it all made sense(Not saying it is perfect). The only thing that is missing for me is Transform components independently in Local mode, but I've submitted a RFE for that, and Soft Radius on primitives.

Please let me know how and what is causing your frustration. Maybe we can compare notes.

Well, “organic modeling” is about pushing points around and for that I personally use Zbrush - nothing beats that. I know sometimes you need some nudging around in trad. poly env. so soft-selection and current Edit might do the job.
However, I invite you to do some hard surface stuff and get back to me.
I could give specifics - again - but won't, as I have many times in the past and if someone's interested one can simply dig those up.
Doudini
Hi McNistor,
I really hope all of your stuff will get addressed. I think you have given lots of important and useful suggestions that are just missing in H.
Also I can understand your frustration.

Making the tools rock solid for hard surface modelling is really a must. I dont see houdini catching up with other apps if those get not addressed or if the priority is just too low on those minor RFEs.. Snapping with shift or ctrl has been addressed by so many users. I submitted an RFE again this year (RFE #72856). But my hope for getting this are really low.

And why do we need that green and red outline with the polyextrude?? wtf. Why the blue highlight? why the follow selection green indicators? Nobody was like wow great we really need those. Nobody ever went on and sent an rfe for this. yet some dude at sesi thought its a good thing.

Also try to model something in centimeter space when your units is set to meters. Good luck with zooming in on fine details and adding polysplits.