Huge delay when pressing play button if a UMotion project is loaded in Clip Editor
I'm working in a very large project with many assets and resources. I've been tolerating a lot of slow editor responsiveness for a long time, some of which is due to Unity's handle of a project my size. I recently decided to do a fine tuning push on my character animations recently, so I started making changes to clips then pressing play to test them in game. While doing so, I noticed it would consistently take as much as 30 seconds to start the game from the moment I pressed the play button. When it comes to fine tuning and testing animations, 30 additional seconds every time I test my changes adds up.
So I decided to clone my project and start ripping things out in an effort to speed up my animation editing process in a smaller project with only a subset of the content I need. After removing all the content I assumed was the primary cause of my latency, it wasn't until I closed the UMotion project I had open in the Clip Editor tab that I actually noticed a meaningful improvement. Suddenly, my game would start in 6 seconds, not 30 seconds like before. After noticing this my next step was to open a UMotion project I had that only had 3 animation clips in it, then pressed play again. The result was that the game started in abut 10 seconds, instead of 25. By comparison, the UMotion project that had the 30 seconds lag actually has 74 clips in it.
In short, here are my "consistent" metrics of latency that occurs when i run the game:
1. no open UMotion project = 6 seconds
2. UMotion project open with 3 clips = 10 seconds
3. UMotion project open with 74 clips = 30 seconds
Naturally, the first response will be "why do you have 74 clips in one project, that's too may", to which I would say two things:
1. if the software can't handle it, then as a programmer its best to force limit to prevent the user "myself" from pushing it over the limit
2. in light of these findings I will limit my UMotion projects to under 10 clips each
That said, without knowing anything about the way your code works on the back-end, I can't help but wonder if there is some sort of process that is running on lost focus, or when the play button is pressed that is locking up the editor. I'd be grateful if you would focus some time on this in a future version, mainly because I love this editor and use it frequently, but my project is massive in scope, so the more seconds you can save me simply by not adding to Unity's already slow editor, the better off I'll be.
Thanks in advance!
Todd
Customer support service by UserEcho
Hi,
thank you very much for your support request.
If you want to do fast iterating on an animation, I recommend that instead of re-starting play mode after every change you did on an animation, edit the animation directly in play mode. Just click the "pause" button, edit the animation, re-export the animation, then click the "pause" button again to continue playing. No loading time is going to be involved during this process.
Some further information: UMotion is only loaded if the Clip Editor or the Pose Editor are currently visible. If you switch tabs so that both windows are invisible, UMotion won't add any time when entering play mode. So if you are currently not animating, you can switch tabs in the editor to increase loading time a bit.
The loading times that you've reported seem to be unusually high. Can you post the specs of your system, please? Is it possible that it's probably running low on ram (it would then automatically use the hdd for RAM which slows down everything).
Could you send me the UMotion project file that you've used for your tests (via the email support form)?
Best regards,
Peter
Thanks for the response Peter.
I have since done exactly as you recommended and began fine tuning animations with the editor paused. That's an indispensable feature, thanks for that!
I'll keep in mind hiding the tabs as well. Typically what I'm doing is switching custom layouts between animation and development so to avoid the latency the tabs can cause as I noticed they were a factor when pressing play.
My PC is fairly powerful IMO:
OS: Windows 10 Pro
CPU: Intel Core i7-8700K 3.70 GHz
GFX: NVidia GeForce GTX 1080
RAM: 32 GB (DDR3 I think)
HD: Samsung SSD 970 Pro 1TB (20% Free...maybe I should move some stuff around, but this is not the OS drive)
I think a big part of it is the fact that my Assets folder has 57 GB of content. Some of this content is not yet used in game but is there for convenience. Although, when I created a cloned project as I explained earlier I reduced the Assets folder to 25 GB and still had the delay times I listed above.
As far as giving you a copy, the File attachment feature on this Wsywig won't let me upload it because it's 54 MB which exceeds the 20 MB limit. I could post a link from dropbox, but honestly it's probably not worth either of our time at this point. I'm moving forward with the pause-and-edit feature so it's not that urgent now that I have a workaround.
I do however, have a different feature request I'd like to submit. What are the chances you could at some point implement a pre-defined curve list for the Curves tab. Similar to what Unity has in various components, such as the Shuriken Particle System.
Not sure how many people would benefit from this, but, when I'm trying to fix animations that have really messed up rotations it would be very useful if I could select a set of keys and click on one of the thumbnails in the bottom of the above picture to apply a smooth curve or flatten them. This tends to be necessary with some of my animations I've downloaded from various sources that have, for example, a foot turned backwards or something. Normally, those animations would be garbage, but thanks to your amazing software I can salvage them!
Anyway, food for thought, thanks again!
- Todd
Have you tried using an additive animation layer within UMotion to fix things like a foot turned backwards? It allows you to add "offsets" to the existing animation by adding another curve on top of it. I used this feature in this video tutorial for example: Editing Existing Animations - UMotion In Practice
I really appreciate your idea with the curve presets. I've added your feature request to my internal "ideas for the future" list, but I can't promise anything as of right now.
I'm going to close this topic as "not reproducible" for now, but if you ran into similar problems in the future feel free to contact me again and we can further investigate into this topic.
Best regards,
Peter
Yup, I've been using the additive layer heavily as well, it's a powerful feature that handles most scenarios. Thanks for adding my request to your list, I won't hold my breath as I'm sure you have a million other more critical things to do. It's a nice-to-have but certainly not a necessity.
Thanks again for this awesome software and for your time.
-Todd