sprockets The Snowman is coming! Realistic head model by Dan Skelton Vintage character and mo-cap animation by Joe Williamsen Character animation exercise by Steve Shelton an Animated Puppet Parody by Mark R. Largent Sprite Explosion Effect with PRJ included from johnL3D New Radiosity render of 2004 animation with PRJ. Will Sutton's TAR knocks some heads!
sprockets
Recent Posts | Unread Content
Jump to content
Hash, Inc. - Animation:Master

Bone Constraints Enforcement Less 50%


LenseOnLife

Recommended Posts

Hi,

 

I've been working my way slowly through Barry's great Video Tutorials and then trying them out in practice and have come across something that I don't understand. It is to do with constraints where the enforecement is less than 50%

 

Rotate-00 shows the 'home position'. All 4 bones are pointing straight up. The 'control bone' is on the left and the other three bones are all constrained to orient the same as the control bone as follows:

 

Going from left to right, the first bone is enforced with 100%, the next bone is enforced 50% and the last bone on the right is enforced by 40%

 

Rotate - 00.jpg

 

Now, rotate the control bone by 45 and all bones seem to be behaving.

 

Rotation 45.jpg

 

On now to a 90 degree rotation and again everything seems OK. The last bone on the right with a 40% enforcement has rotated slightly less than its neighbour with a 50% enforcement as expected which has rotated to about 45 degrees.

 

Rotation 90.jpg

 

Now when we go above the 90 degree rotation we see that the last bone with 40% enforcement has started to go in reverse (this becomes more pronounced as the enforcement decreases towards 0%). The other bones seem to behaving themselves as expected.

 

Rotation 135.jpg

 

Is there some limit that I missed or am I misunderstanding the whole concept?

 

Thanks for reading and putting up with this very confused newbie :blush:

 

Oliver

Link to comment
Share on other sites

  • Replies 10
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

Hi, Just noticed a mistake in my explanation and images.

 

For the 40% enforcement at 135 degrees rotation is where it stops following the control bone in a positive direction and STARTS reversing.

 

The following image shows the relative rotations near 180 degrees where you can see that the 40% enforcement has almost returned to its zero position while the 50% is almost at 90 degrees.

 

Rotation 180.jpg

 

Regards,

 

Oliver

Link to comment
Share on other sites

  • Admin

My first thought is that where it comes to rotation is that you may need to change the driver to Euler rotation to ensure smooth rotation throughout the enforcement.

Otherwise you might be seeing a bit of gimbal lock in that rotation.

 

In other words what you might be seeing is 40% of one axis of rotation but 50% of another... or some mid term blend of both.

 

 

Added: I have seen some cases where I need to save/reopen a file before rotations appear as I think I've edited them.

This includes seeing the channel spline representations of rotations which don't appear until the file is refreshed.

Link to comment
Share on other sites

  • Admin

I should have asked...

You might have stated it and I just missed it...

What type of constraint is this? Orient Like?

 

 

Also, make sure your interpolation for enforcement isn't set to Hold or something that is driving the settings to someplace you don't want.

Interp.png

Link to comment
Share on other sites

  • Hash Fellow

I believe there is some mathematical reason for this based on the angles being regarded as positions on a circle rather than as an abstract, continuously incrementing value and... the desire (in character rigging) for that follower bone to return to 0° rotation when the target bone is back at 0° (even if the target bone has done some crazy rotation to get there)

 

Consider that if we are a point at 0° on a circle and the target bone is rotating away from us, it is also rotating towards us because it is traveling a circle and will eventually arrive back where we are, at 0°.

 

If we are following that bone at anything less than 100% (say 40%) there comes some point on the circle of travel when we need to stop following the bone and head back across 0° so we can start being our partial percentage of rotation... as seen on the other side.

 

And when the target returns to 0°, we want to be there also, because in our character rigging world, 40% of 0° should be 0° rather than 40% of 360°

 

That is my attempt to visually understand the workings of this without understanding the math of it.

Link to comment
Share on other sites

Hi,

 

I'm inclined to agree that it might be something to do with the maths but can't quite work out what.

 

I set up another model with bones - the left hand is the control bone and all others are oriented like it but enforced at 90%, 80% .... down to 10%

 

Results are interesting - there is definitely a change in behaviour when we go below 50% and at the 180 degrees the 50% bone switches plane by 90 degrees - which leads me to believe that using 50% or lower could be problematic.

 

Rodney - what exactly did you mean by making sure that the enforcement is not set to hold. How did you get that menu showing?

Rotation Bone90Enforcement.jpg

 

And here are the rotations in 45 degree increments

 

Rorate 000.jpg

Rotate 045.jpg

Rotate 090.jpg

Rotate 135.jpg

Rotate 180.jpg

Rotate 090Minus.jpg

Rotate 045Minus.jpg

 

This is more of a curiosity at this stage as I don't have to use a constraint below 50% - but would like to know of limitations now rather than later when I am using them 'for real'.

 

cheers,

 

Oliver

 

 

Rotate 135Minus.jpg

Link to comment
Share on other sites

The issue is probably due to the use of quaternions in the constraint algorithm. A quaternion does not express a rotation beyond 180 degrees. At 100%, you get the expected behaviour, but at lower values you start to see snapping when the target bone's rotation exceeds 180 degrees. However, that's a fact of life with quaternions, and it must be very difficult to avoid with all the slerping going on.

What's worse is that inconsistencies appear at partial enforcement, like your constrained bone snapping way too early. This looks like a bug.

Link to comment
Share on other sites

  • Hash Fellow

If your enforcement is less that 50% the bone will reverse to cross back across the 0°

If your enforcement is greater than 50% the bone will advance to meet the target bone at 180° and pass it to continue on the other side.

 

If you have a situation where you need an Orient Like to rigorously behave at a certain percentage over any angle, no matter how large, then an expression is probably a better choice. Bring the case to the forum and we can investigate that.

 

But those situations rarely arise in rigging characters as there are almost no cases where a character bone will rotate more than 180°. There are no bones in a real human that do that.

 

That reality probably informs why A:M constraints have been made to work the way they do.

Link to comment
Share on other sites

Good Morning All from a REALLY wet and windy mountain in SW Ireland,

 

As I mentioned at the outset, I am just experimenting now with AM and trying to become proficient and understand what the limitations are so as to avoid those dark corners that tend to catch me unawares. It just takes time to get things straight and understand the AM way of doing things. Been using MovieStorm which has a very shallow learning curve and, while AM takes more learning, it does seem to have much greater facilities and should be worth the effort in sticking to the learning process.

 

So, thanks for all that great background information.

 

Cheers,

 

Oliver

Link to comment
Share on other sites

  • Hash Fellow

Here is what i recall is the conventional work-around if you need one bone to partially, less than 50%, orient like another bone as it turns up to 180°

 

In the PRJ is a model "Orient Tester" with an action, "Action 1 Test Constraints

 

OrientLikeDemo.prj

 

Bone 1 is the target bone

Bone 2 is 25% Orient Liked to Bone 1. It will 25% follow Bone 1 until Bone 1 reaches 90°, then begin reversing

 

Bone 3 is 50% Orient Liked to Bone 1. It will 50% follow Bone 1 until Bone 1 reaches 180°, then flip

 

Bone 4 is 50% Orient Liked to Bone 3. Because it is doing 50% of Bone 3, which is doing 50% of Bone 1, it is also doing 25% of what Bone 1 does , all the way up to 180° of Bone 1 rotation.

 

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