• 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.

AnimationPoser

Plugins AnimationPoser 2023-08-04

haremlife

Well-known member
Messages
300
Reactions
339
Points
63
haremlife submitted a new resource:

AnimationPoser - The most powerful random animation plugin to date!

Virt a mate has surprised a lot of people with it's sandbox capability for realistic characters and scenes. With the proper lighting and setup, some models look amazing. The physics, clothing and hair engine, the in-built standardized rig, the morphs, the multiple plugins, facility to switch looks, etc, have provided a great customizable experience.

What virt a mate has always lacked in terms of realism and ease, however, is animation. I could go on for a long time describing the issues of...

Read more about this resource...
 
@Jackaroo You might feel a mix of excitement and disappointment. A lot of things are working amazingly, and a lot of things can improve. The best way you can help is making some amazing animations and sharing them with the community! This way the plugin will attract more attention, people will have an idea about what is possible, and we can have more plugin developers working to make something truly remarkable out of it. Right now, it is a mixture of current power and future potential.
 
I've never used idle poser as it was much to complicated for me so I've no history with this plugin, is there a video or demo or any guidance on how to use it?
 
I'm a huge fan of IdlePoser, and I love what you're trying to do :)

I just jumped in to see what this is capable of and I'm running into some issues. Are anchor points working correctly? I am trying to attach a hand to the hip, which are both on different layers, and when the hip moves the hand does not follow. I like to use 2 anchor points most of the time, but I don't think relative position is working correctly either.

Default settings aren't working, for timing, easing, and random intervals (all default to 0 or .10). I also don't see the copy state button, which would make setting up these settings much less tedious.

All that being said, layering does seem to be working! I use 3 instances of IdlePoser, 1 for the body/legs and 1 for each arm/hand. Something like this could dramatically improve my workflow, and help me rig up complicated states (such as sitting/standing/laying down, and everything in between). I am curious how the plugin resolves switching between animation sets, is it seemless? Is the concept to allow for the character to switch between animation groups smoothly, and do you need to rig up "landing" or "jumping" points to allow for smooth transitioning (like having a common animation between the 2 to blend the switching of animations)?

Right now I'm experimenting with using state machines to manage groups of IdlePoser states to allow for seamless switching between animation groups, but it's very tedious. I would love something like this to do the heavy lifting here, because I'm basically ready to resort to clever screen fading and subscenes to hide any jank.
 
I have null reference exception. Ive added newest iddle poser by MCGruber, and allow it . but same error.


....
!> Duplicate package uid kemenate.Morphs.10. Cannot register
!> Duplicate package uid MacGruber.Life.7. Cannot register
!> Du

<Truncated>

!> Exception NullReferenceException: Object reference not set to an instance of an object MacGruber.IdlePoser.Update ()

!> Exception NullReferenceException: Object reference not set to an instance of an object MacGruber.IdlePoser.Update ()

!> Exception NullReferenceException: Object reference not set to an instance of an object MacGruber.IdlePoser.Update ()

!> Exception NullReferenceException: Object reference not set to an instance of an object MacGruber.IdlePoser.Update ()

!> Exception NullReferenceException: Object reference not set to an instance of an object MacGruber.IdlePoser.Update ()

!> Exception NullReferenceException: Object reference not set to an instance of an object MacGruber.IdlePoser.Update ()
 
@hentai_senpai You can use triggers to switch animations! Just target the animationposer plugin, use the animation name in the trigger message and that's it. You can combine this with switch state trigger to land at a specific "landing point" state. If you understand the concept of a markov chain, you can do everything you mentioned. For example, animation 1 can switch to animation 2 at a lading point state called "animation 1 -> animation 2". From there, you might have a sequence of states that lead unidirectionally towards the central group of states that comprise animation 2. A lot of amazing stuff is possible to build with groups of states only. Many times you don't even need multiple animations: you can have groups of states that have a small probability of going into a branch sequence that leads into another group of states. A different animation is more for when you need a different combination of controller layers.

I'm sorry that default settings are broken. Also, copy state button must be from a more recent idleposer version than the one I forked. I am quite limited. I don't know C#, Unity or Vam plugin api. I just wanted a lot to have a plugin that allowed me to do what I envisioned, and I pushed myself to the point where it was possible to release a plugin that allowed things that were not possible with any other vam animation plugin. There are a lot of small issues and things that can improve. However I felt it was already possible to create animations like you don't have in the virt-a-mate community right now. My course of strategy, given my limitations, is to release it, ask for people to build animations and share them to showcase what is possible with the plugin. Hopefully, this will call the attention of the community and plugin developers, or even meshedvr, to this new concept of animation. Since this is a new paradigm for animation, I found out that the only way I could convince people to build something like this was if I myself created something I and others could use to showcase the possibilities. If we have lots of people showcasing and sharing animation layers, this will help bring together plugin creators to work together on something that is going to be transformative for the virt-a-mate ecosystem as a whole.

Basically, what we have here is the concept of a "random movie". It is an entirely new concept. A mixture of game and movie, where every time you watch, it happens differently. For this to happen, we need high level and (reusable) low level, and the paradigm of the plugin right now seems to provide all the fundamental pieces.
 
@hentai_senpai You can use triggers to switch animations! Just target the animationposer plugin, use the animation name in the trigger message and that's it. You can combine this with switch state trigger to land at a specific "landing point" state. If you understand the concept of a markov chain, you can do everything you mentioned. For example, animation 1 can switch to animation 2 at a lading point state called "animation 1 -> animation 2". From there, you might have a sequence of states that lead unidirectionally towards the central group of states that comprise animation 2. A lot of amazing stuff is possible to build with groups of states only. Many times you don't even need multiple animations: you can have groups of states that have a small probability of going into a branch sequence that leads into another group of states. A different animation is more for when you need a different combination of controller layers.

I'm sorry that default settings are broken. Also, copy state button must be from a more recent idleposer version than the one I forked. I am quite limited. I don't know C#, Unity or Vam plugin api. I just wanted a lot to have a plugin that allowed me to do what I envisioned, and I pushed myself to the point where it was possible to release a plugin that allowed things that were not possible with any other vam animation plugin. There are a lot of small issues and things that can improve. However I felt it was already possible to create animations like you don't have in the virt-a-mate community right now. My course of strategy, given my limitations, is to release it, ask for people to build animations and share them to showcase what is possible with the plugin. Hopefully, this will call the attention of the community and plugin developers, or even meshedvr, to this new concept of animation. Since this is a new paradigm for animation, I found out that the only way I could convince people to build something like this was if I myself created something I and others could use to showcase the possibilities. If we have lots of people showcasing and sharing animation layers, this will help bring together plugin creators to work together on something that is going to be transformative for the virt-a-mate ecosystem as a whole.

Basically, what we have here is the concept of a "random movie". It is an entirely new concept. A mixture of game and movie, where every time you watch, it happens differently. For this to happen, we need high level and (reusable) low level, and the paradigm of the plugin right now seems to provide all the fundamental pieces.

Maybe you could share some examples to let us see different approaches/workflows
 
I don't get it, I add the plugin to a person and in the options there's nothing on the lists for Animation, State, etc.
Am I missing something? There's no dependencies mentioned.
 
@atani You click add animation and add layer, then you have one animation with one layer. Then you can add states. You can save and load the state of the entire plugin or save and load layers. When people start sharing layers, then you can download them in the hub and load. Or you can save and load your own layers for re-usability.
 
Ok, no idea what I can do there, I guess I have to go see the Idleposer tutorial first. Could you share a layer to see it working?
 
Create a folder Saves/PluginData/IdlePoser. Move Examples.idlepose into that folder. Now click the "load" button in the plugin, and there you go.

This is a VERY simple kissing animation, that took like 5 minutes to set up. You can continuously build on top of it.
 

Attachments

  • Example.zip
    1.4 KB · Views: 0
@atani Then if you go to the States tab, select state #1#1, you can move the person head around, click "Capture State" and go back to Play. This will have moved the entire kissing animation. This way you can position 2+ characters to kiss.
 
Thanks for your plugin. I believe this could be the best animation plugin, because it could really become something that can be shared and reusable.

This is going to sound crazy, but I made a huge list of cool features for future updates. Some are low hanging fruits, some are challenging or very challenging.

In no particular order:

  • Tags for layers. Really. If we want this to be sharable and easy to use, it needs tags. Just think, what do we do if we have over 2000 layers?
    • For example a tag category for [moving, idle, any]. Then we know if a layer can only be mixed to the person moving or being idle or is doesn't matter. Like a blowjob requires idle, but reading a book can be any.
    • Then, tags for a position categories: [standing, doggy, sitting, mid-air, laying, etc.] Again, to easily search animations but also to filter smaller layers that are compatible with that position.
    • An optional emotion tag. That way, if a layer is driven by a strong emotion (facial expression), it can be easy to search later on.
    • Then finally a high-level tag system just for finding stuff.
  • Auto-resolve controllers used for selecting saved layers. For example, having a list of all layers, then filtering for only the ones that are not using hands, or using only one hands max, etc.
  • Manage controller priorities to have soft and hard controllers. For example, let's say that I have a walking layer, using both legs and hands. But then I add a "reading a book layer" with only hands. The idea is that the hands and elbows controllers from the walking layers are ignored because they are set to soft.
  • An option to focus only on a specific transition in play mode.
  • An option to mirror left and right. So you could have a layer using only the left hand, and quickly swap to using the right hand instead. It would be cool and high level to save only one version, and make the swap easy or even auto-resolved by using the available hand.
  • Seperate control states from idle states. Have an UI focus more on transitions since in the end the transition is more important.
  • An acceleration parameter for transitions. For example, a punch animations would require going from slow to fast, then transition back from fast to slow. It could be a groupbox selection with slow-fast, fast-slow, equal, etc. or sliders to define how much variation.
  • An option to add micro-movements over the layer. For more realistic animations, so that the transition path is less smooth.
  • Speed control at the layer level.
  • Ability to import a mocap, pick 2 states on the mocap and extract the transition path along with both states (fitting curve on the raw data). Then ability to save that unique transition in the layer.
 
@haremlife - very much appreciate the example animation mate and I now see the vast potential for this plugin.

I looked at the guide you posted and the problem for me and maybe other guys is I learn visually and reading that guide is way above me. I also looked at how you setup the example and gleaned a little from that, but what I need I think is a video demo or something visual to watch a quick setup.

If I wanted to add a random head movement, like a girl's enjoying wild sex and her head is moving about, really showing her pleasure, how would I create that?
 
@checkking I think it is amazing how much you grasped the concept of the plugin. In summary, what we are talking about is an abstraction layer between keyframe and animation. This abstraction layer allows animations to be built from actions (like “kiss”, “walk”, “talk”) instead of having to be always built directly from keyframes.

This is the same idea that allows software to be built from functions, classes, objects, instead of always having to be built from assembly machine instructions.

This is brought to animation: we want to write movies like we write scripts. We write a script, the actors understand the actions they ought to take and the lines they ought to speak, and everything works.

Of course, we don’t have AI on that level yet, so instead we can create random implementations of those “actions”, write a script, and then transform that script into an interesting scene by loading and positioning random animations that represent those actions.

Plus, we can also create random movies, that don’t follow a predefined linear script (but rather a large set of possible paths), which is great for porn.

I was surprised to see that every point you proposed is entirely possible in the current framework of the plugin, which means you pretty much grasped the concept.

The only thing left is to figure out the ui for all that and implement the code.

I have a list of features I think the plugin should have. The two most important right now is to have a button to save and load individual animations (the current save and load buttons are either for the layers or for the entire plugin state), and to have a tab of transitions between animations. The animations right now can be switched via triggers or via MacGruber’s state machine. However having it as easy to transition between animations as it is to transition between states would be amazing. Neither of these are very hard, and the combination of these features make the framework complete.

What can you do to make those features become a reality? Make awesome animations with the plugin and showcase them with scenes in the hub or videos in the reddit sub and discord server. I really went out of my way to program this and implement this basic framework, because I believed it was the optimal way to approach animations in virt-a-mate, and that was the best way I had to convince people of this. Now I see some people are convinced, and the way you guys can help is showing the rest of the community what now becomes possible. This will attract people with experience in Unity, C# and Vam plugin development. There is nothing more interesting to work on while we wait for vam 2.0, and nothing that will bring more value to the community as a whole. Vam can be used to create the most interesting humanoid animations with the least amount of effort in the entire animation landscape. So make some animations and scenes, share them to attract people’s attention, and we hopefully can bring a lot of people together to work on this. I could even create a trello board by then.
 
@cmramlow Add an animation. Then add a layer. Name the layer “head”. Go in controllers tab. Add the head controller. Go into states tab. Add a state. Position the head however you like. Click capture state. Now click add state. Position the head again, and click capture state again. Repeat this until you are satisfied with all the head positions. Then go into transitions tab. Add some transitions between the states. Ok. Now add another layer. Name it “face”. Go to controllers tab. Add some facial morphs you would like to animate. Go to state tab. Go in the person atom morphs tab (outside of the plugin) and adjust the facial morphs to create a facial expression. Now go to the plugin and click capture state. Do that some more times to have a set of facial expressions. Now add transitions between them. Now go into play tab and watch the animation. Adjust the transition times and other parameters to your liking. That’s it.

Notice you can also add another layer and animate the hips for the sex. You can have multiple different variations. You can also add a layer for each hand to animate the hands independently of all the rest.

After all that you can add another animation. This animation moves between the sex position and a blowjob position and back.

Then you can add a blowjob animation.

You can then transition between the animations with any sort of trigger, like ui buttons.

You can keep building on top of this and adding more sex positions for both characters. You can randomly transition between them or trigger the transitions. You can keep adding more stuff and make the scene more and more interesting for the rest of your life.

Does that help?
 
@cmramlow Add an animation. Then add a layer. Name the layer “head”. Go in controllers tab. Add the head controller. Go into states tab. Add a state. Position the head however you like. Click capture state. Now click add state. Position the head again, and click capture state again. Repeat this until you are satisfied with all the head positions. Then go into transitions tab. Add some transitions between the states. Ok. Now add another layer. Name it “face”. Go to controllers tab. Add some facial morphs you would like to animate. Go to state tab. Go in the person atom morphs tab (outside of the plugin) and adjust the facial morphs to create a facial expression. Now go to the plugin and click capture state. Do that some more times to have a set of facial expressions. Now add transitions between them. Now go into play tab and watch the animation. Adjust the transition times and other parameters to your liking. That’s it.

Notice you can also add another layer and animate the hips for the sex. You can have multiple different variations. You can also add a layer for each hand to animate the hands independently of all the rest.

After all that you can add another animation. This animation moves between the sex position and a blowjob position and back.

Then you can add a blowjob animation.

You can then transition between the animations with any sort of trigger, like ui buttons.

You can keep building on top of this and adding more sex positions for both characters. You can randomly transition between them or trigger the transitions. You can keep adding more stuff and make the scene more and more interesting for the rest of your life.

Does that help?
Thank you for this explanation. Also, thank you for the example. I was excited when I discovered this but also uncertain as to how to go about things as I hadn't used IdlePoser much. This makes it clearer for me.
 
@haremlife - dude!!! finally got a moment to play with this and with your help made an animation I've wanted for a long time but couldn't get it to work in TL, not because of TL, but because I've never been able to grasp TL well enough to make anything good. Thanks so much man, really appreciate your time and efforts here. What I also love about this plugin is how easy it is to save an reuse animations between persons and scenes!!
 
@haremlife - one issue I'm encountering is havent found a way to have the animation snap or quickly change from one transition to another fast like in real life where a girl's head quickly moves from one position to another in pleasure during sex. I see the ease in ease out, which slowly moves from one state to another, but where do I find the ability to quickly change from one state to another? Hope I'm explaining it well : /

EDIT: Nevermind I think I found it with the "wait duration" option, but if there's an ever better way plz let me know
 
Last edited:
Back
Top Bottom