AnimationPoser

Plugins AnimationPoser

@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
View attachment 113559
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!

I hate this UI bug. I probably need to refactor the entire ui code in order to find out why this is happening though, because the ui code is too big now. This will be fixed in the next version.

I get 1, it sure would be easier… However not having the “capture state” in the state tab might be confusing… It is hard to handle the ui for virt-a-mate, it is too limited.

2 will definitely be in the next version.

For 3, as you said, it makes more sense to have layer files for the favorite morphs. This is even better because you can then have favorite morphs for each category. So… You can save and load a layer without any states but with all the favorite facial expression morphs, etc, as a sort of preset.
 
I hate this UI bug. I probably need to refactor the entire ui code in order to find out why this is happening though, because the ui code is too big now. This will be fixed in the next version.

I get 1, it sure would be easier… However not having the “capture state” in the state tab might be confusing… It is hard to handle the ui for virt-a-mate, it is too limited.

2 will definitely be in the next version.

For 3, as you said, it makes more sense to have layer files for the favorite morphs. This is even better because you can then have favorite morphs for each category. So… You can save and load a layer without any states but with all the favorite facial expression morphs, etc, as a sort of preset.

Thanks for your quick reply,

I can still continue my work with AnimationPoser and thank you for adopting some of my advises.

Good to hear you will add extra "capture state" button in the Layers tab.
 
Last edited:
@haremlife There still some problem to ask you: ;)

1. As you said in the wiki :the Transition Duration Noise and easeinout is make animation more realistic .
But when I set Transition Duration Noise bigger than 0, It acting strange, It stopped in the middle and wait about half second, then go to the end at a new speed.
(The odds are about 10 to 33 percent)
I Close all the physics It still happen.
I test in the the Anchors Transition, I also give Anchor Damping Time no zero as the Idlepose Manual say: (“Anchor Damping Time” is used to put a bit of damping on the anchor update to avoid sudden changes. )
But still happen.
I will test in other animation way. (After Test state without use Anchors Have same problem if I use the "Transition Duration Noise".
bug02.jpg


2. This is the wiki say :( The Transition Duration Noise is used to randomize the Transition Duration. If the Transition Duration is 5s and the Transition Duration Noise is 2s, then the actual transition duration is going to be randomly selected from the range between 3s (5s-2s) and 7s (5s+2s). )
And I think it is a good way to add another noise "Transition Noise Percent", (If the Transition Duration is 5s and the "Transition Noise Percent" is 50%, then the actual transition duration is going to be randomly selected from the range between 2.5s (5s-5s*50%) and 7.5s (5s+5s*50%). )
And you can also add to all states sameweight one time. No need to Recalculate Each Duration. let Transition Duration change at a same weight(percent). Also you can add it include ane exculde the state.
I think The EaseIn And EaseOut Duration can give percent way to control it.



3. And other bug, When I go to other Tab to edit from play tab. It still play automatic swith different states, ok, I say let it play once loop, but I change state I will switch to other state automatic sometime.
It will no happen when I off auto-Transition on State Change. But I like make it keep on to easy to see diffent state appearances .


4. Is there a way to keep the plugin ui alway on. when i edit the Person control. It is waste time to switch between Control ui and AnimationPoser Plugin UI and easy to lose work target. ( If it is possable to add "Layer selector" and "state selector" and "Capture State" button in the UIAsssit. Also it is acceptable to save time :))

5. If there is a auto Transfitions between all states in one layer. Give some duration and noise also give a lot of randomness . Save time no need to add transtion one by one.

Sorry bother again, hope animationPoser development goes well .
 
Last edited:
@xueqing12 Most of the stuff is in my radar. 3 is because of the new path finding "state chain" mechanism, and I'm aware of the issue and I'll make the state chain be cleared when getting out of the play tab. 5 is a very important point, and I'll both add the option to connect all states as in a timeline (in the order they show up) and to fully connect each pair of states with bidirectional transitions. 1 I was not aware of, so I'll investigate. 2 might not be advisable because of UI cluttering. 4 is a tough one. Every plugin is usually only accessible by going into plugins tab. Making extra stuff available in uiassist in principle is development in the side of uiassist.
 
@xueqing12 Most of the stuff is in my radar. 3 is because of the new path finding "state chain" mechanism, and I'm aware of the issue and I'll make the state chain be cleared when getting out of the play tab. 5 is a very important point, and I'll both add the option to connect all states as in a timeline (in the order they show up) and to fully connect each pair of states with bidirectional transitions. 1 I was not aware of, so I'll investigate. 2 might not be advisable because of UI cluttering. 4 is a tough one. Every plugin is usually only accessible by going into plugins tab. Making extra stuff available in uiassist in principle is development in the side of uiassist.
Good to know you will conquer them. Keep moving!


Today I update to github AnimationPoser you update 3 days ago, The person controls in layer can't move. So I go back to 25days ago release version.
 
Last edited:
I actually had this issue too, and fixed locally. I'll upload a new release soon, since this issue is quite crippling.
 
I am starting to learn your plugin, so far, so complex.

I am trying to make a animation where the person poses in a variety of positions (hands up, hands behind head, bent over, etc).

Then the person reacts to different triggers by slightly moving, bending legs, moving arms a bit, etc.
So pretty much a set of large pose states, and then a set of smaller movements, that would all work in any of the large position changes. Some triggers (buttons) control the large movements, and some other triggers (contacts) control the small movements, but they all affect the same controllers (hand controller in this exmple).

Can I make say the arm move forward, or towards a target (like nipple) from a variety of positions? What would be the best way to go about it?

If the hand is up, and I want also a slight hand movement, If I have two layers they cant both control the hand controller, they seem to fight over it. Should I have two animations, one for large motions, one for small motions?
 
Also, in IdlePoser some states could be Transition States, helping guide motion. Does this plugin have that capability?
 
Also, in IdlePoser some states could be Transition States, helping guide motion. Does this plugin have that capability?

It will but in a different form. Transitions will be timelines, with keyframes, and this will be interpolated.
 
@haremlife


Hello, I'm looking forward to your next update. I think the potential of this plug-in is very huge. I don't intend to use timeline now

In version 3.5, I had a problem.

when the saved animation is loaded again, there is a chance that all IK points of the character will gather on one point. The character now looks like a sphere. The character's state cannot be restored, and the animation cannot work.

One more question. In multiplayer animation, if there are character A and character B, I make four states (Q,W ,E, R) for character A, in which Q will go to W, E, R randomly, and I also make four states (q, w, e, r) for character B. I hope that when character A's state Q goes to state W, character B can move from state q to state w in the same time, and character B can move from state q to state e synchronously when character A's state Q goes to state E.

I try to solve it with message, but it's really hard.

message will cause character B's state to be slower than character A's state, because B's first animation will not start until the end of a's first animation.

Thank you for your work and have a good day.
 
Last edited:
@haremlife


Hello, I'm looking forward to your next update. I think the potential of this plug-in is very huge. I don't intend to use timeline now

In version 3.5, I had a problem.

when the saved animation is loaded again, there is a chance that all IK points of the character will gather on one point. The character now looks like a sphere. The character's state cannot be restored, and the animation cannot work.

One more question. In multiplayer animation, if there are character A and character B, I make four states (Q,W ,E, R) for character A, in which Q will go to W, E, R randomly, and I also make four states (q, w, e, r) for character B. I hope that when character A's state Q goes to state W, character B can move from state q to state w in the same time, and character B can move from state q to state e synchronously when character A's state Q goes to state E.

I try to solve it with message, but it's really hard.

message will cause character B's state to be slower than character A's state, because B's first animation will not start until the end of a's first animation.

Thank you for your work and have a good day.


I figured out a good way with the messaging system by having a trigger "on enter begin" giving the message to switch pose for another character. By setting transition for example 1 second from Q - W and on the other character giving the message transition time 1 second they will syncronize pretty well :)

There is something wrong with the animations when either loading an animation or scene where every state seems to have to load once. In a sex scene this means they are flying back and forth for each state that is not loaded yet but afterwards it works fine. I dunno if it's something I do wrong tho
 
I figured out a good way with the messaging system by having a trigger "on enter begin" giving the message to switch pose for another character. By setting transition for example 1 second from Q - W and on the other character giving the message transition time 1 second they will syncronize pretty well :)

There is something wrong with the animations when either loading an animation or scene where every state seems to have to load once. In a sex scene this means they are flying back and forth for each state that is not loaded yet but afterwards it works fine. I dunno if it's something I do wrong tho



I tested your method, which is useful in simple scece. The premise is that only Q can enter state W. if states E and R can also enter W, this method will not work.
 
Last edited:
@haremlife


Hello, I'm looking forward to your next update. I think the potential of this plug-in is very huge. I don't intend to use timeline now

In version 3.5, I had a problem.

when the saved animation is loaded again, there is a chance that all IK points of the character will gather on one point. The character now looks like a sphere. The character's state cannot be restored, and the animation cannot work.

One more question. In multiplayer animation, if there are character A and character B, I make four states (Q,W ,E, R) for character A, in which Q will go to W, E, R randomly, and I also make four states (q, w, e, r) for character B. I hope that when character A's state Q goes to state W, character B can move from state q to state w in the same time, and character B can move from state q to state e synchronously when character A's state Q goes to state E.

I try to solve it with message, but it's really hard.

message will cause character B's state to be slower than character A's state, because B's first animation will not start until the end of a's first animation.

Thank you for your work and have a good day.

Hi,

Sorry about the time it is taking for the next release. There are two major bugs I need to tackle before moving to creating more complex scenes (I did some interesting stuff already, combined with CLS).

There is a pattern, which I call the "ghost state" pattern, which can solve your issue and a number of other issues that might arise when creating more complex animations. The "ghost state" is a state that serves only the purpose of beginning a particular transition. So, in your example, you want something to happen when char A goes from Q to W. You can then create the "ghost state" called "Q->W". Instead of Q having a probability of transitioning to W, Q now can only transition to Q->W (with the same probability but 0 transition duration). Q->W has the same control captures as Q. Q->W has 0 state duration, and 100% probability of transitioning to W (with a transition duration that is equal to the old transition duration between Q and W). This way, you can send a message when the transition TO Q->W finishes (which is the same time as the transition TO W begins).

This pattern is extensive to write down but is very simple, intuitive and useful. Sometimes you just need a state Q to transition to a state W. But, other times, the concept of "entering a transition" is important for some reason. In your case, entering a transition is important because you want other character to do something at the same time. Anyway, "entering a transition" can be thought of as entering a transitioning state. A "state" models any state of affairs, and "transitioning" is a state of affairs. So you can think of Q->W as a state; a state of transition. With this, you can sync the characters with messages like you want to.

I'm not saying I won't add the possibility to send messages when entering a transition. I probably will. But this is a solution to use in the meanwhile and at the same time it is an important pattern that can be used for lots of other things.
 
Hi,

I'm having a strange issue. If I switch to a previous state after adding and capturing a new state, the person atom just springs out of position. Why is this happening? I've been using the plugin for facial morphs up to this point and it's been great, but for posing a person atom it's completely unusable for me.
 
Hi,

I'm having a strange issue. If I switch to a previous state after adding and capturing a new state, the person atom just springs out of position. Why is this happening? I've been using the plugin for facial morphs up to this point and it's been great, but for posing a person atom it's completely unusable for me.

I think the latest code solves this issue, I'll look into uploading a new release (at github) this week.
 
I think the latest code solves this issue, I'll look into uploading a new release (at github) this week.
Hi,

Sorry about the time it is taking for the next release. There are two major bugs I need to tackle before moving to creating more complex scenes (I did some interesting stuff already, combined with CLS).

There is a pattern, which I call the "ghost state" pattern, which can solve your issue and a number of other issues that might arise when creating more complex animations. The "ghost state" is a state that serves only the purpose of beginning a particular transition. So, in your example, you want something to happen when char A goes from Q to W. You can then create the "ghost state" called "Q->W". Instead of Q having a probability of transitioning to W, Q now can only transition to Q->W (with the same probability but 0 transition duration). Q->W has the same control captures as Q. Q->W has 0 state duration, and 100% probability of transitioning to W (with a transition duration that is equal to the old transition duration between Q and W). This way, you can send a message when the transition TO Q->W finishes (which is the same time as the transition TO W begins).

This pattern is extensive to write down but is very simple, intuitive and useful. Sometimes you just need a state Q to transition to a state W. But, other times, the concept of "entering a transition" is important for some reason. In your case, entering a transition is important because you want other character to do something at the same time. Anyway, "entering a transition" can be thought of as entering a transitioning state. A "state" models any state of affairs, and "transitioning" is a state of affairs. So you can think of Q->W as a state; a state of transition. With this, you can sync the characters with messages like you want to.

I'm not saying I won't add the possibility to send messages when entering a transition. I probably will. But this is a solution to use in the meanwhile and at the same time it is an important pattern that can be used for lots of other things.



Thank you for your reply. I'm looking forward to the new version this week
 
I've been able to understand about 90% of the plugin's functionality but there are 2 features that I cant manage to figure out. Roles, and sync layers. I am mostly interested in sync layers. Can someone give a practical step by step example of the simplest setup to make sync layers do something so I can follow it along and finally understand how to use it? Same with roles as well.
 
I've been able to understand about 90% of the plugin's functionality but there are 2 features that I cant manage to figure out. Roles, and sync layers. I am mostly interested in sync layers. Can someone give a practical step by step example of the simplest setup to make sync layers do something so I can follow it along and finally understand how to use it? Same with roles as well.

When a transition to a given state in a given layer finishes, you can set what the other states in the other layers should be. This is sync layers.

When you add a role, you can send messages to the character playing that role, again when a transition finishes. You can assign and reassing roles to any person in the scene.
 
Appreciate the response.

I wanted to avoid writing a wall of text, so the TLDR; I conceptually understand what sync layers SUPPOSE to do because I've read everything I could find about it in the forum and the guide, however I've been unable to make it actually do anything in game, which is why I wanted a simple example of a step by step to make it do something.

For the longer description of what I've tried for sync layers, here it is. "When a transition to a given state in a given layer finishes, you can set what the other states in the other layers should be" so based on this concept I set up a person with 2 layers, a "Head Layer", and a "Foot Layer". Each of these layers has 3 states, "Left", "Middle" and "Right". These states are the head or feet sliding to the left, middle, or right slightly. The transitions for both are set up like L<>M<>R. Both Layers have an equal probability to slide between connected states. I then go to the transitions tab, select the "Head Layer", select the "Middle" state, and select the target state "Right". I then select the Sync Layer to "Foot Layer", and the Sync State to "Right", and click Sync State. The behavior I would expect, is that when the head ends up shifting to the right, the feet should also shift to the right. This is not what happens, they all simply randomly shift L<>M<>R as if I never selected sync state at all.

I Thought maybe it had something to do with the states being randomly chosen overriding what the sync layer is telling another layer to do so I tried an even simpler setup. I Set up 2 Layers, "Left Hand Layer" and "Right Hand Layer" both have an "UP" and "Down" state with in/out transitions that just move the hands up or down slightly. There is a 0% probability of any transition happening. I make a message for the "Left Hand Layer" and set the source state to "Down" and the target state to "Up" and give it a string. I activate that string with a sendMessage on a UI button, and the left hand correctly moves up and stays there. However if I set a sync state on the left hand's "Down" to "Up" transition and set the sync layer to the right hand's "UP" state, the right hand does nothing and just stays there. Ultimately I want to know if I'm just not understanding it conceptually, or not setting it up correctly.

As far as roles go I did manage to get the action of one person to trigger a state change in another person with roles, so I think I figured that one out. I Guess the only thing I'm confused about now is why roles exists as its own tab? Couldn't the roles tab be removed and simplify it by just having the message section in transitions be: select target person, and message to send to that person?

Either way its clear that this plugin's potential is way above other animation plugins, I just wanna figure out where I'm going wrong with sync layers to use it at its fullest.

PS- Noticed a bug you're probably already aware of with message transitions. If you have an A<>B<>C setup, and send a message to transition from state B to C when its already transitioning back to state A, it will abruptly Jump to B before transitioning to C.

PPS- Would it be possible to have a checkbox for a state to the effect of "transitory" meaning there's 0 probability for a transition from an incoming state to be sent back to that state? it would save a ton of time having to set up middle states between pose 1 and pose 2, and then having to set them all up again from pose 2 back to pose 1.
 
Last edited:
Appreciate the response.

I wanted to avoid writing a wall of text, so the TLDR; I conceptually understand what sync layers SUPPOSE to do because I've read everything I could find about it in the forum and the guide, however I've been unable to make it actually do anything in game, which is why I wanted a simple example of a step by step to make it do something.

For the longer description of what I've tried for sync layers, here it is. "When a transition to a given state in a given layer finishes, you can set what the other states in the other layers should be" so based on this concept I set up a person with 2 layers, a "Head Layer", and a "Foot Layer". Each of these layers has 3 states, "Left", "Middle" and "Right". These states are the head or feet sliding to the left, middle, or right slightly. The transitions for both are set up like L<>M<>R. Both Layers have an equal probability to slide between connected states. I then go to the transitions tab, select the "Head Layer", select the "Middle" state, and select the target state "Right". I then select the Sync Layer to "Foot Layer", and the Sync State to "Right", and click Sync State. The behavior I would expect, is that when the head ends up shifting to the right, the feet should also shift to the right. This is not what happens, they all simply randomly shift L<>M<>R as if I never selected sync state at all.

I Thought maybe it had something to do with the states being randomly chosen overriding what the sync layer is telling another layer to do so I tried an even simpler setup. I Set up 2 Layers, "Left Hand Layer" and "Right Hand Layer" both have an "UP" and "Down" state with in/out transitions that just move the hands up or down slightly. There is a 0% probability of any transition happening. I make a message for the "Left Hand Layer" and set the source state to "Down" and the target state to "Up" and give it a string. I activate that string with a sendMessage on a UI button, and the left hand correctly moves up and stays there. However if I set a sync state on the left hand's "Down" to "Up" transition and set the sync layer to the right hand's "UP" state, the right hand does nothing and just stays there. Ultimately I want to know if I'm just not understanding it conceptually, or not setting it up correctly.

As far as roles go I did manage to get the action of one person to trigger a state change in another person with roles, so I think I figured that one out. I Guess the only thing I'm confused about now is why roles exists as its own tab? Couldn't the roles tab be removed and simplify it by just having the message section in transitions be: select target person, and message to send to that person?

Either way its clear that this plugin's potential is way above other animation plugins, I just wanna figure out where I'm going wrong with sync layers to use it at its fullest.

PS- Noticed a bug you're probably already aware of with message transitions. If you have an A<>B<>C setup, and send a message to transition from state B to C when its already transitioning back to state A, it will abruptly Jump to B before transitioning to C.

PPS- Would it be possible to have a checkbox for a state to the effect of "transitory" meaning there's 0 probability for a transition from an incoming state to be sent back to that state? it would save a ton of time having to set up middle states between pose 1 and pose 2, and then having to set them all up again from pose 2 back to pose 1.

Probably the sync layers stopped working for some reason.

Sorry guys, I spent all the time I had last week on another bug (root state rotation/transposing not working as expected). I'll try to make things work as soon as I can.

There are some big features on development track before the final complete thing, but I believe right now working on the stable is more important, since, as you guys are noticing, adding lots of new fundamental and structural features has led to many older features stop working.

"Either way its clear that this plugin's potential is way above other animation plugins, I just wanna figure out where I'm going wrong with sync layers to use it at its fullest. "

Thanks. It is my role to make a first stable release so that people can see what the plugin is and what it is supposed to do, then work from there. You guys are early adopters and that's very helpful. The stable didn't come through yet basically because of other personal stuff that needs my attention more than vam, but it has always been close in terms of the actual amount of development needed, now more than ever.
 
Back
Top Bottom