Thursday, May 29, 2014

Spring Solver Global Problem/Solution

A problem that we didn't test up till this point was that if our quadrupeds were rotating on their global control, at times the pole vectors of the legs seemed to drift away from their targets at the knee.  This could previously be compensated by animating the kneeAim but that was not an accurate portrayal of where the knee was pointing.

After a bit of research we found that Springsolvers inherit a hidden twist from their parents.  Before our solution was to directly pump the Y Rotation of the Global Control into the Twist control of the Spring IK. This prevented weird twisting while the character was perpendicular to the ground, but as soon as you start rotating the global control in other ways, like forward and around, innappropriate twist would once again be introduced.

To fix this problem, the spring solver chain must be outside of the local heirarchy and point constrained to the place it needs to be.  Keeping it in world space avoids a double transform, but behaves exactly the same.  The solver doesn't inherit rotation from what is above it.

This posed another problem with our front legs. The spring solver chain starts in the middle of the leg. I separated the top joint from the rest of the chain.  I put the SS chain in world space.  I placed a locator where the top of the SS chain was.  I made the locator a child of the original parent joint.  This has seemed to fix all the problems, and I will report any side effects this has.

Updated Character Models

Papa Ram by Susan Hatton on Sketchfab

Rambo by Susan Hatton on Sketchfab

Andre by Susan Hatton on Sketchfab

Wednesday, May 28, 2014

Reverse Lock Setup

Reverse Lock setup - For rememberin.

Point constrain IK to RL ankle
Point constrain bn ankle to RL ankle
Orient constrain bn ankle to RL ball
Orient constrain bn ball to RL toe

Saturday, March 29, 2014

Character Models

SketchFab is a great way to explore models without having to swap .obj files.
Left mouse to rotate, mouse wheel to zoom, right mouse to pan.

 

Friday, March 21, 2014

Connections for the Front Legs

Jacob mentioned a great option for our Ram's front legs.  Because the scapula is not an actual joint, but more of a shock absorber, we can macro in a different type of movement to give a nice subtle rotation to it.

Here is a screen of how we plugged in the Front Leg


Using a multiplyDivide node, we were able to take the value of the Z translation of the foot control and connect it to the Z rotation of the scapula joint.  This value in the MultDiv node can be easily adjusted to get the right amount of rotation in the scap as the foot is translating forward in front of him.

For our "all range mode" I orient constrained the scap to my shoulder control.  Now that the scapula had two influences affecting it's rotation, it automatically created a BlendNode to average the movement of both influences.  I was able to create an Avar that controls the value of this blend.  This avar has a value of 0 to 1, 0 being auto rotation is off, and 1 meaning the shoulder control has full reign over the rotation value of the scap.

The avar can be munged from 0 to 1 on purpose.  A switch will create jarring effects if keyframed, but a float value can blend, which will be better for the animators.

The reverse node that you see was for visual clarity in the controls.  I needed to reverse the 0 to 1 value that was being fed into the blend node so that when you look at the control "auto rotate" 0 means "off" and 1 means "on".

This setup is visually simple, but gives a great movement under the hood, and will be easy for the animators to use. Simplifying all four legs is really important, as too many controls and doo-dads can get confusing and frustrating really fast.  This will also allow for flexibility and good movement.

Friday, March 14, 2014

Ram Reference and Thoughts

As I was looking at reference of ram's walking I saw that their scapula moves a lot with every step. Our leg rigs are giving us beautiful movement, but the scapula is left out. The animator has to animate it separately. So
So I took the leg rig we have and plus'd it a little. We now have a tertiary joint chain in addition to our bind, primary, and secondary. This allows the scapula to move with the main ik control, but also allows us to rotate the scapula and humerus independently like we had before.

Leg squash without scapula or humerus rotated.



Rotation of scapula and humerus.


And here is some reference for your enjoyment. :) Rams are soooo cute!!! 






Update: The polevectors put up quite a fight, and after much heartache I had to trash this idea because in certain positions it become unpredictable. It moves beautifully on one plane, but once you go 3d it starts to get crazy. And then if you move the thorax weird stuff really starts to go down.

We still want the scapula movement to look super natural, so we are looking into other methods.