Jump to content

Project Bento Feedback Thread


Linden Lab
 Share

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

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

Recommended Posts


Kwakkelde Kwak wrote:

Maybe it's just late, maybe I am missing something.

First you said you'd need translatable bones for such a rig (excluding the shiny extras). In a rig like bento, what would have to be added? You pick up a bone and move it around. That can be done by hand, modifier or script.

Without being able to translate the bones, wouldn't you just need a very short IK chain? Then you can again move around the end, be it in a limited manner.

The art or hard work or combination of those two would be the skinning if you ask me and that will have to be done for every unique figure.

So, back to "I am missing something", what is it you are going to do, and Cathy for that matter.

Watch the video again. Most, if not all those movements in the video are not currently possible with our rotate only face rig. Any kind of puckering of the lips would not be possible, as puckering actually moves your lips away from your face.

Well, reguardless of whether we have bone translation or not, compatible facial animation is actually pretty dang easy. Just don't move the bone\s start position. So, if someone is making human avatars, then just line the face up perfectly with the initial bone set up, and you are all good. Default facial animation will work.

Yeah, weighting is important, which is why Gaia and the Machinimatrix team are working on a system to get better autoweights for the face bones. So, if we have decent autoweights, and the initial bones aren't moved, then everyone could use a common facial rig set up for all their humanoid characters.

Link to comment
Share on other sites


Vir Linden wrote:

Tornleaf, thanks for the feedback. I like the fox! Could you describe what the problem is with trying to close the eyes using only rotations?

You've probably seen this by now, but there is a bit more info on the different joints at 
Alt eyes are intended primarily for people who want to control their gaze direction explicitly, but could also be used for extra eyes if desired.

 

Well, it is possible to close the eyes, but you have to adjust the axis of those bones forward slightly. If the bones are kept on the exact same axis as the eyebone, then yes, it becomes difficult to close them all the way. This is not an advocation for only rotating bones tho.

Link to comment
Share on other sites

Exactly, I understand the limits of only being able to rotate. I don't know the limits of the SL avatar regarding that. Some collision bones for example move with the morph/blend shape sliders. Current anim files are able to move bones if I'm not mistaken. So it's technically possible. LL must have their reasons to disable those animations, no idea which ones exactly, but it looks like a very deliberate change.

My question was about the rig you plan to make in Blender. How would it differ, or maybe better stated, how could it differ from the one provided by LL if you want to use it for SL?

Link to comment
Share on other sites

I think people are missing one HUGE important downside that makes the "only rotation lets use bones chain" idea totally useless.

Do anyone here uploads animations? If you do, you may have found yourself  into hard problems due SL compression of animations.

SL have the bad habit of "optimizing" animations size. To achieve this, once the animation is uploaded, some frames with sligthly no difference on rotations are totally deleted. If you uploaded animations before, Im sure that your first thoughs would be like "why my animation doesnt look like on my 3D app?". You can actually see this on certain AOs. Once you wear one and the AO have some pelvis movement (bending over and such) you will most likely see your legs shaking. We could think on this like some kind of "jpeg" compression translated to animations. Even after the increase on size of animations files, this problem still persis. Some workarounds is to reduce the fps of the animation to something very slow. Since SL interpolates frames, isnt a big issue asides of missing some details on movements.

Ok now think on that issue translated to the new bones. Take into account that bones have increased to, how much? 3 or 4 times the old ones? Add to that some bones chains for the supossed facial animations. Just the face bones should be increased by 3. Now, with all that try to make an animation. You will then hit a big wall when your animations looks nothing like the ones tried to make, when your face starts to get some muscle spasms here and there and when the file size limits your animations to very short clips.

Adding bones chains wouldnt just decrease performance, it would decrease animations quality. Unless these animations file size gets increased by the same amount of bones number.

By the way, I am not sure why everyone is looking at other side regarding the problem with joint offset. As I explained before, joint offset would be required on every mesh head made for the new bones. Meaning that every single avatar would be deformed back to the default size. Im not really sure wether people just dont understand the concept, if my explanation is confusing or if there is any other reasson but this issue would be a total content breaker unless we have bones translations to avoid that.

Leaving the bones translations subject, I would like to recall on the bone per vertex limit issue.
We already strugle at time to rig using fitted mesh bones in combination with default ones. Certain parts are surrounded by more than 5 bones while the limit is 4. This gives you distortions on skinned meshes and often puts you on the choice of having to disccard some necessary bones simply because you cant add more than 4. If the limit is really tight already, try to imagine if you add the new bento bones. Think when you will try to make a smooth facial skinning but you cant use more than 4 bones per group so you have to discard essential facial bones for an optimal animation. We need a limit of a minimum of 6 bones per vertex. I am not programmer so I am not sure wether tis can get scaled to 6 or if have to be directly raised to 8 like most games engines. But the fact is that we really need to be able to rig to more bones per vertex if we want to use the new bones, fitted and old ones properly.

  • Like 2
Link to comment
Share on other sites

You may agree that giving to users some good explanation regarding the issues of using bones translation would be very helpful to identify the problem and find possible solutions. If, for example, all they can say is just "no" without a minimal explanation then people gets frustrated and confused.

Basically, you cant give to everyone a feature and then restrict the most important part of that feature. Its obvious that implementing translations is not impossible. Its already in SL, it works and its being used by several users. I think it works pretty well considering it was never meant to work nor it was an official feature either.

I think comunication its very important here. Just in the same way as they ask us to understand why translations is so important, they have to correspond us and tell us why translations could be a bad idea otherwise none of us will understand each other.

Guessing problems, whatever may be an issue can surely be avoided or minimized. Not everything have to be "translations yes or not". We could also add them to certain bones only or maybe to a certain degree and limits to avoid those possible problems. I still think that the best idea is to give users freedom about it rather than limits.

Link to comment
Share on other sites


Kitsune Shan wrote:

 

I think comunication its very important here. Just in the same way as they ask us to understand why translations is so important, they have to correspond us and tell us why translations could be a bad idea otherwise none of us will understand each other.

Guessing problems, whatever may be an issue can surely be avoided or minimized. Not everything have to be "translations yes or not". We could also add them to certain bones only or maybe to a certain degree and limits to avoid those possible problems. I still think that the best idea is to give users freedom about it rather than limits.

Pretty much if not exactly my thoughts. Like you say, they ask why people want them. So far I have only seen one face movement which absolutely needs translation, it's been mentioned several times: the puckered lips.

So some info from LL why they didn't include the option or even disabled it would be nice. Some strong arguments on why they are needed would be nice as well. Posting a video with a very nicely done rig, as impressive as it looks, doesn't show the limitations of rotations.

Although I have a complete understanding of the basics (I can make a skeleton, make an avatar, skin the avatar and animate it) , I'm not a very experienced avatar maker. So it's not easy to do a lot of small quick tests. I had a look at the rig though and aren't the new face bones "two fold", a chain of two? In that case you could move the first one back in the rig, make it longer, use the end for the weights. That way the rotation will be close to a translation. Just a thought :)

Link to comment
Share on other sites


Kitsune Shan wrote:

...

Ok now think on that issue translated to the new bones. Take into account that bones have increased to, how much? 3 or 4 times the old ones? Add to that some bones chains for the supossed facial animations. Just the face bones should be increased by 3. Now, with all that try to make an animation. You will then hit a big wall when your animations looks nothing like the ones tried to make, when your face starts to get some muscle spasms here and there and when the file size limits your animations to very short clips.

Adding bones chains wouldnt just decrease performance, it would decrease animations quality. Unless these animations file size gets increased by the same amount of bones number

...

Leaving the bones translations subject, I would like to recall on the bone per vertex limit issue.

We already strugle at time to rig using fitted mesh bones in combination with default ones. Certain parts are surrounded by more than 5 bones while the limit is 4. This gives you distortions on skinned meshes and often puts you on the choice of having to disccard some necessary bones simply because you cant add more than 4. If the limit is really tight already, try to imagine if you add the new bento bones. Think when you will try to make a smooth facial skinning but you cant use more than 4 bones per group so you have to discard essential facial bones for an optimal animation. We need a limit of a minimum of 6 bones per vertex. I am not programmer so I am not sure wether tis can get scaled to 6 or if have to be directly raised to 8 like most games engines. But the fact is that we really need to be able to rig to more bones per vertex if we want to use the new bones, fitted and old ones properly.


 

Without commenting on the merits of either of those issues above (because I don't have an opinion yet), I'd just like to point out that they would be perfect for filing a Jira issue including rigs and animations that clearly demonstrate the problems... doing so would be far far more effective than the post above alone.

  • Like 1
Link to comment
Share on other sites

Yes, communication is important. Please don't take our recent quiet as an attempt to avoid communication... it wasn't: we were just on holiday.

We're looking at having a series of open meetings for and with content creators, and will be posting both those and other things here in the coming days and weeks.

Almost nothing is set in stone yet (the bones that existed before Bento being the most conspicuous exception).

Second Life Examples Please!

  • Like 2
Link to comment
Share on other sites

I am just starting to make some experiments with the new Bento skeleton and in particular the facial bones as I am a mesh heads creator and an animator.

I was very excited by the possibilities of these new bones This could avoid the meshes hide/show "horrible and expensive" system that mesh heads creators are currently forced to use to give some life to their heads!

But as soon as I started to experiment, I understoodd the big limitations of the "only rotable" bones.

I have a very simple example to understand the problem :

With the mFaceTongueBase and mFaceTongueTip bones, how do you stick the tongue out if you can only rotate these bones but not translate them nor scale them by animation ?

If you can give me the solution to this problem, I would be very grateful!

  • Like 2
Link to comment
Share on other sites


Kwakkelde Kwak wrote:


 

So far I have only seen one face movement which absolutely needs translation, it's been mentioned several times: the puckered lips.

 

Are you serious here? It doesn't sound like it. No offense, but you obviously are not an animator. Every single good facial expression REQUIRES bone translation. Every single 1. Puckered lips is simply the most obvious. Even in my video I show how different a basic smile is comparing rotation, and translation. Did you somehow think the rotation only smile was good?

Link to comment
Share on other sites

 

Hi;

We have been working on the Skeleton for the past 2 weeks. And we have been reading this thread from the begin to the end to understand better what problems are to be solved. So finally here is a summary of the ideas that we have discussed since Project Bento was introduced to the public.

The following is the result of what we have discussed in the team. I just have taken all our chats, paper scribbles and noteits and whatnot, added a bit here and there and polished all of this a bit:

About the Face

One of the youtube videos mentioned in this thread made us think of some possible improvements:

Left side: We Added 3 mBones on the symmetry axis (in light blue)
Right Side: We created a Face Rig on top of the mBones where every square controls a subset of mBones. The Face rig is only for creating animations in the Animation tool (Blender here). And it is not even half finished:



Please note that possibly we can reduce the number of bones on the lips from 8 to 4 (see further down)

The unfinished Face rig as shown above already allows to create animations with very low effort. The video below uses the Bento character with improved facial weight maps (the face uses exactly the same mesh as the SL default Avatar). This  is really just a very quick example, we will create a new one when the face rig is fully finished. Also this is rendered in Blender because the modified skeleton can not be used in Aditi (We added new bones):

We also allowed the mBones on the face to animate rotation and translation. We believe that allowing translation (location changes) is helpful:

 

  • It seems to be easier to create decent animations,
  • It allows to use bones in much more flexible ways (especially for non human characters where the bones possibly are used for completely different purposes)
  • It looks like using translation on the face bones is very common practice.
  • Also motion capture data for face animations might be easier to transform into SL animations (because motion capture actually captures location changes)

About the Scaling problem

Obviously there must be something that makes using translations really a bad option for Second Life. However we have been working on a similar issue last year, see here:

http://blog.machinimatrix.org/sparkles/animation-scale-tool/

Maybe this is basically the same issue? Then it might be possible to fix this for SL animations as well (within the SL Viewer).

 

About Lips and Eyes

We also have been discussing if some other general changes on the skeleton could improve the Avatar further:


So, do we loose something (for humans) when we only have 4 lip bones?
And do we gain something (for creatures) when we use 4 Eye brow bones?

Here is an alternative bone setup proposal for eyes and mouth(same number of bones as on Aditi, but with a slightly different layout):

  • mFaceLipUpper (centered)
  • mFaceLipLower (centered)
  • mFaceLipRight (corner)
  • mFaceLipLeft (corner)

  • mFaceEyeBrowUpperRight (centered)
  • mFaceEyeBrowInnerRight (corner)
  • mFaceEyeBrowOuterRight (corner)

  • mFaceEyeBrowUpperLeft (centered)
  • mFaceEyeBrowInnerLeft (corner)
  • mFaceEyeBrowOuterLeft (corner)
  • mFaceEyeLowerRight (centered)
  • mFaceEyeLowerLeft (centered)



Only 1 wing root but 2 tails

To allow a second pair of legs without need to create odd animations:

  • mWingsRoot
  • mTail1Left
  • mTail2Left
  • mTail3Left
  • mTail4Left
  • mTail5Left
  • mTail1Right
  • mTail2Right
  • mTail3Right
  • mTail4Right
  • mTail5Right

This change allows to add a second pair of legs which are attached to mPelvis instead of mChest.
This leads to 11 bones compared to the 9 bones we have now.




Also Creatures with tail and 2 pairs of legs could reuse the wings as tail and possibly get a wiggling tail "for free" (because of the automatic breath animation for the chest)

Alternative to the 2 tails solution: "constraints"

This idea came to our minds when we where working on the bone constraints for the Avastar IK Rig. The idea is:

Parent the Wings root to the Spine, but also add for example a (configurable) constraint to the local rotation of mChest to mWingRoot. If possible make the constraint target configurable, so that users can "clamp" the wings to mChest, or mTorso or mSpine, or mhead, ...

To explain this a little better: This idea does not change the topology of the Skeleton. It only adds bone movement constraints which make one bone (the driven bone) follow another bone (the controlling bone). Bone constraints are very common in animation programs, so maybe it is also doable in the Second Life Viewer. We use this technique in Avastar to separate the deform bone animations from the Rig (so we could add IK based animations)

Generalize constraints
If constraints can be implemented in general, then this concept could be generalized to work for all limbs, then users can for example constrain the root bones of the legs, arms, wings and tail to mSpine and create a 7 legged creature that can be animated without adding odd rules to the animation.

Thinking even further, if location constraints where allowed, then this idea allows to constrain any limb to any bone. Wings could then be constrained to eye brows for antennas, tail(s) could be constrained to chest for 4 winged creatures, etc.

 

  • Like 7
Link to comment
Share on other sites

Stating I am obviously not an animator is..well stating the obvious, I made it clear in my previous post that I am not. I do fully understand the benefits of bone translations vs rotations.

All I was asking for, since I am obviously not an animator, if someone could show the differences in a video which would take me forever to make. I missed your video in this enormous thread, it was pretty much what I was asking for.

What I did not take into consideration is the fact that you translate both the base and end of the chain, that does make a lot of difference and can't be done by rotations. I suspect that if you weigh to the end and not the base of the chain, the results with rotations will be better. Still you can only move the bones in a plane rather than in 3D space, which is quite a limitation.

Crazy idea... If translations really aren't an option, adding an extra bone to the chain might work. The first two bones shouldn't be used for weights, just the end one, which with two "hinges" can move around freely. Thinking the other way, If translations aren't an issue, you don't need a chain at all, so you can get rid of all the end or base bones

Both smiles look a bit creepy though :)

Link to comment
Share on other sites

Interesting stuff Gaia!

Please allow me to make a few suggestions. Note, that I don't have that much experience with facial bone rigs, but actually much more with shape key facial rigs. That said, I have had to animate expressions using a number of facial rig set ups. I think you mistakenly added brow to your eye bones, but this is the actual eyebrow bones that I suggest.

Eyebrows:

  • mFaceEyeBrowUpperRight (centered)
  • mFaceEyeBrowInnerRight (corner)
  • mFaceEyeBrowOuterRight (corner)

  • mFaceEyeBrowUpperLeft (centered)
  • mFaceEyeBrowInnerLeft (corner)
  • mFaceEyeBrowOuterLeft (corner)
  • mFaceEyeBrowCenter

I do like the extra eye bones tho.

 

Lips could have many different configurations. I'm good with 4 bones, but I do think 6 could work, if the top and bottom bones where a little more centered than the original set.

That's interesting about constraints, and whether we can do that in SL.

 

Link to comment
Share on other sites

Ok, so I finally had a look at the rig myself in 3ds Max. I misread the pictures I had seen so far and thought the face bones had a beginning and end bone. Since this is not the case, some of my assumptions are simply not correct. However, if for some reason translations aren't an option, the extra bones can still make the rotational setup work. It would of course mean a lot of extra bones, two for all face bones. Think of the setup as one of those desk lights. Not a position the bulb can't occupy, as long as it's not too far from the stand.



Link to comment
Share on other sites


Vir Linden wrote:

Re: using "Right" vs "R" and so on in attachment point names: unfortunately the older attachment points aren't named consistently either, so we have "Right Ear", "Right Pec", but "R Uppper Arm", "R Forearm", so you could legitimately make a case for naming the new attachment points either way. Since the long form, with "Right" and "Left" fully spelled out, is more common in the existing attachment points, as well as in other existing bones, I think it may make more sense to standardize on that.

However, there is one "standard"/"rule": all legacy "long named joints" (joint names with three words or more) got Left/Right abbreviated to L/R and Left/right is only fully spelled for two-words joint names... It does matter for the UI (especially v1 UI, with the pie menu slices which offer a limited space for each joint name)...

Link to comment
Share on other sites


Medhue Simoni wrote:


Kwakkelde Kwak wrote:

 

Both smiles look a bit creepy though
:)

I'm sure better weights would help this.

The first version of the Bento character had automatic generated weights which have not been touched manually. This could not give good results. We now have improved better weight maps (which have been made with our Face Weighting tool).

However the 3 new bones in the center that we added for our demo video actually make the automatic weight generation much better. But don't ask me why that is, maybe it has to do with symmetry and better separation between left side and right side.

Link to comment
Share on other sites


Gaia Clary wrote:



Please note that possibly we can reduce the number of bones on the lips from 8 to 4 (see further down)

About Lips and Eyes

We also have been discussing if some other general changes on the skeleton could improve the Avatar further:

 

So, do we loose something (for humans) when we only have 4 lip bones?

 

Unfortunately yes, the difference between simply opening the mouth and having the ability to add unique character to an avatars face. Removing bones from the mouth a part of the face that is so vital to facial phenoms would be a disappointing scenario. I was concerned about only having 6 mouth bones 8 is a workable bare minimum.

With 4 mouth bones every mesh head based on those bones will have very similar mouth shapes. Eight helps to shape the mouth properly and optionaly load a normal map baked from a high detail sculpt to add extra necessary detail in the face so that highly expressive avatar photography is possible.

When blend shapes and enough head geometry isn't available, a good workaround is just enough face bones to shape the face and normal maps to add wrinkles and similar needed detail. This method is good for photography, for actual face animation that's an entirely different conversation.

 

This is the kind of photography that should be available with enough mouth/face bones complimented with normal maps.



  • Like 1
Link to comment
Share on other sites


Gaia Clary wrote:

Alternative to the 2 tails solution: "constraints"

This idea came to our minds when we where working on the bone constraints for the Avastar IK Rig. The idea is:

Parent the Wings root to the Spine, but also add for example a (configurable) constraint to the local rotation of mChest to mWingRoot. If possible make the constraint target configurable, so that users can "clamp" the wings to mChest, or mTorso or mSpine, or mhead, ...

To explain this a little better: This idea does not change the topology of the Skeleton. It only adds bone movement constraints which make one bone (the driven bone) follow another bone (the controlling bone). Bone constraints are very common in animation programs, so maybe it is also doable in the Second Life Viewer. We use this technique in Avastar to separate the deform bone animations from the Rig (so we could add IK based animations)

 

Generalize constraints

If constraints can be implemented in general, then this concept could be generalized to work for all limbs, then users can for example constrain the root bones of the legs, arms, wings and tail to mSpine and create a 7 legged creature that can be animated without adding odd rules to the animation.

 

Thinking even further, if location constraints where allowed, then this idea allows to constrain any limb to any bone. Wings could then be constrained to eye brows for antennas, tail(s) could be constrained to chest for 4 winged creatures, etc.

 

I very much support the idea of a built-in feature to constrain a bone chain to a different parent bone! This is something I do all the time via custom animations, and am very disappointed to potentially lose if indeed bento does launch without the ability to animate translations in bones. Having a built-in option to permanently constrain a bone chain to a new parent for a mesh, however, would be far superior to what I'm doing now, as it would mean a much simpler animation process which is more accessible to less experienced animators and mesh creators. This would make me so very happy. <3

  • Like 2
Link to comment
Share on other sites

No you cant. You couldnt actually upload enough quality animations. SL have a very strict limit on animations upload and facial animations itself requires a huge bunch of data. Multiply that by 3 adding bones chain and your files will be so big with simple animations that you wont be able to upload to SL without screwing up the whole animation. Unless you want your avatar to look like a robot, this isnt the best method. Not to mention the performannce impact. Bones chains is old and outdated. We are trying to bring SL forward, not back.

Link to comment
Share on other sites

One of the hugest problems Im seeing in this threat is that people trend to see good and bad side of different methods. But there are already some problems that seems to make a totally misstake rotation as alternative unless we change several others things and limits in SL.

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 2255 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...