BlackStartx / VRC-Gesture-Manager

A tool that will help you preview and edit your VRChat avatar animation directly in Unity.
MIT License
304 stars 23 forks source link

[Bug] Trigger-based transitions are initialized as true #60

Open JustBuddy opened 2 months ago

JustBuddy commented 2 months ago

A regression from the last version 3.9.1.

In 3.9.2, GM gained the ability to handle parameter driven triggers. However, there seems to be an issue with the implementation, as running a simulation of my avatar now seems to run all triggers as true upon initialization, causing wrong behavior in emulation overall.

Forcing 3.9.1 in a 3.7.0 SDK Project doesn't show this issue.

Example

image The character uses an asset by me, which makes heavy use of triggers. On emulation start, seemingly all triggers are run, which runs the save/load routines of that system and puts the avatar into pose mode on start, which is incorrect.

While debugging it, I noticed this:

https://github.com/user-attachments/assets/04189bcd-a1b7-4c8b-8185-d88b4dc4364d

The only thing I do here is to reset the avatar. (Expressions → Quick Actions → Reset Avatar) I do that 3 times in this clip. As is visible, the animator processes the trigger-transitions immediately, causing wrong behavior due to run state behaviors (e.g. parameter drivers.)

This breaks testing trigger-based assets.

I verified that this only happens in GM Simulation, and not ingame.

BlackStartx commented 2 months ago

Hi Buddy~ :c 🌺

Sorry that if even after 3.9.2 this issue with parameter triggers was not properly handled.

The testing scene I've set-ed up was pretty basic and I faced no issues in it... probably too basic to expose this flaw~ I'll go back on it and provvide you with beta packages in here~

Thanks again for the report,

BlackStartx commented 2 months ago

Hey Buddy~ 🌺

I've developed a fast (and a little cursed) work-around to check if I understood what's causing the issue~ You can find the UnityPackage here: [HotFix] GestureManager 3.9.2-hot.fix-1.zip

Inside the .zip file you can find the UnityPackage~

(GitHub for some reason do not like .unitypackages :P)

By the way, the package only contains script files, you have to import it over a Gesture Manager installation! Either 3.9.2 or 3.9.1 are fine~ :3

Feel free to try it out whenever you want or can, if you confirm this works I'll work on an official way to handle the issue!

Thanks so much once more,

JustBuddy commented 2 months ago

Hey

Got to try the Hotfix, seems to work correctly.

JustBuddy commented 3 weeks ago

@BlackStartx Any progress on this? The bug is still in the live VCC version of GestureManager.