Ultimate Character Controller animator controller sometimes not returning to default Idle state

Chuck Terzian

New member
I have a state machine set up with a default Idle animation and 3 variant Idle animations. I’m using the Max Ability Float Data Value of the Idle ability successfully under most circumstances so that the default Idle animation plays and waits until the Start Delay value is passed and then randomly chooses one of the Idle animations.
Idle State Machine 01.png


When I move or jump the Idle ability in the Ultimate Character Locomotion component gets reset to its default state and the Start Delay of the Idle ability acts as it should. But when I initiate a magic attack or aim, the Start Delay of the Idle ability is not initiated and the controller returns to the last Idle animation it was on before initiating the magic attack or aiming.



Please advise on what I can do to get the default Idle state to initiate after aiming or a magic attack. Thank you!
 

Justin

Administrator
Staff member
It's tough to say without looking at your animator parameters but on the Animator Monitor you can log the animation events and parameter changes so this should allow you to verify that the correct values are being set. From here you can adjust the animator transitions to fit those values.
 

Chuck Terzian

New member
It's tough to say without looking at your animator parameters but on the Animator Monitor you can log the animation events and parameter changes so this should allow you to verify that the correct values are being set. From here you can adjust the animator transitions to fit those values.
When monitoring the parameters I can see that the AbilityFloatData is reset to 0 after moving or jumping but it is not reset to 0 after aiming or doing the magic attack. What tells the AbilityFloatData to reset to 0 when moving or jumping? An animator parameter, a script, etc...?
 

Chuck Terzian

New member
It's tough to say without looking at your animator parameters but on the Animator Monitor you can log the animation events and parameter changes so this should allow you to verify that the correct values are being set. From here you can adjust the animator transitions to fit those values.
Here's a video of it in action.

After a few seconds the AbilityFloatData picks a random number appropriately as specified in the Idle Ability parameters in the Ultimate Character Locomotion Component. Next you'll see me aim and initiate a magic projectile attack and the AbilityFloatData does not change in either case. But when I jump or move, the AbilityFloatData is reset to 0 and the Start Delay in the Idle Ability parameters in the Ultimate Character Locomotion Component is honored appropriately.


I am looking to make sure that aiming or initiating a magic projectile attack will also reset the AbilityFloatData to 0 and initiate the Start Delay in the Idle Ability parameters.
 

Justin

Administrator
Staff member
AbilityFloatData will reset to 0 when a new ability starts that has control over the animator. The Idle ability also stops when you move or jump so that's why it is resetting to 0.

If you don't want the idle ability to stop I would subclass that ability and prevent it from stopping within CanStopAbility.
 
Top