During the traditionally quiet summer season, many of you have added some great comments and questions to my last update , along with some understandable uncertainty , skepticism and impatience to know more details.
I actually started trying to build individual replies to everyone’s questions (attempting without repetition) but instead, I thought I should try and at least pull out some common threads otherwise things might get muddled.
Then it made more sense to bundle this into another quarterly update, for wider visibility.
I will preface this with the fact that I can’t always answer all of your specific questions, requests or complaints, but do acknowledge them, while I try to address some of the bigger questions.
Mecanim’s status
Mecanim is not going anywhere and we will continue to support it. But SolarianZ does point out what is at the heart of the matter for Mecanim, mainly that it does not manage complexity well. That’s because it is a bit old in software terms. The architecture was laid down around 2009 and it was first released in Unity 4.0 in 2012, for comparison Unreal was still on version 3 then. So yes, the current animation architecture, while originally flexible, is now comparatively limited, and is certainly not capable of scaling to the complexity needs of future games, or for the next 10 years as ThynkTekStudio mentions. Now, Yoraiz0r quite fairly posits that we might be able to fix Mecanim, which is something many of you might also be wondering. I am not sure how many of you know, but we still have original Mecanim architects in-house and after a serious amount of investigation, we know for certain the amount of work to rearchitect or DOTS-ify it in place, is well, FAR bigger than building on the new DOTS architecture.
Yet another additional system?
Yoraiz0r also highlights a common complaint that we have multiple competing systems in many areas of Unity. I agree with this, as well as with the statement “…have just one and make it the best it can actually be from all perspectives authoring, runtime, and UI…”
We thought we could eventually do this when we released DOTS animation…early. Many rightly said way too early, as it was incomplete and pretty much an all-or-nothing proposition in a pipeline. We have been a bit guilty in the past of over-promising and under-delivering, not updating quickly enough, and even abandoning solutions some are using in production - albeit usually experimental. I agree we should eventually “just have one” but we don’t want to make the same mistakes I just mentioned, knowing that managing multiple competing Unity systems, and packages in different states, across multiple Unity versions, is untenable. So…
In an ideal world…
There have been a couple of remarks related to my “not ideal” comment in my last post. Well, in an ideal world, I would love it if we would fix every bug and the little things , add improvements and new features to Mecanim, AND build a new animation system on DOTS, all at the same time. So, AcidArrow is partially right in that while ultimately it is not my call alone, it is certainly a collaborative matter of setting priorities and resourcing. Given this, we believe we are working on the ideal next steps to ensure the future of animation at Unity will exceed your expectations. So let’s dig into that.
GameObjects vs ECS
Yuchen_Chang asked about GameObjects. I did mention here that yes, you will be able to continue using GameObjects, and that we won’t force you to use ECS. However, we do expect that if you are undertaking something of considerable scale then ECS will be best suited to that scenario, while continuing to coexist with GameObjects at the same time.
So it should really do…everything?
We really do listen, even though some might think we are developing in a vacuum . There were a ton of valid requests, requirements and different perspectives from the last thread alone. Here are just a few.
saskenergy touched on the need for better netcode integration.
nickdollahz points to a very interesting video about Animation Graphs and Hierarchical State Machines, and much more
SolarianZ has suggestions , including for graphs, markers, and flags. As well as the issues around Playables , which is really tied to Mecanim, so poses as yet another system to somehow support.
Unification starts with a key pun on overlooked timeline features
kvfreedom hopes we can learn from Animancer as a simple and direct way of playing animations. I completely agree this fills a need and is high on our list to review. But perhaps more importantly, is also making sure Asset Store creators have continued success with the new system.
optimise and deram_scholzara want clarity on automated upgrading, which I honestly believe is far harder than anyone might think, and might not be possible.
Yoraiz0r goes into great detail about Humanoid . It is popular but has not aged so well, even though we know it is widely used, it has some severe limitations, which is why we have Generic…which is yet another competing system
As a microcosm, this amply illustrates the breadth of our challenges.
Animation is in every game, and the needs are varied and endless it seems. We recognize that there are many people and disciplines that touch animation in some form, in every game, and we know that there are common requirements that every production encounters. It is these we want to make sure are bulletproof in production. In an ideal world, we would complete everything for the first version of the new system, but we know that is probably too big an ask. However, when we do deliver, it absolutely must serve as the foundation for all productions! Be approachable for those who use it every day, and it must be easily extended on demand. Once out, it should very quickly expand to deliver on all production needs
Challenge accepted!
The recent feedback has been great. It has helped shine a bright light on the many broad requirements we are undertaking.
So, now we know we can’t realistically evolve Mecanim or just have a DOTS-only solution, and that the new system must continue to work with GameObjects, and easily scale, elegantly handle sophisticated characters, and manage future complexity. It must be comprehensive and not just another competing system to juggle, one that is not half-finished, but ready for production now and for the next 10 years. It should be highly customizable, unquestionably performant, multiplayer ready, have extensive authoring and runtime capabilities, and limit the need to rely on 3rd party plugins.
A simple summary might be, make it “fast, flexible, friendly and future-proof”
A simple answer to what is Unity building, is “All of this”
Needless to say, we likely won’t be able to do absolutely everything out of the gate, which won’t please everyone. But we absolutely will ensure that whatever we release, is ready for any production.
Why not just share what we have?
optimise reasonably asked if there was an experimental package ready. Simply put, no it is not ready. But when we do have one we will of course be extremely keen to get your feedback.
An exercise in patience
We are very aware that it has taken longer than we expected, and hope that you will continue to bear with us as we endeavor to prepare this significant advancement.
I have no doubt that the questions and comments will continue, but hopefully I have given you a bit more clarity, as best I can, on the past, present and future of animation at Unity
Chinny
Product Manager - Animation
PS - a bit of other news we just posted a blog about Unity 2023.3 and started a forum post