bevy icon indicating copy to clipboard operation
bevy copied to clipboard

Multiple Animations on the same Mesh/Skeleton which can run Simultaneously.

Open Xzenotrex opened this issue 3 years ago • 7 comments

What problem does this solve or what need does it fill?

Meshes and skeletons should be able to run multiple animations simultaneously, providing the animations do not overlap. For example imagine a player model/skeleton - you may want a lower-body running animation and an upper-body throwing animation happening at the same time.

What solution would you like?

A solution could be something similar to the Unity Animation Layer system:

  • Layers are used to seperate different animations on the same skeleton
  • Masks are used on each layer to specify which bones each animation applies to - this ensures animations don't overlap and cause issues.

What alternative(s) have you considered?

You could seperate the mesh into multiple parts and then load the seperate meshes into bevy, however this is unwieldy and may cause issues in some scenarios.

Xzenotrex avatar Nov 12 '22 17:11 Xzenotrex

This is already (partially) proposed via https://github.com/bevyengine/rfcs/pull/51, which builds out a set of components that allows for higher level blending. Feedback on that RFC would be much appreciated.

james7132 avatar Nov 12 '22 17:11 james7132

I had a look at that RFC earlier - looks really good! Would this be covered under something with the animation blending then?

Xzenotrex avatar Nov 12 '22 19:11 Xzenotrex

Animation masking technically does, and it's not 100% covered by that RFC, but it is something we could build on top of it.

james7132 avatar Nov 12 '22 22:11 james7132

Ah okay, I'm guessing something like this is probably quite far off then, at least until things layed out in RFC 49 and 51 have been implemented.

Xzenotrex avatar Nov 13 '22 14:11 Xzenotrex

Closing for now as it seems far off / covered by RFCs.

Xzenotrex avatar Dec 09 '22 19:12 Xzenotrex

I'd actually rather keep this open since it's a reasonable feature request, even if it will take a bit of time to tackle. It should help us keep track of the goals and discussion for it and also deters other duplicate issues.

james7132 avatar Dec 09 '22 20:12 james7132

Ah okay sounds good👍

Xzenotrex avatar Dec 09 '22 20:12 Xzenotrex

I don't think it's possible to tackle this in the 0.12 dev cycle, going to defer this to 0.13.

james7132 avatar Oct 02 '23 00:10 james7132

Is this resolved with #11989 ?

lee-orr avatar Mar 18 '24 04:03 lee-orr

Yep it is! Closing this out.

james7132 avatar Mar 18 '24 04:03 james7132