Jump to content
  • 1
Sign in to follow this  
Dana Basinger

Maya - Bow rigging, cluster problems

Question

Hello all! This question will be long, what with all of the large images I am posting along with it, to try to explain it. It is a confusing problem to explain, so bear with me: I'll try not to confuse you as much as I have been confusing myself with this one:

I have rigged up the bow in the Noa and Ulysse props library.

As soon as I can get it working, it can be used as a prop in animation with them. However, I am stuck on rigging the string part of the bow, because I have a cluster of CVs, on the string part of the bow, which jumps way out of whack when I try to move the bow. The cluster is parented to a NURBs circle, which is driven by a NURBS arrow, in the translate Z direction. This is to pull the string, on the  bow, back and forth, in the Z direction, and have the entire bow react to the pulling back of the arrow, like so:

RiggedBowWConstraints1.thumb.png.58e7aa0052308a29fc4fa32caeccfffa.png

 

Now,  I will "pull" back the arrow, in the Z direction:

RiggedBowWConstraints2.png.e7dde2ddf38b9e3326f8d1db8dec8993.png

 

Then, when the arrow "let's go" of the string, (but not really, because the arrow is the main object control to animate the bow's string with), the bow reacts to the Z translation of the arrow,  in the positive direction as well:

RiggedBowWConstraints3.thumb.png.6014f9c0c5b52bc180d9fa86a7b858e3.png

 

Here is where it gets tricky: When I move the bow, the arrow either has to stay put, in it's current place, or if I parent the arrow to the bow, then the string keeps acting very strange, flying off every which way, seemingly reacting to the arrow. I can't move the bow and the arrow together, without the string going nuts.

Here, as you can see: the bow's string is fine, as long as the arrow remains in it's current position. I can move the bow as long as I leave the arrow behind:

RiggedBowWConstraints4.thumb.png.a048edc23686f76a93831c3e6572a918.png
 

I select the arrow to see if the bow is only remaining stable because the arrow's translations are all still at zero. They remain at zero because the arrow has not moved:

RiggedBowWConstraints5.thumb.png.eda60e9981e7184d78ac4bd3f0de503e.png

If I move the bow but not the arrow, then I can still use the arrow to control the bow's response, to being "pulled" back by the arrow, in the Z direction:

RiggedBowWConstraints6.thumb.png.ea6a373f1a37e19d47a94e21655ca58d.png

 

So far, so good. But if I parent the string driver arrow to the bow, then I suddenly get strange reactions, from the bow's string cluster, when I try to move the bow and it's driver arrow together:

RiggedBowWConstraints7.png.33b2bf80e804b54914580b6c5bf7e7b5.png

 

I can not move the bow, if the driver arrow is connected, anywhere in it's hierarchy.

RiggedBowWConstraints8.png.39586fb87aa15bcf8d2295cff7f5b6be.png

 

Anyway,  to summarize: I have a rigged bow that responds to the pulling back, of the driver arrow, in the Z direction, exactly the way I want it to. However, in my animated scene, I'd like to be able to move the driver arrow around WITH the bow, without the string reacting so funky to that.

I have tried a process of elimination, to figure out what might be causing the string to respond to the driver arrow, even though the arrow remains all at zero, in it's translation, when parented to the bow's main control. I have tried to eliminate the possibility of constraints causing this problem, by deleting all of the constraints in the hierarchy and simply parenting everything instead. That did not work. I have even tried deleting the driver keys, from the NURBs arrow, and even THAT did not work! It's strange; the cluster is reacting to being driven, but even deleting the driven keys did not save the CVs from jumping out of their spot when the bow and NURBs arrow get moved together.

The only way to prevent the bow's string from jumping out and deforming was to leave the NURBs arrow unparented and separate from the bow, but that does not make for a very handy rig at all. Any thoughts are greatly appreciated! Thanks!

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2 days later, and still exploring:

I am adding some more visuals below to show my process of elimination; (This is my attempt to narrow down what might be causing the CVs to jump out of place, when the bow is moved, and the arrow is parented to the bow, by deleting those factors I believed were probably the culprit).

I have 2 Maya files. The first Maya file is where the issue first sprang up. That is called "BowForRigging". This maya file has a lot of parent constraints, in the hierarchy of the bow. The constrained objects would also show numbers in the Y and Z directions, (not stay at zero), when moved along with the bow, so I deleted all of the constraints in the hierarchy and saved that bow rig to a new maya file called "BowRigFix".

I was way too optimistic when I named it that.

BowForRigAndBowRigFix.png.8b549538224f3b9f8495d65afe5ad92c.png

 

In BowRIgFix, there are NO constraints at all. Every constraint was deleted, and then every object simply parented, so as to keep the translation of the parented object at zero when the bow was moved. I applied "Freeze Transformations" to every parented object in the bow's hierarchy, to keep the parented object translations all at zero when the bow is moved.

 

NoConstraintsPic1.png.863f10c722788fbfa07bd13d075f8fcb.png

 

I checked to make sure the parented objects kept translations at zero, even while the parent object, which is the bow, was moved around:

 

NoConstraintsPic2.thumb.png.1d16cf9c6e86347af4fbaecfdabc8de5.png

 

The NURBs arrow is now parented to the bow's main control. The Arrow's Z translation remains at zero, yet the cluster it drives still flies off in the opposite direction, just because the arrow moved, when it's parent; the bow, was moved.

 

NoConstraintPic3.thumb.png.e7369bd9400a2d15075c2086d7eb0d6e.png

 

I tried deleting the driver keys for the Bow's string. To do this, I opened up the graph editor, selected all the keys, and hit "delete". Even after those keys are deleted, the CVs, on the bow's sling, still respond to the movement of the NURBs arrow. The arrow is only parented to the bow. It shows no translation values, when the bow is moved.

I went down the tree, selecting each parent to make sure the translation values for each parented object remain at zero, even though the top parent (Main Bow Ctrl) was moved.

 

NoConstraintsPic4.thumb.png.562d7601e0889446041133b90713e37a.png

 

Anyway, I know this is confusing and perhaps I'll just have to scrap this thing and start over; pray over it since it's clearly possessed, light a candle and make a wish, and/or just take a break for the coming July 4rth week. I'll come back to it later with fresh eyes and new ideas for how to tinker with it. I know there is something I am missing.

I will continue to experiment with it later, and if/when I finally figure out this fix, I will post the update here!

 

Edited by Dana Basinger

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 1

It sounds to me like you are getting double transformation, which is very common with clusters. I would recommend un-parenting the cluster from the control and create a zero group for it(So that the cluster has zeroed out transforms) Parent that zero group somewhere where it will not be transformed. Then do a direct connection from the Arrow control to the cluster handle. If that does not work, I would be happy to look at the file and see whats going on. 

Share this post


Link to post
Share on other sites
  • 1

Dana,

With rigging in maya there are often a million ways to skin a cat.. ( thats a little joke there). But anyway, Although im not super clear on what the end-use is for this bow prop rig from an animation standpoint, there are acouple of things that might be worth mentioning if you didnt already know about them to do with clusters and double deformations.

Not sure if this will help, and forgive me if you have already explored these:

---

Setting the cluster relative to the parent transform

Using the Relative attribute, you can set the cluster deformation to be active only when the direct parent of the cluster handle is transformed. This lets you create effects where a hierarchy of parent objects do not all affect the cluster deformation.

For example, if you parent the cluster handle to a wrist joint and turn on its Relative attribute, you can rotate the shoulder without the cluster affecting the skin around the wrist, even though the wrist’s position changes. When you move the wrist itself, the cluster deforms the geometry as desired.

-----

Also you miught try playing around with the "inheritTransform" attribute:

"dagNode.inheritTransform "

Every dag-node in maya comes with this attribute. This means you can arrange transforms in a hierarchy without getting the effects of the transformations of the hierarchy above a node. this lets you use parenting to organize a hierarchy while you transform child objects through other means.  playing around with this might allow you to arrive at a solution athat meet the goals of rig.

----

When making a rig like this as you probably already know... its important to work closely with an animator and define the goals for how they want to be able to use the prop.. and being that there are a million ways to arrive a viable solution with maya rigging.. experimentation is the way to go.. but also close collaboration with that animator... i tend to figure out rigs like this the same way you are.. trial and error. and being that an animator may not always be sitting next to me,  i also have tried to practicve actually animating allot myself.. so that my thinking about rig creation is always being distilled to the simplest most directly useful form.  its good to be able to eat your own dogfood so to speak!.

If you are still stuck, like Jerome, I would be more than willing to take a look at your rig, see what i can come up with, and then walk you  through the thinking.

cheers!

-Mark Therrell

Share this post


Link to post
Share on other sites
  • 0

Thanks, you guys!

BOTH your answers helped me out a lot, and I'm happy to say: it is working now!

Right after the July 4rth vacation, I got called away to another city for 3 more weeks of freelance work, and consequently, I was far away from the Nimble platform, for much longer than I wanted to be. But I was so happy to see your answers, here, when I got back. First, I tried Jarom's suggestion: the zero group for the cluster - unparented it and separated it from everything having to do with the bow's main control or string control; I made sure that only the arrow could have any impact on the cluster. That certainly helped it to not fly off when the arrow was indirectly moved, along with the bow's main control, and then I found how to set the cluster relative to the parent transform, as Mark suggested.

I checked the "Relative" box, in the cluster's attribute editor.

AnswerPart1Best.PNG.3354c0fc81664dfa731adbf927436bf2.PNG

It is working perfectly now!

At least, this was what I envisioned it to work like. I know that, as a prop for animation, it might still be a bit clunky.

The wrist controls of the character who wields the bow would need to be temporarily parent-constrained to both the bow's main control, and the opposite wrist to the cluster, itself, in order for the character to look like he/she is shooting arrows, using this bow.

Quite honestly, I have not tried actually animating with it yet. I'll let you all know how THAT goes!

But I'm just happy that now I can move the bow's main control around, and the arrow which drives the string will follow the bow's main control, both in translation and rotation, but will not drive the string in any direction, until it is singled out and selected, by itself, and moved specifically in the Z direction; (click below to see what I mean):

Thanks so much you guys!

I could not have completely fixed it without both of your answers!

Edited by Dana Basinger

Share this post


Link to post
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.

Guest
Answer this question...

×   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.

Sign in to follow this  

×
×
  • Create New...