Animation Engine - Runtime Changes and Fixes

But that’s completely unreasonable when there are only 4 priority options.

2 Likes

It might help if you could give a quick example of a situation where you would need more than 4 priorities. I think the most priorities I’ve used on a character at one time is 3, in my shooter where I have 8-way motion plus jumping, aiming, and firing animations. I’m having trouble picturing a scenario where 5 priorities is necessary. If we can better understand the use case, maybe another solution can be found. And if it can’t, then we’ll have a solid case for why more levels are needed soon.

I have a morph for personal use that depends on it.

I also went ahead and laid out everything on a spreadsheet, so to speak, to see if I could fix it to have the same behavior with only 4 priorities, and it’s not only impossible, but getting even close to it would be extremely inconvenient.

If Phase 3 launches with integer priorities, I have to update maybe 5-10 animations.

If it launches without, I have to update literal hundreds.

This is AMAZING :pray:

The old :Play behavior was awful to deal with

Ooh I did not know this was an issue. My gun animations which have the prioritys set in this order:

gun idle priority: idle
gun recoil: action
gun reload: movement

and I get tons of crazy bouncy stuff happening. This is because of this bug?

I was thinking more because if for example:

I had a gun, a hold animation on lets say Movement Priority, and then a Shooting Animation on Movement Priority, but then I also have a Hand motion animation on action, independent from the gun, that players should be able to play over the gun animations.

So having all gun animations be on the same priority is what I currently have, allowing other things that could be played over the animation, be played, like a hand motion.

I feel like this might screw one of my games over. It may have started out as a bug but as far as any of us knew, it was the intended way to prioritize animations. With only 4 animation priorities to work with theres not a lot of room to stack things so inevitably I relied on this behavior as a way to manage more complicated animation layers. I’m hoping its not a problem with the zombies in my game since the animations are fully custom but for characters, I work on top of the existing animation system so theres not much room to stack layers and I heavily rely on animation overriding.

I don’t exactly understand how the change will work, is it realistic to just modify the weights when I want to emulate the original behavior? Because my game has an absurd amount of animations, it’s not that feasible to go through and reconfigure / publish all of the offending animations. If it were two or three then I could deal with it but I have tons of unique animations in bloodfest and I’m not sure how frequently I use this behavior.

I haven’t worked on bloodfest in a while so I’m hoping its not actually a big deal, I’m just concerned that it could be a lot of work. Kinda surprised that theres so little support being given when so many games are relying on this functionality thats been commonplace for 7+ years now (or at least I assume that other people use it as well). I’m also concerned that only having 4 animations layers will be problematic but maybe that’s just due to me not understanding how to use the animation system properly.

Is it too messy to fork the functionality for existing games? It seems like it could potentially be a headache and ruin existing games that aren’t kept up to date.

4 Likes

At first I thought it was some minor change that would not affect me and after some time i decided to test it in game, all my animations on tools were straight up ruined. This is not a “fix”, it completely ruins how all animation scripts work in most games and will force developers to either rework thousands of animations or rewrite a lot of code.
I am all in favour of this “issue” either staying, or this “fix” remaining optional.

6 Likes

I think I have a bug. Placing an Animation Event on the last frame of the animation doesn’t fire. When I move the event marker down by one frame, then it fires.

2 Likes

I’m in the process of adjusting the priority of a lot of old animations, which requires me to reupload them, and I am finding the “Filter by ID” function of the ‘Overwrite Existing Asset’ Asset Configuration window to be extremely frustrating.

It often takes quite a while for the searched for ID to show up - usually at least 15 seconds but sometimes exceptionally long like 2+ minutes. Maybe it is because I have a lot of animations on my account, or maybe it has to do with a lot of the animations being quite old, but either way I really wish we could just type in the ID we want to publish over directly instead of waiting for the search.

7 Likes

Animations are broken too :frowning:

how am I suppose to fix this? I have a lot of Animations…

He’s suppose to be grabbing his head like he has a headache…

2 Likes

So I’m having some issues with AnimationWeightedBlendFix set to enabled, and it seems to have nothing to do with the weight of the animations or how they are played.

Like literally, the animations themselves are screwed up. Take my knife animation for example. The arms are detaching, the knife is floating around off his arm. What’s going on? Gonna have to leave this disabled for now, please don’t force this on us til it’s fixed.

AnimationWeightedBlendFix = Disabled


AnimationWeightedBlendFix = Enabled

1 Like

Weights exist for this reason, and it’s a number

Should developers really be forced to account for thousands of animations with lua instead of simply upgrading the primitive priority system?

I imagine I speak for many when I say integer priorities would be FAR desirable to using a weight system when it comes to fixing what gets broken.

3 Likes

Except you can use an integer for weight. What I did in my game is made a weight Enum for different types of animations. All my animations actual priority are Action, but the weights are according to the enum.

You can find many enum libraries by searching

That’s still going to require programming to fix what wasn’t broken. It again would just be easier for 99% of people to get integer priorities and reupload the animations…

More than 4 priorities is a must-have feature. It would also be nice to be able to assign different priorities to different bones in the same animation. For example while swinging a heavy sword, you’d want the character to move their feet a little bit, and ideally the legs would have a priority of “idle” while the upper torso has a priority of “action”, that way movement only overrides the legs, and while moving you can still swing the sword and the animation blends nicely.

Right now the only solution is to animate the legs and upper body separately, which is a huge pain. Or alternatively you just don’t animate the legs at all, which doesn’t look as good.

4 Likes

I’m… expected to use a pattern that requires me to either attempt to use the total of 4 animation priorities we get, which isn’t enough… or write a workaround for a workaround?

number-based animation priority should have been rolled out long before this fix was.

7 Likes

I am noticing buggy behavior with this turned on and its ability to detect the “End” keyframe in a non-looped animation. I’m sure you’re aware of the keyFrameReachedFunc function in the default player Animate script, this listens for a keyframe named “End”. With the AnimationWeightedBlendFix set to Default, my non-looped animation has the “End” keyframe detected properly. With it set to Enabled, I no longer get “End” keyframe detection and so the character freezes. If I go and change the animation from play-once to looped, it then starts detecting the keyframe, but now it’s also looping the anim. My workaround was to add a second keyframe named “End” right after the first one. This worked which suggests a one-off problem in the code, especially since I added a named keyframe in the middle of the anim and this one did fire through keyFrameReachFunc while it still missed the “End” keyframe. So, seems like something about the last frame in the anim.

3 Likes

I’m having an issue with the old animations being paused when they are overridden.

In my game, I play a looped “Ride” animation whenever a character enters a vehicle. This pauses all animations with a lower priority such as WalkAnim and RunAnim. Because I don’t use BodyMovers, I continually change the WalkSpeed between 0 and >0 to simulate movement. This causes more WalkAnim and RunAnim tracks to be added.

Since all the WalkAnim and RunAnim tracks are paused, they never end, which eventually leads to “AnimationTrack limit of 256 tracks for one animator exceed. No new tracks will be played.

Is there any recommended solution for my use-case? Can you change the behaviour of this fix? Can the Animate script just not create new WalkAnim and RunAnim tracks when there paused ones loaded already?

Repro: _RideBug.rbxl (28.9 KB)