Animancer - Less Animator Controller, More Animator Control

3764125--466661--title.png
[itch.io] [Pro] [Lite] [Documentation] [Samples] [Help and FAQ] [Github Issues]

Animancer allows you to play animations on demand and control all their details without any additional setup steps. It solves the major problems with Animator Controllers and can either replace them entirely or work alongside them on the same character. This makes animations much easier to work with in all stages of development from basic prototyping through to maintaining and debugging complex systems.

You can try out all the Features for FREE with Animancer Lite then seamlessly upgrade to Animancer Pro if needed (also available from itch.io).

It has plenty of detailed Samples to get you started, an extensive User Manual that explains how everything works, and even an introduction to C# in Unity in case you are new to programming.

8 Likes

This plugin looks very interesting!

I’m quite surprised that it didn’t got the attention it deserves in this forum.

I have come to a point where I hate the Animator fsm graphs and want to revert all to code.

I will buy this plugin just to get rid of the Animator graph madness,

Good job!

1 Like

Thanks for the interest. The Lite version lets you try out all the features in the Unity Editor so you might as well try it before buying, but from what you’ve said I expect my plugin will be exactly what you’ve been looking for.

2 Likes

I purchased it long ago. Now, I just try it today. It totally blows my mind. Everything is so easy. You have 100% control of what you want to play, when you want to play? No more messy Mecanim states and conditions wow even though I can do some tricks to make Mecanim behaves like a Legacy way, but still this is gold. Any plans for future update?

3 Likes

I’m glad you like it. I’m currently working on v3.0. It doesn’t have any major new features, but lots of little improvements all over. Much better examples, some performance improvements, and various other small changes and bug fixes throughout the system. I hope to get it finished in the next month or two.

4 Likes

Just discovered (and purchased) this asset. It looks amazing! This will make using Mecanim animations easy and fun again. Thank you!

3 Likes

Here’s a quick progress update. v3.0 is basically feature complete now and I’ve prototyped about 20 new example scenes. Aside from polishing and documenting the examples, I have quite a long list of things to improve in the rest of the documentation, then I just need to make a trailer video to showcase the examples and redo all the asset store images. All up I’d estimate another month to get it all ready to release.

One cool new feature I’ve added is serializables for each state type. So instead of referencing an AnimationClip directly, you can make a ClipState.Serializable field which contains an AnimationClip reference along with a fade duration, speed, and optional start time, all with a nice inspector. Then you can just pass that serializable into StartTransition and it will figure out whether to call Play or CrossFade based on the values you entered in the inspector. There are also AnimationMixer serializables which give you an inspector similar to setting up a blend tree and ParameterControllerState serializables which give you a dropdown menu for selecting the parameters you want to use once you assign an AnimatorController.

If you’re interested in trying it out, just PM or email me your invoice number. Or if you’re using the Lite version, just let me know and I’ll put a package together for it (which will take a bit longer). It’s currently perfectly usable, the only issue you’d have to deal with is out of date documentation (and incomplete examples, though they are already way better than the ones in v2.0).

3 Likes

If you would like to see the documentation in its current state I’ve put it up at https://kybernetikgames.github.io/animancer-v3/. I haven’t gotten to most of the general pages yet, but the Examples are mostly done (up to 06 State Machines). Most of the examples should be fine to use in v2.0 with a couple of exceptions:

  • I haven’t touched much of the general documentation, only the examples (and the Feature Comparison).
  • Some class names have changed. AnimancerController → AnimancerComponent is the most notable.
  • “01 Basics/03 Sequence Coroutine” should be fine up to the last two sections where it talks about Serializables which are new in v3.0.
  • “01 Basics/05 Solo Animation” won’t work because the Solo Animation component is new in v3.0.
  • The “04 Directional Sprites” examples require a new DirectionalAnimationSet class.
  • In “05 Animation Events/01 Simple And End Events” the End events won’t work without v3.0.

It’s hard to say if it will be done within the two weeks or so left in my original goal. The example documentation should be done in the next few days, but then I still need to go over all the general documentation to make it relevant for v3.0 (I’ll probably hold off on most of the actual improvements until after I get it released). Then the asset store images should only take a few days as well, but the main uncertainty is making the trailer video because I have no experience with video editing. That timeline also doesn’t include the time it will take Unity to actually approve the update once I’m done, so that will probably add about a week (or more if it doesn’t get approved on the first go).

2 Likes

Question, what’s the appropriate way to toggle animation looping via AnimancerState?

Depends a bit on what you actually want. If you just want it to freeze in place at the end of the animation you should probably just set the animation to not loop in the import settings. But otherwise you probably want to register an OnEnd callback.

The v3.0 documentation explains it a lot better than the current v2.0 documentation. Here’s the API page for AnimancerState.OnEnd and here’s an example that shows it in action. Note that the Play method in v2.0 works like the PlayFromStart method the example talks about (it has changed in v3.0).

Edit: v3.0 is up on the store now.

Well, it took a bit longer than expected to fully flesh out all the examples, but they’re finally done. The last big hurdle before I submit to the Asset Store is to make a trailer video, which is something I have no experience so I don’t know how long it will take (hopefully only a few days).

In the meantime, I’ve decided to release an open beta so people don’t have to keep waiting for the new features and so I can start getting feedback.

  • The beta documentation is hosted at https://kybernetikgames.github.io/animancer-v3/.

  • You can download Animancer Lite v3.0 from here (Edit: no you can’t. Get it from the Asset Store). There are differences depending on your Unity version so you need to pick the closest one below the version you are using (if you are using Unity 2018.2 you need the 2018.1 package, not 2018.3). Details on the differences are in the documentation.

  • If you have purchased Animancer Pro, just PM or email me your invoice number and I’ll send you the Pro version beta.

  • To install it, just delete any old Animancer version then import the new one. Don’t forget to do a backup first. More info here.

  • If you have used Animancer before, check out the change log to see what’s new.

What now?

  • Once it’s fully released, I’ll overwrite the current documentation (same URL, but without the “-v3” at the end) so any links from inside the beta package won’t work anymore.

  • In the meantime, lots of feedback would be great. Any problems you encounter. Things you have trouble figuring out. Suggestions for the plugin’s functionality. Ideas for improving the examples or adding new ones. Anything I haven’t explained well enough or have missed. Even little things I could improve in the layout or design of the documentation. Anything you can think of.

  • I’m also looking for some melee weapon animations so I can make an example to demonstrate weapon switching and hit boxes. They have to be public domain (CC0 license) so I can actually include them in the plugin (according to the Asset Store rules).

  • More feedback please.

1 Like

Out of curiosity how is the performance when compared to Mechanim and does your asset generate any garbage? A couple of years ago I was working on a hoard shooter that used sprites and I found once I optimized many of the other aspects of the game, Mechanim itself became the biggest bottleneck. I was considering writing my own system from scratch but ended up moving on the bigger and better things. I’m considering revising this project for a gamejam that is coming up and I’d be interested to know how well this works when there are thousands of animated sprites on-screen.

There’s a simple Performance Benchmark in the documentation. Animancer is slightly better, but it uses the same underlying system as Mecanim to do all the heavy lifting so the difference will never be very significant.

It doesn’t produce garbage on its own, but it does encourage you to use OnEnd callbacks to wait for animations to finish and they will become garbage if you don’t cache them.

1 Like

Animancer v3.0 is up on the store now. Here are the major changes:

  • Replaced the 3 rudimentary demos with 22 proper Example Scenes that have highly detailed tutorial explanations.
  • Massively improved the documentation in general with lots of code examples and animated gifs.
  • Added serializable classes which make it easy to group additional details with each AnimationClip (such as Speed and Start Time), as well as set up Mixer States and Controller States in the Inspector.
  • Improved performance, especially in situations with lots of animations are inactive.
  • Added proper support for playing animations in Edit Mode. See the Fine Control/Doors example for a demonstration.
  • The full list of changes is available in the Change Log along with a guide for upgrading from earlier versions.

Please check it out and let me know if you have any questions or feedback.

4 Likes

Can I change animation at runtime?

@ZhavShaw Yes, you certainly can.

Hello, I’m trying to update to v3 and I’m running into an issue with AnimatorControllerState. That class seems to be gone, and I can’t figure out how to add that controller state as a state to a AnimancerComponent.

Also, how do I destroy a state attached to a AnimancerComponent?

Thank you!

AnimatorControllerState has been renamed to ControllerState. The full list of name changes is in the change log.

You can destroy a state by calling its Dispose method.

Ahh I see, I Ctrl-F’d it and couldn’t find it cause the docs has a typo “AnimantorControllerState” should be “AnimatorControllerState” :slight_smile: Thank you!

How do I add a ControllerState to a AnimancerComponent? (Before I could “AddState”)
EDIT: Never mind, figured it out. :slight_smile:

1 Like

Thanks for letting me know. It’s fixed now.

1 Like