AldrinMathew / stopmagic

Stopmotion addon for Blender that helps you create amazing animations faster and easier than ever before... from @AldrinMathew
GNU General Public License v3.0
93 stars 2 forks source link

Onion skin issues #9

Closed josephsdaniels closed 2 years ago

josephsdaniels commented 2 years ago

With the addition of the onionskins by Pose, onionskins are badly broken, whether in Pose or Range mode. Here are the issues:

-Onion skins rarely show (tested in all render view modes). If I scrub back and forth for a while, occasionally I'll see one but if I scrub away and back, it's gone. -With Onion skins enabled, the Find Keyed Frame buttons/hotkeys stop working

OnionSkinsBroken.zip

AldrinMathew commented 2 years ago

Sorry about the mixup of the issues. Can you uninstall the addon, reinstall it and then try creating a new file to see if you can reproduce the issue?

josephsdaniels commented 2 years ago

No worries :)

Super repeatable for me. I'm attaching a new file, and a recording of what I'm seeing. This time, I saw 1 onionskin once, but when I recorded it, as you'll see, I never saw an onion skin at any time. BrokenOnionSkins2.zip

AldrinMathew commented 2 years ago

The funny thing is the buttons never grey out for me during testing. So initially this felt like an odd behaviour. The buttons are supposed to be greyed out if there is no active object. And I checked. The Previous button has the right logic. That is, it will be greyed out if there is no active object. The Next button will always be active as it doesn't haven't the same logic, which was a mistake. So the problem here is obviously that there is no active object, which means the addon cannot show onion skins to begin with. It only shows the keyed meshes for the active object. You did mention that you were able to see the onion skins here and there. I believe it's when you select the cube again. Because I did that in your file and the buttons are active again. Then I enabled onion skin and I could see one frame. The problem though is that when I start scrubbing, there is no change in the shown onion skin. So this means that the handler for displaying onion skins are not called.

But anyway, the video really helped and I might have to do some digging on this to find out why the handler is not called properly

AldrinMathew commented 2 years ago

Ok so I found an existing solution to the problem: Initialize Frame Handler I updated it to also include the Onion Skin Handler and then opened your file and pressed it, and the onion skins were back and scrubbing also worked. I expected this to happen as the onion skin callback was only called when the feature was enabled, or when a new mesh is keyed. So that means that the handler function for the onion skin was cleared by Blender after a while.

Besides letting the artists use the Initialize Frame Handler every few minutes, there is only one solution that I see for now. Periodically update the Handler functions. This feels like a necessary addition, otherwise the workflow is constantly disrupted.

AldrinMathew commented 2 years ago

This fix will be reflected in the next deployment, which will be done in a few minutes