2D Animation Preview Packages

3424172--270313--2DAnimation.gif
We’ve been hinting at it for a while but now it’s time to share: We’re working on 2D animation.

First of all, a few important points:

  • This is NOT an integration of Anima2D into Unity.
  • We will be releasing it in multiple phases.
  • Phase 1 of this work is now available as a preview package.

Phase 1:
This phase was focused on developing tooling for rigging a sprite for skeletal animation. The tools developed in this phase include: Bind-pose editing, manual mesh tessellation, skin weights painting. A runtime component ties this all together to drive sprite deformation.

The goal of Phase 1 is to allow users to create simple animated characters that consist of a single sprite.

Phase 2:
This will be built on top of features and workflows developed in Phase 1. This includes tooling to make the creation of multi-sprite characters more efficient. We are also considering workflows for larger productions.
The goal of Phase 2 is to allow users to create complex multi-sprite characters and potentially share rigs and animation clips across multiple characters.

We believe we are at the end of Phase 1, and in order to progress into Phase 2 with confidence we need your feedback.

Getting Started:

Please let us know about your experience with the features.
What worked as expected?
What didn’t?
What workflows did we support correctly and what did we miss?

We’re eager to hear back from you so please reply to this post or create a new post to share your thoughts!


Update 1
To get the latest, follow the instructions in Getting Started above.

  • Improved Scene View gizmos for better manipulation of bone rotation and position
  • Added notification when Sprites are imported with incorrect weights
  • Fixed bug where textures with max texture size could not generate geometry
32 Likes

Sounds great !
Today we use Spine from esoteric software which is great. Having the same kind of tool directly integrated in Unity would be nice. Some feature like be able to swap an image during an animation, or change sprite draw order or the possibility to create skins are must-have for us. I hope that kind of features are in your road-map :slight_smile:

3 Likes

Will it be possible to animate using IK-handles?

Looks pretty cool! We’re long time users of Spine and love this sort of functionality. Has there been any improvements to the gimbal locking problems that the Unity Animation timeline suffers from when keying rotations?

1 Like

Isn’t that exactly what the video above is demonstrating?

1 Like

Can you gimble lock in 2D?

When adding a bone to an existing skeleton, the current behavior is this:
new bone appears at the end of the selected bone

instead the bone should appear at the origin of the selected bone

1 Like

When changing a skeleton, apply should also redistribute skin weights or at least not erase all skinning
It just lost all the skinning even though the weights are shown in the editor

probably a bug with this:

Good point! I guess not. I’m still weary of Unity’s animation timeline vs something like Spine or Maya, though.

Why? The current behavior makes more sense to me, as it lets you extend a skeleton, easily creating a chain of bones. If you want to create a branch, you need only select the parent bone.

If it always created the new bone at the origin of the selected bone — i.e., created a branch — then how would you create a chain?

2 Likes

Click click click just like in Maya and in this thing :wink: A chain is an append to the previous bone. A bone is only a position transform and only acquires a rotation and a size when you click a second time. But maybe I’m wrong and maybe Maya is wrong too so have you actually tried appending a bone to a chain in this thing and found that it makes sense?

By “previous bone” you mean the currently selected bone, right? (Because a newly created bone is automatically selected.)

So I guess I misunderstood you — I thought you were saying you didn’t like this behavior.

2 Likes

Yes, that’s correct, thanks for clarifying, I’m sure your input makes the dev work easier because obviously my description was not clear enough.

This is great feedback! These are exactly the kinds of features we have in our plans. What other features are must-haves to support your workflows? It’s very useful for us to know what workflows we should be supporting, so feel free to describe your needs in these areas as well.

Do let us know what Spine and Maya provide that you are missing in Unity.

Keep the input coming! We’re learning a lot!

Looking good!

We need:

1) FFD please.

Once your bone-based deformations are ironed-out, people will surely start asking about this.

2) And If you plan to have anything resembling vertex-level deformation support, having something like Creature’s “motors” (algorithms that run on top of vertex matrices, bones, or “mesh regions”) would be helpful to speed up the workflow N-fold.

Example Features I’d like to see
Here are some examples of “motors”, that Creature implements on top vertices/mesh regions (vertex groups)/bones, that i like:

Bend Physics / Secondary Motion (Applies rope and bend physics to bones - wiki, creature tutorial)
Cage Motor / Grid Motor (Deforms mesh using points on cage boundary/via set of Grid Points - similar to Photoshop’s Warp/Puppet Warp - image example)
Physics Motor (Deforms the mesh using soft body physics)
Path Bone Motor (Makes bones follow a user defined path)

Performance-wise there are different levels of optimization features, fastest of them being - you can bake only vertex positions of your mesh, if you don’t need physics interactions, sprite swapping or bone manipulation, resulting in extremely high animation performance.

4 Likes

I’ve been using Anima2D for over a year now and seeing this makes me very excited.
If you guys can pull off features proposed in Phase 2 I’d switch to this on my next project, for sure.
I played around Phase 1 and I think it’s an amazing start.
I think you should prioritize ease of sprite switching.
An example would be a character that could have equipable armor. An easy way to keep the skeleton but swap out the helmet or chest piece. The correct bone should bind but the sprite should have its own mesh tesselation.
(Does that make sense?)

Edit:
Are there plans for a spring bone (for cloth/rope sprites)?

3 Likes

Hi, thanks for playing with the new tools :slight_smile:
If you change the skeleton you need to make sure you regenerate it in the scene. To do that, delete the RootBone reference (or delete the bone hierarchy) so the CreateBones button becomes enabled. Remember that your new bones need weights, so you also need to update them in the MeshModule.
SpriteSkin Inspector will tell you why the setup is incorrect. In your case bn_bod_6 and bn_bod_7 have no Transform reference set, so skinning is not possible and will be disabled.

1 Like

Another feature that is really cool is be able to have separate group order in the same character. That way you can correctly “plug” objects into your character. For example you can place a motorcycle behind one leg and un front of the other leg of a character.

2 Likes

I see, fail early is a valid approach. you didn’t want to auto update weights and hierarchy?
I think that Bn6 and 7 were deleted by mistake and I pressed undo after that so have a look at undo, it seems that it doesn’t revert reference lost.

One thing that we relied heavily on was to be able to animatie multiple sprite that were in one single atlas, or even better, have the support to pack them to atlas textures afterwards. We had a lot of weird shaped tentacles in really high resolutions (for 4K support). Without the atlases the game would’ve been 4 times more than it is.

1 Like