Jump to content
Linden Lab

Project Bento Feedback Thread

Recommended Posts

Before jumping in which seems easier to implement keep some things in mind.

Adding additional bones at the tip was an old dirty workaround when something else wasn't possible.

If you want to add facial bones, let's do it properly instead of half implement a new feature. We have already too much features that are on the half way of being implemented (like not being able to change materials through scripts yet among others). I'm sure that users can wait for a finished and polished product.

Relying on extra bones in exchange of translations, wouldn't fix the issue of having to use joints offset which automatically breaks content. For example, every mesh head would need to use joints offset meaning that every avatar would get deformed not only on head but the rest of body.

Extra bones, asides of all, doesn't even fix the issue of facial animations correctly. Users will notice that once they start making serious animations. You couldn't use either facial motion capture which now day is very easy with even a simple Webcam.

Further explanation of why it seems so hard for you guys to consider something that it's a standard would be helpful. Let's not forget that SL have been using translations through different hacks always and people never complained asides of the lack of office support through recognized file formats.

  • Like 6

Share this post


Link to post
Share on other sites

OFF TOPIC!


Kitsune Shan wrote:

(like not being able to change materials through scripts yet


Just because of you keep saying this, and in case you may want to make use of such functionality. Which is available since 2014-07-08.

http://wiki.secondlife.com/wiki/PRIM_NORMAL
http://wiki.secondlife.com/wiki/PRIM_SPECULAR
http://wiki.secondlife.com/wiki/PRIM_ALPHA_MODE

 

  • Like 2

Share this post


Link to post
Share on other sites

Thanks, but still lacks others features that diffuse have. Anyway that was just an example, maybe not the best one but still, bones translation is a must have. Im not sure why its so hard to understand for LL that there is not such workarounds about that. Every decision now will just imply to limit something that could be really great. Im totally sure that people can wait more time and get bones translation done properly. Not to mention the amount of meshes that already use this through anim files. I would like to know how broen those would be or if they will keep working after the update and translations block.

Share this post


Link to post
Share on other sites

 A simple way to put it is some bones on the face need to be double or even triple jointed to provide the range of animation freedom bones translation provides. Its a question of what is more difficult to implement be it because of amount of code or performance needed, more bones in the face, or bones translation. For clarity only some bones need extra joints not all the face bones.

Animating the face with only rotations as they currently are is like animating a foot that is attached to a knee joint you can only move that foot up, down, left, and right. If you add an extra joint to that leg now you can move it also front and back.

Then their are animal avatars where animating long snouts would be very awkward and impossible without adding extra joints to the mouth bones. The extra mouth joints would make joint offsets possible to animate the face properly with rotations only. I imagine rotations only is important because that's how the avatar currently works?

Being an animator myself I prefer bones translation, but if "rotations only" provides better performance or is better for overall avatar shapes then the above is needed. I've never filed a JIRA before. lol I suppose a video would make this easier to explain but I'm not sure how quickly I can make it.

  • Like 2

Share this post


Link to post
Share on other sites

A couple of quick items…

Linden Lab employees have a holiday from December 24 through January 3 this year (what can I say - it's a great company to work for), and some have added a bit on one end or the other of that with vacation days. Some of us will be monitoring this thread during that time, but we probably won't do any deep analysis of issues raised until after the holiday.

We're not going to rush this feature out - there will be plenty of time for discussion and consideration of each issue.

At the risk of repeating myself - please try to make thorough examples that illustrate whatever problems you see. By that, I mean: provide model and animation files that we can examine and experiment with. A screenshot or a video is fine along with those, but by themselves they are really not very useful. Along with those files, provide careful descriptions of what you think should have happened and how that differs from what you see actually happening. Try not to assume that we know anything; avoid references to "the SOMETHING bug": we may not have the same idea you do of what SOMETHING you mean). Make sure that you do all testing on the Project viewer (you'll get updates automatically when we get back to making new versions) and one of the Aditi Mesh Sandbox regions.


I've seen a number of posts here that include some variation on "we have always had to do XYZ this way because of the SOMETHING bug, and so we can't do SO-AND-SO" (for example, joint offsets not loading correctly). If there are existing issues that are directly related to Bento (like joint offsets not loading correctly), we'd like to get them fixed so that we can get some of these obstacles out of the way. So, if you've got one, please describe it (see previous paragraph - concrete examples we can experiment with) by filing a BUG in Jira (put [bento] in the Summary). References to long-standing issues are ok; we're not only trying to do new things, we're trying fix at least some old ones too.

  • Like 2

Share this post


Link to post
Share on other sites

To me it is just a bit frustrating to listen to developers talk about settling for something subpar. This is what I'd expect from indie developers who are looking to cut corners, not an established multi million dollar company with a 10+ year record. Now, if we were talking about something crazy, maybe I'd understand, but we are talking about something that is basic. The debate about what is best for facial animation has been over for a very long time. Why do we even need to defend bone translating?

Now, if there is some major technical problem, that somehow only SL has, then please do share this with us.

  • Like 1

Share this post


Link to post
Share on other sites

Yes, those are my exact thoughs.
But I also came to the conclusion that, from the point of view of someone that isnt 3D artist or animator, to realize why bones translation isnt an option but the rule, may be a bit "abstract". Thats probably why they are asking for more examples. I really think that bones translations can be implemented. It may be more or less hard but thats the programmers works. And if they are working in such area its because they may have the knowledge and talent to do such task. I think, they should at least try because without trying we cant really point out and see which downsides are those that seems to keep them from doing Bento properly. Or maybe we could realize that is not so impossible and those "bugs" and downsides that could appear are easier to fix than expected. We cant just throw the towel before starting. But we have to point something evident, bones translations have been there and people have been using it even tho SL wasnt even made for it. So I could expect that something that works without even intention, could be totally perfect if done on purpose.

We also have seen some examples. We saw that awesome animation of the little dog, we have seen also examples of how bones translation fixes some issues with joints offset and I added myself how could help to not use joints offset for those avatars that are already deformed by another mesh attachment.

A good example is if you try to wear a new mesh anime head full of animated expressions that, since doesnt match an human head, uses joints offset. You want to wear this head with your favorite anime avatar like Kemono from Utilizator. But this avatar uses joints offset for shoulders and probably others bones as well. If you wear this mesh head, your avatar will change form into the default avatar shape. This would mean that said head could be only worm by not deformed avatar and if a compatible head its made, you couldnt wear with normal avatar. Im sure that could confuse a lot of customers.

Im actually very busy, but if I get the time I will try to make some basic video and provide some basic mesh showing advantages of bones translations. I do feel like you tho. I feel that its totally unnecessary to keep defending something that its an industry standard and that people more aknowledge than us already have been settle.

I would also suggest, to those that thinks that adding extra bones for translation simulation, to try to do some animations with that or to build a whole rig with them. I can tell in advance that wont be an easy task :matte-motes-whistle:

Share this post


Link to post
Share on other sites


Kitsune Shan wrote:

 

I would also suggest, to those that thinks that adding extra bones for translation simulation, to try to do some animations with that or to build a whole rig with them. I can tell in advance that wont be an easy task :matte-motes-whistle:

Your right Kitsune, adding extra bones to the face just to mimic what simple bone translating can achieve would make things more difficult for animators. For the face "rotations only" is difficult to work with properly if at all. I agree bone translating is the way to go.

Share this post


Link to post
Share on other sites

Allowing bone translations would only be one solution to current problem with the Bento face bones. But first it's important to actually recognize the problem, before talking about possible ways to fix it.

 

The problem is: When animating, you want to tug part of a model around, in order to animate it. There's many ways in 3D modeling to accomplish this, but the only one currently available for Project Bento, is bone rotation. So, why is this a problem, and why is bone rotation only, with the current setup of bones, problematic?

 

When you rig part of a model to a bone, those verts will inheret both the position and rotation of the bone they're weighted to. This is fine if you're moving a limb around - limbs quite litterally work like ball-and-socket joints, so point rotation is the only thing you need to animate "actual" avatar joints realistically.

 

The problem comes when you want to simulate not the movement of bones, but the movement of muscles, like facial features. Here you aren't animating joints. Nothing is hinging or rotating - things are being tugged spacially. And in 3D modeleing, that is represented by "bones" in techical names only - what they really do is move around spacially, tugging around the verts that are weighted to them.

 

So can you acomplish that by just rotating the face bones with part of the face weighted to them? Well... sort of. If you keep it subtle. If you put a bone beneath the surface of the avatar's skin, rotating it a little will make the surface slide... with the downside of also making the surface rotate. Raz Welles posted an example of this a few posts back. An example would be an eyebrow raise. You'd need to "rotate" the eyebrow bones up - this would raise them, at least a little, but it would also change the surface of the face so that the eyebrow starts rotating about the bone origin. This means face expressions can not be in any way exagerated, and must be overwelmingly subtle, lest portions of the face start rotating around and distorting unrealistically.

 

So, adding translations fixes the problem perfectly, right? Yes, it does. But it's also not the only viable solution.

 

Back before rigs supported bone translation, the need was still the same: You can't do good facial expressions using simple bone rotations, since you need to move the bone without rotating it. The answer was the "spider rig" faces where each bone was actually a chain of 3 bones. This allowed any given end-bone to be repositioned anywhere spacially within the range of the chain, while still having the end bone be at any rotation as well - the problem is you'd need a bone chain for each face bone, hence the spider-like look to the skeleton. This would send the amount of necessary bones into the stratosphere (creating a chain for each face bone so that they can be positioned in space without actual bone translation), but it would save LL the need to fix all the issues with bone translations by avoiding their use altogether. 

 

Regardless of the solution, the problem is the same: Face bones need to able to be manipulated spacially without changing their angle. Bone translations let you do that directly, but bone chains let you accomplish it in a more limted way with only rotations. Regardless of how it's accomplished, the need is there. The current face bones, with rotation only, are heavily crippled.

  • Like 2

Share this post


Link to post
Share on other sites


Pamela Galli wrote:

Just curious why this is not in the animation forum.

Because, no one gives a damn what forum something is posted in, unless they're hell bent on being an a-hole (like some we are or may have been fond of at some point).

...Dres

Share this post


Link to post
Share on other sites

Hello Project Bento Creators,

I am looking at the proposed bone/addition attachment points and see NIPPLES as a huge oversight. I would like to see attachment points at each nipple. Especially with the movement from physics, it seems nipples would be important.

In my mind, this is where some jewelry is attached and it's where nipple add-on's need to attach.

I am not a technical person so maybe there are reasons and I just don't understand. Why isn't this on the new Project
Bento attachment points? Why has this been left out? I would appreciate conversation and feedback on this.

Share this post


Link to post
Share on other sites


Tat00ine wrote:

Hello Project Bento Creators,

I am looking at the proposed bone/addition attachment points and see NIPPLES as a huge oversight. I would like to see attachment points at each nipple. Especially with the movement from physics, it seems nipples would be important.

In my mind, this is where some jewelry is attached and it's where nipple add-on's need to attach.

I am not a technical person so maybe there are reasons and I just don't understand. Why isn't this on the new Project

Bento attachment points? Why has this been left out? I would appreciate conversation and feedback on this.

Let's start by saying I could be wrong. lol

Nipple attachment points would be useless, unless they moved with the sliders. As far as I know, attachment points don't move with body shape sliders, outside of those slides that change bone lengths. Plus, attachment points don't work with breast physics. That said, a set of nipple rings could be done using fitted mesh. Something like a ring could get real messy tho, when adding in cleavage, and bouyancy sliders.

Share this post


Link to post
Share on other sites

You can simply rig those rings to fitted mesh bones. You may need to provide a different mesh/weights for each body mesh. Think on it just like doing a bra, its the same.

Share this post


Link to post
Share on other sites

I just released the Cool VL Viewer v1.26.17.3 (i.e. a new release in the experimental branch of the viewer), with full support for the Bento-skeleton.

There's one thing I'd like LL to change in their current implementation: the attachment points names for the new joints such as "Left Ring Finger" and "Right Ring Finger" would be better named as "L Ring Finger" and "R Ring Finger" (and "Alt Left/Right XXX" as "Alt L/R XXX"), so to match the naming convention (and shorter names)  already used for "L/R Upper Arm", "L/R Lower Leg", etc...

This may seem a minor issue, since any viewer developer may change these names in their viewer UI by editing the strings.xml file, but for Restrained Love, it will set the standards for "official" joint names to be used in its commands (which don't rely on the language/translations used in the UI)...

Share this post


Link to post
Share on other sites


Dresden wrote:


Pamela Galli wrote:

Just curious why this is not in the animation forum.

Because, no one gives a damn what forum something is posted in, unless they're hell bent on being an a-hole (like some we are or may have been fond of at some point).

...Dres

Then why not put it in GD where more would see it? Why have separate forums if an official animation feedback thread on animation is put in Building and Texturing rather than in Animation? Just have one big forum where nothing is ever off topic.

Share this post


Link to post
Share on other sites

Ok, so I did some testing.......

I rigged up my wolf, which I originally made for Unity. It was pretty straight forward rigging him up. I did not go for a fitted mesh version with this attempt, just a standard rigging job. I started with the rig from the original Bento blend file, and then purchased the upgrade for Avastar2, and coverted the rig over. I didn't need to purchase Avastar2, just wanted to have it, but it converted the rig over pretty nice and cleanly, without screwing up any changes I did make.

With the face, I set it up first with bone translations in mind, and then was forced to changed it when the upload failed.



 

In these next 2 images, I show both rigs, with me attempting a snarl like wolf expression. Granted, I could work on them more, and play with the weights more, but this was an honest attempt to create the same expression with the 2 different types of facial rigs.

This is with only rotations:



 

This is with rotation and bone translation:



 

As you can see, they are pretty similar. They both use the exact same weights too. So, can't only rotations work? Of course they can. But....... It's a matter of quality, and opinions. It's also about the freedom of the artist. It's important to note, that I had 1 expression in mind, and set up that rotation rig to try and get the best result for that expression. Now, if I go try to make a totally different expression, it likely won't work out so well. With the rotation and translation rig, I had full control and anything I wanted to do was only a push, pull or rotate away. Quick, easy, and responsive. The rotation rig, I had to figure out, and likely needs more work, with some weighting tricks to pull with other bones too.

The last point that I'll make is about motion capture facial expressions, or face tracking tech. Mostly, I've only played around with Blender tracking, as far as this goes, but I imagine most systems work the same. It's all based on translation, not rotation. It can't actually be based on rotation, as there is no rotation data to interpret. You are tracking with a webcam, and dots on your face, or some facial feature tracking system, which is still kind of tracking points. On the Draxtor radio program, Oz and Vir talked about SL being able to use this facial tracking data. Are they sure about that, when our bones can only rotate? http://draxfiles.com/2015/12/25/show-100-one-hun-dred/

  • Like 1

Share this post


Link to post
Share on other sites

As a multiclassed programmer/artist I feel I can understand both sides of the equation a bit here.  Vir's previous statement confirming their .anim file is some made up format and not the known .anim file out in the wild is one problem, I'm sure.  The other side of it is confusion about why translation isn't possible when it's the norm in animation for some parts of animation (most appreciably squash and stretch animation for cartoony characters, as well as in the facial animations).  The technical side wouldn't understand the outcry for this, but translation of bones makes animating a lot more practical, realistic, and simplier.  It's also a performance boon, because as mentioned you need a ridiculous amount of extra bones to get the same results through pure rotation.

 

The other way around, I believe the cause for LL to have taken this stance is because translation doesn't scale, but rotations do.  You can't say arbitrary animations that translate bones will work properly with another pre-existing translation.  Rotations will however work with a single bone offset, and multiply amongst themselves.  This is their solution to the "everything must still work together" problem.  From a programming standpoint it's sound.  So there's only two ways around this solution, for the community:

  1. Come up with some mathematical way to allow bone translations to build off of each other so that animations look right on a giant, a normal human, a miniature person, an animal, and Chairface Chipendale.  If someone can solve this I think a lot more than just LL will be happy to hear about it.
  2. Speak for the whole community and abandon the idea of "animations work on everything", explaining to everyone who isn't an animator or tech savvy that certain animations (those which rely on bone translation) will only work properly on specific sized bodies and faces so that LL doesn't have to and won't receive the ire of hundreds of thousands of people.

Otherwise, we're stuck with rotations, unless another solution can be raised.

 

Moving forward though, I believe it's a very good point that a standard be taken up, one that publically available tools can export to already (like BVH, but more appropriately FBX, or COLLADA since it's a more open format).  I'd like to help out, programming side, with a conversion tool to actually do this change.  If all the current animations in SL can be converted seamlessly to a standard format with no change in functionality, that opens the door for importing of a standardized format that is known and reinforced by trusted companies (Autodesk and Blender for example).  Likewise if the current format is the issue behind "we're disabling bone translations in animations", this resolves the issue.  I just need a structure of what the internal .anim format looks like and I can get to work on making it convert to something else.  Is this translation of animation formats already done in the publicly available code?  If so I can poke at it.

  • Like 2

Share this post


Link to post
Share on other sites

Correct me if I'm wrong but I believe translations do scale in a 4x4 matrix? Which is usually how bones are described?

 

http://www.opengl-tutorial.org/beginners-tutorials/tutorial-3-matrices/ (Below, an example of scaling a 4x4 matrix 2x)



 

Iirc, its like taking a 3D grid, and stretching it out. All your positions will be the same inside that space (so no need to scale your position data), and once you move from that space to the world space, it'll be scaled accordingly.

  • Like 1

Share this post


Link to post
Share on other sites

Dear Project Bento Team*,

What is *really* needed is more options on upload.  The extensions to the skeleton are good and certainly will increase the opportunities for unusual avatars.  For humans, how many bones are there now of the 206 in the human body?

Inarra Saarien
artistic director & animator
Ballet Pixelle®
balletpixelle.org

*Note only to the Project Bento team:  I have been creating all the animations for Ballet Pixelle since 2006 -- thousands.  Although we do not sell animations, we use them to create a unique performance company with a goal to explore virtual and physical dance and blended realities.  We have been invited and performed in Real (First) Life live in Berlin, Bhutan, London, Los Angeles, Melbourne, New York City, Tokyo, Toronto, Vancouver, Washinton DC, and Yokohama.  I noted the lack of Linden Labs animation variables during my talk at the Immersive Computing conference in Los Angeles (alongside Disney).  I just found out about this.  I'd love to know more and communicate with the Project Bento team.  I appreciate the work you are now doing on animation.

Share this post


Link to post
Share on other sites

Raz Welles and I have just found an interesting discovery. It would appear that bone translations DO scale up with the size of the bone being translated - IE, the one reason Vir Linden provided for Bone Translations being disallowed, is actually invalid.

 

So long as a slider scales up a bone, so will it scale up any relative distances of any translations done on that bone.

 

I have already personally verified this is the case on main grid. If anyone could indepently verify this - and if you come to the same conclusion, I believe it would greatly assist in the case for allowing them.

 

You can test this as translations are still allowed on main grid - so you can do your bone translating of non-Bento bones there.

 

Be sure to test actual bone translation, not translation of attachment points, which are known to not scale, and are being blocked with Bento anyway.

  • Like 2

Share this post


Link to post
Share on other sites

Poor choice of words.  From a non-technical aspect, they don't scale.  Like how a 286 can't scale to meet the requirements of a modern business (or in fact, any modern activities, besides Doom perhaps).  You are right, you can mix a scaling operation with a translation operation.  You can't translate bones and then translate them from origin again and get the expected results however.

 

For example:

A micro, a norm, and a giant all walk into a bar, err store.  Stop me if you've heard this one.  >V

The norm finds a facial gesture that makes his eyes shoot open wide in amazement and jaw drop to the floor.  "This is hilarious!", he exclaims, and recommends his friends try it.

The micro tries it out.  His eye lids basically triple his height and his jaw sinks through the floor five or six times again his height.  "This is broken."  He exclaims, and leaves the bar/store in disgust.

The giant tries it next, and her eyelids barely move, with her jaw opening slightly as if to sigh.  "Well that's a let down."  She grumbles, shrugs, and looks around for more.

 

And that's assuming the animation's translations are relative to the bones current positions rather than from the skeleton's origin.  If it were, you'd see the heads (or at least faces) of the other two resize to the norm and zip back to about 1.8m up from the ground before performing the animation as intended.  This is probably the worst case scenario.  Animators would have to export different animations for different sized bodies, one where the micro's eyes moved maybe a centimeter, and the giant's a few meters, but both give the same results of the norm.  But if someone were in between these sizes, new animations would again have to be made to look "correct".  How giant is giant?  4m?  10m?  30m?  I've seen some which are 50m tall, some which are 20m tall, and some which are just a few heads above norm.   How micro is micro?  1m?  0.25m?  I've seen both as well.  

 

Rotations however do scale for where ever you happen to offset bones to.  If done correctly, the micro, norm, and giant would all see the same animation in spite of being so ridiculously disparate in size.  And unlike translations, you can multiply two rotations together to get a mixture of the two (animation blending).  A subtle eyebrow waggle could be mixed with a surprised raised eyebrow for example.

  • Like 2

Share this post


Link to post
Share on other sites

I am hoping that having more attachment points in the head will enable a mesh head to be put on it instead of replacing the system head....that would retain our uniques features like having a mesh body put on top of our system body does. Mesh heads now being produced are like clones loosing all uniquesness like system heads have.  Does anyone have information about this? Thanks

Share this post


Link to post
Share on other sites

Read my post two posts up. We have found translations translate distances relative to the size of the bone being translated, on coordinates relative to that bone. Try it yourself and see.

 

For example: If you translate a head bone, the distance that bone moves due the animation will scale with the head size slider, so the result looks the same no matter what size the head is. 

 

ie, if you make a bone translating animation, it will work for all avatar sizes.

  • Like 1

Share this post


Link to post
Share on other sites

Being able to make a mesh head that works with our system head like a mesh body works with our system body is needed. At this time mesh head replace system heads and create clones instead of retaining our individual features. Will having more attachment points on the head make this possible?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×