top of page

Cyber Commando: Dev Blog 3:Ultimate Animation 1

  • Writer: Jack Leatherbarrow
    Jack Leatherbarrow
  • Oct 25, 2023
  • 2 min read

Once I had overcome the problem of root motion by messing around with various test models, using all sorts of animations to understand how root motion was working. It was time to put all of them together in a coherent animation blueprint.


As the character movement in my game was going to be paramount to creating a fun third person action game i started by creating a basic locomotion state machine with some blend spaces.





Once these had been made, I found a problem. I would need to maintain whatever locomotion is happening at any given time for both the top and bottom half, but it also needed to play animation montages as well on top of that.


To solve the problem of having separate animations on the top and bottom half of the body, I utilized a technique known as layered per-bone blending. This allows the programmer to assign animations from a particular bone location from either above or below and have those override the movement or locomotion animations. For this to work properly I needed to use a cached pose saved from my locomotion state. This would maintain how the legs were moving even if crouched, standing, or sprinting.




Once that pose was saved and cached, I could use that as the dominant animation over the upper body. Upon testing, I found a problem. I had overridden the locomotion on the upper half of my character, so they would adopt the “T-pose” whenever I tried to play upper body animations. This led me to experiment with various animation blend spaces but eventually, I found that the best way to sync the upper body locomotion with the lower body was to repeat the animation steps I'd taken for the lower body. Including saving the cached pose. That way the movement characteristics would be consistent on both halves of the body, but I'd also be able to use the default animation slot (which can also override animations) for throwing grenades, aiming, and other abilities.






Once I had allocated and finished both upper and lower body locomotion, I wanted to add a dodge-roll to add mobility to Omega. I needed a way to override both halves of the character as well as override the default slot that would play animation montages. I experimented with separate blend spaces within the animation blueprint of Omega, which produced some strange results. Either the top body would rotate with the dodge roll animation, but the legs would be stationary or vice versa. The solution I found was to make a “Full body” slot. This would be placed after the lower body locomotion and after the default slot for the upper body locomotion. This way of animating would also allow me to create a cover system later as this would need control of the whole body.





Comments


bottom of page