VaM 1.x Animating expression morphs

Threads regarding the original VaM 1.x

rokoc

Member
Joined
May 31, 2023
Messages
86
Solutions
1
Reactions
11
I know it's been done to death but it's not so much of a how to animate them but more the methods people use.

I've got randomly looped main sex animations in timeline.

For facial expressions I'm messing around with them as a layer in timeliness and I'm not completely sold on how to approach. do I loop the expressions or do I not loop them. playing around with blend times etc. do you start each expression the same then animate or start each animation as a different expression and let blend deal with it. how long for each animation ? I'm currently doing 2s

I've tried most of that and it's passable but not great since the main animation is random.

I like to keep plugins to a minimum or lightweight and don't get on well with the various emotion/expression plugins.

Just about to start trying with a distance comparison plugin and animate the morphs that way as a sort of depth meter, pick random handpicked morph change its value based on depth value

If anyone's got any other tips/workflows etc I'd like to hear them
 
This is an aspect I think it's never done to death because it's so difficult to make it good and varied/natural. A wrong or overdone expression can kill immersion in an heartbeat.

The best result is when you carefully match the expected expression to what is happening at the moment, but damn, that is a fuckton of work and it's set in stone. If I'm making a scene I would like to use it later on too, and if I know exactly what and when a certain expression will happen, the interest in the scene is lower each time I play it. For this reason, my balance point is in randomisation with the con of having sometimes a wrong or weird result at moments, but the overall experience is compensated by feeling more fresh. I think that is the same kind of balance you are looking for.
Just a note that this is for using during sex animations, while a story animation I would do more a more rigid expression work.

In my randomisation of expressions in sex animations, I prefer using a separate Timeline plugin from the body animations as it gives me more flexibility to experiment and mix. Another reason is that if I decide on the moment to use some kind of plugin to do expressions instead of my sets, disabling that separate Timeline plugin would not affect the animations or need to redo a lot of the scene structure. It's one more timeline plugin in the plugins list but gives you a lot of freedom.
On that timeline, I pick a bunch of expressions as targets that I think portray a good range of expressions. I then make one animation for each of the targets to be the main target in use (not 0), sometimes with a smidge of another one, AND:
  • randomise to *
  • 1 second animation time
  • random loop 1-3 plays
  • blend in time about 3 seconds (longer than the animation so that all blend the blendings)
As an extra, I also use a logicbrick random value brick to change Timeline speed to 0.5-3 or so to give even more randomness in the output. Possibly also do a random weight value too, I don't recall well now, but this all gives very interesting blends and mixes.
Naturally, being random means that sometimes you get weird results but that's the price to pay for randomness.
 
Upvote 0
I feel the same way; I create a separate timeline specifically for facial expressions.
I think there are many advantages to creating a timeline for facial expressions and setting up a full range of them—such as the ability to reuse them in other projects.

I control the piston speed (auto-thruster) and voice using the expression timeline.
And when she reaches her climax, you slow down the speed of the body's timeline, vibrate her head, and have the surrounding men react—such as by ejaculating on her face.
Basically, everything is controlled via the her facial expression timeline.
Her expression is the part I most want to showcase, so I’m focusing on that.

In my case, I don't use random facial expression changes; instead, I meticulously craft the expressions.
To keep things from getting boring, I sometimes create three different variations of the facial expressions she makes during sex.
For example, I create her face pattern—such as "she hate you," "she like you," or "she just obsessed with sex"—and allow the user to choose between them.

I think it is best to avoid blending morphs as much as possible.
I don't think the morphs were designed to be used in combination, basically.

Morph A (1)  -3 sec-  Morph A (1)     0.5–1 sec   Morph A (0)  -5 sec-  Morph A (0)
Morph B (0)      Morph B (0)           Morph B (1)        Morph B (1)
            
                  ( Morph A , B (0.5) )

If you use Morph B, you need to make sure to explicitly set Morph A to 0; otherwise, she will end up with a strange-looking face.

The time it takes to transition from morph A to morph B varies.
For instance, immediately after changing the piston speed, the expression might shift to one of surprise in 0.3 seconds.
Depending on the morph, it may look natural even when changing slowly with a blend duration of around two seconds.
Even with a single morph (Morph A), I might use it for a full 10 seconds—simply by adjusting the gaze, changing how wide the eyes are open, or opening and reshaping the mouth.
You can easily do this by first creating a few specific facial expressions you want to show, deciding at what point during the sexual act to use them, and then filling in the transitions between those moments.

It is likely also possible to have the facial expressions branch out randomly.
But honestly, I don't think there are that many variations of facial expressions during climax.
Even if the facial expressions leading up to the climax are randomized, I consider that sort of thing a mere extra—something likely unnoticed and unnecessary.

Basically, I create things with the mindset that it’s enough if I can simply make what I want to make.
It is likely impossible to create facial expressions that work regardless of the character they are applied to.
If someone wants to play as their favorite character, I think they should find a way to make it work using their own skills, or simply ask for advice.
I think that if you get too hung up on versatility, you’ll end up creating nothing but dull scenes that lack variety.
 
Last edited:
Upvote 0
Thank you both for posting. interesting methods I'll be sure to be trying out. also interesting take on not blending.

I'm definitely of the opinion less is more. tiny subtle changes you think you'd might not notice but you really do and helps immersion. eyebrows, smiles and eyes open/close morphs for idles and slow scenes and higher values for sex.

Not had a lot of time to experiment with other ways lately. I'd really like to utilise vuml but actiongrouper causes ungodly lag/freeze when selecting geometry that i need to force quite.

I guess it's struggling to load them in the drop down but it's not even that many morphs I don't think. is there another way to get vuml's vfloat for a distance measurement to a morph. nothing apparent in logic bricks or the other logic bricks from hal. Unless I'm missing something
 
Upvote 0
ActionGrouper is a very old plugin and may be unstable.
Can you explain in more detail what you want to do with "distance measurement"?
 
Upvote 0
ActionGrouper is a very old plugin and may be unstable.
Can you explain in more detail what you want to do with "distance measurement"?

vuml is set to get the distance between hip and floor (slate or any other target) continuously it gives 0.2700000 to 0.2200000

idea is take the value, remap it to something useful (0.00 to 1) that would change a morph value like eyes widen the deeper she goes
 
Upvote 0
I see.
I need to test stuff as the last time I used VUML was quite a long time ago. I'll post sometime today with my results.
 
Upvote 0
I see.
I need to test stuff as the last time I used VUML was quite a long time ago. I'll post sometime today with my results.
just found a plugin that can do what i want in one.


Kinda works but the end value isnt very workable/scaleable etc needs mapped to something. though ive only been trying it for 20 min.
 
Upvote 0
actually, messing around with target position as an empty and scaling options in plugin im getting good results in a short period of time.
 
Upvote 0
Back
Top Bottom