Houdini pivot

   8805   5   1
User Avatar
Member
46 posts
Joined: Oct. 2006
Offline
I'm having a real difficult time undestanding how Houdini handles it's pivots.

I have done a search here in the forums and it's not coming back with much.

I have a set (not group) of points which a sphere is copy SOP'ed to. I need to get to a situation where the output of of the above has a pivot point I can depend on always being in the same spot so when I copy SOP that to yet another set of points the pivot I define lies exactly on those points. Right now I am window selecting the group of points (before the Copy SOP that maps the sphere onto them) hitting “ ‘ ”, moving the pivot and hitting “ ’ ” again. When I reselect the same set of points again the pivot is back where it started - in the center of the group of points.

In MAX I could just group them all (the original set of points), go to hierarchy, set the pivot where I want for the group and vioalla, it's a done deal - everytime I select that group I know where that group's pivot is.

I am not able to do the same thing in Houdini. I know Houdini is different but I know that this is a fundamental situation so I know Houdini can do it but I just don't know how.

Any help would be VERY apreciative in furthering my Houdini knowledge. Thank you in advance.

Barad-Dur
User Avatar
Member
537 posts
Joined: Dec. 2005
Offline
ah yes I have / am migrating from a Max background as well so hopefully this will help. Houdini handles it's pivots in a much more basic and also flexible way than in max … which is why I think Houdini schools max in the rigging department.

In max the pivot point can be adjusted as a separate function, but doing that is basically the same thing as going into subobject mode, … like … edit poly, getting the polygons, moving them, and then moving the mesh back to it's original position in object mode. Moving the pivot point in max just moves the object position while keeping the sub-object in the same world-space.

Houdini is much more flexible than the max approach and there are a few options by default, and they can be made procedural very easily, instead of just two .. largely nonprocedural approaches (effect pivot only, or moving the subobject pts).

So, imagine that every time you're “in” a geometry node, you are in a single-object's-giga-modifier-stack with max.

Also if it helps .. the transform SOP has a pivot which can be set procedurally or non-procedurally with a variety of expressions or just plain values.

Here's an example file with some different approaches similar to max. They are color-coded so you can tell which child corresponds to which teapot (in wireframe mode)

I should also note that when you are copy-sop'ing stuff you aren't copying objects … you are copying sub-objects, similar to shift-dragging an element in the edit poly in max. One way to move the “pivots” of the copies by moving the original copy-points.

Attachments:
pivots_foolery.zip (59.8 KB)

User Avatar
Member
46 posts
Joined: Oct. 2006
Offline
Andrew,

Thanks for the post and the file. I DL'ed it and am looking at the structure now.

I am still having difficulty. It's because I'm such a noob, I know it is.

I am uplaoding a simple test. What I want is to pick the center of the lower radius end of the tube as the pivot point. I am hoping I am correct in thinking that as that tube is sent to “Points_I_want_the_tube_mapped_to” via the copy SOP the pivot of the tube will coincide exactly with the points generated by “Points_I_want_the_tube_mapped_to” in XYZ space.

I changed the tube's pivot via the “Do_I_set_the_pivot_point_here” Transform node but the tube still gets set on the generated points by the tube's dead center.

I know I am missing something SO FUNDAMENTAL that I just can't see it. Again any help would be appreciated. Thank you.

Barad-Dur

Attachments:
Simple_Pivot_Test.hipnc (48.3 KB)

User Avatar
Member
537 posts
Joined: Dec. 2005
Offline
Ah I see, almost …. think of moving objects at the “geometry” level … (0,0,0) would be the center of the object's local space .. not world space.

Moving the pivot in a transform node is just a convenience feature which let's you transform something by coordinates which are relative to something other than (0,0,0). The pivot only exists in the context of that transform node .. think of that feature like the “pick” coordinate or whatever in max.

So, maybe think of moving stuff at geometry level like using local/vs/world transform modes in max.

When you are “in” a geometry node, you are always using local space, when you are in object, you are in view/world space.

See if this file makes sense, notice how I've moved the cone to 0,0,0 where I want it to be copied

Attachments:
copyingAtGeoLevel.zip (11.8 KB)

User Avatar
Member
46 posts
Joined: Oct. 2006
Offline
Andrew,

I think I understand. It seems, given what you have said and your example files, that the whole concept of “pivot” in Houdini is more of a convenience. What is REALLY at issue is translating the object to have the “0,0,0” point where you want it relative to the world. In other words move your object relative to the world's 0,0,0 instead of trying to fix a X,Y,Z location on your object.

If this is indeed the case (and even if it is not) many many thanks to you for taking your time to school a noob. I think I get it now but the ramifications are that I will have to unlearn what I have learned and view the hierarchy of Houdini in a completely different way from the ground up. Exciting but damned inconvenient. Again, thank you for your time and energy helping me with this.

Barad-Dur
User Avatar
Member
537 posts
Joined: Dec. 2005
Offline
no problem, actually it doesn't hurt to have both ways at your disposal. I still prefer max for modeling because it's so easy to change transform modes, for rigging or procedural systems houdini's straitforwardness and organization of pivot points is necessary .. they become very difficult to keep track of in max when doing any complex animation system. … crowds, forget it.

In terms of what you said in the post …. you need to move the object's SHAPE … meaning verts / polygons etc to 0,0,0 of the “Local” space of the object. The object's transform in world space is controlled on the object level.

It actually works the exact same way in Max it's just that accessing it isn't so straitforeward and there are ancient modifiers like XForm that you need to use.
  • Quick Links