Best workflow for multi-part sprite (bone) animation

Hello folks, I’ve been away from Unity for a very long time now (real life is a bugger sometimes), but I wanted to get back into it to play around with some stuff. I’ve been wanting to do some 2d work for sometime and now Unity seems to have more support for this sort of stuff.

My question is this… I have a character (sprite) that I’ve broken up into multiple sprites (for instance a head, body, upper arm, forearm, hand etc). I see that you can use the unity editor to actually add animations (change scale/transform/rotation) which is really spiffy… but I’m having issues animating my character to keep his feet on the ground and such things. What I’m asking is what the current best practice is to animate 2d characters that have multiple moving parts? (such as a bipedal hero with arms and legs). I am not against getting middleware packages, and I see the smoothmoves and puppet2d packages. Seems puppet 2d can do what I want with IK… but it also seems to convert everything to 3d meshes… I was hoping to stay in Unity’s 2d workflow. Does anyone have suggestions for the best practices in this area or what frameworks are the most popular at the moment?

Thank you!

Since you’re just asking for suggestions, I think I’ll chip in :slight_smile:
Puppet2D is amazing. It’s definitely a time saver once you get the hang of it.
Like yourself, I was worried about the overhead of meshes (and the bones, controls, etc.).

If the overhead ever becomes too much, you can use this to convert the animation to a spritesheet: Bob Game Dev: Frame by Frame: exporting animations made in Unity

However, if you’re feeling lazy about converting the animations to a sprite sheet, there are ways to reduce the overhead. Here’s one of the responses I got from the creator.

"There are three aspects to the overhead of using puppet2d:

  1. Control scripts
    These are always being updated at runtime - but the good news is you can remove this overhead by baking the animation onto the bones using the bake animation button
  2. Skinning
    The most optimised use of puppet2d is by parenting sprites to the bones. There’s a lot of you can get away with doing it this way.
    Skinning is for when you want multiple bones affecting the vertices. You can optimise it by using 1 bone skinning as well.
  3. Bone Gameobjects
    There is hardly any overhead in having multiple gameobjects themselves. However more keyframes will affect performance a bit."