• Hello Guest!

    We have recently updated our Site Policies regarding the use of Non Commercial content within Paid Content posts. Please read the new policy here.

    An offical announcement about this new policy can be read on our Discord.

    ~The VaMHub Moderation Team
  • Hello Guest!

    We posted an announcment regarding upcoming changes to Paid Content submissions.

    Please see this thread for more information.

Expression Randomizer by Extraltodeus

Plugins Expression Randomizer by Extraltodeus v1.8.0

This plugin was originally developed by Extraltodeus - if you're reading this, thanks for your awesome work!
Update - Everlaster has made quite a few changes to this resource. Thank you Everlaster!

Usage tips

The built in presets should be useful as starting points for custom presets. You can save your own presets and load them with triggers during a scene's playback.

Use Glance by acidbubbles for realistic eye movement and better blinking

You can randomize the plugin's parameters with FloatParamRandomizerEE by everlaster, making the expressions even more dynamic.

You can also combine multiple ExpressionRandomizers on the same atom, as long as they're adjusting different morphs.

The better morphs you have available, the better results you will get. You can use morphs from morph packs or create custom morphs with Morph Merge and Split by ceq3. See Using custom morphs below.

Creating a good expression preset
Since the plugin randomizes morph values, it's important to set the Minimum value and Maximum value such that you don't randomly get an overly distorted expression when all morphs happen to hit a very high or very low value. The plugin applies expressions in loops, and at the start of each loop, each morph gets a different random target value within the min-max range.

Here's a workflow that might be useful:

1. set min and max to the same value, e.g. both to 1.00
2. turn off random chances for transitions

Now all morphs that are selected get a new target value at every loop, and always adjust to the same value since min and max are equal. The expression you get now is the most extreme possible expression. If this looks ugly, adjust the max value and toggle morphs on/off until you're happy.

You can also do the same with the min value if you intend to apply negative values on the selected morphs. For most morphs, extreme negative values don't work well since the morphs are designed to be used at positive values. But in theory you can set both min and max to the same negative value and see what the most extreme negative-valued expression is, and again if that looks bad then increase the min value, and/or select different morphs.

With this above method you can pretty easily calibrate the min and max values, so that any expressions that you get with randomization between those min and max is not going to be too extreme.

Using custom morphs

The plugin searches for morphs from regions that contain "Pose" or "Expressions" (partial match, case sensitive). To get custom morphs to show up in the plugin, just make sure the region contains one of these two, and not any of the below excluded regions.

Morphs don't technically have to be flagged as pose morphs, but it's recommended that they are. Just set "isPoseControl" to "true" in the morph .vmi file.

Morphs whose region contains one of these (partial match, case sensitive) are not recognized by the plugin:
"Eyes Closed Left"
"Eyes Closed Right"
"Mouth Smile Simple Left"
"Mouth Smile Simple Right"
"Pose Controls/JCM"
  • Plugin.JPG
    359.5 KB · Views: 0
First release
Last update
5.00 star(s) 6 ratings

More resources from VamTimbo

Latest updates

  1. Expression Randomizer Facelift!

    HUGE THANKS TO EVERLASTER FOR THIS VERSION! He took it and ran with it.. lots of improvements...

Latest reviews

Good plugin. Some small bugs in the saving mechanism as mentioned on some of the other reviews but can still be manually configured and works really well, thanks for this.
Upvote 0
Love it!!
for some reasons, even if i save a configuration in slot1, i get the message no configuration saved in slot1 (or similar) when i reload the scene. The only thing i can do is to save manually to a file and manually reload it every time i load the scene..
Maybe you can add a trigger to load configuration from a file?
thank you =)
Upvote 0
Very cool plugin! Only thing I'm missing is a min and max duration for the loop timer for more randomness
Upvote 0
Great work!
Upvote 0
Thanks for the update. I also always liked this plugin for the simplicity but it lacked a good search and presets if I remember. Great job updating it, thanks for sharing.
Upvote 0
An all-time favourite getting a well deserved lifting, even easier to use now
Upvote 0
Top Bottom