Fixed

Keys stop generating, IK Pinning stops working, Performance drop after long time

MaciejP 5 years ago updated by Peter - Soxware Developer 5 years ago 16

Hello,

There are few very annoying bugs.

We are using UMotion to edit animations recorded using Optitrack Motive software (mostly <10s, 30fps), and during postprocessing in UMotion, very often keys just stop generating despite having Auto Key set to Generate.

Also, when that happens, enabling IK Pinning stops working - there is no message box, and selected object just snaps to what I think is a 0 position.

The one thing that fixes it for sure is UMotion restart.

The last very annoying thing is performance drop after a longer session of editing. Animations get so choppy that it's almost impossible to edit them. UMotion restart doesn't fix this - Unity restart is needed.

There are no error messages in console when those bugs appear.

I hope You'll resolve those issues soon.

Best Regards

Maciej

EDIT: I've added a video presenting IK Pinning issue: Video presenting bug

UMotion Version:
1.20p04
Unity Version:
2019.2.10f1
GOOD, I'M SATISFIED
Satisfaction mark by MaciejP 5 years ago
Under review

Hi,
thank you very much for your bug report. I really appreciate that.

"very often keys just stop generating despite having Auto Key set to Generate."

  1. Does that mean that bones just stay red (modified)?
  2. What happens if you would try to manually key the modification (via the "Key Selected" button)?
  3. I think that there must be something happening (something that's just more likely to happen the longer you use UMotion but something that basically is independent of the duration of your session) that causes this issue. Can you remember anything specific that you've did before the problem appears? We need to find a way to make this reproduce able...

"The last very annoying thing is performance drop after a longer session of editing. Animations get so choppy that it's almost impossible to edit them. UMotion restart doesn't fix this - Unity restart is needed."

  1. Sounds like you're system is running out of RAM (after longer usage). Could you please verify this (as soon as the animations get choppy next time, please open windows task manager and check the RAM usage).
  2. Does this usually happen when you often switch between projects or clips? Or do you usually only edit one clip at that time?
  3. You said restarting UMotion doesn't fix this, have you tried to restart with "Window --> UMotion Editor --> Restart UMotion" (this also deletes the whole undo stack and forces a complete assembly reload thus freeing all allocated memory)?

I'm sorry for the inconvenience.

PS: Should be independent of your issue but please update to UMotion 1.20p05 so that you test against the latest version.

Best regards,
Peter

Thanks, for quick response.

1.1 - Yes, bones stay red.

1.2 - If I manually key the modification, then it's keyed (basically works as if Auto Key was set to off)

1.3 - From what I've noticed, the problem usually appears after I use IK Pinning - I've never been able to do it on 2 different animations without UMotion restart. When I weren't using IK Pinning, there was no issues with keying.

Generally one project has around 20 animations, mostly under 2s, but few are longer - almost always under 10s. All are 30fps.

2.1 - I'll check that, but the system I'm working on has 32gb of memory (and Ryzen 7 1700 if that matters).

2.2 - I've opened UMotion and left animation playing in loop when I went for lunch and when I got back animation playing was significantly more choppy. I'll check that on empty scene today.

2.3 - Yes, I've tried that and it doesn't help with choppiness, but it helps with the keying issue.

I'll update UMotion and let You know if it fixes anything.

Maciej

Update: 

2.1 - total ram usage with umotion open and scene loaded is around 9gb, and when animations are choppy, ram usage is around 10gb, so it doesn't seem to be memory related.

After UMotion update all of the above issues still persist.

Thank you very much for the detailed reply.

Regarding the Auto Key/IK Pinning issue:

I did several tests and also reviewed the responsible code but found no way to re-produce this issue yet. There must be some specific steps involved that trigger this issue and we need to identify those (fixing the code should be easy then).


Could you try to re-produce this situation (ideally I would need a step-by-step guide like: open project, set Auto Key to generate, enable IK pinning,...)? If that doesn't work, maybe when you edit an animation next time you could try to record your screen while you are working. As soon as the issue arises, I could then analyze the last few minutes of that video or so and see if the issue occurs if I try to re-do these steps.

Regarding the performance issue:

I was trying to re-produce this using the following setup: I created a new empty Unity 2019.2  project and imported UMotion V1.20p05. Then I opened the UMotion examples scene, opened the "PickUpAnimation.asset" in UMotion and started playing the animation on the corresponding robot kyle character. After half an hour, the animation was still playing as usual (no choppy animation or the like noticeable). My system is a ~5 year old laptop.

  1. Which operating system are you using?
  2. Are you using .Net 4.0 or .Net 2.0 (see Unity Player settings)?
  3. Are you using the Incremental GC (see Unity Player settings)?
  4. Does this also happen when you perform the same steps as I did mention above (a new empty Unity project and using the example scene/animation)? Maybe the issue is caused by another 3rd party asset that is installed in your current project...

Best regards,
Peter

I'll try to reproduce the auto key issue and record it. Can You give me a Discord or an email, where I can send the video?

1. Newest version of Windows 10

2. .Net 4.0

3. No

4. This can be caused by the scene / character I'm working with. The main issue is the auto key issue though.

Thanks for the answers. I've sent you an email with a link to my Dropbox.

I've uploaded a video to Your dropbox. Sorry for it being a bit chaotic, but in the end there is an auto key bug being present.

Working on fix

Thank you very much for sending me the video. That helped a lot (but it still has been really tough to get it reproduced). Anyway I've been able to reproduce this issue and am working on a fix.


There is an easy workaround you can use in the meantime: Whenever this situation occurs, play the animation. This resets an internal state that is responsible for this issue.

In your video I also noticed another issue (adding a rotation key to an additive layer, then hit undo --> switching to base layer samples a wrong pose of the character) and I'm working on a fix for that one, too.

Again thanks for reporting and for helping me getting this reproduced, I really appreciate that.

Fixed

Fixed in UMotion V1.20p06 (arriving on the asset store as soon as the asset store team finished their review). Please contact me via email if you want to receive the patch earlier.

Hello,

as for the performance drop, here is a screenshot from profiler after almost 4 hours of editing (the spiky part of a graph is when animation was being played): 

Hi,
thank you very much for sending me the profiler screenshot.

I'm afraid it is necessary to take a capture with "Deep Profile" enabled so that we can dig deeper into this "OnGUI.repaint" call. May I ask you to take a profiler capture with "Deep Profile" enabled the next time this issue occurs? Furthermore, could you send me the (deep profiled) recorded file (you can click on "Save" in the Profiler window to export to a file) so that I can further investigate?

Thank you very much for your help. I really appreciate that.

Best regards,
Peter

Hi,

here is the recorded deep profile file. (Warning: it's over 1,6GB)

Hope that helps.

Best Regards

Maciek

Hi,
thank you so much for sending me the deep profile file. I'm going to further investigate and let you know about the results.

Best regards,
Peter

Hi,

I have one more thing to ask you for. Could you please record and send me a deep profile in the same situation as the last one was recorded but before the stuttering issue occurs (e.g. right after starting Unity)? I could use this as a baseline to compare what parts of the code get a performance drop over time. The thing with deep profiles is, that the profiler adds a lot of overhead making it hard to tell if something is slow due to profiling or if this is the performance drop we are seeking for.

Thank you so much.

Best regards,
Peter

Hi, here are the logs when there is performance drop and after Unity restart with the same scene and the same animation.

(after decompression it takes almost 10GB)

Best Regards

Maciek

Thank you very much for providing the requested logs. I really appreciate your help. I'm going to update this thread as soon as I finished my investigations.

Best regards,
Peter