4 Replies Latest reply on Apr 24, 2018 5:30 PM by KJerryK

    Walk and Cycle Layers

    alank99101739 Level 4

      Currently I don't use the built in Character Animator 'walk' behavior as when I tried it last, it did not behave exactly as I wanted. (I will try again one day.) But a useful thing of the walk behavior is the head bobs up and down. I am currently simulating this using "Position Y" recordings to move up and down. But it is time consuming, and not usable in a live recording.


      Looking at the "Wonder Boy" sample, it uses cycle animation to make it look like the boy is walking towards the camera - but the head is perfectly still (not bobbing up and down).  (Reminds me of the movie "Mars Attacks" - the aliens have this glide movement where the head stays still as the body walks.)


      That left me with the idea of setting up a puppet with only "waist" tagged and attaching a walk behavior. Having "waist" tagged (and nothing else - e.g. no "neck" tag) will bob the puppet up and down (if you set all sideways movement values to zero), so I thought maybe trigger the walk animation at the same time as a cycle layers animation - then I can control what the walk looks like, and the head (and body) bobs up and down.


      I think this will work - but I assume I will have to work out how many frames are in a standard walk cycle to make sure the cycle layers lines up exactly with the bobbing up and down. If you want to change the walk speed, sorry, you are on your own! (Redraw the cycle layers again.) Animator gives you no support to sync up walking with cycle layers.


      A further complication is you can adjust the start/end of a recorded trigger take for cycles, but the walk for left/right is hidden inside a recording - you cannot adjust it easily - you would probably have to re-record it. That makes lining up the walk and cycle layers finicky.


      Is there something I am missing?  Walk, trigger and cycle layer behaviors mentioned that maybe in the future it will be possible to use something other than arrows to cause a walk to occur - I assume normal keyboard triggers. That would make aligning cycles and the walk behavior on/off easier. Does this exist already?


      But it would seem nicer if cycle layers and walking behavior were linked better. It seems tricky to work out a "cycle layer" frame count and a "walk step speed" (and "step phase"!) so they all line up nicely.



      While I am typing... the other thing I noticed is if you use pins, they can mess up using the walk behavior to make the character bob up and down. (The pins stop the bobbing near the pin.) The easy solution is to use more bones (sticks) instead of pins. E.g. pin the feet and nothing else - use bones to stop unwanted mesh distortions. That left me with another interest effect. When I got rid of all the pins on my puppet (except the feet), dragging the hands caused the body to lean over quite a bit. No bone variations I have tried have stopped this. While walking. the puppet does not lean over - because the walk behavior is forcing the waist to the mid point. Dragging the hands while walking is actually pretty good.


      So my next experiment was to put a draggable on the waist handle. Then if not walking, I touch the dragger to make it record a setting. That works okay (when combined with appropriate bones in the body). The character does not lean over much any more dragging the hands around. But if the dragger was on at the same time as the walk, the walk up and down motion strength was halved. So I would have to carefully the record waist drag so that either it is set or the walk behavior is active (or put up with the walk up and down bobbing being reduced in strength). That that is a pain for combining with cycle layers (where I started above).


      So my final variation is as follows. Sorry if obvious. Its not perfect, but it seems "okay". Put pins in below the waist to lock down the body from unwanted movement, not too close to or above the waist. This sufficiently reduces the lean from dragging the hands. The pins only stop movement below the waist, not above - the head and shoulders bob up and down (I set the sideways movement settings all to zero so walking and makes the puppet go up and down). That should allow me to do a cycle layer to show the legs moving - as long as I manually compute the timing right for the number of cycle layers based on the speed of walking for each puppet.



      Before I start playing further, is there any way to better synchronize the walk behavior and cycle layers? This is the bit I am missing.