Elliptical rotation

Have you come up with a good Moho trick? Need help solving an animation problem? Come on in.

Moderators: Víctor Paredes, Belgarath, slowtiger

Genete
Posts: 3483
Joined: Tue Oct 17, 2006 3:27 pm
Location: España / Spain

Elliptical rotation

Post by Genete »

A three dimensional rotation of a point around and axis always produce an ellipse as its projection (ortogonal projection).
In most of cases the rotation axe is not parallel to the projection plane so the line that a rotating points describes is an ellipse.

There is a easy way to perform that movement using to traslation with rotation tools. As show before you can translate a bone (and anything attached) with the rotation of other bone using a bone mechanism. As well as the translation is limited to the action ratio of the mechanism is is posible to perform a combination of two perpendicular displacements with a shifted angle of rotation of 90º.

The file: http://amanoalzada.iespana.es/Mohostuff ... ation.anme
The example:http://amanoalzada.iespana.es/Mohostuff ... ation2.swf

In the example file you can also modify the vertical or horizontal axis of the ellipse with two extra bones. As well as one length modification produces a traslation you have to restore the traslation with the same bone. See the example.

It can be used to perform perfect projected rotations of points/shapes thru a non parallel axis.

I have to investigate more about how to position the cinematic chain at any desired angle of starting rotation point.

Hope this mess helps someone.

-Genete

PS: This tip/trick is dedicated to Vern :wink:
User avatar
Rasheed
Posts: 2008
Joined: Tue May 17, 2005 8:30 am
Location: The Netherlands

Post by Rasheed »

I always thought that, in general, the projection of a rotation around an axis produces an intersection between a plane and a semi-cone. This can either be a point, circle, ellipsis or parabola.
User avatar
heyvern
Posts: 7035
Joined: Fri Sep 02, 2005 4:49 am

Post by heyvern »

This is really really cool.

-vern
User avatar
heyvern
Posts: 7035
Joined: Fri Sep 02, 2005 4:49 am

Post by heyvern »

Dagnabbit!

Well, the child bone that translates from this setup can not be used in a constraint (that last bone that moves the mesh circle). That bone isn't "really" moving at all. It appears to move but since no translation values are applied to it a translation constraint using it as a target won't work.

The only option I can see is to create multiple setups that move individual bones in graduated values similar to the constraint motion. By scaling down a set of chains it translates the target child bone (the one that controls the mesh) at a smaller value than a larger set of bones.

Unfortunately if my earlier contraption seemed complex this would be 10 times as complex. I will keep playing with it.

It is cool though. ;)

-vern
User avatar
heyvern
Posts: 7035
Joined: Fri Sep 02, 2005 4:49 am

Post by heyvern »

HAHAAA!!!

Never mind!!!!!

I did it!!!

If I add a bunch of children bones to that chain but at different distances from the last bone I can change how far each translates!

This might actually work! This could be even EASIER than using constraints!!!!!!

It would use a lot less bones! I can have one bone "translation chain" and then add as many bones as needed to get the graduated motion I need!!!!

This is COOOOOOLLLLL!!!!

-vern
Genete
Posts: 3483
Joined: Tue Oct 17, 2006 3:27 pm
Location: España / Spain

Post by Genete »

I'm glad it works. Yesterday (or should I say today) I was very tired at night and needed to sleep.Today I will be out of home all the day. This night - evening I will post more ideas I have around this tip.
Regards.
Genete
Genete
Posts: 3483
Joined: Tue Oct 17, 2006 3:27 pm
Location: España / Spain

Post by Genete »

Rasheed wrote:I always thought that, in general, the projection of a rotation around an axis produces an intersection between a plane and a semi-cone. This can either be a point, circle, ellipsis or parabola.
The intersection of a plane with a cone is like you said. But the rotation of any point of the cone around its axis must be a 3D circle. It is in the ortogonal projection where it becomes a ellipse. A circle is a kind of ellipse at all.

But, If the projection plane intersects the circle rotation line its projection could be a parabola? I have to review my geometry knoledge...

One issue. Have you taken account that if you take a circle (in AS) and enlarge it in one axis (with the scale tool) it DO NOT becomes a ellipse? The curvature is not affected i beleive.

Regards
Genete
User avatar
heyvern
Posts: 7035
Joined: Fri Sep 02, 2005 4:49 am

Post by heyvern »

After further experimenting I may have jumped the gun in my enthusiasm.

The problem is that offsetting the bones causes the translation to be a curve as you described.

I would have to create long springy chains with many "links" to get what I need and then I still can't control the distance as well as a constraint.

I am continuing to play with this though. It still has some great potential.

-vern
User avatar
Rasheed
Posts: 2008
Joined: Tue May 17, 2005 8:30 am
Location: The Netherlands

Post by Rasheed »

Genete wrote:But, If the projection plane intersects the circle rotation line its projection could be a parabola? I have to review my geometry knoledge...
You wrote rotation, not circular rotation. Perpaps you're right, and I'm wrong. I was so tired after all that script writing and testing.
Genete
Posts: 3483
Joined: Tue Oct 17, 2006 3:27 pm
Location: España / Spain

Post by Genete »

Wel I've worked a little.
There is a sample here that is a very bad drawing but is enough.

http://amanoalzada.iespana.es/Mohostuff ... how-to.swf
http://amanoalzada.iespana.es/Mohostuff ... ow-to.anme

The trick: Every point (or group of points) have a polar corrdinates (alpha, radious). If you have the TOP projection (from now TOP view) of the head and the FRONT projection (from now FRONT view) of the head you can easely create a cinematic chain for every angle of the circle. Above the "face" there is a top projection of the "face" (the "face" is made with two eyes, a nose and a small mouth). You must have it to perform the "3D" rigging

The howto:
1) Select a rotation point in TOP view. Make a CROSS to ease center the starting point of the bones. You can do it by coordinates butthis way is quicker and result is similar.
2) Add abone starting in the CROSS center and goning to your target rotation point (for instance the eye). Bone A
3) Anotate length and angle of the new bone.
4) Divide its length by 2. If it was 0.30 make its length = 0.15.
5) Create a new bone linked to the other one and make it same length (0.15) and -2.0 times (negative) the angle. Bone B
6) Add another child bone from that last one. Angle and length does not matter. Bone C
7) Put the chain in a safe position using translate bone tool for the upper root bone of the chain.
8) Selet the last bone of the chain. The smaller ones in my example. Bone C
9) Add a new bone in FRONT view where the rigged points are (the eye). It will be linked to Bone C.
10) Make the constrains to:
Bone A -> Rotate as 1.0 times Rotation Master bone.
Bone B -> Rotate as -2.0 times Bone A
Bone C -> Rotate as 1.0 times Bone A
11) Repeat steps 2 to 10 for each point gorup of points to rotate.

Now it is time to go to bed. I'm so tired. Enjoy ;-)

PS The left eye is not fixed. The shape ordering is not done for faceing right only for faceing left. It could be fixed.
PS2: Is this compatible with vern compound? I dont know.
PS3: Do it worse the effort? ... There are a lot of bones...
User avatar
heyvern
Posts: 7035
Joined: Fri Sep 02, 2005 4:49 am

Post by heyvern »

Yeehaa!

Dagnabbit... I bet if I paid studied harder during math class I would understand this stuff better.

Thanks for this, it looks fantastic. I am going to play around with this. I like it.

Above and beyond the call of duty!

-vern
User avatar
heyvern
Posts: 7035
Joined: Fri Sep 02, 2005 4:49 am

Post by heyvern »

It should work with the compound bones, but actually this might be a completely separate technique or a hybrid.

Turning a head up/down and sideways will require two bones to move, which isn't that big a deal really.

I see the rotation controlling side to side and a constraint translation like my previous example doing the up down. The up down would be the "compound" bones in the same spot as the side to side but with constraints to the up down bone control. Basically those bones in the positions for the eyes nose chin etc... would be duplicated. Just two bones instead of 3 like mine is.

Sounds confusing but I am doing a simple hybrid rig to test out my theory.

In my opinion the number of bones is irrelevant. 50 or 150, It is the final control and ease of rigging new characters that is important to me.

Genete I hope this is fun for you! It is for me. What you've done with this idea is really cool. Just the idea of those "bone springs" is really amazing.

-vern
User avatar
heyvern
Posts: 7035
Joined: Fri Sep 02, 2005 4:49 am

Post by heyvern »

This is showing some potential.

I am not using that whole "math" thing ;). I'm just sort of doing it by "eye". Scaling the "springs" on frame 0 with an onion skin showing a rotation of frame 1 for feedback.

The cool thing is that certain "springs" can be used in more than place. Spots on the face are on the same "plane". So by adding a child bone to one of those spring bones I can put it anywhere and reuse that control.

I can also "lock" or reduce the effect by putting a duplicate bone on top that doesn't move or another child from another control and "blend" the movement nicely. This is great for "cheeks" that become the back of the head/jaw as it turns. The cheeks "puff" out nicely on one side as the head turns. Then stay back properly on the other.

-vern
Genete
Posts: 3483
Joined: Tue Oct 17, 2006 3:27 pm
Location: España / Spain

Post by Genete »

Giving to you that "math theory" is like give a chisel and a hammer to Micheangelo... AS is the Marble rock...
:wink:
AS is the Marble rock...
So you can find the Lost Marble... :lol:

... More ideas tonight ...

Genete
Genete
Posts: 3483
Joined: Tue Oct 17, 2006 3:27 pm
Location: España / Spain

Post by Genete »

Hello again.
I've tried to make a rotation in X axis plus the already one rotation to Y axis. It does not work. When you rotate thru the X axis the projected view on RIGHT side (remember FRONT and TOP views) changes also, so the cinematic chain needed to rotate in that Y axis must change also, and it changes thru a complicated projection system that is beyond the scope of this experiment. It should be scritped or be a new feature request.

I will try the last idea and tell you if it works.

I will try to link two cinematics chains vertical and horizontal to see what happen. :shock: :shock: :shock:

Cheers!
Post Reply