Jump to content
Linden Lab

Project Bento Feedback Thread

Recommended Posts

There are only two reasons I could really foresee a significant need for more sliders for a head (though I'm not against additions if someone thought of a useful one).

  1. It turns out that it isn't possible to allow mesh to set the bone positions pre-shape-sliders, so more sliders would be needed to fine-tune bone positions of facial features pre-upload, like eye height, mouth corner position, jaw position, etc.
  2. If SL were attempting to allow mesh creators to make a new type of head that would serve as a direct replacement to the default head, meaning that it could be deformed into just about any type of appearance from old man to young girl to infant. This sort of thing really only seems possible when you're simultaneously designing a mesh and the rig functionality to go with it — not when you're designing a mesh to go onto a pre-existing system. To do it properly would also require access to blend shapes, rather than doing everything with just bones.

So I think for heads the expectation should be more on making relatively minor tweaks to a head designed around a certain look, rather than sliders which can completely transform a head into wildly different types of faces from the same base mesh without creasing or growing weird lumps as features are contorted well past their intended appearance. Certainly a mesh that could distort to that extent without major problems would be a great item and fairly sought after, but I wouldn't set my expectations there from the start.

If it is indeed possible to simply place bones where they are most effective for their job while skinning your mesh, I just don't see why anyone wouldn't embrace that feature wholeheartedly. The only con that I see is that it takes some work to implement it.

  • Like 1

Share this post


Link to post
Share on other sites

I'm not saying that the current bone positions wont' support Mr. Incredible. I'm saying that you can't use remotely the same bone positions for Mr. Incredible as you would use for Alfredo (even with slider changes) without making significant compromises to your ability to animate it. For the mouth, one requires a bone that's in the opposite corner of the mouth and set further back, while the other prefers a bone that's more toward the middle of the mouth or on the same side and shifted closer to the surface. There is no slider which makes that specific change. Also, yes, you can get by with a bone that's not in the perfect position, and customers will probably never question the fact that there's no such thing as a big smile animation, or a deep yawn, or a heavily furrowed brow, or whatever expressions are out of reach as a result of sub-optimal bone placement, but even from the perspective that this could substantially simplify the design process I think it's definitely worthwhile putting some time into making this feature work.

  • Like 1

Share this post


Link to post
Share on other sites


Mel Vanbeeck wrote:

Also, yes, you can get by with a bone that's not in the perfect position, and customers will probably never question the fact that there's no such thing as a big smile animation, or a deep yawn, or a heavily furrowed brow, or whatever expressions are out of reach as a result of sub-optimal bone placement, but even from the perspective that this could substantially simplify the design process I think it's definitely worthwhile putting some time into making this feature work.

What? Not to get in a debate with you, but I see no reason at all that a big smile anim, or a deep yawn, or a heavily furrowed brow can't be made. Any facial expression you want is completely possible, even with slider support. Technically, you could rig someone like Mr Incredible without moving his facial mesh, nor the default bones, and just weight the facial features to the appropriate facial bone. The bones don't have to line up with the actual facial features at all. As long as they are weighted well, facial animations made with the default positions will work. They might not be perfect, but that is when you make those expressions yourself, for your avatar.

 

Actually, that sounds like a good test case, and possible Bento creation tutorial. I can envision how this might work also. Let's imagine someone makes a character with a strange face. As long as the facial weights are good, an animator like me could make a dozen or so big smiles for the default bone positions, even using translation, and anyone with an avatar rigged for the default facial bones could try them all and pick out the 1s that work the best. I can see it happening that way. Too swamped with work to dive right into this but definitely something I'll play with later.

Share this post


Link to post
Share on other sites

Ok I understand your premise, but sticking with this mouth corner bone as the example, I've put together an image that demonstrates that whatever your weighting, you can only do so much with the bone in a specific position without using translation animations.



So while you can somewhat resolve this by moving all of the lip bones to the center of the teeth that they will be sliding around (a position more likely to work with more types of heads), you won't ever get the best result for every head with that single bone position, and in the worst case, you'll get a result which completely prevents you from doing a certain expression (even if you can use translations, since the weighting you set up won't necessarily lend itself well to translations either).

The issue is that we at LeLutka have a strong aversion to putting out a product that is not excellent in all respects. If there are limitations of the medium that prevent something from being darn near perfect, it's very likely that project will get shelved until the medium evolves to the point it can be executed to our satisfaction. So when it comes to animating a head, we won't be putting out animations that contort the face into something that is technically recognizable as a smile, but just looks awkward because something is off about it. If the bone position we wind up being stuck with starts by pulling the corner of the mouth straight sideways away from the teeth, or pushing it straight into the teeth, then we have a major quality problem to overcome which may result in certain facial animations simply being unavailable on account of being too ugly to live with.

Regarding the other examples I gave, a deep yawn would be off the table with the current jaw position, since your jaw starts to look a bit awkward once it's open more than a cm or so, and by the time you're at 5cm it looks fairly grotesque. Again this is partially resolved for the majority of heads just by moving the jaw bone behind the ear as I suggested, but to perfectly resolve it for all heads, it's simply best if the jaw bone can be moved as needed.

A deeply furrowed brow is unlikely to be difficult to manage, but with forehead angle going anywhere from straight up (lurch) to straight back, raising the eyebrows can be fairly hazardous depending on how far they need to go for your character

.

  • Like 2

Share this post


Link to post
Share on other sites


Mel Vanbeeck wrote:

Ok I understand your premise, but sticking with this mouth corner bone as the example, I've put together an image that demonstrates that whatever your weighting, you can only do so much with the bone in a specific position without using translation animations.

 

Who said anything about not using translation? Not me! I don't even suggest creators attempt to make expressions with only rotations, as they just won't look good compared to those with bone translation.

If you want expressions to look good, bone translation is a must. No respectible animator today would even attempt to make a smile without bone translations. Using bone translation, you'll likely not be able to have just 1 set of expressions that fits everyone, but this is why I suggested making many different smiles to fit every head available.

Share this post


Link to post
Share on other sites

Do the shape sliders not apply any translations to the mouth corners? Not a rhetorical question I really don't know (no sliders in Maya yet). Trying to use translations on a bone that has translations from sliders would mean trying to hit a moving target. If animation translations could be applied as relative position rather than overriding position then there is no problem with using them everywhere, but as I understand it that is somewhat of a can of worms when it comes to trying to use them on bones that move with shape sliders. Am I misunderstanding something?

Share this post


Link to post
Share on other sites


Mel Vanbeeck wrote:

Do the shape sliders not apply any translations to the mouth corners?

As I've mostly been doing none human heads lately, I really have no idea. If I were a mesh head designer tho, I would just assume that any shape slider that uses anything besides scale will not work.

I mean, I totally get that a creator wants to put out the best avatar possible, but that can't really happen if you only use rotation for facial animation. Some in the bento group thought to only use rotations to ensure that animations are compatible across all avatars. Me, I'm first and foremost an animator, so only using rotation, for expressions, is just not an option in my mind. Not if you want the full range of expressions a human avatar should have.

Share this post


Link to post
Share on other sites

Well, what you seem to be suggesting now essentially means completely abandoning slider functionality in favor of animation range. While that is an option, I don't really see that as an acceptable solution, especially when there actually is quite a lot of animation range available just using rotations so long as the bones are positioned well. In fact the whole scheme of putting the bones several inches from the surface of the skin is entirely for this purpose. Yes, it still needs some tweaking to hit that target, but if the final solution is just to abandon pure rotation animations and go all in on translations, then the bones should just be moved to the surface where translation+rotation control wouldn't be so awkward.

Going back to your idea of making a dozen different smile animations in hope that maybe one or two of them look right on a given mesh/shape combo. Maybe that works for a third-party animator trying to build generic animations for mesh heads where the expectation of compatibility is lower, but when you're a mesh head designer, the animations you build for your heads need to work perfectly 100% of the time. It can't be that you have an animation that works for shape A, but the more you move your mouth position away from shape A it starts looking worse and worse until you opt for the other animation that works with shape B or the one that works with shape C. That's far too complicated, and generally just shoddy.

This can be solved or at least vastly improved by applying one or several (hopefully all) of the proposed additions:

  1. Improved base bone positions (helps, but doesn't fully solve it for all heads)
  2. Adjustable bone positions that don't disable sliders
  3. Translation animations that are additive/don't disable sliders

Any one of those changes makes getting a mesh built with highly functional animations achievable. Without at least one of those solutions, though, it will only be possible to do so with a mesh head that has a very specific set of landmarks, or one which is not compatible with shape sliders.

Sliders which I suspect use translations:

Head Shape, Egg Head, Face Shear, Forehead Angle, Brow Size, Upper Cheeks, Lower Cheeks, Cheek Bones, Eye Size, Eye Opening, Eye Spacing, Outer Eye Corner, Inner Eye Corner, Eye Depth, Upper Eyelid Fold, Eye Bags, Puffy Eyelids, Ear Size, Ear Tips, Nose Size, Nose Width, Nostril Width, Nostril Division, Nose Bridge...

I'm just going to stop there because the trend is obvious. It's about 80% of the sliders that seem to use translation. So this approach you suggest basically means that you'd have to say that the head is flat out not compatible with shape sliders, or at least that you would have to choose between sliders and animation.

Share this post


Link to post
Share on other sites


Mel Vanbeeck wrote:

Well, what you seem to be suggesting now essentially means completely abandoning slider functionality in favor of animation range. While that is an option, I don't really see that as an acceptable solution, especially when there actually is quite a lot of animation range available just using rotations so long as the bones are positioned well. In fact the whole scheme of putting the bones several inches from the surface of the skin is entirely for this purpose. Yes, it still needs some tweaking to hit that target, but if the final solution is just to abandon pure rotation animations and go all in on translations, then the bones should just be moved to the surface where translation+rotation control wouldn't be so awkward.

 

First, you say you want perfection, then you say you can only use rotation. You admitted yourself that some expressions are out of range when only rotations are used. So, the only fix is to use translation. I don't really see the reasoning on trying to make expressions that fit everyone. I don't mind that people want to chase that dream. Go right ahead. If people really want that, I might do that also. What I predict tho, is that the consumers will want the best there could be. This means all animations, or at least expressions, are made custom for every single mesh. This being the case, If you want to compete with that, you are forced to abandon rotation only. Hey, I'm just logically making the progressions as I see them happening in SL. Then again, I don't have that much direct experience in the mesh head market.

 


Mel Vanbeeck wrote:

Going back to your idea of making a dozen different smile animations in hope that maybe one or two of them look right on a given mesh/shape combo. Maybe that works for a third-party animator trying to build generic animations for mesh heads where the expectation of compatibility is lower, but when you're a mesh head designer, the animations you build for your heads need to work perfectly 100% of the time. It can't be that you have an animation that works for shape A, but the more you move your mouth position away from shape A it starts looking worse and worse until you opt for the other animation that works with shape B or the one that works with shape C. That's far too complicated, and generally just shoddy.

 

Exactly! Which is why all mesh heads will need completely custom facial expressions. If the mesh head creators release their skeletons, then anyone could make expressions for them. I'm hoping that everyone will share Bento skeletons, so animators like myself can create my own versions of expressions, or even mocaps to fit their avatars perfectly. Even with my wolves, I'm thinking of making the skeleton available to anyone, and I might even sell the animations full perm, so anyone can make their own wolf, or dog like animal using my rig, and my animations. For a mesh head designing team, a custom Blender addon, or even your own Blender version for people to animate their own faces, would be a kick butt feature to have. Just say'n.

 


Mel Vanbeeck wrote:

Sliders which I suspect use translations:

Head Shape, Egg Head, Face Shear, Forehead Angle, Brow Size, Upper Cheeks, Lower Cheeks, Cheek Bones, Eye Size, Eye Opening, Eye Spacing, Outer Eye Corner, Inner Eye Corner, Eye Depth, Upper Eyelid Fold, Eye Bags, Puffy Eyelids, Ear Size, Ear Tips, Nose Size, Nose Width, Nostril Width, Nostril Division, Nose Bridge...

I'm just going to stop there because the trend is obvious. It's about 80% of the sliders that seem to use translation. So this approach you suggest basically means that you'd have to say that the head is flat out not compatible with shape sliders, or at least that you would have to choose between sliders and animation.

I have no idea how many sliders use translation, but it is obvious to me that your list is bloated. I have rigged a minimum of 10 different heads with the Bento bones, and played a little with the sliders on some of them. Plus, I talk with Cathy regularly, and she tells people that most of the sliders use scale. Using scale is smart, as we can't animate it anyways. Many, if not most, I can see how simply scaling a bone can produce something similar to the SL slider's morph. Remember, that is what we are doing here, with these special bones, trying to mimic a morph/blend shape. Eye size is an obvious scaling of the eye bones. If it's not, then it should be, but I suspect it is. The are too many to name that are more likely scaling vs translation. A list might be nice to have, to more clearly see what is possible.

 

Many of the bones that use the sliders aren't even facial expression bones, so you can easily avoid those bones when animating, and still sell the expression you want pretty well. That said, in the systems current state, setting them with animation, or including them in an animation will reset any translation brought on by a slider, which is problematic.

 

  • Like 1

Share this post


Link to post
Share on other sites

For the bones that do use translation for the sliders, mesh head creators could completely take over those bones, and release different versions of their heads with different positions for those bones.

Share this post


Link to post
Share on other sites


Medhue Simoni wrote:

First, you say you want perfection, then you say you can only use rotation. You admitted yourself that some expressions are out of range when only rotations are used. So, the only fix is to use translation. I don't really see the reasoning on trying to make expressions that fit everyone.

The expressions that are out of range when only rotations are used are mostly from the case where the designer can't fully control the original bone position. If you have full control over that, then you can faithfully reproduce most expressions of interest, though you still could not do something like puff up the cheeks, etc. Regardless, by having the ability to move the bones to their most useful positions, you can get quite a lot more range before you have to reach for the translations. Again if translations weren't such a disruptive thing, it would be less of an issue. Something needs to be improved before it can be used for a product that the entire grid is going to use, though. Imagine the insane number of customer service hours that would be required to explain to every last resident in every language on the grid how to deal with conflicting animations/shapes/leftover deformations. No thanks.


Medhue Simoni wrote:

I don't mind that people want to chase that dream. Go right ahead. If people really want that, I might do that also. What I predict tho, is that the consumers will want the best there could be. This means all animations, or at least expressions, are made custom for every single mesh.

Depends on your definition of "best". Best also includes compatibility, usability, etc. If the customer needs to read a white paper just to figure out how to use your product, chances are that's going to be a very niche product, and although certain people will love that, the majority of humans will not. This sort of experience becomes one of those straws that breaks the camel's back and makes people leave SL. "Couldn't figure out how to xxx — it was all so complicated".


Medhue Simoni wrote:


Mel Vanbeeck wrote:

Sliders which I suspect use translations:

Head Shape, Egg Head, Face Shear, Forehead Angle, Brow Size, Upper Cheeks, Lower Cheeks, Cheek Bones, Eye Size, Eye Opening, Eye Spacing, Outer Eye Corner, Inner Eye Corner, Eye Depth, Upper Eyelid Fold, Eye Bags, Puffy Eyelids, Ear Size, Ear Tips, Nose Size, Nose Width, Nostril Width, Nostril Division, Nose Bridge...

I'm just going to stop there because the trend is obvious. It's about 80% of the sliders that seem to use translation. So this approach you suggest basically means that you'd have to say that the head is flat out not compatible with shape sliders, or at least that you would have to choose between sliders and animation.

I have no idea how many sliders use translation, but it is obvious to me that your list is bloated. I have rigged a minimum of 10 different heads with the Bento bones, and played a little with the sliders on some of them. Plus, I talk with Cathy regularly, and she tells people that most of the sliders use scale. Using scale is smart, as we can't animate it anyways. Many, if not most, I can see how simply scaling a bone can produce something similar to the SL slider's morph. Remember, that is what we are doing here, with these special bones, trying to mimic a morph/blend shape. Eye size is an obvious scaling of the eye bones. If it's not, then it should be, but I suspect it is. The are too many to name that are more likely scaling vs translation. A list might be nice to have, to more clearly see what is possible.

 

Many of the bones that use the sliders aren't even facial expression bones, so you can easily avoid those bones when animating, and still sell the expression you want pretty well. That said, in the systems current state, setting them with animation, or including them in an animation will reset any translation brought on by a slider, which is problematic.

I'm actually fairly certain of the accuracy of that list, since I created it by logging in and moving each slider while watching how the related bones moved. It's fairly easy to see when translations are happening vs scaling, since the joints visibly deform when something gets scaled. I think what's throwing you off is that many of those sliders have both translation and scale attributes, so yes when you have overridden bone position you will still see an effect from those sliders, but it's not the whole effect, and in many cases that translation element is what makes it work properly. As you said, though, an official, exhaustive list should certainly be documented somewhere if translations are going to be such a disruptive element. So yes, it may be true that most of the bones are using scaling, but from what I see it's also true that most of them are also using translations. Also, while some of those bones aren't necessarily used for expressions (though nearly all of them are anyway), it is also true that every single bone that is used for expressions has a translation element from some shape slider (with the single exception of the tongue), so that's that.

Share this post


Link to post
Share on other sites

I've just been experimenting with sliders in SL to see how it moves the bones around and discovered that the original position of the jaw is really just the tip of the iceberg when it comes to finding a good position for the jaw bone. Evidently the sliders were created with a very small amount of vertex weighting applied to the jaw bone, because the chin depth and jaw angle sliders make massive changes to the jaw bone position. Perhaps this is fine if this bone is just used for moving verts around with shape sliders, but any attempt to animate a bone that moves this much would end in disaster.

If any bone needs to move this far to acheive whatever adjustment to the shape, that same bone can't serve as the pivot for the lower half of the face.

 

 

  • Like 1

Share this post


Link to post
Share on other sites


Mel Vanbeeck wrote:


So yes, it may be true that most of the bones are using scaling, but from what I see it's also true that most of them are also using translations. Also, while some of those bones aren't necessarily used for expressions (though nearly all of them are anyway), it is also true that every single bone that is used for expressions has a translation element from some shape slider (with the single exception of the tongue), so that's that.


 

IDK, I kind of beg to differ here.

Here is my Coyot avatar. The 1 on the left is exactly as I designed him. The 1 on the right is wearing a different shape, which has some extreme slider settings. Both are running a facial expressions system utilizing all the facial bones and almost exclusively using translations. So, the difference is the 2 shapes in the face, are the sum of all the sliders that work, which is quite a few. It should also be noted that I have spent almost no time optimizing the weights in the face to try and make these slider changes better. It's also worth noting, that the eye size did not hold. That's a bit perplexing, but whatever.

IMHO, the slider that do work, add up to some significant changes that most mesh avatar creators and users are going to love.

Share this post


Link to post
Share on other sites

Just put on a regular body and show the bones and move them around with the sliders you'll see exactly what they're doing. Regarding the eyeballs I think that they aren't actually scaling with the eye size slider; there's probably a bug there. They do move in and out when you move that slider though so long as you aren't running a translation anim.

Share this post


Link to post
Share on other sites

Hi Mel,
I took a good look at the Jaw bone and how it moves when you move certain Appearance Sliders.  When I played an animation that just animated the mFaceJaw bone using rotation only the mouth animated just fine even when the Appearance Slider for Jaw Angle was set to the extremes.  I did the same with the other Chin sliders.  They all worked rather well even when combining extreme settings for a number of them at one time.

Now if you want to animate the mFaceJaw with translations then there is a problem. The animation will override the mFaceJaw position and cause issues.

One solution for custom head mesh creator who don't want the mFaceJaw affected by the sliders is to move the mFaceJaw bone to a custom position away from the default bone position.  Then upload your mesh head with "Include Joint positions" selected.

Sorry I like to go more in detail but I have to go in RL.
Hope that helped.
Cathy

Share this post


Link to post
Share on other sites

The likely reason this worked somewhat well is that the sliders are expecting almost no weight to be on the jaw bone itself for verticies in the jaw (otherwise you wouldn't be able to move the jaw bone 30cm up and down without sucking your neck up into your brain and introducing your chin to your eyebrows). Reducing the weight of a vertex to say 5% virtually moves the bone's pivot point 95% of the way toward that vertex, as shown by the doppler-like circles of vertex influence in one of my previous graphics, significantly reducing the range of movement of that vertex compared to its distance from the bone. Regardless, with these sliders in one case you have the pivot below the actual jaw, and in the other you have it up above the jaw. This means that at the upper extreme rotating the jaw down will cause the jaw to move down and back, while the lower extreme will cause the jaw to rock down and forward — two completely different types of jaw movement for different types of expressions.

Unless there is a different pivot that isn't in the same location as the jaw bone which is counteracting that massive range of movement, I don't see how this could be even remotely workable for animation. It's not necessarily a question of whether it looks like something the jaw might do someday, some time. It's a question of whether that one rotation setting makes the same type of expression as you move the jaw pivot around, since you'll be moving all the the other bones expecting that the influence from the jaw is going in a certain direction.

Aside from that, if I'm not mistaken, simply overriding the mFaceJaw bone would not be enough, since the slider offsets all the child bones of that bone to counteract the large changes to its position, so you would also have to override all the lower lip bones, the tongue bone, and the chin bone as well —essentially paralyzing the entire lower portion of the face from any translation-based slider effects.

Share this post


Link to post
Share on other sites

Can someone send me a .blend file with the latest Bento Avastar template for rigging? I tried modifying the bento angel template for my needs but I keep getting errors... Also i'm using Blender 2.77

Share this post


Link to post
Share on other sites

In Avastar 2.0-10 or newer:

From the Bottom Menu in the 3D View call:

Add -> Avastar -> Extended



When the Avastar menu does not show up like that or when you get errors while adding a new Avastar Skeleton like this, then you probably need to fully deinstall Avastar (Remove) and install it again. The problem is that installing a newer version sometimes does not delete all files from earlier versions and polute the tool :(

Share this post


Link to post
Share on other sites

I believe the slider range for the jaw bone was related to how the sliders combine with each other and that we only have up to 4 weights for each vertex. It appears to me that the chin bone could possibly take over most of what the jaw bone does on the jaw.

Please remind that we got the chin bone only 2 days before the slider system was finalized. Maybe we can take another look into this and optimize the Jaw bone location and the related sliders a bit. But you also should remind that 4 weights per bone need a lot of experimenting to get 40 sliders working all right on the same region.

As a sidenote: a while back we made a demo video that shows how each slider influences the system character face. And of course this is all depending on how the vertices are weighted to the bones:

You can see why the teeth bones, have been added, how the mouth moves independent from the jaw, etc... Unfortunately you can not see what the hidden bones do (jaw, tongue, face root)

Share this post


Link to post
Share on other sites

Well, the position of the jaw bone as the pivot for the jaw is not a trivial thing which can happily be shifted up and down without consequence. This situation would cause animations to behave very differently depending on one's shape, which is not the desired outcome. I would suggest that these jaw angle/chin depth sliders should probably not affect the jaw bone at all (since it is mainly supposed to represent the temporomandibular joint), but possibly a new bone should take over that role if it is needed. You could actually probably recycle the teeth bones, since if you keep the jaw  bone behavior similar to how your real life jaw bone behaves, then you really don't need teeth bones. However, there are several other ways that the teeth bones could be repurposed which I'd actually be sad to see go, so I'd really just suggest adding a new child to the jaw bone to serve the jaw-related sliders.

Share this post


Link to post
Share on other sites

I managed to upolad a rigged object, it sits in place and can even be animated (though the hands are not in place, like they do in Blender...), I used Avastar 2.0.10



Using Avastar 2.0.11, the instrument always flips to the original boneposition (I use the wingbones and looks like this:

 

Share this post


Link to post
Share on other sites

Here is a video of my Coyot Avatar wearing different body shapes utilizing the sliders. I've not optimized the weights on the face of the avatar for using the sliders, but mostly for animations. I also don't have the avatar rigged to the latest Avastar version, which utilizes more of the mouth and jaw sliders.

 

Share this post


Link to post
Share on other sites

Hi there i've tried to upload the standard mesh avatar adding a couple of legs more 



and it's pretty cool

then i tryed to animate the back left leg using blender and exported it as a bhv



and i get that error message when i upload it:

 

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