Problem when interrupting an anim transition

Hi there, I have a problem when using the anim component system to transition between two poses. If I allow a transition to be interrupted, then start transition to pose2, then transition back to pose1 during that transition, then the animation jerks and doesn’t end up at pose1. I would expect it to smoothly transition from where it was (somewhere between 1 and 2) to the new target state (1). I don’t think the problem is because it’s back and forth between two states, but rather also fails for three-way transitions (from 1 to 2, then, before end of that transition, to 3).

I have set up a test scene here:
https://playcanvas.com/editor/scene/1187896
To reproduce, click “pose2”, then quickly “pose1”

@Elliott One for you?

1 Like

Hi, this is going to take a bit of investigation on my side. It looks like an issue that’s isolated to transitions stemming from the ANY state. As a temporary workaround you could create transitions between the two pose states directly. Note that you’d need to use an interruption source of ‘next’ under these circumstances.

3 Likes

Ok, interesting. Unfortunately we need to be able to switch from any weapon to any other weapon and we have 12 weapon poses so far, so that would be 11*12 = 132 transitions to set up :). So a fix would be much appreciated.

Would this also fix the fact that mashing “play(animation, 0.5)” causes it to “short circuit” the cross-fading and warp to the first frame of an animation or is this unrelated? For my most recent project the animation blending is really pretty as long as you don’t mash the input keys and let the cross-fade finish, but despite it being between only 2 animations, pressing the input keys too fast skips all blending entirely.

Yeah that doesn’t sound ideal! If you’re really in need of a quick fix, these transitions could be set up procedurally via a script. I can create a quick example if necessary. I will however investigate the root cause as soon asap.

2 Likes

From the function you’re discussing, I assume you’re using the animation component rather than the anim component? The animation component doesn’t support interruptions to a blend. Moving to the anim component should resolve this in your case.

Here you can see blending between two animations with interruptions supported: PlayCanvas Examples

2 Likes

Thank you, I appreciate it!