DevBlog 6: An Animator's Perspective
For the first semester end critique I had to shelf some elements for the sake of playability - the point of the coming critique was to let someone else test the prototype and live critique while others add feedback. I had shifted to a more fluid and realistic environment that the player may feel they are navigating with at least a vague sense of purpose, and to give a better showcase and understanding of Faye's animations and movements, and why they exist.
During the development of this stage of the build I came to the realization that I was approaching many problems from the wrong angle - I was trying to build the mechanics seperate and standalone to the animations. In otherwords I was approaching through the lens of what I am not, I was trying to solve the problems as a physicyst or a hard coder, which I am not. What I am is an animator, and I should be trying to solve problems as one.
Unity (as well as many other engines I'm sure) actually has a great deal of support for animation controlled movement. This allows for the timing and positioning of movement to be set visually and manually as opposed to using forces. I had mentioned previously that Faye's basemovements are actually all handled this way. With this in mind I made some modifications to Faye's jump (which still needs some work) as well as her coast (the animation that rolls her forward while hunched over after landing) to allow the player to better direct her movement in these states. Previously in either, she whould only moveforward, and only by X amount as dictated by physics. I had been wondering what forces to add and when, and how, but was having trouble coming up with an answer. Later attempting the same problem as an animator, I thought about how I wanted her to move, and the right animation was playing, but I wanted her movement to be the same as when she's just skating normally. Solving this required two new things
The first thing was to create a new animation layer, the different layers can actually play at the same time, averaging out the influence of the two animations. That being said, the second thing I needed was an avatar mask. What an avatar mask is is essentially exactly as it sounds - a mask which decides what aspects of the armature are actually effected by the animation in question. Because I wanted her to move along the X and Z the same way I she handles her movement while skating, I used the same animations as she uses to skate, but the avatar mask of the layer only effects her root bone (which only effects her position). I then set a script to set the weight of influence from this layer at certain states, and named the layer "XZ Pass". Now Faye can jump and land with some sense of direction.
With the relative success of directed landing, I had begun trying to handle Faye's wallride and a subsequent walljump in the same fashion, but was unable to complete this in time. I had decided for this build to keep the railcomponents as colour changing capsules as opposed to empty transforms for now due to the feedback of the colour change, this was despite having modelled rails. For the future I need to come up with a new way of providing feedback. I had attempted particle emmission, but the effect takes too long to start up, and is presently otherwise less noticable.