Lately, I’ve strated to animate my entities with Animation Override Controller instead of assigning each a different Animation Controller.
What I wonder is, I was able to change the animation speed per state in the Animation Controller.
How can I achieve this with Override version? Because, the animation states are all same for some entities which is why I switched to animation override controller, yet, I need some of them run their i.e. Idle animation slower than the rest.
When I click on the controller of the entity, it only shows the “Animation Override Controller” that it is derived from in the Animator window. Not the per-entity one.
Just an addition, is adjusting the “samples” amount in the animation window the only way to control the animation speed when using Animation Override Controller which globally controls the animation speeds for several entities?
you can still control the speed of each state with the orignal controller, if you need to override the speed because the overriding animation is different then you need to expose a controller parameter to do this.
Create a float parameter on your controller and then select your animator state and check Parameter just below speed and chose the parameter you just created.
Thank you for this. Actually I’ve used multiplier parameters for different purposes before but I couldn’t just figure it out how to apply it to different type of enemies who use thier own controllers and that belong to Enemy class which has an animation override controller attached to.
I mean her is my setup,
Enemy Class (That has Animation Override Controller on it)
RoboEnemy (has RoboEnemy overrideController)
AxeEnemy (has AxeEnemy overrideController)
… etc.
Now, i.e. I want my roboEnemies to run their idle animations therefore, idle states, at half speed of AxeEnemies. How am I gonna tell my EnemyClass that the current enemy in question is a Robo one and then set the multiplier parameter accordingly via script? I think I’m going to need to add some additional vars and conditionals? Or am I overlooking something?
Maybe this can be it? →
I’ll add “animSpeed” parameter in Main Animator Controller and assign it as the multiplier.
Then, I’ll do some assignment in EnemyClass i.e.
where enemyAnimSpeed is a SerializeField float where I can vary it depending on the type of enemy or even for single instances of each type of enemies?
I wonder if there is any particular reason for NOT having the ability to override animation speed for overrided clips in Animation Override Controller. As it seems to be essential thing when you need to sync legs motion w/ movement speed so that it won’t cause “ski” issue. And yes, speed multiplier is already used for another purposes so it’s not a good solution.