Animation Status Update (Q4 2020)

Hi all!

Over the past couple of months, we’ve shared a series of blog posts that outline our Unity product priorities for 2021:

Now that we better understand how these priorities impact the roadmap for animation next year, we wanted to share some updates so you can plan your productions accordingly.

Summary

  • Existing animation tech will receive general maintenance and bug fixes throughout 2021 (and beyond). As always, we’ll do our best to back port as many fixes as possible to 2020 LTS.
  • Animation Rigging is out of preview in 2020.2! We will provide all necessary support to ensure it provides a stable foundation for production use in 2020 LTS. We’ll provide ongoing maintenance and bring incremental workflow improvements throughout 2021. The scope will be limited so that we can bring as many improvements as possible back to 2020 LTS.
  • In order to focus our efforts on delivering a high-quality and well-integrated suite of animation technology, Kinematica development will temporarily pause for 2021.
  • DOTS-Powered Animation is still a major focus. We’re working closely with productions to ensure we’re setting the right product goals, and so will have a limited presence on the forum for a few months. We’ve set up a dedicated DOTS Animation forum so community members like you can find and discuss relevant topics to follow along.

Existing Animation Tech
Anyone creating, shipping, or operating games today should continue to rely on existing animation tech, such as Mecanim, Playables, and Animation Jobs. Our existing tech has years of shipped games behind it, and we’re committed to maintaining it for many more to come. Expect continuous improvements throughout 2021, with as many low-risk fixes as possible backported to 2020 LTS.

Animation Rigging
The Animation Rigging package is now verified in Unity 2020.2. This means that the API and core functionality should provide a stable foundation for shipping games with dynamic and interactive procedural motion. It also means that we are committed to maintaining it with the same level of support as our existing tech.

We have moved Animation Rigging topics out of the Animation Previews forum and into a new, dedicated Animation Rigging forum, where you can keep the feedback and conversations going! At the same time, you should from this point forward go through normal support channels to file bugs or otherwise seek out dev support from Unity.

In 2021, we’ll be working on any necessary fixes, as well as incremental improvements to user workflows. As with existing tech, we’ll be focusing on low-risk changes that keep things working for you, and allow us to backport as many improvements as possible to 2020 LTS.

Kinematica
We will temporarily suspend new development work on Kinematica for 2021. You’ll continue to be able to use Kinematica as you do today and it will maintain all its current functionality. However, we will not be releasing new features or improvements for the product next year.

We are also changing the status of the package from “preview” to “experimental” like other packages that are not planned to release in the 2021 cycle.

New Animation Tech (i.e., DOTS)
We are actively working on building the foundation of future animation tools and technology. Our existing animation tech has a 10+ year track record in games shipped with Unity. However, many of our goals for the next 10+ years of animation are aligned with DOTS: scalability, streamability, networking readiness, and customizability.

We also see an opportunity to better integrate with other systems like physics, and to build new artist workflows from the ground up. We aim to provide Editor workflows for everyone that are tailored to character and animation needs, but also want to empower specialists and larger teams to work more effectively together, especially when they need to iterate or make precise optimizations throughout production.

We are focusing on working closely with productions to ensure what we deliver is capable of shipping high-quality games. In order to iterate more quickly, we may make a number of breaking changes over the next few months, and the dev team will be a bit less active on the forum. To help community members provide mutual support in the meantime, we have created a new animation sub-forum in the DOTS area.

FAQ
Will Unity be working on any new major features for existing animation tech in 2021?

No. Major areas of new technical innovation in Unity 2021 are focused on visual scripting, render pipelines, and multiplayer. In the spirit of doing less and doing it better, existing animation tech will benefit from bug fixes (some to long-standing issues!), and other incremental improvements.

Will Unity be working on any new major features for Animation Rigging in 2021?

No. As with other existing animation tech, we will focus primarily on stability and any fixes needed. We also plan to make some incremental workflow improvements and additional samples to improve the experience of onboarding with the package and using it in day-to-day work.

Can I still use Kinematica?

Yes. You may continue to use Kinematica as you do today and it will maintain all its current functionality. Please remember that this functionality is experimental and thus unsupported. We do not recommend that you use Preview or Experimental packages in production, as they have not yet completed our rigorous Package approval and QA process.

Why don’t I see Kinematica in the Package Manager anymore?

Experimental packages are not visible by default but can be added to your project by using the “Add git package” option, and entering the name of the package there. Kinematica’s name is com.unity.kinematica. Once the package is in your project, any update will show up as usual in the Package Manager.

Will Kinematica be compatible with Unity 2021 TECH Stream releases?

We will make a best effort to port Kinematica to 2021 but this package will remain Experimental and should thus not be used for purposes other than experimentation.

Will you be fixing bugs in Kinematica?

Not right now. However, your bug reports and feedback on Kinematica remain important for us even during this development pause. Please feel free to continue to discuss it in the Animation Previews forum!

When will animation devs become more active in the forum?

We will still drop in on occasion, but will not be engaging in “front-line” support in the forum for the next few months. For any needs relating to existing tech or Animation Rigging, please use normal support channels, like the bug reporter. For anyone interested in experimenting with the new tech (i.e., DOTS), please discuss it in the new forum, where we will join you after we have validated some of our near-term milestones with specific productions.

Is there a public roadmap for the new animation tech?

Not yet. We will share more details in the coming year, when we are able to more regularly engage on the forum.

8 Likes

Thanks for the clean update. Even though Kinematica will not be developed further in 2021, it would be great to get the 0.9.0 branch released. Is that still possible this year? (An update so it does not depend on really old releases from January 2020 would already be great!)

4 Likes

Aside from the obvious lack of documentation in general, the main thing stopping me from bothering with experimental features like this is that there isn’t even any indication of feature completeness. If I don’t know whether features are supported, planned, or not going to be supported then any potential feedback I could give would basically boil down to “this system sucks because it can’t do XYZ”. The samples are like “play some blendshapes” or “rotate a cube” which are so basic that it leaves me wondering what you actually want to get feedback about if that’s all they can do.

2 Likes

Please improve Quality of Life for the Animation Window.

Two concrete requests:

1. Improve handling of small values for Curves. For example, I can visually see in the animation that I need to adjust the curves to have it be more smooth. Here, I want to adjust 0.05 in the x between two keyframes, but what the curves window presents is absolutely unusable no matter how much I zoom. If there is some way around this please let me know and improve the discoverability of that feature.

2. Add QuickSearch-like feature when using Add Property. Usually I know exactly the name of the gameobject that I want to adjust its transform for. However, if there’s much of a hierarchy at all, I have to spend time unfurling gameobjects to get the child of a child of a child then the position or whatever.

1 Like

Thanks all for feedback so far!

We do not currently have plans to make a release from the 0.9.0 branch.

Thank for this feedback, and I can understand the sentiment. In the case of DOTS Animation in particular, I would suggest keeping an eye on the DOTS Animation forum in a couple months, as I indicated above. We’ll clearly communicate there when the dev team is able to engage more, and will do our best to be specific about the level of the experience across different parts, what kind of feedback we’re hoping to get, and so on.

Thanks for this feedback. For item 1, can you solve this problem by selecting the channel for the curve you want to adjust, and pressing F to frame the curve editor around its range? (See the section in the docs on “Fitting your selection to the window.”) Your suggestion for item 2 makes sense, and I’ll make sure we track the request.

4 Likes

Thank you! That works. I’ve seen plenty of others not being aware of this feature too. Perhaps to improve the discoverability there should be a little button that showcases this feature exists and which states the F-shortcut on tooltip.

Regarding DOTS animation, my project is using DOTS, mostly ECS, and deforming the mesh in the CPU (with my bone entities/transforms). Does anyone know how to push Bone Transform data into that new shiny animation system? Or can anyone point me to how to write a performant GPU Skinning Shader?

2 Likes

I have a quality of life feature request. For the animation model inspector, please add an animation window as unreal does. Because it is really really frustrating to work with tons of animations in an inspector-like layout. It would be really good to have a separate window to edit rig settings, model settings, animation curves masks etc. like a full-screen layout. Example from UE4 below. It is much easier to deal with animations in an editor window like this.

3 Likes

I imagine things like this will come in truckloads once the Workspaces feature is worked into the editor. UI Builder, for example, which is one of the most recent workflows, seems to have been built with it in mind already. So yeah, really hoping for that in animation as well.

3 Likes

Any QoL planned for Mechanim? My main request is to be able to edit multiple transitions at once, which would solve a lot of productivity issues. There is no reason this should not be supported.

They dont work on mecanim, only fixes.

1 Like

How about legacy Animation will that still be supported?

Since animation roadmap is on freeze, here is a hint when you guys thaw up.

Back in 2008 there was this little demo with tens of thousands of characters onscreen

We’re in 2021 and this is still not doable out of the box.

So what I’d like to see is:

  • bake skinmesh to vertex animation texture out of the box
  • all shaders on all pipelines and SG nodes support vertex animation
  • lightweight animator component that allows for mass animation without requiring DOTS contortion
  • low level shader access to the frame and clip being played
4 Likes

Theres a more recent demo with baking animations to textures for unity ecs on git. I did try out the solution and it wasn’t too hard to rip apart that demo for its shader and baking compute shader. I found it better to animate the frame within the shader using time, and simply setting the material to a certain animation/frame and speed.
On that note, I don’t think unity will develop something like this (they seem to be more interested in those bigger fancier features). But perhaps someone could easily use that knowledge and create an easier to use asset on the store for it ‘bake skinmesh to vertex animation texture’, as the git/custom solution requires more programming knowledge. Super useful for mobile and simpler games that don’t require more complex animations. Oh they could make this into a SG node instead of entire shader so people can add noise or things onto it.
As for a light weight component, i think DOTS is there solution for light weight stuff. A lot of their new stuff will convert to DOTS at runtime to be more light weight. The main issue with DOTS i see atm is people cannot easily edit things, I heard that project TINY had a better editor.
I am pretty sure this is the one, or similar, to a couple of years ago, it seems to have SG support now:
https://github.com/maxartz15/VertexAnimation

1 Like

Maxartz15 stuff has grown a lot! Thanks for the link I’ll play with it on the next project.
That’s true, in the past Unity loved to create Sharepoint-like systems (aka brittle bloatwares) but look at ECS, burst and jobs, also Kinematica is tight, so I think the new team sees benefits in making small modules that can connect together. There is hope.
Yes time in the shader makes more sense, I always end up doing that.
You got something to show? I like to see what’s possible with what tech, minimizing effort and all.

1 Like

I also have some hope in the community and the tech.
I made a demo using the animation baking back in 2019 but its broken (probably due to browser updates): https://deus0.itch.io/animation-demo
My current game (https://deus0.itch.io/zoxel) uses bone data to animate it instead, so its more dynamic. But the baking technique is really powerful for background characters/mobs due to processing the same bone/vertex calculations (I need to reimplement it for this later). I’m using pure ECS, something that has taken a lot of time, reinventing wheels, I wouldn’t recommend unless making a sandbox/rts game haha. Also, if you’re checking out any new stuff to play with, I recommend the Graphics class, it can make a mean grass render system (Compute buffers also), can make things like this! https://github.com/fabriziospadaro/SpriteSheetRenderer

Could you please bring the CurveSampling and Curve struct out of Kinematica and put it in more basic package? These are useful utility to evaluate curve in DOTS jobs system

1 Like