For this second part of the project, we were instructed to create a basic walk cycle of a character rig built entirely out of basic objects and textures in Maya. Although it looks like a rather simple rig, it almost has controls as complex as the Spiderman rig. Without further ado, here's how I did my walk.
Since this was the first time I did a walk cycle, I needed a reference guide even if it seemed like the simplest action in the history of mankind. Anyway, first off, the picture above represents the major poses of a walk cycle, and the in-between frames would be automatically created in Maya using complex calculations to render out a proper animation. A few things to note, a basic walk cycle has 6 major frames (the above picture shows 7 due to the first and last frame being a duplicate), of which 3 of them are a mirror image of the other. In this regard, all we actually have to do for a walk cycle is to pose our character in the 3 correct poses, and duplicate the inverse to the other part of the cycle. Alternatively, we could animate 6 frames for one leg, and duplicate the values for the other, but I've decided to stick with the former for practice purposes.
First of all, we have to determine how fast/slow the walk is. There are 6 major frames and as such, we can calculate how slow we want the inbetween frames are by multiplying 6 over and over. For example, if our composition is set at a FPS of 24, 24/6 = 4, which means there are are 2 inbetween frames (excluding the frames containing the major poses). That basically means that one walk cycle would take one second to complete. I decided to pick 24 since it felt more natural to me, although one can easily adjust the speed of it by scaling all the keyframes larger.
Anyway, after posing the rig in the correct major positions, the basic walk cycle was completed, although the other body parts were not interactive with the legs. Ergo, I decided to reenact the walking motion, determining how the walking locomotion chains to the other body parts such as the hips and chest. I've decided to alter each body part individually, working from the bottom up. As a completely symmetrical motion isn't realistic (left side of the chest bends forward with the left leg), some of the motions were inversely corrected to rebalance the motion.
Lastly, and also the most complicated finishing touches, was to adjust the hand motions to suit a normal walk cycle. First of all, I barely used the walk cycle reference as stated above just because it seemed to exaggerated and it just didn't feel right for me. Instead, I decided to come up with my own assumed positions, since there were adjustments I'd like to make to the motion to make it more fluid. Since the above referenced had a perfect cycle from one half of the animation to the end, it felt really robotic and unrealistic since arms don't usually move at fixed intervals.
To counter that problem, I decided to offset the motion of the arms completely, to give a more organic feel to the animation. For example, the half way point where both arms have been switched positions occurs at frame 12, and I decided to offset the arm rotation to the middle of its peak at frame 10, and let it reach its peak at frame 16, to give it a hang time before the arms switch. Of course, this was adjusted in the graph editor to create a more fluid motion. It looks like a cosine curve (it has the proper acceleration and deceleration curve for my motives), although it was slightly modified. Picture below just shows a typical cosine curve (mine doesn't actually look like this).
Next, was the issue of infinity cycling. If I followed the above reference example, the cycle would be perfect since it was evenly distributed every 4 frames. Mine cycled in a rather non-uniform manner since it has irregularly placed keyframes such as frame 10 to frame 16. Now, this didn't cause an issue for the left arm since there was only one part of the animation when it had to reach its peak, which was the middle where the left arm swapped with the right arm. Therefore, the first and last frame could've been set to a neutral number such as 0 As for the right arm, it had 2 peaks, at frame 0 and frame 24. This was an extremely intricate issue to address and as such, I'll explain in detail how I fixed it.
First of all, when the left arm reached its peak, it would be at frame 12. The arm keyframes that were involved in this are 10 (2 keyframes before the peak) and 16 (4 keyframes after the peak). And how does this affect the right arm? The right arm peaks at the 0 keyframe (keyframes -2 and 4 would have to be adjusted), and 24 (keyframes 22 and 30 would have to be adjusted). Since we were only taught how to manipulate keyframes from 0 - 24, I was in a dilemma on how to solve this issue. I couldn't possibly shift the entire animation by 2 frames forward just because I wanted my animation to run smoothly, since it might affect the other parts of the body.
Therefore, I extended the duration of my animation from 24 to 40, and worked on that area as per normal. Once done, I cycled the keyframes in post & pre infinity to make sure that it was cycling properly. Once completed, I then reduced my animation's duration back to 24 frames and continued working from there onward. As a final touch up to the entire walk cycle, I went back to the graph editor and edited the curves that seemed too slow/quick.
Honestly, the outcome didn't turn out as great as I hoped it'll be. The body rotation when each leg took a step forward felt too exaggerated, the head was too static and looked like he was bobbing his head, and the arms could've been worked on a little more, since they didn't look too fluid. I was just too intimidated by the graph editor to further adjust anything and as such, I decided to stay away from it.
For the second part of the project, I decided to pick the more advanced option just because it seemed like a challenge and I'd probably learn more from it instead of the other option, which I could simply adjust certain features of my original walk cycle just to recreate an "emotive" walk cycle. First of all, I decided to try using my original walk cycle into this second portion to understand how convenient a walk cycle really is. To explain how I did this, I disabled post/pre-infinity cycles and copied the 24 frames (including the other arm's keyframes at 40), and duplicated it several times on the time frame. Next, I used the overall controller (the large circle at the bottom of the rig) to recreate a walk animation from it. Of course, it isn't as simple as animating it from the starting point to the end, since it'd look like a moon walk. Instead, I checked the z-translation values from the leg that initiates the moving action. For example, the front leg starts off at z-translate = 3.1. When he pulls it back, it reduces to 2.0. I used the difference between these 2 values to move the character forward based on the distance his actual legs were moving, instead of going in blind and creating an unrealistic walk.
As inexperienced as I am, since I didn't have a reference guide for a guy stepping up onto a box/step I wasn't able to have a visual representation of how the major frames should look like. I decided to try imagining it but it didn't turn out too well. There was a lack of weight applied onto the animation as he stepped up onto the box, the animation had very irregular motions (it wasn't perfectly cycled) and didn't look too realistic. Some of the poses looked too exaggerated and the jump didn't felt like it justified the amount of force the character used when he launched himself off the box. Also, the arms were extremely awkward, since I had no idea how the arms were supposed to be placed when jumping. Frankly, I don't believe this exercise was done too well simply due to the lack of materials. Additionally, since I had to imagine how gravity would play a part in this entire process (the character should be pulled down due to gravity), I believe that I wasn't able to portray this external force properly.
Albeit not too greatly done, I've learnt a great deal out of this exercise, which was to plan out each pose properly, instead of going in blind.

No comments:
Post a Comment