Foot acting odd from twisting hip 180 degrees

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

  • @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***

    click to show

    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?

  • @shadowofabyss it's complicated, but essentially, yes. My base V4WM++ figure is heavily loaded up with limb pose master controls, one of which is an ArmsScissor, which applies oppositely signed CollarTwists (x-rot) to the collars. Here's the simple sinusoidal spline driving the arms for a nearly natural looking swing.
    0_1549510497322_Screen Shot 2019-02-07 at 2.32.55 pm.png

  • @shadowofabyss here's another version which, unfortunately, illustrates the major problem with attempting to do walking or step animations without the use of IK: foot sliding.

    NieR Automata's YoRHa 2B, skirtless, with V4 Bodysuit as leotard (sans puffy sleeves) and Idler68's Chic Thigh Boots, in place of the original, rear-laced boots. The stockings are LittleDragon's Stockings for V4 with a height morph to bring them further up the thighs and magnets on V4 to simulate garter constriction. The gloves are V4 SuperGloves.
    Goodness! That took half a day to find a free way to optimise the GIF (eventually used enough to fit within the 4MB file upload limit!