Jump to content
Linden Lab

Project Bento Feedback Thread

Recommended Posts

You need to use the Avastar exporter and not the blender file exporter which doesn't work for SL. The Avastar exporter is located under the camera icon in the properties window, below the Bake section. You also might prefer to export as .anim there instead of .bvh for efficiency. 

  • Like 2

Share this post


Link to post
Share on other sites

Hi Mel,
I have a bit more time today so I can explain thing a bit better and go into more detail.

Matrice of Avastar did about 98% of the work of tying in the new face bones with the Appearance Sliders.  The Appearance Sliders are controlled by the avatar_lad.xml file.  In order to make very fine and tricky adjustments to the code in the avatar_lad.xml Matrice and Gaia rigged a mesh head to the face bones.  In order to get the best deformations each vertex of the face was weighted to 4 bones.  They did an awesome job weighting the face.

For better or worse this weighting is the optimal weighting for all future mesh heads to optimally work with the Appearance Sliders because the Appearance Sliders were fined tuned to work with Matrice's head weights.

I understand your logic and reasoning about the jaw bone moving up and down so much but with Matrice's head weights the jaw bone moving up and down does not have as dramatic effect as you would think it  would and his head's mouth opens and closes quite well with the same animation even with the appearance sliders set to extremes.

If changes are made at this point so that the mFaceJaw doesn't move up and down so much it could mean a few things.  A number of Appearance sliders wouldn't really work anymore or some major changes would be have to be made to both the avatar_lad.xml file and the weighting of the Matrice's head.

I know Vir and Matrice are following this discussion quite closely and are taking everything that is being brought up seriously and weighing the pros and cons to any proposed changes.  You are being listened to.

I am going to do an experiment.  I am going to create my own custom mesh head and copy Matrice's head weights to it and see how well they work on a head that has different topology.

In theory it should work quite well or at least be a really really good starting point.  Once I get the new bones connected to the Appearance Sliders in MayaStar I would then be able to fine tune the weighting of my custom mesh head.

  • Like 1

Share this post


Link to post
Share on other sites

I don't think you moved the sliders that are relevant, based on what you're saying. This is the same exact simple jaw rotation animation on 3 different shapes.



Obviously we can't expect perfection at all extremes of the shape sliders, but this is what I mean when I say that the nature of the pose changes drastically based on how these sliders are set, even when you're working with modest adjustments. The jaw pivot is not such an arbitrary thing that it can move around this much without issues. The eyelids will suffer the same problems with their pivot moving all over the place from various eye sliders.

This leads to the general point about a major conflict between the same bones being used for sliders and animation. When your verts have such light weighting to bones that will be used to animate it, the sliders will always be causing significant changes in the relative position of joints to the verts they control. Take the lips on this example. The jaw opens and the lips don't stay with the lip bones, so lip rotations will start pulling them in a completely different direction. Sometimes this is fine if it was an animation which caused the lip bones to change relative to the lips and that would be compensated for by the same animator who opened the jaw, but when it is shapes causing the change things go out the window. In this the third photo the lower lip bone pivots are now inside the lower lip, so they can no longer be used to control the lower lipat all. In the standard shape, the lip bones are situated straight back from the lips by a few cm, so they could be used to some extent to cotrol the lower lip. In the second photo, the lip bones are twice as far when compared to the first photo, so those same compensations you use for the standard shape would have the effect doubled. To make this completely unworkable, you've got users moving sliders inviting more errors as vertecies get animated on pivots that are being moved 3-4x as far as the shape change they represent. This can't be compensated for by the animator, since it's a moving target.

  • Like 1

Share this post


Link to post
Share on other sites

I did move the Jaw Angle slider to the extremes and yes with the mFaceJaw bone rotated to the amount you show in your photos.

This is how I did it.  I logged into Aditi and wore Matrice's mesh head.  I then played an animation that just rotated the mFaceJaw bone to open and close on a loop.  Yes when the Jaw Angle slider was set to the extremes it opened a bit funny like you see in your photos.  In RL if someone had a jaw similar to one of the extreem Jaw Angle settings their mouths would also open a bit funny so I myself am not too concerned with how the mouth opens when set to the extremes in SL.

I am more concerned with how does the mouth look like when the animation running closes the mouth.  In my experiments it closes very nicely so when the mouth closed it looked perfectly normal for a closed mouth no matter what the Jaw Angle slider was set at.

The truth is we are asking the new face bones to do two jobs.  It is a balancing act between using the Appearance Sliders to work with the new face bones, something all the major mesh body creators who were in the Bento project before it was announced wanted, and animating the face.  It is very hard to find a good balance.

So far what I am seeing is Matrice did an awesome job and got a huge number of Appearance Sliders to work well with the new face bones.  From what I been able to see so far animating the mFaceJaw bone using just rotations works much better than I would have anticipated even at the extreme settings if one uses weights that are very similar to Matrice's head weights.

I am not saying I be against changes to the mFaceJaw or the Appearance Sliders.  Matrice is brilliant and I know he is following this conversation and if anyone can find a solution that can address your concerns and still make the Appearance Editor sliders work it is Matrice.

At this point we are fairly late in the game and I know we can't add anymore bones.  I have no idea how much Matrice will be allowed to make changes at this point to the sliders.  I wish you had been invited to be apart of the Bento group from the beginning I think your ideas and insights are good and would have had a good impact.

The good news is that if you don't like how the Jaw Angle slider works you can disable it by moving your mFaceJaw to a custom bone location.  Animations that just use rotation on the mFaceJaw will work just fine.

  • Like 3

Share this post


Link to post
Share on other sites

What is pictured above should be fairly shocking to you, but for some reason you seem to be ok with it. Sorry if this sounds harsh, but this is not some class project — this is the facial rig that will determine how half a million SL users' expressions will look for the foreseeable future. This is the sort of decision that later results in "Unfortunately we can't fix it now without breaking content, so despite its problems we're stuck with it. Maybe someday we'll build an avatar 2.0 and do everything right.".

The problem is not limited to a mouth that can stick out like a cash register drawer or shrivel up like you know what on a cold day when it's supposed to simply be yawning. There are other major issues as well, but aside from that, think about the difference between a "bored" expression and a "displeased" expression. The difference is minute, but properly exectued, humans can tell one from the other. Unfortunately, with these types of wildcards in a rig, there isn't a prayer of even approaching these kinds of subtle changes of expression with any sort of consistency, much less avoid veering off into something utterly disturbing if it turns out someone decided to tighten up their chin.

It is entirely possible to build a facial rig that supports both sliders and animation which works extremely well for both. There is no real reason this needs to mimic the slider behavior of the base head, since Bento is entirely about controlling mesh heads. It is not something that is simple to accomplish, but it can be done. Whether Bento stops short of that standard is obviously a decision beyond my control, but I really hope it doesn't.

Share this post


Link to post
Share on other sites

 

I'll just point out again, that bone translations fix almost everything you just complained about.

 


Mel Vanbeeck wrote:

There is no real reason this needs to mimic the slider behavior of the base head, since Bento is entirely about controlling mesh heads. It is not something that is simple to accomplish, but it can be done. Whether Bento stops short of that standard is obviously a decision beyond my control, but I really hope it doesn't.

Bento is not entirely about controlling mesh heads. It is about a whole new skeleton that allows us to make almost ANYTHING.

Share this post


Link to post
Share on other sites

Medhue Simoni wrote:

Bento is not entirely about controlling mesh heads. It is about a whole new skeleton that allows us to make almost ANYTHING.

Yeah I have to agree with this. I made 4 different heads so far, 2 male, 2 female, they are all rigged pretty much the same, and using rotation & translation they are all able to use the same set of facial expression animations I made, so I haven't had any issues with that. I can even use the sliders here and there a bit-it's actually not all horrible looking lol.

Even if some bones get fixed into "better" positions, it will never be perfect for all.

  • Like 1

Share this post


Link to post
Share on other sites

It's not entirely about controlling mesh heads, but that is certainly a key part of the project. These behaviors are not helpful to any kind of creation, though, and bone translations "fix" it by disabling the feature that is broken. Sort of like removing the shift lever fixes a car that is stuck in first gear.

Edit: Oh I see what your issue was. I wasn't clear that I meant it's entirely about controlling mesh heads as opposed to the SL default head, which becomes irrelevant as soon as someone attaches a mesh head.

Share this post


Link to post
Share on other sites

Mel Vanbeeck wrote:

Edit: Oh I see what your issue was. I wasn't clear that I meant it's entirely about controlling mesh heads as opposed to the SL default head, which becomes irrelevant as soon as someone attaches a mesh head.

My issue? Why exactly would I care so much about the SL default head? Outside of some jiras, I have no issues at all. If you are asking why I'm responding to you, I'm trying to help you. You keep stating all these problems, when the soluton for you is obvious. The real question should be to you. Why won't you use translation? I guarantee that other mesh head designers will be using translation, and yours will suffer for not.

 

Share this post


Link to post
Share on other sites

I don't have time to go into an indepth post at the moment but this is why that jawbone needs to be locked into a smaller range of movement than it is now. This is my custom head, with the head attached while the jaw height is set to 60 for somewhat of a reasonable, realistic position, and this is what happens when you change the jaw height slider, which doesn't drastically affect the face, but does drastically affect the animation.  

First time the anim plays the jaw is set at 60 height. Second time 100 height, third time 0 height. There is no reason that the jawbone height should move the bone that dramatically.

@Medhue, @ Matrice, @ Gaia: If you can show me in Blender/avastar how to create animations using translations where you can pick up and move the bones around in pose mode to get the position you need, and I will be more than happy to make animations that aren't rotation based. I'm not talking about using the sliders as translation animations, what I would like to do is select the bones at the corner of the mouth and press G to move them into the correct position for a reasonable smile animation before I lock in a keyframe and so far I have found no way to do this. All I can do is rotate the bones. Pressing G with a bone selected does nothing.

Share this post


Link to post
Share on other sites

Just an addition and feedback, showing how the sliders work inworld on the MakeHuman's meshavatar's face (using Avastar 2.0-11). The first picture shows the default female face. You can easily edit, correct, change...



  • Like 1

Share this post


Link to post
Share on other sites

To create Translation enabled animations (Avastar):

* Ensure that you animate the (green) control bones.

* To get translations to work properly you must unlock the Control bones in the tool shelf:

   Rigging pannel -> Config Section -> Bone Constraints -> Unlock Control Bone Loc

* And when you export you must enable the option "use translations"

Some words about The Jaw Bone movement (Jaw Angle slider)

We have to handle 2 situations here:

- Pull the verts near the throat upwards/downwards to get the jaw angle defined (left image)

- Take care that the verts on the throat do not sink into the neck when the jaw bone is rotated (to open the mouth, right image)

To avoid the sinking in we have to add only very little weight to the throat area. But then we have to move the jaw bone a lot to get the throat verts pulled up:



If your particular mesh does not need the jaw angle, then you can do 3 things (all together or one or the other):

 

  1. Use the mFaceJaw only for animation but not for weighting.
    This avoids that changing the Jaw angle slider modifies the mesh
  2. Set the Jaw angle slider to specify your favorite jaw pivot point
    and tell your customers which slider value is the optimal setting for your creation.
  3. If you do not trust your customers then add a joint offset to mFaceJaw
    This make the jaw bone keep its joint position)

One other possible solution to this problem:  We could add one more bone that only is used for defining the jaw angle. But this sounds like overkill to me.

  • Like 1

Share this post


Link to post
Share on other sites

@Matrice or @Gaia - A video on how these controls work would be much appreciated by many. I have played around with them, and I like them, but because so many of the avatars I've been testing aren't human, I tend to delete all the constraints on the green bones.

 

@Siddean - As I said above, I tend to delete all the constraints, but I also have to go thru the bone parenting, and uncheck Connected to get the bones to move freely. When it comes to some of the unusual rigs I need to make to control some bone sets, I have to uncheck other Parenting options, like Inherit Rotation.

Share this post


Link to post
Share on other sites

Use the mFaceJaw only for animation but not for weighting.

This avoids that changing the Jaw angle slider modifies the mesh

So you'd have to weight your jaw to the lower teeth bone instead. This is one way to avoid a completely broken rig component, but then you still have to ↓

Set the Jaw angle slider to specify your favorite jaw pivot point

and tell your customers which slider value is the optimal setting for your creation.

One more way to try to avoid a feature that completely malfunctions when used. Then cope with the regular backlash from annoyed customers who don't understand why it doesn't work the way it's supposed to. Realistically you have to ↓

If you do not trust your customers then add a joint offset to mFaceJaw

This make the jaw bone keep its joint position)

One other possible solution to this problem:  We could add one more bone that only is used for defining the jaw angle. But this sounds like overkill to me.

...then do the same for the rest of the bones in the face.

How do you figure that second paragraph is overkill? Right now, the only way to have a jaw which can be animated is to completely disable all translations from that slider. If you lock it with a custom joint position, you must include all the chin, lip and mouth bones as well, since you can't have the lower lip bones locked in place while the upper lip bones get shifted around by mouth slider translations. What you have there is completely broken slider system on the lower half of the face, and the way the eyelids will go is much the same.

You only get to launch Bento once. I realize that making changes to this stuff is a crazy amount of work, but that's why work like this wouldn't normally be handled by volunteers. I just don't see how that is a reasonable choice for a product as significant as SecondLife's facial rig. You can't just launch something that's this insanely broken.

Share this post


Link to post
Share on other sites


Medhue Simoni wrote:

@Matrice or @Gaia - A video on how these controls work would be much appreciated by many.

well, yes... Is a video realy helpful here? Isn't a short text document better suited for this?

http://avastar.online/help/rigging/

http://avastar.online/workflows/

But i understand that our documentation still does not support users well when they do not exactly know for what they are looking (which terms to search, which topics to learn, which workflows to follow, ...)

We try to improve :matte-motes-bashful-cute-2:

Share this post


Link to post
Share on other sites


Medhue Simoni wrote:


Mel Vanbeeck wrote:

Edit: Oh I see what your issue was. I wasn't clear that I meant it's entirely about controlling mesh heads as opposed to the SL default head, which becomes irrelevant as soon as someone attaches a mesh head.

My issue? Why exactly would I care so much about the SL default head? Outside of some jiras, I have no issues at all. If you are asking why I'm responding to you, I'm trying to help you. You keep stating all these problems, when the soluton for you is obvious. The real question should be to you. Why won't you use translation? I guarantee that other mesh head designers will be using translation, and yours will suffer for not.

 

You took issue with me saying "Bento is entirely about controlling mesh heads.", but the entire sentence read "There is no real reason this needs to mimic the slider behavior of the base head, Bento is entirely about controlling mesh heads.". You felt it needed to be reiterated that Bento wasn't just about heads. I agree, but the head is where these problems lie, so that's what we're talking about.

Share this post


Link to post
Share on other sites

Mel Vanbeeck wrote
You took issue with me saying "
Bento is entirely about controlling mesh heads.", but the entire sentence read "There is no real reason this needs to mimic the slider behavior of the base head, Bento is entirely about controlling mesh heads.". You felt it needed to be reiterated that Bento wasn't just about heads. I agree, but the head is where these problems lie, so that's what we're talking about.


I took issue with it because it's not true.

The "entire" sentence shows a lacking of understanding of how the avatar works in SL. Body shapes are required. So, yes, the system does need to mimic the slider behavior of the base head(body shape). LL would have to design a whole new system in order for it to work any other way. IMHO, it's somewhat ingenius what has been done to our avatars with Bento. Matter of fact, it's so versatile, you can take over complete control of the head and make your own slider system, with your own bone positions.

Share this post


Link to post
Share on other sites

ok i've exported an animation with avastar:

 

but The animation starts when i press stop, when it's supposed to start when i press play, i guess what i did wrong? Sorry if i write here about animations and bento, i'm supposed to post somewhere else?

Share this post


Link to post
Share on other sites

Please tell me why the Bento bone head sliders need to precisely reproduce the blend shapes of the base mesh. Why, for example, would the nose slider need to have exactly the same types of controls? (will probably be interpreted differently than I was thinking so struck it out). Is it a problem to remove (omit) nose sliders from the Bento nose, or for a slider to not have exactly the same range? You're mistaken on this point.

And how exactly would I go about making my own slider system? A gazillion translation animations? There are limits to practicality here you're ignoring.

Share this post


Link to post
Share on other sites

Just a quick look at the eyelid situation I've alluded to several times. I could see it would be a problem just based on watching the bones move in the Bento viewer, but just today decided to actually put the model to the verify my suspicions.



To elaborate a bit further on this, in order for a head designer to try to fix this using custom joint positions and translation animations, the following bones would need to be locked: eyes, eyelids, eyebrows, inner eye corners

All eye-related sliders would for the most part become non-functional, including ones which are primarily about scaling like "eye size" since they also use translations to keep the eyeball from growing through the eyelids. After locking all the bones that will cause animations to malfunction, you're pretty much just left with nose sliders and some semi-functional head shape sliders.

For a thorough fix, the eyelids would need to pivot on the same pivot as the eyeball, and any adjustments would need to be limited to scale or translations matched with the eyeball. Possibly a child bone or two could be added to tweak the eyelid shape, though that would need to be adjusted with great apprehension and caution.

Share this post


Link to post
Share on other sites


Gaia Clary wrote:


Medhue Simoni wrote:

@Matrice or @Gaia - A video on how these controls work would be much appreciated by many.

well, yes... Is a video realy helpful here? Isn't a short text document better suited for this?

 

I just think video is better to learn from. Plus, it's not just what to do but also how to use it.

Share this post


Link to post
Share on other sites


Mel Vanbeeck wrote:

Please tell me why the Bento bone head sliders need to precisely reproduce the blend shapes of the base mesh.
Why, for example, would the nose slider need to have exactly the same types of controls?
 (will probably be interpreted differently than I was thinking so struck it out). Is it a problem to remove (omit) nose sliders from the Bento nose, or for a slider to not have exactly the same range? You're mistaken on this point.

And how exactly would I go about making my own slider system? A gazillion translation animations? There are limits to practicality here you're ignoring.

Because the system already exists, and the meshes are already affected by the body shapes. Essentially, LL would have to recreate the exact same thing, or something very similar. Why not have the nose sliders react the same? What sense would it make for them to act differently? Should nose size do anything other than resizing the nose? Range could be played with, but that's outside of my understanding of how things work.

Yes, you'd need to create a hundred or so different animations, and put them into a hud that remembers the setting chosen. Then the hud just plays the right set of animations, all the time, to form the desired shape. You could easily make 3 sets of expressions to fit the different variations that might come about. IMHO, that is alot less work, for much more versatility, than what is currently being done today. Plus, many times less laggy.

Share this post


Link to post
Share on other sites

There's no need for the sliders to match the range or exact appearance of the existing sliders other than in the most general terms. So long as the slider label describes what is happening to the rig, that's plenty. What isn't ok is when moving that slider breaks related animations. Human customers don't have the kind of patience for those malfunctions that furries have. They expect the things they pay for to work well without extensive configuration and troubleshooting.

For your custom slider system, it is far more efficient to just lock all the bones in place and build a different head mesh to suit the different appearance than try to mix and match 100 animations.

Aside from that, if the weighting on the model used to develop the sliders in the first place is not good enough to serve as a rock solid standard for all content, that is another missed opportunity for the grid. With every head designer going their own way in terms of how to weight the face, compatibility for animations and accessories is not possible. About the only thing that is guaranteed to be standardized is the skull in order to match hair.

Share this post


Link to post
Share on other sites


Mel Vanbeeck wrote:

Human customers don't have the kind of patience for those malfunctions that furries have. They expect the things they pay for to work well without extensive configuration and troubleshooting.

Hmmm, In my video, where I take a non human head, and make it work with a system made for human heads, I had little to no problems with those variations working almost perfectly with the animations I designed for them. Granted, I didn't show expressions, but at best I would need to make a few different versions of an expression to match everything fairly well. Which do you think is harder tho, to make a dog's head work with this system made for human heads, or a human's head with a system made for human heads? Which do you think is going to have more problems?


Mel Vanbeeck wrote:

For your custom slider system, it is far more efficient to just lock all the bones in place and build a different head mesh to suit the different appearance than try to mix and match 100 animations.

Then it would be you deciding what the appearance is, not the customer. The point of a customizable slider system is for the consumer to decide what they look like, not the creator.


Mel Vanbeeck wrote:

Aside from that, if the weighting on the model used to develop the sliders in the first place is not good enough to serve as a rock solid standard for all content, that is another missed opportunity for the grid. With every head designer going their own way in terms of how to weight the face, compatibility for animations and accessories is not possible. About the only thing that is guaranteed to be standardized is the skull in order to match hair.

Is compatibility across designers now possible with most of their parts? I also think you are making many more assumption than can possibly be assumed. As far as weights, I haven't looked at them or tested them very much because I'm mostly doing animals right now. That said, I have every bit of confidence that the Machinimatrix team has done a decent job, and ....... that despite this, I'll likely tweak them anyways, as I expect every artist that is decent at weighting would.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...