Expression Presets

Plugins + Scripts Expression Presets

Download [<1 MB]
starman updated starman's Expression Presets with a new update entry:

Expression Presets v2 - Auto detection

Update 30/11/2026

  • Added auto detection of expression morphs installed.
  • Session plugin no longer required at all.
  • Session plugin can still be used by advanced users to add supplementary morphs of whatever kind you like.
  • UI stuff
The facial expression morphs currently available on Hub are found automatically by the plugin including tongues with bone mod formulas ect. Duplicate morphs are handled and saved. Session plugin can still be used to add whatever body morphs...

Read the rest of this update entry...
 
Your plugin is absolutely amazing—I sincerely hope you can add a preview image feature. You know, when there are so many custom emojis, it’s impossible to distinguish them intuitively with just text.
 
Oh good, I'm glad it's working! There are several ways to hot save and not having through go the thumbnail snapping process is the slimmed down way for quick use. I will consider thumbnails if I return to this plugin!
 
Best expression plugin for me. In addition to optional thumbnails, it would be nice to have float on/off value for expressions (from 0 to 1), so that you can animate whole preset with just one node in a timeline with a trigger. Also copy/paste would be nice.
 
Good the plugin is getting use! Thumbnails I won't work with until Vam 2 because of the restrictive MVR plugin UI. I'd have to remake the plugin with a custom UI to do that.

As for a stored value for a preset to be "on"... It's a list of morphs and a static value. The morphs can be mutated in between applications. When you load a preset all morphs are first reset, and then preset is applied. Maybe a merge load function is what you mean.. but turning a preset off while remembering that other lists of morphs are "on" sounds like a state machine. The presets work just like the MVR native morph presets: the only real difference is it targets only expression morphs.

The plugin triggers can be used together with one of the state machines that are on the hub. For TL I don't use this, and instead use TL itself and a Expression Randomizer for these morphs.

Making a merge load trigger is possible if there is a use for it.
 
Last edited:
I 'm not familiar with vam api, i might be wrong here. I was referring to ability of appling presets gradually. For example, some preset has saved smile morph with value of 1 and eye morph with value of 0.5, and if you apply it on 50% you set smile to 1 * 50% = 0.5 and eye to 0.5*50% = 0.25. I checked up the script, loading should be straightforward to implement
Code:
private void LoadExpression(string name, float proportion = 1) // overload for partial preset load, proportion goes from 0 to 1
{
    //Bunch of stuff here
    
    //apparently here goes applying of saved morph values
    for (int i = 0; i < morphArr.Count; i++)
    {
        string id = morphArr[i]["id"].Value;
        float value = morphArr[i]["value"].AsFloat;

        float proportionalValue = value * proportion; // modify saved value by proportion from input
        if (resolvedMorphs.ContainsKey(id))
        {
            resolvedMorphs[id].morphValue = proportionalValue; // applying modified value
            string label = resolvedMorphs[id].resolvedDisplayName;
            if (string.IsNullOrEmpty(label)) label = id;
            sb.AppendLine(label + " " + value.ToString("F2"));
        }
    }
    
    
    //Bunch of stuff here also
}

No idea about how UI implementation works here though
 
Oh, that's what you mean of course. I read the request too quickly. Yes, that's very possible.

I didn't have a use case for this on presets but it's easy to do. I'll look at it when I find the time later this week. At the very least it can just be exposed to be driven by VAM's trigger system. So any slider or float driver plugin will work with it. For Timeline that is the use case.
 
Last edited:
starman updated Expression Presets with a new update entry:

Expression Presets v4 – Animatable Transition Weights

  • Added a per-preset float param: "Weight: ProfileName: PresetName"
  • Added a global float param that drives the last selected preset: "TransitionWeight"
These allow presets to be driven (animated) by VAM's transition trigger system, sliders, AcidBubble's Timeline or Everlaster's FloatParamRandomizer. Could be useful.

No UI for this in the plugin. These are things found in the list when defining an external transition trigger.

Note that driving multiple presets at the same time that contain the same morphs will conflict.

Read the rest of this update entry...
 
Last edited:
Hello there,

First of all, great plugin! Works very well! For me, this is the best expression plugin I have found.
I like it so much that I've experimented with adding some features myself.

I would like to get in touch with you to discuss if you would be interested in porting them back, or would rather let me work on a fork of this myself.

It started with a simple addition of an action with which you can play a random preset of a profile.
Then I also added animations. I just noticed you have done this as well lol.

Intensity slider 0.0 - 1.0
The intensity setting scales the effect of the morphs. IE. on intensity 0.5 all morphs will be applied at 50% of their preset value.
This slider can be manually controlled via UI or connected to something like vammoan or cheesyfx's plugin. Connect it to arousal or orgasm count for example.

Reactions
Action-triggerable "reactions", which is like activating another preset, but it remembers which preset you originally had active.
Once the reaction is done, it reverts to the preset it was before.
Reactions can be merged with a factor of 0.0 - 1.0, where 0.0 would be no reaction, 0.5 would be 50/50 merge of current preset and reaction preset and 1.0 would be completely the selected preset.
Only supports triggers, like StartReaction, StopReaction, FadeReaction(seconds)
Reactions also follow the intensity slider - unless the minimal reaction of the reaction's profile is set to 1.0.

Use case
You can now make a profile with "lewd faces" for basic expression presets with min-intensity 0.3. And a second profile for "orgasms" with min-intensity of 0.5.
You can make a button which loads a random lewd face. And you can connect it to CheesyFX's plugin suite to
- play a random orgasm face on orgasm
- fade back to the previous lewd face after orgasm
- control the intensity by the amount of orgasms, for example orgasm 0 = intensity 0.0 and orgasm 10 = intensity 1.0
 
Thanks! The plugin was made for the case of creating expressions without going through many steps. I plan on a release of this with the full freedom of VAM 2.

The uses cases are good. The load random preset from profile for one, is trivial and a good useable case.

I have a few thoughts and plans here and some unreleased ways in which I have solved this. Also, there are technical problems and design constraints for concept of intensity on a preset across the larger morph system - which is messy and not at all uniform. I'll return with a reply later, when I have the time.
 
Thanks! The plugin was made for the case of creating expressions without going through many steps. I plan on a release of this with the full freedom of VAM 2.

The uses cases are good. The load random preset from profile for one, is trivial and a good useable case.

I have a few thoughts and plans here and some unreleased ways in which I have solved this. Also, there are technical problems and design constraints for concept of intensity on a preset across the larger morph system - which is messy and not at all uniform. I'll return with a reply later, when I have the time.

Cheers. Well, if you're interested I already have these things working and can provide my code to you as a reference.
Granted, they might not be up to standard. But as far as I see, they are working great.

Just let me know if you're interested or if there's anything I can do to help improve this already great plugin even further.
 
Back
Top Bottom