LenseOnLife Posted November 27, 2015 Posted November 27, 2015 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% Now, rotate the control bone by 45 and all bones seem to be behaving. 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. 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. 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 Oliver Quote
LenseOnLife Posted November 27, 2015 Author Posted November 27, 2015 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. Regards, Oliver Quote
Admin Rodney Posted November 27, 2015 Admin Posted November 27, 2015 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. Quote
Admin Rodney Posted November 27, 2015 Admin Posted November 27, 2015 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. Quote
Hash Fellow robcat2075 Posted November 27, 2015 Hash Fellow Posted November 27, 2015 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. Quote
LenseOnLife Posted November 27, 2015 Author Posted November 27, 2015 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? And here are the rotations in 45 degree increments 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 Quote
nemyax Posted November 27, 2015 Posted November 27, 2015 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. Quote
Hash Fellow robcat2075 Posted November 27, 2015 Hash Fellow Posted November 27, 2015 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. Quote
LenseOnLife Posted November 28, 2015 Author Posted November 28, 2015 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 Quote
Hash Fellow robcat2075 Posted November 28, 2015 Hash Fellow Posted November 28, 2015 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. Quote
Hash Fellow robcat2075 Posted November 29, 2015 Hash Fellow Posted November 29, 2015 Good Morning All from a REALLY wet and windy mountain in SW Ireland, Have you ever seen "Man of Aran"? Quote
Recommended Posts
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.