Hi,
I am hoping to get some input and opinions on the best way to design an animator controller. I am getting into the weeds a little bit with all these different bools and trying to track various states like isRunning, isWalking, and thinking there must be a simpler way to structure this that I am missing.
Essentially I have two blend trees for 8-direction walking/running animations. The blend trees get toggled between based on isRunning, e.g. one tree is for the walking animations, and if you are running it plays the running animations instead. This is working well and I also have an idleJump that is working well with a 3-part start/falling/stop animation, but where I am getting into trouble is with trying to add 2 more jump states for walking and running.
I am using a combination of bools for isRunning, isWalking, a trigger for Jump, and a bool for didJump (to differentiate between falling and jumping) and it’s not really working well in the run/walk versions, the jumps aren’t as smooth as I would like to be and I think it’s in part because of juggling around all these weird states.
Any advice? Would it make sense to have different triggers, like IdleJump, WalkJump, and RunJump and just call these from code depending on the character state? Or is there something I am missing?
I also would like the character to fall off cliffs and go from e.g. walking->falling->walking, or running->falling->running depending on whether they were holding down the run/movement keys when they land. Should I have a separate “falling” state or is it sufficient to link into the falling loop in my jumping sub-state machines?
I welcome any ideas/thoughts/suggestions on how to properly structure these things. Seems like there is no “wrong way” but I am looking for an effective way that doesn’t seem like too much spaghetti… ![]()