How should I go about rigging characters in my game?

Hello!

Here’s my problem: I (and a couple of friends) are making a 2D top-down Unity game. The general style is somewhat like the classic Pokemon games/classic Zelda, but 32x32. My problem is that I want to be able to animate the character in any way I want without having to do new sprites for animations (walking, idle, cheer, etc. etc.) I don’t mind spending a couple more hours on working on something if I can do anything I want with it.

That sounds easy, just split the parts (torso and head, arms, legs) into different GameObjects and just animate them, and mess around with the SpriteRenderer’s order in layer for achieving some other cool effects (eg. one leg going in front of the other while walking).

I have a problem with the solution I just said, how would I go about doing all 4 directions my character can look at? Do I need to re-do all animations? (I’m up for it, but if there’s an easier solution, well…)

The game is open-world with quests if it matters.

Note: I tried using rigging my character with the skinning editor (painstakingly making everything perfectly good and painting weights on a 2D character where you can’t auto-generate the vertices because it’s so small and it joins the different limbs up so you do it by hand). That sort-of worked, but it isn’t really made for my type of game, as switching sprites is gonna be a pain in the ass the way I see it. I’d much rather use the Unity Animation editor, if possible.

you may be able to achieve the same effect just by rotating the character.(for all 4 directions) transform.rotation and stuff

@Primoz56 It’s a 2D game. That won’t work (except for left and right)

What I ended up settling upon:
Have a GameObejct called “Character”, under which you have 3 children: “Up”, “Side” and “Down”. Have the characters for each respectively in there. Switch their active state when either is needed. For the “side” one set the SortingOrder properly for the left and right hands and legs, and then just rotate the entire “Side” GameObejct on the Y-axis (horizontal) to 0 degrees for looking left and -180 (or 180) for looking right. Animations are a small hassle because you have to guess all numerical values (because you only want one animation per action, you can animate the entire “Character” G.O. but Unity doesn’t let you use the Move tool for children of children in the animation editor). Still not bad though.