ShakeIt

Plugins ShakeIt

Great plugin CheesyFX!
For performance the amount of morphs somewhat concerns me.
Hope this won't become more in future version.
 
Is WorkOut meant to be disabled when loaded by the session plugin?

1692615078333.png
 
Great plugin CheesyFX!
For performance the amount of morphs somewhat concerns me.
Hope this won't become more in future version.
Thanks! Do you see a performance hit? I'm not.
There won't be much more morphs in the future though.
 
Is WorkOut meant to be disabled when loaded by the session plugin?
Yes, because it would instantly mess with your skin setup on load. Maybe you don't want that adjustment at all or you simply haven't started the animation, so I disabled it. If you enable it and save the scene it will remember.
The other two plugins only do temporal effects, while WorkOut changes things persistently. I don't want that to be default.
 
@qdaro @HAL9001 Thank's for the feedback guys! I really appreciate that! As I said, I had that concerns for myself. FillMeUp is standalone right now, so maybe I'll just make a separate plugin out of it and combine it with the other two that are related to collisions.

@qdaro Regarding FlexIt: I'll include the enabledJSON (main enable button) in the presets. This way you could set up a FlexIt "UserDefaults.json" which automatically disables it. But you could have gotten the same result by just making a preset with all regions disabled.
Or, what I personally would recommend, dial down the "Amount" and make a preset fitting your looks. I think you'll be missing a lot if you disable it altogeher.

@HAL9001 Thanks for your work! I'll try it out soon. But maybe - I just had that idea - it won't find it's way into a release version. I have some kind of custom float trigger with additional features: It can trigger things if a set threshold is exceeded, if it falls below or if it just crosses it (any direction). Such things would otherwise require massive amounts of external logic to set up. And I think they could be useful in this context, like if the gloss overshoots 7.0 you could trigger a line saying "Would you please hand me a towel?" or start a relax animation.
 
@HAL9001 I just had a look. Everthing goes well except one thing that needs some more flexibility: The max values for the power and work are arbitrary. I think we need to give the user some mapping options, like the native VariableTrigger does. But I think my custom trigger already does that, if I remember correctly.

Edit: I'll get back to this when I'm finished with my current tasks.
 
Last edited:
...I think we need to give the user some mapping options,...
Sounds like we both had similar ideas: I adapted McGruber's logic bricks and added a MappedValueRelay and a Threshold brick for myself for exactly those things.
 
I am in love with your Workout plugin. Ive been messing with it since you released it in ShakeIT and it adds yet another awesome layer of realism!

I decided to modify E-Motion so that its breathing mechanic can be driven by the Gloss value created by your plugin and it works awesome!
 
@VRAdultFun Hey! I'm glad that you like it :) I had the same idea with the breathing some time ago. I looked into hooking it up to VAMMoan or Life, but both breathing algorithms are not suitable for that cause. VAMMoans breathing isn't adjustable at all and in Life you can only ramp up the intesity, but not the frequency if recall correctly.
I also thought about making my own solution, but I'm not sure about it. I'd rather not throw another breather into the mix to confuse people. I remember when I started VaM I always had nasty chest hickups. It took me good while till I found out that the above plugins were conflicting with each other in this regard.
 
I think that in your excellent plugin “shakeit” the parameter settings have extra buttons that clutter the interface, three, 1000, 100 and 10, or even two, 1000 and 100 are enough, changes less than 100 are still not noticeable. It is better to remove unnecessary buttons and the freed up space will be used to increase the size of the button so that it is easier to click on them in virtual reality.
shakeit1294.jpg
 
I think that in your excellent plugin “shakeit” the parameter settings have extra buttons that clutter the interface, three, 1000, 100 and 10, or even two, 1000 and 100 are enough, changes less than 100 are still not noticeable. It is better to remove unnecessary buttons and the freed up space will be used to increase the size of the button so that it is easier to click on them in virtual reality.
View attachment 287043
1. "changes less than 100 are still not noticeable" What do you mean? Do you put this to 100 and above?! If so, you are doing something completely wrong, probably ignoring the state (tensed or not) you are currently in.

2. Can you tell me how to remove/edit those buttons?
 
Hello, plugin seem super but i get constant error which unhide UI and thus break rendering movie :(


!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision col

<Truncated>

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)


i use 33ver and add it to atom.
 
Hello, plugin seem super but i get constant error which unhide UI and thus break rendering movie :(


!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision col

<Truncated>

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)

!> Exception NullReferenceException: Object reference not set to an instance of an object CheesyFX.FlexRegionSupportTracker.RegisterCollision (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionEnter (UnityEngine.Collision collision)
CheesyFX.FlexCollisionTrigger.OnCollisionStay (UnityEngine.Collision collision)


i use 33ver and add it to atom.
Sorry, I can't help you based on that info. Did you remove any colliders with ColliderEditor?
 
CheesyFX updated ShakeIt with a new update entry:

v36 Ligaments and fixes

New Flex-Region: Hand
  • Drives the ligaments
  • Fingers behave independently, but the settings apply to all
  • No thumb
Fixes: Noticed and fixed two fundamental flaws with FlexIt
  • Rotational accelerations were calculated in world space, which means faulty behavior if not in default pose
  • Accelerations were switching sign each update due to faulty measurements, which lead to dynamic flexing of both directions (bend and stretch) in situations where only one...

Read the rest of this update entry...
 
CheesyFX updated ShakeIt with a new update entry:

v37 Neck flexing

Yay, double update today :)

New Flex Region: Neck
  • Only left right and up down rotations.
  • No left right tilting (z-rotation).
  • No support tracking for now.
  • I wonder why nobody requested/reminded me on that one...
Fixed an internal error regarding the support tracking of the legs if HeelAdjust2 is not present and improved some internals to fight memory leakage.

View attachment 290997

Read the rest of this update entry...
 
Cheesy, I am running into an error when I load both the latest Body Language and ShakeIt plugins. I have searched this thread for answers and saw that there was potentially a problem with old User Settings so I deleted them Same problem. It keeps kicking this error referencing MacGruber Float Parameter. The last time I had a working ShakeIt was 22. Any ideas?

Edit: I'm on version 1.20.77.13

CheezyError.png
 
Last edited:
Hello! This is an amazing plugin, however, I've been running into a problem lately and that is that this message pops up everytime I add the plugin to a character or if I add the session plugin. I don't know much about vam so I have no idea what the error its telling me, could you help me out? I really want to use the latest versions of the plugin!

here's the error log:
!> Compile of CheesyFX.ShakeIt.35:/Custom/Scripts/CheesyFX/ShakeIt.cslist failed. Errors:
!> [CS1061]: Type `MVRPluginManager' does not contain a definition for `ReloadPluginWithUID' and no extension method `ReloadPluginWithUID' of type `MVRPluginManager' could be found. Are you missing an assembly reference? in <Unknown> at [194, 75]


The version of my VaM is 1.20.77.9 if that helps.
 
Hello! This is an amazing plugin, however, I've been running into a problem lately and that is that this message pops up everytime I add the plugin to a character or if I add the session plugin. I don't know much about vam so I have no idea what the error its telling me, could you help me out? I really want to use the latest versions of the plugin!

here's the error log:
!> Compile of CheesyFX.ShakeIt.35:/Custom/Scripts/CheesyFX/ShakeIt.cslist failed. Errors:
!> [CS1061]: Type `MVRPluginManager' does not contain a definition for `ReloadPluginWithUID' and no extension method `ReloadPluginWithUID' of type `MVRPluginManager' could be found. Are you missing an assembly reference? in <Unknown> at [194, 75]


The version of my VaM is 1.20.77.9 if that helps.
Hi, your version of vam is too old. This function is needed to keep the plugin working once you switch the gender of the person.
 
In workout, did you get the gloss offset min and max sliders mixed up, by any chance? It seems to to start at max and reach min with high work done.
Is your code on github?
 
In workout, did you get the gloss offset min and max sliders mixed up, by any chance? It seems to to start at max and reach min with high work done.
Is your code on github?
No, it's all right. Keep in mind that this is designed specifically for the gloss texture from WeebUV and nothing else. This texture produces nice streaks but dries out everything else. That's why the offset has to be lower if gloss is high. I want to have full body sweat but with streaks on top. If gloss is low the offset can be higher, so that the sweating starts with some streaks but the rest relatively dry. The threshold manages when to switch the bahaviour and is fine tuned to yield consistent results across the gloss range. That's why I would not recommend changing that.

To be specific:
If gloss < threshold the offset is driven dynamically by the gloss value, reaching minGlossTextureOffset as gloss reaches the threshold. If it's above, it should be a constant value, namely minGlossTextureOffset.

No, there is no discord, but you are free to unpack and inspect the source.
 
Back
Top Bottom