I would like to use a more powerful version of Chrono Boost on a building (e.g. to speed it up 20x) in order to increase the rate of production/research. At the same time, I would like to maintain the default animation speed instead of also having that 20 times as fast. I've tried changing all sorts of things from removing actor property transfers to adding events to the building's actor. Does anyone know how I can accomplish this?
Set the time scale to 20x and set the animation time scale for the building actor to 0.05 maybe?
I'm contemplating doing something like that as a workaround. Part of the problem, which I didn't mention in my original post, is that my ability behavior will stack. So, I can set the animation time scale for the actor to compensate for the maximum number of stacks, but the animation will look slow for any less than that. Also, if I don't have any time-speed-up stacks on the building at all, it pretty much sits at a standstill.
FYI, the building I'm currently concerned with is the Zerg Spawning Pool, so it has a default stand animation and doesn't look quite right if its animation speed is set to 0.01.
You can set the animation speed dynamically when the unit gets the behavior. Well, handling the different stacking levels is another question.
So, basically I'm having a stacking ability when a unit is being transported inside of the building (i.e one unit is loaded into the spawning pool => one buff; two units => two buffs, etc.). Unfortunately, it doesn't seem that subsequent stack additions to the behavior are picked up by actor events. This could be part of the reason that I haven't been able to get the actor events regarding setting animation time scale to work.
I could add a secondary dummy behavior which doesn't stack but has a split-second duration, but that wouldn't help with indicating when a unit is unloaded.
I just tried using split-second dummy behaviors every time the building loads or unloads a unit. It can be detected, the only problem is that the actor event that allows the animation time scale to be set relies upon the building's time scale (i.e. setting it to 1 doesn't work) and is only able to be set to a constant value, not a function (i.e. setting it to a function of the number of stacks of the transport behavior doesn't work).
So, I think I have a possible work-around. All I need is to know how to actually set an animation's time scale using actor events. I've tried using "Animation Set Time Scale" with the Name set to "Stand" and the Scale set to a wide range of values, but nothing happens. I know that the event is firing, because the event works if I change the action to "Set Opacity" and have it make the unit disappear.
Animation Set Time Scale works when you're playing a specific animation with a given name using the Animation Play actor event.
You want "Set Time Scale Global" - don't worry, that's strictly animation-only. That makes the actor animate at that time scale for all animations.
Very nice. Thanks a bunch. This even uses the global time scale which means that I don't have to set up a different event for each stack count. The only issue is that the animation jumps sometimes when a unit is loaded, but I can accept that if I can't figure out a fix.
The only issue is that the animation jumps sometimes when a unit is loaded, but I can accept that if I can't figure out a fix.
You may need to preload that model in a trigger. I had a similar problem in one of my maps with spawning banelings from an ability: the first time I used the ability, the Banelings wouldn't play their birth animation (they'd just all of a suddenly pop up a few seconds later). Preloading the model fixed that.
I would like to use a more powerful version of Chrono Boost on a building (e.g. to speed it up 20x) in order to increase the rate of production/research. At the same time, I would like to maintain the default animation speed instead of also having that 20 times as fast. I've tried changing all sorts of things from removing actor property transfers to adding events to the building's actor. Does anyone know how I can accomplish this?
Set the time scale to 20x and set the animation time scale for the building actor to 0.05 maybe?
I'm contemplating doing something like that as a workaround. Part of the problem, which I didn't mention in my original post, is that my ability behavior will stack. So, I can set the animation time scale for the actor to compensate for the maximum number of stacks, but the animation will look slow for any less than that. Also, if I don't have any time-speed-up stacks on the building at all, it pretty much sits at a standstill.
FYI, the building I'm currently concerned with is the Zerg Spawning Pool, so it has a default stand animation and doesn't look quite right if its animation speed is set to 0.01.
You can set the animation speed dynamically when the unit gets the behavior. Well, handling the different stacking levels is another question.
So, basically I'm having a stacking ability when a unit is being transported inside of the building (i.e one unit is loaded into the spawning pool => one buff; two units => two buffs, etc.). Unfortunately, it doesn't seem that subsequent stack additions to the behavior are picked up by actor events. This could be part of the reason that I haven't been able to get the actor events regarding setting animation time scale to work.
I could add a secondary dummy behavior which doesn't stack but has a split-second duration, but that wouldn't help with indicating when a unit is unloaded.
I just tried using split-second dummy behaviors every time the building loads or unloads a unit. It can be detected, the only problem is that the actor event that allows the animation time scale to be set relies upon the building's time scale (i.e. setting it to 1 doesn't work) and is only able to be set to a constant value, not a function (i.e. setting it to a function of the number of stacks of the transport behavior doesn't work).
So, I think I have a possible work-around. All I need is to know how to actually set an animation's time scale using actor events. I've tried using "Animation Set Time Scale" with the Name set to "Stand" and the Scale set to a wide range of values, but nothing happens. I know that the event is firing, because the event works if I change the action to "Set Opacity" and have it make the unit disappear.
Animation Set Time Scale works when you're playing a specific animation with a given name using the Animation Play actor event.
You want "Set Time Scale Global" - don't worry, that's strictly animation-only. That makes the actor animate at that time scale for all animations.
Very nice. Thanks a bunch. This even uses the global time scale which means that I don't have to set up a different event for each stack count. The only issue is that the animation jumps sometimes when a unit is loaded, but I can accept that if I can't figure out a fix.
You may need to preload that model in a trigger. I had a similar problem in one of my maps with spawning banelings from an ability: the first time I used the ability, the Banelings wouldn't play their birth animation (they'd just all of a suddenly pop up a few seconds later). Preloading the model fixed that.