2D Animation 2.2.0-preview.4 for 2019.2 is now available!
The sprite swapping workflow has been improved by making Sprite Resolvers more robust for animation by replacing indices with labels.
In the Skinning Editor, bone association now picks up the nearest bone when no bones are overlapping the Sprite.
Important Note:
Because we redesigned the way we implement Sprite Library, previous assets and components will not work. Please use the new APIs and redo your Sprite Swap setup.
Getting Started:
Install latest Unity 2019.2.
Open Package Manager by going to Window > Package Manager
In Package Manager display preview packages by going to Advanced > Show preview packages
Choose 2D Animation preview.4 - 2.2.0 from the list and click on Install at the bottom right of the Package Manager window.
To clarify: Does this mean all of the previously created 2D rigs and animations will be broken and have to be redone? Is there no upgrade path to convert the old data to the new system? That sounds really rough, even for a preview package.
Edit: After doing some tests with the new version, it looks like in general all animations still work. I was worried, because yesterday everything everything was broken when I tried upgrading from 2019.1 to 2019.2 but with the updated 2D animation package it looks normal again.
My project from 2019.1 which was running smoothly (200fps) now struggles to stay above 30 in the latest versions of these packages. My frame time in the editor has exploded thanks to what looks to me like a SpriteSkin.LateUpdate() call for every single layer of every skinned sprite, each clocking in around 0.1ms. Submitted my project with case 1174167, hopefully this isn’t how its supposed to perform going forward, otherwise it’s useless.
Are there any known issues with the new 2D renderer or LWRP and 2D animations? Since I started using LWRP to take advantage of the new 2D lights in Unity it has broken the connection between the bones and the sprites (as shown in video provided)
Just added a new character to the game and after rigging the IKs are moving the sprites no problem. So it seems the ones already in the project during the transition to LWRP they lost their connections from bone to sprite.
does this system support bone gravity/stiffness/elasticity eg physics, say can i attach colliders to bones and react with other colliders, like grass collisions for character walking through the grass, or is there a simple way to achieve this, and how?
EDIT: i was unable to make the generated joints work with rigidbody/colliders. Also, 2D joints - will there be a support for this in the autogenerated Animation2D gameobject? The closest that i came to was to completely unpack the prefab, insert rigidbody and some colliders, but the joints are stiff, and there seems to be no way to enable physics for them. I guess im asking if the system will allow to add friction/elasticity et al, for the added joints.
Sorry it took longer than I thought to get back.
As I was making a new project to reproduce the bug I discovered I could not, everything works fine.
Then I discovered in the project that has the broken bone → sprite connections that the PSD file was actually fine. I could drag it into the scene and the bones move the sprites as usual. So something must’ve happen to the prefab and/or IK connections when the update was happening. Luckily its only 2 characters that are affected so redoing the IK isn’t a massive job so still an annoyance. I guess this is the pit fall to working with preview packages
Is there any new info on this topic. Can only animate 4 rigged 2d gameobject before the framerate drops under 30. The problem is in SpriteSkin.LateUpdate(). Iam using 2019.2.1f1
A user from another thread made me come back to the same question asked in #11. Can somebody please answer it? If there is no such support, or no such support coming/planned/whatever, just say so. Cheers!
This was discussed like a year ago, as i also requested it shortly after Anima2D integration into Animation2D-Experimental (its an old thread). Reply from Unity was something like “we would like to consider it later when we have basics bug-free and running” (at that time, there was not even Sprite-Swapping, so stuff like that). Their reply also suggested that they will consider it, meaning whatever they implemented since, would be compatible with it.
However i wouldn’t expect it for another year or two (or more). Thats why at that time i also had to choose a 3rd party alternative with FFD support, looking forward for in-engine integration later.
My suggestion is, if you really need FFD for production, go 3rd party, or there are some assets that do it in-engine (but afaik none of them hassle-free). Not even the Animation2D is stable atm (preview), so you’ll avoid some issues from that as well. I myself will avoid Animation2D for production for another year at least (not even talking FFD here)
I remember that back-and-forth actually. I was just curious because it seems like sprite-swapping would have needed FFD to have already been implemented (if they planned to support FFD on swapped-parts).
FFD not being mentioned in such a long time by anyone (including users) means that it may not be on the roadmap, as I don’t recall anyone from Unity even making the mention that they would actually (for sure) include it…
Technically, the (free) Unity Sprites and Bones did all of this (even FFD) and was (and probably is) still stable, but it wasn’t hyped much (probably because of timing and DragonBones being released, etc.) and suffered from next to no documentation and was just much less visually-nice (interface-wise) than Unity’s version since many of its functions were hidden or not very easy to discover. It, however, was very usable. It was unfortunately made way before the conception of ECS/DOTS, so it could do better in terms of performance now probably. The author (that took over the project) was going to make a better-organized version, but I’ve not heard anything in some time on this front. No idea if it ever took off, but the old version is probably still floating about someplace.
FFD is on our roadmap though we haven’t started working on it yet. There are still some fundamental work that needs to be done before we can start on it but rest assure that it’s a feature we want to have in our tool.
That’s great!! – Maybe now is the best time to request that FFD also supports real-time swapped (in-place) sprite parts?
For example, if I have a human head that I use FFD to animate the mouth talking, but after being hit in the face with magic or something, I will swap the human head with a monster character’s head (with two mouths, both positioned strangely.) I want to then be able to use that new head’s FFD double-mouth animation in place of the human head (perhaps even with the same keys/timing – but in other cases, I might have a whole other set of animations for that head where it is, where, for example, it is looking down at its feet in shame as either a monster or a human). The obvious use-case is equipment swapping for most people, but flexible use of FFD in sprite-swaps for cutscene animation is just as important.
Do you think you guys will be able to work this into the design, @Leo-Yaik ?
Maybe this is future-stuff, but perhaps some parts could maybe also have a pivot offset (for example – a human turning into a monster might have slightly different proportions, so the animation would be relatively the same, except for a slight offset from the shoulder/torso/head pivot origins.) This could be getting into the modular-rigging territory for 2d animation, so maybe that’s future-stuff, but it would still be really REALLY useful for games…