Jump to content

lower jaw isn't stopping after animation is stopped


Christina Halpin
 Share

You are about to reply to a thread that has been inactive for 462 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

I have run into this problem. After running an animation that has persistence, I can run a new animation that eliminates this persistence (when I am running the animation from my own script).

Ideally, I want an animation that itself does not create its own persistence. I haven't found that yet.

Lacking that, I want an animation that moves to "normal", defined as how I look at login (or after undeform). I thought the Ruth-like option for Avastar worked, but it leaves my eyebrows too high. That's tolerable, but it should be easy to get to normal if I knew how.

Edited by Christina Halpin
Link to comment
Share on other sites

On 1/15/2023 at 9:32 PM, Christina Halpin said:

The only way I know to jut the lower jaw is to unlock the jaw bone and displace its location. if I stop that animation, the jaw stays stuck out. Why doesn't that surprise anyone

So you're moving the position of the jaw end joint, and not actually using the jaw joint. To open the mouth, you don't need to unlock the end of the joint to reposition it, what you need is to ROTATE the jaw bone. This helps to avoid possible deformations due to stretching the length of the main jaw joint, and or not returning the correct rest location of the jaw end joint.

Moreover, rotating the main jaw joint ensures a circular arc for the motion, achieving the same effect as moving the jaw end, if that is what the mesh is skinned to.

Link to comment
Share on other sites

2 hours ago, OptimoMaximo said:

So you're moving the position of the jaw end joint, and not actually using the jaw joint. To open the mouth, you don't need to unlock the end of the joint to reposition it, what you need is to ROTATE the jaw bone. This helps to avoid possible deformations due to stretching the length of the main jaw joint, and or not returning the correct rest location of the jaw end joint.

Moreover, rotating the main jaw joint ensures a circular arc for the motion, achieving the same effect as moving the jaw end, if that is what the mesh is skinned to.

The human jaw does jut forward. My understanding is that the SL bones don't allow this. But unlocking the bone to move it is both a clever way and the only way to allow me to include a jutting jaw and better capture a human expression. (I then have to save location in avastar.)

Does that make sense? Right, rotating the jaw up and down, to open the mouth, isn't a problem. Neither is side-to-side

Link to comment
Share on other sites

5 hours ago, Christina Halpin said:

The human jaw does jut forward.

Studying human motion and body mechanic is a great way of learning animation, but it cannot be translated to the letter onto SL avatar rig, you simply have to accept SL restrictions and learn the rules. Everything else will lead to disaster. If you are creating this animation for yourself and know how to get out of the problem it is ok, but, if you create animation for public use, you will also create much bigger problem to users who will than buzz animators of all other facial animation that come after yours for explanation and we will have to deal with the problem you created. I am familiar with the frustration when you cannot create things the exact way you want them to be, but do your best to work with the tools you have as they are. After all, we are creating illusions in here, right? 😉

Link to comment
Share on other sites

8 hours ago, RohanaRaven Zerbino said:

... learn the rules ... 😉

 

I agree! I am a good example of someone who is trying to learn the rules, right? (I have brought up this issue in other places and tried to read about it.)

Rule 1. Test the animation on yourself.

Rule 2. If you see a problem on yourself, either find a way to fix the problem or don't use the animation.

Of course, you might test it on yourself, find no problem, and then others experience the problem. Right? No one has suggested otherwise. What if the problem occurs for some heads and not others? Someone suggested that I could set my CATWA animation HUD to avoid persistence. I don't know if that's possible, or if I did it, but that would affect the test too.

I note that if a developer can become familiar with how persistence is created with his or her software, that would be good.

Link to comment
Share on other sites

16 hours ago, Christina Halpin said:

The human jaw does jut forward. My understanding is that the SL bones don't allow this. But unlocking the bone to move it is both a clever way and the only way to allow me to include a jutting jaw and better capture a human expression. (I then have to save location in avastar.)

Does that make sense? Right, rotating the jaw up and down, to open the mouth, isn't a problem. Neither is side-to-side

When the jaw juts forward, it's not only the chin that moves, the bones do not stretch. So if you have to move something forward, it is again the jaw bone.

Let me suggest this approach then: keyframe the jaw before the motion start time, then copy paste this same keyframe to a later time on the time line. Perform the movement in between. When exporting, include like 12 frames MORE to the end of the animation, and set the ease out value to 0.5. (12 if you're working at 24 fps, 15 frames if working at 30 fps, and so on)

This should ensure that the animation dislocates the joint as you want it, but also place it back to the initial position. The extra frames are there to ensure that the ease out time value can accommodate the whole movement, and not leaving the joint at an intermediate location.

Link to comment
Share on other sites

6 hours ago, OptimoMaximo said:

When the jaw juts forward, it's not only the chin that moves, the bones do not stretch. So if you have to move something forward, it is again the jaw bone.

Let me suggest this approach then: keyframe the jaw before the motion start time, then copy paste this same keyframe to a later time on the time line. Perform the movement in between. When exporting, include like 12 frames MORE to the end of the animation, and set the ease out value to 0.5. (12 if you're working at 24 fps, 15 frames if working at 30 fps, and so on)

This should ensure that the animation dislocates the joint as you want it, but also place it back to the initial position. The extra frames are there to ensure that the ease out time value can accommodate the whole movement, and not leaving the joint at an intermediate location.

Yes, good. This is one thing animators can do when they see or worry about animation persistence.

It would not work for animations that loop, correct?

It assumes that the initial pose will not produce persistence, which I question. I did a new pose in avastar,, did NOTHING except save, and when I ran it, it raised my avatar's eyebrows. That effect persisted

Link to comment
Share on other sites

2 minutes ago, Christina Halpin said:

Yes, good. This is one thing animators can do when they see or worry about animation persistence.

It would not work for animations that loop, correct?

It assumes that the initial pose will not produce persistence, which I question. I did a new pose in avastar,, did NOTHING except save, and when I ran it, it raised my avatar's eyebrows. That effect persisted

Evidently the head you're wearing has a different set of eyebrow joints position than the default avatar provided with avastar. Therefore their animated positions overrode the head's custom positions, and those persist because, well, they're different to begin with and their default zero positions differ.

Link to comment
Share on other sites

31 minutes ago, OptimoMaximo said:

Evidently the head you're wearing has a different set of eyebrow joints position than the default avatar provided with avastar. Therefore their animated positions overrode the head's custom positions, and those persist because, well, they're different to begin with and their default zero positions differ.

CATWA HDPro. Actually . . . I just tested the "Neutral" pose, and it did not raise my eyebrows. Only the default position did. (There are two different options in Avastar, called 'default' and 'neutral')

So, if I understand what you are saying, the default position in Avastar is incompatible with my CATWA HDPro head. I can fix my person problem by using the neutral position. But if another head is compatible with the default position, then it will probably be incompatible with the neutral pose.

I am hoping that all heads are compatible with the Neutral pose in avastar. It would be a mess if they weren't, right?

Edited by Christina Halpin
Link to comment
Share on other sites

17 hours ago, Christina Halpin said:

I am hoping that all heads are compatible with the Neutral pose in avastar. It would be a mess if they weren't, right?

It is a mess, because this time, you were lucky enough that Catwa uses one of the two sets of default, neutral or "default". Most other head creators have completely different joints positions for a big number of face joints, if not all.

It gets even more complicated than that. Those presets you see in avastar are the two basic shapes, nothing applied and the Ruth shape everyone get when logging in the first time, or creating a new shape.

Also, the system works by manipulating the scale of some joints to achieve the new position, and consequently their child joints. So everything should really be rigged to the neutral shape, because all joints scales are at 1,1,1 (except collision volume bones, that's another layer of complexity I skip here) ... However...

The male Skeleton doesn't have a neutral shape, it's the result of shaping the base skeleton even further through scale.

Unfortunately, blender users can't see this, because blender doesn't support bind poses. And therefore, avastar does all the heavy lifting to translate SL system to something it can use and understand.

Link to comment
Share on other sites

2 hours ago, OptimoMaximo said:

It is a mess . . . 

Bad news, but thanks.  I tried working with this and just got confused.

But that forced me in a different direction. I tried to restart this thread with a more general name, for better or worse, and there I mentioned that the problem is just client side. So to undo an animation persistence, all we have to do is poke the Linden Computer into updating the client side. Right? It has the correct values.

I created a pose that detaches the end of a pinkie finger and moves it a really short distance. It undid my two poses that created persistence. I assume it persists, but the effect is not noticeable.

Link to comment
Share on other sites

I'm coming late to the party, I know, and my experience is purely with Qavimator-Beta, but what I had to do with every animation on the face is to make a reversed version where the starting frame (2) was the ending frame of the first animation that changed the face, and the ending frame of the reversed version was the starting frame (2) of the first animation. I got to this because I had the dilemma that if I made a "neutral face" pose that would reset all the face it would undo things like eyes where the person wanted to maintain a surprised eye setup but take off the jaw-drop to the mouth.

Effectively therefore I make two animations; xxx-ON and xxx-Off. it just means double the upload cost, and more complications if the animations are to be applied by scripts or Huds instead of just "play in world" from inventory.

Link to comment
Share on other sites

On 1/18/2023 at 4:55 PM, Christina Halpin said:

Rule 1. Test the animation on yourself.

Rule 2. If you see a problem on yourself, either find a way to fix the problem or don't use the animation.

Way more than that.

Ok, let’s go back to basics.

In animations outside of SL, there are 3 “tools” for animators to use to create animation: rotation, translation and scale of the bones. They can use whatever combination they want and only their skills and imagination are limits.

It is different in Second Life animation, there is simply lot more connected to skeleton than just animation. Bone translations and bone scaling are reserved for creating avatar shapes inworld. Process of shape creating in Appearance window is partially process of rig re-shaping, some shaping options will actually relocate and rescale the rig bones to get the shape you want. Hence, SL animators cannot use translation nor scale tool in animating process. I don’t see the way for LL to ever change that as it would probably wipe out every animation and shape ever made for SL in second.

Now let’s stop here and explain some details.

Creating animation is one part of the process, second part is exporting it via Exporter that has to prepare animation for Second Life according to SL rules.

Just keyframing bone Location will not affect avatar rig, exporter will take care of data. But exporting animation With Translation option will deform avatar.

Keyframing scale may or may not have various impact on avatar/animation, it is cat in the bag and you never know how it will behave (how exporter will process the data). Exporting with Apply Scale option will deform avatar as well.

Unless you are making custom avatar or animesh (which is completely different field than avatar animation) you should never export with these two options unless you are creating tongue out animation, but in that case, you must be sure no other bone has translation keyframed. Simply put, those are not tools for SL animators.

Resetting skeleton/animation is viewer related process that will be visible only in your viewer, but not to others unless you relog.

As it is never planned for bones to have translation/scale option, reseting animation is taking bones rotation only in account, and those will be set back to default 0/0/0 rotation. After that, viewer will re-apply joint positions from appearance data (I guess), but as rig has inherited position from animation and there is nothing to put it back in place it will remain stuck to your rig lost in space waiting to be activated again and make a mess.

It is getting even more messy with Bento heads.

While bento bodies are built around system body rig, bento heads are coming with the unique rig for each and every head separately. They all have different default positions of the bones, different weight paint, they are acting differently with the same animation. Only basic rule “rotate them don’t export with translation” remains the same.

Would it be much easier for SL animators to be able use complete set of tools in creating animation? Oh yes, it would be! It would eliminate every unwanted limb slide and cut out our working time. But we simply cannot use them, as that would lead to the world of deformed avatars.

What you are trying to do belongs to the area of creating custom avatars and animesh, not avatar animation. With your interests, maybe it would be good idea to try to create some custom rig. Medhue has some interesting videos on the theme on his YT channel.

 

  • Like 1
Link to comment
Share on other sites

First, thank you very much.

In Avastar I know of no way to jut the jaw except to unlock and dislocate it.

Actually, I know of no way to shrug my shoulders except to dislocate them, though that might be a fault of my knowledge. But unlocking bones seems to be a somewhat common resolution to animation issues.

If I am aware that these problems exist, and I have ways of making them not be a big problem, it seems better to use them than not use them.

[Edited: You explain this.] Also, I just created a pose that stuck out my tongue and moved my eyebrow. (I saved with translation.) The tongue position did not persist, but the eyebrow position did. So, if an animator does not know how to check for persistence, perhaps tongue dislocations should not be used either.

Edited by Christina Halpin
Link to comment
Share on other sites

43 minutes ago, RohanaRaven Zerbino said:

 

 

Resetting skeleton/animation is viewer related process that will be visible only in your viewer, but not to others unless you relog.

 

A small technical issue here. Teleporting out and then back in fixes things for other people. So it can be combined with (1) undeform or (2) the reset skeleton option found starting with Appearances. Relogging of course fixes both problems at once.

Link to comment
Share on other sites

1 hour ago, RohanaRaven Zerbino said:

But we simply cannot use them, as that would lead to the world of deformed avatars.

I will study what you said. What I learn here is useful in many ways.

Another technical thing, maybe. For animations, as far as I know, nothing persists in the Linden computer.. So they do not "really" deform anything. The deformation is only client-side.

Link to comment
Share on other sites

I had a long response, but . . .I just created a pose of just eyebrow. I saved the frame as just rotation, saved the anim without saving bone location, and it still had persistence. Same for upper eyelid.

My long response is that telling animators not to do things will probably be unpopular if it restricts what they can accomplish. A more popular message might be how to do what they want and yet still avoid unwanted persistence.

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 462 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...