AnimationPoser

Plugins AnimationPoser

Hey @iLikeSoup ! Sorry for the late response. Still a little bit in a hurry.
...

Hello haremlife, thank you for the response and no problem on the 'delay'. Within a week or so, I'll get back to the project using this plugin with your helpful information. Much appreciated!
 
Hello haremlife, thank you for the response and no problem on the 'delay'. Within a week or so, I'll get back to the project using this plugin with your helpful information. Much appreciated!

If you want to share the scene in the hub afterwards I highly encourage you doing so.
 
If you want to share the scene in the hub afterwards I highly encourage you doing so.
With just a handful of poses (out of the 60 created), it works pretty well. Here is a link to a :26 video. It was a quick test using the AnimationPoser plugin where I have 6 poses (+ 6 mirrored poses) and a couple 'ready' stances randomly selected ~40MB ---> LINK

The main difficulty I'm encountering is trying to mimic the "tight" body and "sharp" motion of a professional/competitive cheerleader. In this video she has :01 to make the motion/transition, hold it for :01, then on to the next pose/state. I had to manipulate the physics for arms, shoulders, nipples and chest to make her tighter and not so wobbly along the shoulders (I never had to do this before so I'm positive there are better settings than what you see in the video). After messing with this for quite some time, I don't think a "tight" body pose is achievable due to the collisions. I also want to add some hops, turns, lunges and some 8-count routines to make it look not so random. I also had to turn off the SIM for the skirt, her right hand would collide and grab it for some unknown reason as well as make her breasts rather small, as well as max firm settings, due to the arm and hand collisions occurring during the transitions across the breasts.

Face glitter texture by cluelessvamuser, hair by RenVR, pompoms by kemenate, Enhanced Eyes by HUNTING-SUCCUBUS, VaMChan for the hair accessory, AnythingFashionVR for the skirt and top, braces by Electric Dreams, ClockwiseSilver for the Expression plugin, and last but not least, tennis shoes by YameteOuji
 
Thanks @iLikeSoup ! The interesting thing is that now you can steadily keep adding more states and layers to make the animation better and better. It seems that you have a separate layer for facial expressions right? That's a nice touch. You can probably add another layer to give a little bit of variety to hip and legs positions or to make small "jumps" which are common to cheerleaders. Or anything else that you like.

Saving and loading the animation into new characters should enable you to have multiple cheerleaders who, because the transitions are random, act "out of sync", each with their independent motions, which is a good thing visually.

However, I should warn you that there is a bug in the current version when loading transitions. This pull request gave a temporary solution for the issue: https://github.com/haremlife/AnimationPoser/pull/7 . I will either code a definitive solution today, or make a .var file with his solution and share it in the github.

Btw I laughed out lout with your March 13th post ?
 
Thanks @iLikeSoup ! The interesting thing is that now you can steadily keep adding more states and layers to make the animation better and better. It seems that you have a separate layer for facial expressions right? That's a nice touch. You can probably add another layer to give a little bit of variety to hip and legs positions or to make small "jumps" which are common to cheerleaders. Or anything else that you like.

Saving and loading the animation into new characters should enable you to have multiple cheerleaders who, because the transitions are random, act "out of sync", each with their independent motions, which is a good thing visually.

However, I should warn you that there is a bug in the current version when loading transitions. This pull request gave a temporary solution for the issue: https://github.com/haremlife/AnimationPoser/pull/7 . I will either code a definitive solution today, or make a .var file with his solution and share it in the github.

Btw I laughed out lout with your March 13th post ?
Awesome! Thanks for the tips. Expressions were achieved through ClockwiseSilver's expression plugin. I had to add it to give her face some life while I worked on the poses! Thanks for the heads up about the bug and the link. I am github challenged but I will keep an eye out for an update. I have noticed that when you load an animation file, not sure what's going on, maybe it's the bug you mention, but it seems that the Person atom is slouched or something before the actual correct (saved) pose. That was a horrible explanation. If I see it again, I'll make a quick video and post it to you. It doesn't mess anything up as far as I can tell. There was something else too that I encountered but it may have been user error or part of the issue I tried to describe. And yes, from time to time, beer-willing, I fancy myself comical. Glad you got a laugh out of it because that was the intention! Thanks again!
 
Awesome! Thanks for the tips. Expressions were achieved through ClockwiseSilver's expression plugin. I had to add it to give her face some life while I worked on the poses! Thanks for the heads up about the bug and the link. I am github challenged but I will keep an eye out for an update. I have noticed that when you load an animation file, not sure what's going on, maybe it's the bug you mention, but it seems that the Person atom is slouched or something before the actual correct (saved) pose. That was a horrible explanation. If I see it again, I'll make a quick video and post it to you. It doesn't mess anything up as far as I can tell. There was something else too that I encountered but it may have been user error or part of the issue I tried to describe. And yes, from time to time, beer-willing, I fancy myself comical. Glad you got a laugh out of it because that was the intention! Thanks again!

Yes, this bug is weird. I'm aware. I still don't know what that is. It does not interfere with using the plugin, but it is unpleasant.

The expression plugin is not necessary, because adding a single layer for facial expression works exactly the same way as that plugin. More than that, you can add multiple layers for controlling different aspects of facial expression, which makes for their independence and richness of detail.
 
@haremlife Thanks a lot for your efforts!!!

I'm using IdlePoser from @MacGruber a lot and believe that your plugin has a lot of potential to allow for use cases that are quite difficult with IdlePoser currently. However, I'm testing every new version of AnimationPoser and always end up getting back to IdlePoser, because I'm not able to run the animations that I create with the plugin.
Excuse my incompetency in case I'm missing something, but I (still) don't find a way to trigger animations that are present in the plugin.
For example, let's say I have created a set of 10 animations (A0 - A9), each having layers, states, transitions etc.
Now, if I have 10 buttons (B0 - B9), how can I make B0 trigger A0, B1 trigger A1, etc.
With IdlePoser there are obviously no animations but there is a "Switch State" trigger to switch to a certain state. With AnimationPoser I would have expected similarly that there is a "Switch Animation" trigger so I can tell each button to switch to a certain animation. Then after switching to an animation, I guess I still would want to be able to switch to certain states within those animations. However, I'm failing on the first step already.
So, obviously I must be misunderstanding something. There must be some way to trigger those animations, right?
 
@haremlife Thanks a lot for your efforts!!!

I'm using IdlePoser from @MacGruber a lot and believe that your plugin has a lot of potential to allow for use cases that are quite difficult with IdlePoser currently. However, I'm testing every new version of AnimationPoser and always end up getting back to IdlePoser, because I'm not able to run the animations that I create with the plugin.
Excuse my incompetency in case I'm missing something, but I (still) don't find a way to trigger animations that are present in the plugin.
For example, let's say I have created a set of 10 animations (A0 - A9), each having layers, states, transitions etc.
Now, if I have 10 buttons (B0 - B9), how can I make B0 trigger A0, B1 trigger A1, etc.
With IdlePoser there are obviously no animations but there is a "Switch State" trigger to switch to a certain state. With AnimationPoser I would have expected similarly that there is a "Switch Animation" trigger so I can tell each button to switch to a certain animation. Then after switching to an animation, I guess I still would want to be able to switch to certain states within those animations. However, I'm failing on the first step already.
So, obviously I must be misunderstanding something. There must be some way to trigger those animations, right?

Hey! There is the new "Messages" system. You can trigger state and animation switches with the SendMessage trigger.

For that, you need to define a message in the Messages tab. The "string" field should be the same string as the string in the SendMessage trigger.

Now, the Messages tab looks a lot like a transition. You define the source states (plural), the target state, and then transition duration, etc.

The source states are the states that should respond to that message. So, if you have State 1, State 2, State 3 and State 4, and you add a Message with message string "Go to State 4", source states State 1 and State 2, and target state State 4, then, when the SendMessage trigger is called with "Go to State 4", the plugin will transition to State 4 IF it is in State 1 or State 2 (but not if it is in State 3, because State 3 is not a source state for that message).

Since you can set up cross-animation transitions (transitions to states in other animations), you can use that same messaging system to transition to other animations. You can use the sync layers feature to make things work nicely when transitioning to other animations.

This might seem like extra work, but actually it is a HUGE time saver because you can add different message receivers for the SAME message string depending on which state the plugin is currently in. Which means: the plugin is capable to react differently to the same messages (say, to react differently to the same button) depending on what state it is in. This is VERY hard to accomplish with other plugins, and it would demand a lot of triggers, which cannot be reused. This messaging system is also essential for multi-character animations, so that characters can coordinate in face of randomness or varying anchors.

Notice also that the alternative approach of "SwitchAnimation" would be really messy. Say I want to switch from animation A to animation B, then I create a "SwitchAnimation" trigger. Ok. Now it switches to animation B. But to which state? Worse than that: every animation has multiple layers, each of which has it's states. So, the proper question is: what states in each layer? And it would be really difficult to set up triggers capable of defining all of this. The "Messages" solution is pretty great I think: just define a message string in the trigger, and set up the rest in the plugin.

That being said, I'm working on a new feature to be released today or tomorrow that makes messages even more interesting. Instead of setting up a new transition in the messages tab, all the sliders are removed from that tab, and, instead, the plugin automatically finds the shortest path between the current state and the target state. So, instead of creating a direct transition to another animation in the messages tab, the plugin will by itself look for a chain of transitions connecting the two animations, and execute this chain.
 
Last edited:
@haremlife any chance that in your github releases you can iterate the version number so it's easier for me to tell which version I've been using? E.g. if I download the version from your github link, it'll overwrite the current v3.5. Can you iterate to like 3.5.1, 3.5.2, etc until you're ready to release a stable 3.6 here? Obviously I can rename it myself but I could see any scene sharing getting confusing if every minor release shares a version number.
 
Last edited:
Hello haremlife, thanks for making this plugin!
Using the latest version on github I have encountered a couple of bugs:
1. Saving all animations does not properly save the animation
2. Saving scene does not store the plugin data
3. Making a third animation with states I could not get any buttons to press on the transition tab, making me unable to actually make transitions. Tried to make a third animation multiple times and got the same result.
I just lost alot of progress because I saved both the "all animations" and the scene, but neither actually saved my progress. I tried to reload after I encountered the transition bug.

With this plugin sex scenes can look so natural due to the ease in and out and the randomness, so I have been experimenting a lot with this. However previously I could go from say Missionary to Doggy with a trigger for pose and "State Change to..." trigger. I am kinda lost on how to do this now without making a complex string of states to connect two very different poses, or setting a message in every state for every sex position i can change to. What do you recommend? Any chance to add the "State change" trigger again?

Thanks haremlife, looking forward to 3.6!
 
Last edited:
Hello haremlife, thanks for making this plugin!
Using the latest version on github I have encountered a couple of bugs:
1. Saving all animations does not properly save the animation
2. Saving scene does not store the plugin data
3. Making a third animation with states I could not get any buttons to press on the transition tab, making me unable to actually make transitions. Tried to make a third animation multiple times and got the same result.
I just lost alot of progress because I saved both the "all animations" and the scene, but neither actually saved my progress. I tried to reload after I encountered the transition bug.

With this plugin sex scenes can look so natural due to the ease in and out and the randomness, so I have been experimenting a lot with this. However previously I could go from say Missionary to Doggy with a trigger for pose and "State Change to..." trigger. I am kinda lost on how to do this now without making a complex string of states to connect two very different poses, or setting a message in every state for every sex position i can change to. What do you recommend? Any chance to add the "State change" trigger again?

Thanks haremlife, looking forward to 3.6!

Hey @Aty! Starting by the end.

3.6 is being a little bit delayed by the inclusion of a lot of new features. These features are very powerful. I am working on smooth curves (adaptative keyframe interpolation) and then I'll work on a button to import an animation from Timeline. A feature already implemented is that, when receiving a message, the plugin finds the smallest path between the current state and the target state, and execute that path.

Now, since the wiki doesn't have an entry for the Messages yet, it is probably easy to get lost. You don't have to create a message for each source state. Rather, messages allow for an unlimited number of source states.

What are these source states? The source states are the states that don't ignore the message. In other words, the source states of a message are the states that receive that message and do something about it.

What do they do about it? They transition to the target state.

So, if you want to reproduce the effect of the "SwitchState" trigger, just add a message that has every state as a source, plus the given target.

---------------

Now, from your description of the issues you are encountering, it seems you are using the 3.5 version which is released here in the hub. The version at github should save and load, and me and other people have been using it consistently throughout the last week. I personally have been saving and reloading animations a lot for the development.

Oh, I got it! Vars are a little complicated. They can't be modified as a rar file, and I have done that, which breaks the var. So the latest var at github is broken. I'll update the description here to warn people of that.

What you need to do is just extract the var. The plugin will be in Custom/Plugins/HaremLife/AnimationPoser.

Sorry about that.
 
Hey @Aty! Starting by the end.

3.6 is being a little bit delayed by the inclusion of a lot of new features. These features are very powerful. I am working on smooth curves (adaptative keyframe interpolation) and then I'll work on a button to import an animation from Timeline. A feature already implemented is that, when receiving a message, the plugin finds the smallest path between the current state and the target state, and execute that path.

Now, since the wiki doesn't have an entry for the Messages yet, it is probably easy to get lost. You don't have to create a message for each source state. Rather, messages allow for an unlimited number of source states.

What are these source states? The source states are the states that don't ignore the message. In other words, the source states of a message are the states that receive that message and do something about it.

What do they do about it? They transition to the target state.

So, if you want to reproduce the effect of the "SwitchState" trigger, just add a message that has every state as a source, plus the given target.

---------------

Now, from your description of the issues you are encountering, it seems you are using the 3.5 version which is released here in the hub. The version at github should save and load, and me and other people have been using it consistently throughout the last week. I personally have been saving and reloading animations a lot for the development.

Oh, I got it! Vars are a little complicated. They can't be modified as a rar file, and I have done that, which breaks the var. So the latest var at github is broken. I'll update the description here to warn people of that.

What you need to do is just extract the var. The plugin will be in Custom/Plugins/HaremLife/AnimationPoser.

Sorry about that.

Thank you haremlife, glad you found the issue ?
 
I have to join the chorus of, "This looks cool,.. but".

I was hoping it would come bundled with a bunch of presets to quickly load onto a model to let her move natural looking ways. I know I can manually create these motions via the plugin, but it feels artificial when I'm programming her like a robot to do action that I'm expecting. Plus I'd rather rely on the talents of people that enjoy making animations so I can get back to working with morphs and skins which is what I enjoy most.

There's some cool Timeline animations that work well, but they unnaturally lock the model's pose, so not great for spontaneous interactions.

I hope this doesn't come across as negative, it's obviously a great plugin and labour of love, but lacking a little in end-user friendliness.
 
I have to join the chorus of, "This looks cool,.. but".

I was hoping it would come bundled with a bunch of presets to quickly load onto a model to let her move natural looking ways. I know I can manually create these motions via the plugin, but it feels artificial when I'm programming her like a robot to do action that I'm expecting. Plus I'd rather rely on the talents of people that enjoy making animations so I can get back to working with morphs and skins which is what I enjoy most.

There's some cool Timeline animations that work well, but they unnaturally lock the model's pose, so not great for spontaneous interactions.

I hope this doesn't come across as negative, it's obviously a great plugin and labour of love, but lacking a little in end-user friendliness.

I've been working on two things:

1- Spline interpolation
2- Timeline import

When these things are in place, animations built with timeline or mocap will be importable into the plugin (also, they won't look robotic anymore).

This is delaying the next version of the plugin, but it is worth it and will solve the issues you mentioned.

Also, animations built in AnimationPoser itself (meaning large, multi-layered, multi-animation, multi-role setups) can be shared in the hub at any time. However I recognize that it is soon to expect creators to do this before the first stable release. My decision to include spline and timeline import in the first stable release was a though one, it delays it but the result in the end will be a very complete and robust plugin.
 
I've been working on two things:

1- Spline interpolation
2- Timeline import

When these things are in place, animations built with timeline or mocap will be importable into the plugin (also, they won't look robotic anymore).

This is delaying the next version of the plugin, but it is worth it and will solve the issues you mentioned.

Also, animations built in AnimationPoser itself (meaning large, multi-layered, multi-animation, multi-role setups) can be shared in the hub at any time. However I recognize that it is soon to expect creators to do this before the first stable release. My decision to include spline and timeline import in the first stable release was a though one, it delays it but the result in the end will be a very complete and robust plugin.

Nice! I played around a bit last night, following your instructions above, and it started coming together for me. Definitely the most promising plugin I've used so far for idle motion. And a good project for my Easter weekend :)
 
Nice! I played around a bit last night, following your instructions above, and it started coming together for me. Definitely the most promising plugin I've used so far for idle motion. And a good project for my Easter weekend :)

Nice! The growth of the user community will definitely afford many reusable animations pieces to be downloaded and readily used.
 
Nice! The growth of the user community will definitely afford many reusable animations pieces to be downloaded and readily used.

I've been spending a fair few hours today on a Layer controlling a model's left arm.

A simple animation with a dozen States, each with multiple controllers and morphs, and directing everything via transition in/outs and probabilities, and smoothing the motion via transition speed and delay etc. Worked beautifully! There's an immersive sense of anticipation as you watch her hand slowly going through its idle motions, not knowing which direction it'll take but hoping the dice will roll high so she'll start to move into the fun bits!

Expanding that out to a mesh of interconnecting States to create a very convincing sense of the model controlling herself feels entirely within my (meager) abilities. Which for me is the holy grail of idle animation :)

Next plan is to create separate Layers for each limb so they can all idle independently. Assuming that Merging the Layers works as I'm expecting... And finally digging into Triggers to create unique interactions between particular States on different Layers if they happen to coincide. And hopefully a dynamic Arousal variable to increase the transition percentages that lead to the more 'fun' State branches.

I haven't tested merging Layers yet, so not sure if that'll work like I'm expecting? That is, each of the model's limbs on separate Layers all playing through their mesh of States concurrently. I'll find out pretty quickly if it doesn't work like that i guess haha. At least now I'm comfortable enough to quickly set up test conditions.

Having fun though, and I've gone from staring blankly at the UI to being able to create a fairly complex looking animation with enough randomness to feel immersive.

So yeah, looks extremely promising!
 
I've been spending a fair few hours today on a Layer controlling a model's left arm.

A simple animation with a dozen States, each with multiple controllers and morphs, and directing everything via transition in/outs and probabilities, and smoothing the motion via transition speed and delay etc. Worked beautifully! There's an immersive sense of anticipation as you watch her hand slowly going through its idle motions, not knowing which direction it'll take but hoping the dice will roll high so she'll start to move into the fun bits!

Expanding that out to a mesh of interconnecting States to create a very convincing sense of the model controlling herself feels entirely within my (meager) abilities. Which for me is the holy grail of idle animation :)

Next plan is to create separate Layers for each limb so they can all idle independently. Assuming that Merging the Layers works as I'm expecting... And finally digging into Triggers to create unique interactions between particular States on different Layers if they happen to coincide. And hopefully a dynamic Arousal variable to increase the transition percentages that lead to the more 'fun' State branches.

I haven't tested merging Layers yet, so not sure if that'll work like I'm expecting? That is, each of the model's limbs on separate Layers all playing through their mesh of States concurrently. I'll find out pretty quickly if it doesn't work like that i guess haha. At least now I'm comfortable enough to quickly set up test conditions.

Having fun though, and I've gone from staring blankly at the UI to being able to create a fairly complex looking animation with enough randomness to feel immersive.

So yeah, looks extremely promising!

That's amazing, you are really getting the spirit of the plugin!

Writing in a hurry, so some quick but very important tips regarding what you said!

First, you don't need to merge layers, they already run independently, like a set of parallel running state machines. Merging layers is when you want to combine the states of two layers that control the same controllers. In general, you WON'T have two layers that control the same controllers, because layers are supposed to control different controllers, running in parallel for independent motion. However, the scenario for merging layers is when you have two "animation pieces" (two layers controlling the same controllers) and you want to combine them. This is very good for re-usability, and this was a way to implement it inside of a "pattern over feature" philosophy.

Second, in general you don't need triggers. There is a "sync layers" feature, that you can use to move other layers to a target state when finishing a transition in a given layer. So, if Layer 1 has a transition between State 1 and State 2, you can set things up so that, when arriving at State 2 in Layer 1, the Layers 2, 3, etc, move to given states too (thus "syncing"). This is specially important in cross-animation transitions. There is also a messaging system for multi-person syncing ("syncing roles"). By avoiding triggers you can reuse the animations without having to set up the triggers all over again. You can have no-trigger setups that you can save and load in a whim.
 
@haremlife
AnimationPser is my fav Plugin in Vam.
I really appreciate you making this amazing feature possible

There is a UI bug when I reopen the vam in my scene, I should Reload the plugin and reload all animtion to fixed it.
It look like right top area have several AnimationSpeed Sliders.
I use the AnimationPser 3.5. My VAM version is 1.20.77.9
bug01.jpg

And there are some advises to this plugin: (Maybe I am wrong)
1 The "Capture State" should under the Layers tab, because when I adjust some morph in Layers Tab, I dont need to swith between Layers and States Tab, It will save a lot of time.
2 The Animations Tab should add "Load Current Animation" and "Save Current Animation" buttons. But if the Layers Tab "Load Layer" and "Save Layer As" do the same thing, ingore this advise.
3 Can you add a button for "Add favourite Morphs" , That I can load all I need in one click. (Like you wiki said, add in layer and save it also can do it ) .

Have a Nice Day!
 
Last edited:
Back
Top Bottom