# Foot acting odd from twisting hip 180 degrees

• @shadowofabyss with Leg IK on, you'll need to perform Y-rotations on the figure's body, which will turn the hip and everything parented to the hip, except the IK targets (feet), as well as the feet. When leg IK is enabled, the translation dials of the feet actors become visible, allowing independent, keyframe positioning of the feet, and permitting their independent rotation with respect to the rest of the figure's hierarchy.

To illustrate, I imagine the following scenario (each line is a subsequent keyframe offset several frames to allow for interpolation:
Figure starts off facing away from the camera.
Lift Right Foot and Y-rotate halfway to the limit.
Place the right foot back on the ground with the y-rotation at the limit. Include a small y-rotation of the figure's hip to destress the right leg.
Lift Left Foot and bring halfway to parallel with the right foot.
Place left foot on ground parallel to right foot. Y-rotate the hip to parallel the feet.
(repeat the last 4 steps until the figure is facing forward. If the figure is very flexible, this could just be one iteration.)

Note the ankle overtwist.

The problem with that scenario (and I've just tested it to confirm), is that the IKParent of the feet is the BODY actor, so too much differential Y-rotation between the feet and the BODY will introduce unsightly twisting effects at the ankle as you increase the foot rotations during the turn. The initial answer to this is to turn the BODY instead of the hip, but that means the feet will go for a ride as the BODY turns.

An alternative method would be to limit each turn step (or pair of steps, i.e. both feet taking one step) to a point well within the threshold of ankle overtwist, by using the hip up to, say 90 degrees of twist, and then transferring the hip and feet rotations to the BODY. Now this is problematic to do by hand, unless you have some way (perhaps a dummy posing figure that's hidden for renders) to record the feet and hip positions before you turn the BODY.

I had written a Python script long ago to transfer hip x and z translations and y rotation to the BODY actor, so that placing a figure in relation to furniture or architectural props was simply a matter of transferring translations and y rotation to the BODY actor. I didn't, until just now, consider that the script should also deal with IK target actors that parent to the BODY, and preserve their relative attitudes and positions. I'm going to look into that now, but it may take some time to debug, since I don't normally make a lot of use of IK.

• So the question becomes how do you want to turn the figure around? In a sword form I do I start with my feet facing forward and I can twist my hips but it can only go so far before the feet have to twist also. So you have to break your turn into several smaller segments and pose the Feet IK targets such that they don't over twist the legs. So to do a 180 turn either you move a leg forward or backwards and then twist your feet and hips. As an example move your right foot behind your left foot and then start to twist your feet and hips at the same time. Once your body is turned 180 then move your foot back (right) or forward (left) to put you back to a standing position.

• @shadowofabyss since I was playing with this IK-enabled posing, to be able to give you accurate answers, it's become evident that by far the best way to manipulate the feet and hip/BODY of the figure, is to use the direct manipulation tool.
Especially with IK enabled, the rotation parameter dials (apart from the twist y-axis) can be confusing as to what axis the IK foot will rotate on. Using direct manipulation, you can predict which way the foot will rotate, and the subsequent rotations are then assigned to the parameter dials, accordingly. (Note the over-twisted ankle in the image above, due to the body being turned by hip y-rotations, rather than BODY y-rot.)

Here are some screen shots of the animation graphs for the hip (rather than BODY) y-rotated figure:
I have added some constant interpolation keyframes to avoid overshoot/bounce in the interpolation.

I made arbitrary decisions about what angles the figure would rotate through for each step-pair (90 degrees) and the foot height for each step was determined by dragging the foot up until it looked about right, then using that y-tran setting for each of the other, subsequent steps for both feet. The left foot follows the same pattern, but offset, so it doesn't start until the right foot is back on the ground (obviously - unless you want the figure to look like it's doing skiing jump turns).

Now, this was all done with hip rotations. Unfortunately, that allows the BODY-foot y-rotation differences to exceed the point where the Inverse Kinematic calculations will converge to the zero-centric angle range, hence the overtwisted ankles. The solution to this, as I stated previously, since the parent of the IK-enabled feet is the BODY actor, is to transfer the hip y-rotations to the BODY actor. But, since the IK feet are parented to the BODY, they will also rotate with the BODY, meaning that to remain stationary on the ground, the feet would have to undergo continuous translation and rotation to counteract the BODY rotation, which is stupidly difficult (without scripting support) to achieve manually. In which case, my suggestion becomes to perform a single two-step sequence using hip rotation, and then, at the point where both feet are back on the ground, perform an instantaneous transfer of the hip rotation and feet positions to the BODY actor.

This would have the advantage that every pair of steps will have exactly the same keyframes for feet translation and rotation and hip rotation, while the BODY will merely take 4 x 90 degree step rotations for a full 360 degree turnaround. Some extra keyframes will be required to isolate the interpolation from spline breaks at the beginning & end of each step. I will work up a demo and post it shortly (I hope).

• @shadowofabyss here's the final iteration from my investigation. I'll post the relevant graphs below.

The important thing to start with here, was the BODY y-rotation. I arbitrarily decided that the figure would take 20 frames to turn 90 degrees, and that each foot would take one step (right then left) within each 90 degree turn. So, starting with the BODY, after every 20 frames, I added (or subtracted, for clockwise rotation) another 90 degrees of turn, using constant interpolation.
The useful thing about this method, is that the hip and feet positions will be identical at the first frame of each pair of steps, i.e. identical to the default standing position parameters with foot IK turned on. Going back one frame from that transition of the BODY rotation should only show small movements of the hip and feet (the right foot goes to it's final position half way through that group of frames).
Here are the hip parameters:
Note that, apart from the linear hip y-rotation, the x-rotate, x-tran & z-tran adjustments are ordinary splines with spline breaks and extra keyframes to keep the smooth transition and minimise any jerking or major position change of the head which would be noticeable in animation.
The feet get similar treatment, with each foot raised and lowered (y-tran) back to the ground over 10 frames then remaining constant. Right foot parameters:

Whereas the left foot remains in position for the first 10 frames of each group, then moves to its final position:

I know this will be somewhat confusing, so please don't hesitate to ask here, and I'll attempt to clarify anything that I've left out. :-)

Oh, my units are metres.

• @anomalaus im still confused by all this, but still learning but when you fully turn the model around would you continue to animate with hip and feet at those rotations or reset the models dial parameters and rotate the body to face the same way to not increase twist of the feets limits?

• And I understand from the graph its resetting the hips and both foots back to its original dial parameter to let you continuously turn and cancel out the extreme over twist, im just having a hard time making that happen, you might have to dumb it down some for me xD. But im still reading to try and comprehend and understand what your saying

• @shadowofabyss the useful part of such a body-relative posing scheme is that for each quadrant the figure turns through, the hip and feet keyframes are identical, so they can be selected from the first through 20th frame in the Animation Palette and simply copied to each subsequent block of 20 frames. There's no need to turn any of the IK off or on. The hardest part of this is, indeed, getting the transition from one block to the next to be seamless.

Since the first frame of each block will be identical, apart from the increased BODY y-rotation, the best way to start is to set BODY, hip and foot keyframes at the start of each block, so you know they're identical, then, at the last keyframe of the first block, you can focus on making the transition to the next block as smooth as possible.

If you switch to the orthogonal (Front, Back, Left, Right) cameras at the first frame of each block, you will see the figure face on. Notice that the hip is centred on the background grid. Change to the previous frame, and starting with the hip, make the twist and translation adjustments to minimise the difference from the next frame (with a different BODY orientation). Once the hip and head appear stable, and don't exhibit sharp changes between those frames, go back through the previous frames ensuring that the motion is smooth. Repeat the process with the feet, then the last thing to do is lift the foot at the middle of each step.

It can take quite a bit of experimentation to get the interpolation splines and spline breaks to give the desired result with the minimum number of keyframes. Given that you need spline breaks at the beginning and end of each block for every parameter, you're often required to add an additional spline keyframe after the transition to set the curve tangents appropriately.

• @shadowofabyss once you've done a full 360 degree rotation, there's no need to keep incrementing the BODY y-rotation, you could just have it go back to zero. Each block of hip and feet keyframes can be identical between the different BODY attitudes. If you wanted to turn the other direction, you can just negate all of the rotations and translations. You might also want to swap which foot steps first, so the figure doesn't tread on its own feet.

• @anomalaus what does selection sync do on the graph editor and do i need it on?

• @anomalaus whenever i try rotating the model my x and y Trans dont move at all, unless i have to manually move them which each frame?

@anomalaus what does selection sync do on the graph editor and do i need it on?

It means the graph will update itself to show whatever dial you last selected. I generally have sync on because it minimises the number of graph windows you need to have cluttering up your workspace; but it's up to you!

• @shadowofabyss that's right, but you don't need to keyframe every frame, just the start and end frames of each block, and maybe one more adjacent frame to each spline-break, to make sure the spline interpolation doesn't overshoot.

• @anomalaus how do you calculate the x trans and z trans, i see how everything else was calculated since you said the turning point that you did would be in 2 steps to be 90 rotation so dividing 90 by 2 gives the 45 twist to the foot for the lift and 90 twist finish on the landing and since you made it done within 20frames the hip twist was done in 4 segments of 20's per twist and the final frame being a 90 twist but i have no idea how to calculate the x trans and z trans. I will post a pic or vid of it cause for the ending frame when you reset for frame 21 the legs arent balanced and when i reset the hip to 0 and rotate the body to 90 it messes up all of the other keyframes interpolation horribly.

• @shadowofabyss I didn't calculate them, I used the subsequent BODY rotation block's first frame as a destination. Going back one frame, I manually move each foot until it's nearly at the same place and attitude of the subsequent frame.

I keep changing back and forward between the 20th and 21st frames until the differences are minimal.

Frame 1: Body, hip & feet zeroed
...
Frame 20: Body still at 0 y-rot, hip nearly 90 y-rot (19/20ths of 90 = 85.5 degrees linear interpolation with spline break), moving and rotating the feet till they are nearly at the same place as frame 21.
Frame21: Body -90 y-rot, hip and feet all zeroed, again. This is your reference pose for the start of each block. Change back and forth to frame 20 to compare. Go back and forth another frame or two to make the motion smooth.

Oh, forgot to add, the right foot stops moving at frame 11, but you can drag the frame 20 right foot keyframes back to frame 11.

I know this is complicated, because I did this animation in two steps. First with only hip rotation (giving overtwisted ankles), then resetting the hip and feet to zero after I'd done the step rotations on the Body at the start of each block.

This process is not really the same as a walk animation, because the walk designer does continuous turns of the Body to follow a walk path, and so has to adjust hip and foot IK (if IK is enabled) constantly so they're relative to the Body at each frame without the feet sliding.

I'm in the process of updating a Python script, so I can try this with a V4 figure instead of Andy, but I need to sort out all of the Morphform (limb pose control dials on the Body, like Sit or Crouch) additions I've made before I can bake the morphforms into actual limb rotations so I can turn on IK, which doesn't work nicely with morphforms.

• @anomalaus Ah ok i understand it now, time to put some hours and practice of mastering this now xD

• @anomalaus Iokay i got it down now, i had to look at alot of the tutorial videos of the keyframes learning when to break splines. Thank you so much anomalaus

• @anomalaus Woahh ok i just found something odd, so i came across a site called share cg and i downloaded a guys file cause something peeked my interest and in his file you can rotate the hip on the y axis with it effecting the feet at all i will upload post a vid in a few seconds.

• this was a poser 7 file opened in poser 11 im trying to see which one is more beneficial, the leg and feet follow the hips for lk in poser 11 but you have to reset hip to avoid ankle over twist poser 7 file feet dont follow but there is no consequence for feet twisting hip as much as you like besides having to manually match feet with leg position. Im trying to see if there was a setting in the poser 7 file to allow this or if it was only like this in poser 7 in general.

• @shadowofabyss here's the one I've just converted from IK on the toes (I edited the IK chains to add ones that go all the way to the toes), though that's harder to pose and animate than just the feet. This new version of the animation has IK turned off, which was a lot harder to pose, since you can't just say "move the foot from A to B while twisting it, and in the middle, raise it off the ground some distance", and have everything move smoothly between the keyframes. Trying to wrangle just limb rotations is a lot harder, though the benefit is that I can switch on my morphform that moves the feet and toes into position for wearing high heels, and the animation is finished.

To save time, I removed everything but the figure, so she's a wee bit chilly, no doubt. ;-)
***=NSFW content***

Next, I'll try applying the saved animation pose to the clothed figure with heels, and render that out, now that I've got QueueManager batch renders sorted with a script.

• @anomalaus oh, i see wait did you hand animate her arms to move while turning, cause i've been wondering how people have been able to have models hands or arms slightly move while being idle, i just wanted to know if that hand made or is that a special spline effect from keyframes?