Blend trees and a couple other animation questions

Hello, I'm working on putting together a new Animator Controller as recommended in the documentation. I have a handful of different idle animations in a blend tree, and I know that Unity usually has you prescribe a float parameter to dictate blend tree behavior. I'm not really clear on how UCC handles selecting blend tree animations, or if it defaults to the first animation. Do I just add a custom float parameter like normal, and then change it via an ability or something?

A related question is in regards to animator state transitions. The documentation says the states can be custom, but the parameters need to be the same, which makes sense. But after trying to work it out, I'm still not quite clear how the character controller knows to switch between the various sub state machines in the Demo controller. It looks like there are no explicit transitions defined. Is it all just handled within the Abilities?

Many thanks.
 
I have a handful of different idle animations in a blend tree, and I know that Unity usually has you prescribe a float parameter to dictate blend tree behavior. I'm not really clear on how UCC handles selecting blend tree animations, or if it defaults to the first animation. Do I just add a custom float parameter like normal, and then change it via an ability or something?
You aren't able to properly add a new parameter without a decent amount of script modifications but in this case you shouldn't need to. There is the AbilityFloatData which you can blend across, and this is similar to what the built in Idle ability does.

But after trying to work it out, I'm still not quite clear how the character controller knows to switch between the various sub state machines in the Demo controller. It looks like there are no explicit transitions defined. Is it all just handled within the Abilities?
It switches based on the Ability Index / Ability Index Changed parameters.
 
You aren't able to properly add a new parameter without a decent amount of script modifications but in this case you shouldn't need to. There is the AbilityFloatData which you can blend across, and this is similar to what the built in Idle ability does.

That'll do, thanks!

It switches based on the Ability Index / Ability Index Changed parameters.

This makes sense, and after some further research I've made some progress.

I do have one follow-up though. I'm working on a Fall state (which should work essentially the same as the Demo controller), and I've got it so that the character lands on the ground and the controller transitions back to Idle. But the Ability Index stays at 2 (Falling) so the controller stays in the "just landed on the ground" state. I'm not quite sure how the demo controller updates the Ability Index to keep up with the current state or if there is a best practice for this. Thanks for any pointers!
 
Sorry I should clarify, the animator controller goes back to the idle state but the Ability Index stays on 2, rather than going back to 0 when he gets back up. This prevents the movement states from being reached because the Fall ability is still considered active.
 
Thanks, that did the trick.

Movement and idling seem to be working the way I would like!

For some reason, when the character jumps, he lands back on the ground, then transitions to the falling state. He falls in place for a second, lands on the ground again, then successfully transitions to Idle.

I wonder if I may have fat fingered something but after double checking the animation events, they seem set up correctly. Would you have some idea of where I should look to remedy this?
 
I also thought perhaps I somehow made the conditions to enter the fall state the same as when he's jumping, but it differentiates based on the Ability Index ID (1 for jump, 2 for fall), so my understanding is that should prevent this. Thanks again! Am digging the flexibility of this tool.
 
I would start by enabling debugging/logging on the animator monitor and tracking it down from there. With debugging enabled you'll be able to see the transitions as they happen so you can see what parameters are being changed:

 
Top