Foot acting odd from twisting hip 180 degrees

  • Okay so i took pictures of both left and right foot number on dials before i turned the models hips to make him turn around, my question is for turn around animations do i need to actually turn the models body as a whole instead, or will turning the model around just using hips create problems on other body parts indicating to much strength in twisting and bending parts? 0_1549113271086_Screenshot_166.png 0_1549113280013_Screenshot_167.png 0_1549113285073_Screenshot_168.png 0_1549113291322_Screenshot_169.png

  • I think you probably have IK turned on for the figure's legs - look in the figure menu under Use Inverse Kinematics to check this, and to turn it on or off.

    It's quite valid to move a figure's hip, but if IK is on it will 'glue' their feet to the floor. Moving the body does not invoke IK.

  • @englishbob Ah ok so i need to rotate the body as a whole then?

  • @shadowofabyss Or turn off IK. IK can be useful when posing however, so try both methods to see which works best for you.

  • There is a difference between moving the Body and the Hip. If you move the Body it then moves all parts including the IK targets. If you move only the Hip then the IK targets remain where they were (provided they were turned On/active) at the time you move the Hip. This is important if you turn On and Off the IK at various points in the time line. Which is something you can do if you know what you are doing and how to overcome the issue of the figure skating.

    Of course if all you are doing is a still at frame 1 then it makes no difference.

  • @richard60 I dont understand how to make a turn around animation with poser, when i use the lk chain it makes the foot twist over its realistic twisting limit and turning it on or off wont make a difference for certain poses for independent frames. Is there a proper way to making a model turn around using the legs with them be animated without the lk twisting foot over 100?

  • @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.)

    0_1549207761432_Andy2 Hip Turnaround 360 8 steps.0001.gif 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.0_1549249764197_Screen Shot 2019-02-04 at 2.08.24 pm.png
    0_1549249772705_Screen Shot 2019-02-04 at 2.08.50 pm.png 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:
    0_1549250146045_Screen Shot 2019-02-04 at 2.13.48 pm.png 0_1549250153586_Screen Shot 2019-02-04 at 2.14.05 pm.png 0_1549250167616_Screen Shot 2019-02-04 at 2.14.23 pm.png 0_1549250177261_Screen Shot 2019-02-04 at 2.14.40 pm.png 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.
    0_1549257295897_Andy2 BODY Turnaround 360 8 steps.0001.gif
    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.0_1549257564819_Screen Shot 2019-02-04 at 4.18.27 pm.png
    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:0_1549258213796_Screen Shot 2019-02-04 at 4.27.14 pm.png 0_1549258229479_Screen Shot 2019-02-04 at 4.29.12 pm.png 0_1549258241831_Screen Shot 2019-02-04 at 4.29.36 pm.png 0_1549258262687_Screen Shot 2019-02-04 at 4.29.48 pm.png
    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:
    0_1549258820367_Screen Shot 2019-02-04 at 4.35.46 pm.png 0_1549258842942_Screen Shot 2019-02-04 at 4.36.05 pm.png 0_1549258869504_Screen Shot 2019-02-04 at 4.36.28 pm.png 0_1549258895048_Screen Shot 2019-02-04 at 4.37.17 pm.png 0_1549258911417_Screen Shot 2019-02-04 at 4.37.30 pm.png 0_1549258935138_Screen Shot 2019-02-04 at 4.37.43 pm.png
    Whereas the left foot remains in position for the first 10 frames of each group, then moves to its final position:
    0_1549258992977_Screen Shot 2019-02-04 at 4.38.17 pm.png 0_1549259016379_Screen Shot 2019-02-04 at 4.38.29 pm.png 0_1549259033074_Screen Shot 2019-02-04 at 4.38.43 pm.png 0_1549259064076_Screen Shot 2019-02-04 at 4.38.55 pm.png 0_1549259073645_Screen Shot 2019-02-04 at 4.39.09 pm.png 0_1549259087441_Screen Shot 2019-02-04 at 4.39.22 pm.png

    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?

  • @shadowofabyss

    @shadowofabyss said in Foot acting odd from twisting hip 180 degrees:

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