Two bugs I've encountered so far:
- Maybe I haven't understood their function yet, but the time and blend speed sliders lead to some very snappy expression blending when decreased (video). Looks to me like the blending processes might be overlapping but keeps resetting one of the morphs. This can be smoothened: for example lowering time can be fixed by increasing blend speed (and vice versa), however setting time to 0.2 and lower blend speed can not be increased high enough for this to work.
View attachment 478946
- When you have more than one person in a scene, have an active expression going on and (accidentally) switching person atoms at the top, all morphs get removed, but the expressions still keep playing forever. Re-selecting the original person atom doesn't fix this, only clearing/removing the plugin does.
Also I've found it a bit counter intuitive that clicking on "T1 Active" enables the expression, but toggling it off doesn't also deactive them.
Apart from that this plugin looks super polished and feels really powerful. I feel like I've only scratched the surface of what is possible with this. Excellent work!
Thank you!
Can you go below .70 seconds in time
In all my testing so far going below .70 Time (sec) is generally not recommended unless you test it and can confirm you can get good results you can use with it. The reason being is it's based on seconds and that's less than a fraction of a second and way too fast to process/see well/use. It's showing what a micro second animation combination looks like and it's attempt at trying to generate it, so is typically not going to look very good. I have seen good results down to .50 Time (sec) with some morphs doing a clean Active start and Reset/Stop but when going lower it seems to not be very usable.
If you want very fast micro expressions, It should to be isolated and tested per tab with full Reset/Stop and start just to make sure everything clears, and then test settings that way before moving to next tab. There are processes in the code that go one after the other, so although it can technically do it, going back and forth with sliders could disrupt those processes where they can no longer keep up, and it messes up, where sliders lose real time tracking or connection. Essentially silently crashing it.
Adding feature for faster real time slider tracking/feedback/mid-cycle updates
Sliders silently crashing/losing live feedback when moving to very fast speeds and back while active is possible unfortunately. This may be one of those things where saying it supports real time slider updates when other plugins don't is a bit of a stretch in that it does but with some limitations. And I think this shows why it's maybe not a good idea in general to encourage or suggest real time slider feedback because in many instances a clean refresh or Reset/Stop may still be recommended or required. There are ways I could buffer against that on the back end but the trade off are usually not good. I think most developers would just put a limiter on it/hard cap to not allow it at all and limit micro second expressions because they are a high risk for silent crashing issues. I think for general public use, that's probably the most common approach. But I really did not want to do that incase someone finds a use case for it like robotic glitching, strange sci-fi/horror type expressions, twitching, etc.
I could also add more higher frame monitoring of changes so it tracks these real time slider changes faster and then attempts to change the expression cycle mid cycle to try to catch up, but that may still push it too hard requiring micro second tracking and micro second updating and I just don't think it's capable of doing that. And if it is, it would probably come at a high performance hit having it track and process that fast. I can look into it and do some tests to see what is possible but so far I have not seen a clear option that didn't involve a bad trade off for it.
Adding feature to change select person while morphs are active
In regards to the drop down change to Select Person while running, yes there are a few ways to silently crash the plugin and changing that drop down while running can do it. Your best option would be to have another instance for that other person. One of the biggest challenges with a plugin like this is managing active morphs once they are started. Hot swapping MoodPresets in (loading a MoodPreset in while active, then loading another in overwriting all boxes while still active) can clear the tabs while they are still running for example. So what you end up with are morphs that are triggered and pushed out there to do something actively, but then have no tracking of it anymore because tracking has been directed somewhere else and there is no log of it in the plugin anymore because it's wiped from the boxes. So I had to add an Active Morph Registry to track those orphaned morphs so they could be faded to min and then to 0. Basically tracking and finding the morphs not even in the plugin anywhere, but that where loaded on the previous LoadMoodPreset and changed out before they completed.
So the challenge with this is somewhat similar in that it would require all processes to be re-written to adjust for if Select Person is changed mid-cycle and mid-cycle changes are the most problematic with things crashing and breaking along the way. This is why some plugins don't even offer real time slider feedback at all. It requires a reload every time because of it being a mid-cycle change.
I think adding a feature to change Select Person mid-cycle would be a nice feature to have and I can look into it but I don't think it could be done in a good way without a trade off. And would just be much easier, cleaner and more reliable to just use another instance for that other person.
Adding enhancement for StopAll when Select Person is changed while active
I think what I can do for the next update is have it run StopAll if the Select Person is changed while active to avoid someone having to reload it. That could be useful in case someone starts it on the wrong person and wants to change it. So thanks for letting me know about that, that is a good catch.
I really do appreciate the feedback. If while you're testing out the plugin, you find something you really need for a scene, and can provide me with a use case example of how you are to use it, I can look at it further and test with your use case to see what's possible if you provide a scene example and/or mood preset example of how you'd use it.
