Animate 2D Characters with 360º Movements Rigging

Godot Version

4.2.1

Question

I’m a backend programmer, and this is my first time venturing into game development and animation (with zero experience in the latter). My initial goal is to design a “face rig with joysticks and sliders” for 2D characters but with a full 360º frontal rotation. The body elements (eyes, hairstyle, nose, skin color) should be customizable.

  • First, I drew a base vector body and elements for customization in AI.
  • I exported each element individually and set it up in Godot as the texture of a Sprite2D.
  • I created a simple animation by making an “AnimationPlayer” and only altering the position property.
  • I also added a button that changes the image color with “modulate,” but from what I see, I cannot access SVG’s advantages and edit something specific; it modifies the entire element…

In this first contact, I have doubts about how to approach nearly complete head rotation animation fluidly.

test

What do you advise? Can I do everything directly in Godot? From looking at animation tutorials, what they do is animate at each key by stretching/alternating the Sprite2D…

imgur[.]com/ZLC2pFO.png

It doesn’t seem very comfortable or intuitive. Are there tools that can facilitate this? Any advice is welcome, thank you!

I think using a nine-angle view will already be enough work and yield a decent result.

imgur[.]com/WCUnz6n.png

This is my goal:
https://imgur.com/VsZzb1B.gif
https://imgur.com/lxl2Hlz.gif

Based on my experience using 2d skeletal rigs, there is no simple way to get the 360 view of a 2d character except you draw each angle or find a way to manipulate the vector points to morph which will be very difficult.

Your best approach is to draw multiple angles and just fake the rotation by swapping different angles. Animation tools like Spine2d make this process easier to add meshes to 2d images, but you will still need to draw different angles but fewer.

You should really check out Spine2d

1 Like

Thanks, I’ll try making an example in Spine2D and see how it exports in Godot.