Jump to content

Point Constraints in Houdini?


Recommended Posts

waz up

I am starting to rig my character and was wondering if Houdini has something similiar to Maya' Point Constraints, Aim Constraints, and Orient Constraints. Basically what these constraints do is you can take one object and constrane it to another object, very useful for character rigging. Here is an example of an Aim constriant.

If you take a null object and aim constrian a sphere to it with an iris texture applied , you basically can move the null object around and the iris of the eye would always be looking at it.

The point and orient constraints are a bit different. If a box is point constrained to a sphere, where ever the sphere goes the box follows. And if the box were orient constrained to the sphere, when the sphere rotates the box would rotate the same amount of degrees

If Houdini doesn't half these constraints built into it is there a way to simulate these constraints using something like chops or in OBJ or SOPs

Thanx

Link to comment
Share on other sites

The orient constraint can be done fairly easily using the "Look At" state - which modifies the "lookat" in the object transforms. Other than this, you're basically in expression-land or, more appropriately, CHOPland. Use the Object CHOP and perform some operation there and export the override constraints back over the original. I haven't tried it much but I get a LOT of infinite recursion errors, whether I set the export to "Reference and Channel names" or "Target and Channel Names". Surely I can't be so wrong? One way round should work, yes?

I believe Houdini could benefit hugely from a viewport Constraint operation which would create and export and maintain these CHOPs for you. But it doesn't mean you can't do it now, it's just a little more nittygritty and manual.

Tell us if you have any luck!

Jason

Link to comment
Share on other sites

Jason- Thank you for the info. It sounds like there is a way to achieve constraints in Houdini, cool I will play around with the CHOPs method. One other question though, in Maya you can have a single object constrainted to multiple objects. When you do this in Maya a weighting system is built between the constained object and the multiple constraining objects. You can set this weighting to a percentage, like 100 percent goes to one constrainer or you could set the weighting to 50 percent sharing the weighting, giving half of the weighting to one constrainer and the other half to the other one. In this set up the constrained object would end up half way between the two constraning objects.

Here is what I am trying to do:

I am rigging the wing of an eagle. I am using a twist effector for the wing and some IK chains. Anyways I want my twist effector to be constrained between multiple null objects. The first null object would be placed at the tip of the wing and second null placed near the side of the eagle and the other near and towards the back. The idea is that I can change the weighting between all the nulls. If null one has 100 percent weighting the wing would be in the fully extended position, if null 2 had the full weight the wing would be in the tucked at the side position and so on. So for animating all i have to do is key the weighting and the wing would move accordingly. So, is there a way to do this type of weighting setup using CHOPs.

Mahalo

Ben

Link to comment
Share on other sites

My first instinct was to use the Blend Object which will allow you to create a third Null at any bias point between your other 2 nulls. 100% constraining to this could be done then as before. Blending 2 Nulls positions in CHOPs is easy too - 2 Object CHOPs, and then a Math CHOP - Combine: Average and export that. Blending orientations in CHOPs takes a little more care because a direct average is not the right way to go. You should convert to quaternion and blend in spherical space instead. I think the Blend Op in Objects does this nicely for you as it is.

In fact, there are several pretty handy functions in that Blend Op. Check it out - it may help you. Even if you parent your effectors to some blends, perhaps?

Link to comment
Share on other sites

Right on Jason thanks again,

I am still very new to Houdini and especially to CHOPs. I was wondering what I would be exporting to CHOPs, which channel that is for the rig. In Maya I would use a locator (a null object) and have my IK controlled by it, so the locator's translate and rotate channels are in essence what you are keying for animation . But in Houdini the information for the IK solver is already in CHOPs.

So am I exporting from CHOPs (the IK solver) to the null object then to a channel in the Blend SOP and then back to CHOPs to do the math calculations and then export back to the rig somehow. As you probably can figure I am a little lost here. Could you perhaps provide a hip file, very basic just so I could see what channel of the null; ik solver and blend sop is being imported and exported into CHOPs, if not thats cool, in the mean time I am going to try and figure this one out, your technique makes sense to me just not sure how to implement it.

Link to comment
Share on other sites

For your wings, since you simply want to do a point constraint, this is all easily done using the blend object without any chops. Set up your 3 nulls like you described, pipe them into a blend object. Parent the twist affector as a child of your blend object. Remove any existing translate/rotates/pre-transform your have on your twist affector. Now key the weight parameters in the blend object.

Link to comment
Share on other sites

I'll see what I can do - if I get a moment today. Perhaps edward can tell me if I'm doing something wrong with exporting a single Object CHOP - why I'm getting infinite recursion errors? Is anyone else having this trouble? It seems like it should work fine since the CHOPs override is the last thing to happen in the order of execution, right?

B)

It might be a good idea for SESI to provide a quick sample file with some constraint rigs in them. Between the Blend Op and CHOPs, I'm sure you can get some incredibly useful constraints going.

Link to comment
Share on other sites

Thrasher,

Look for file I posted in the Character forum. It has the BlendOP working as a point constraint. You can do it with just two inputs for the BlendOP. You just have to be careful about where to input the rotations so your BlendOp follows your character correctly.

I've been doing this kind of thing for a while now setting up legs etc. It helps alot. You can do it as well in Chops but the workflow is not as nice. I bet you it is faster to cook the Chop version and not the BlendOP. I am a feeling the BlendOP is heavier to cook, but I'm guessing.

Let me know if you can't find the file.

-k

Link to comment
Share on other sites

thekenny- I downloaded a file from the character forum that you posted, it was the rigged character, is this the one you were talking about. I opened up the scene file and saw that you used a Blend OBJ for the rig but I don't understand how it is being used as a constraint, sorry for my ignorance, any help would be apprecaited

Ben

Link to comment
Share on other sites

Okay, hopefully this will help.

I'll describe the foot attaching to the leg. Typically you don't want the ankle to inherit rotations from the leg. So you need to do a point constraint so the foot bone follows the position of the leg and stays attached at the bottom of the last leg bone.

Take a null and make it a child of the last leg bone. Make sure the null isn't keeping position when parenting. With that off, all the transformation on the null are relative of the leg bone. Copy the bone's length value and paste it into the tz of the null. Make that copy or reference, which ever you choose to be negative. This will ensure the null is always at the end of the bone.

Now make a BlendOP a child of that null. Again make sure it is not keeping position when parenting. It will snap to the null's location. This BlendOP will be the parent of the foot bone chain. Take your Master null for your character, and input it into the BlendOP it will be the second parent.

The big trick is to go into the Parents folder of the BlendOP and do the following. Set parent 1 to be only tx ty tz, set parent 2 to be only rx ry rz sx sy sz. This will give you a point constraint for the foot to the last leg bone. Typically your Master Null will have any of the huge rotations/scales which you will apply to the character and it will keep the foot bone chain doing what it needs to do so it can follow along.

You can do this for anything... hips, backs, shoulders, light rigs etc.

Hope that helps.

-k

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...