Project Bento User Group update 4 with audio

Project Bento extends the avatar skeleton, adding a significant set of bones (e.g. 30 for the face, 30 for the hands Project Bento - extending the SL avatar skeleton
Project Bento extends the avatar skeleton, adding a significant set of bones to the existing skeleton (avatar by Matrice Laville)

The following notes and audio were taken from the weekly Bento User Group meeting, held on Thursday, February 4th at 13:00 SLT on Aditi.  For details on each meeting and the location, please refer to the Bento User Group wiki page.

Bent Bones Survey

The Bento bones survey is now closed. Vir presented an overview of the results during the meeting and subsequently published the results on the Bento forum thread. Some 54 responses were received, which he has been analysing.

Additional Bone Groups

In terms of the questions on the 7 proposed joints or sets of joints, no clear winner emerged, with the average ranking for the seven coming between 3.18 and 4.32 (lower being better). Additional wing bones fairing the poorest of all, with additional facial bones and / or additional ear bones fairing the best.

Since the survey results were published, Gaia Clary has pointed out that it did not include the proposal for a group of three additional bones for the centre lip and forehead, which have been viewed as being important for natural facial expressions such as decent smiles. The exclusion might explain why one of the proposals was effectively listed twice in the survey (options 1 and 3). There’s currently no indication as to how group indicated by Gaia might now be considered.

Gaia Clary indicated the bone survey missed a proposal for 3 additional forehead / lip bones to allow more natural expressions, the inclusion of which would also allow for better automatic weighting of the lips (the pictures above, as Gaia notes, use the default avatar head)
Gaia Clary indicated the bone survey missed a proposal for 3 additional forehead / lip bones to allow more natural expressions, the inclusion of which would also allow for better automatic weighting of the lips (the pictures above, as Gaia notes, use the default avatar head)

Written Feedback

The open questions asking for written feedback did produce a clear winner: more tails / limbs or more tail joints, with most of the respondents to the questions (18 and 14 respectively) citing a desire to support hexapods, centaurs, or other multi-limbed creatures.

The requests for additional tail  / limb bones saw Vir ask for further feedback on matters to make sure he was grasping the reasons for the requests correctly – notably that people would be using bone translations for the additional limbs, allowing the spine to act as an initial anchor point for the bones, which then could be translated into their preferred positions.

Wing Roots, Pelvis Bones and Options

A contributing factor for wing root bones not proving popular is because they were originally included to compensate for the fact that Bento initially didn’t support bone translation, only rotation; thus additional bones were required to assist with achieve more natural wing, etc., movement. Now that bone translation is considered part of Bento, the need for multiple extra wing root bones is removed, with the result that some could be replaced by more meaningful bones used elsewhere.

A set of bones which came in for particular discussion were extra pelvic bones, with Vir asking for clarification on the benefits would be in having them. My apologies for the extract from this part of the meeting, a mis-click on my part meant that part of the conversation in which Teager explained how it would allow for easier compatibility with existing animations so that, for example a centaur might be able to make use of existing upper body animations for arm / head movements wasn’t cleanly recorded and so is not a part of the extract.

Bone Constraints

When  discussing working with initial versions of the Bento skeleton and developing the Avastar face rig to help in producing facial animations in early January, Gaia Clary raised the subject of utilising bone constraints as a means of adding a further level of control for bone movement within the avatar.

This would allow root bones to effectively be paired such that the movement of one is controlled / constrained by the movement of another (see this comment from Television as well).  This is a common approach to animation, and greatly eases the animation process, and if completely followed through, could add enormous flexibility in what could be done with the avatar skeleton, as Gaia notes:

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

The problem here is how to implement such a system of constraints within Second Life. While there are animation programmes and system which do allow for constraining bone movement, it’s not clear if they all utilised a standardise approach, or whether then could be easily replicated within Second Life, or what the overhead involved would be in trying to develop the means for the platform to support bone constraints.

Given this, and while the ideally has not been ruled out for future evaluation, adding such a capability at this put in time for Bento has been seen as being out-of-scope for this phase of the project.

Facial Bones, Defaults and rotation / Translation

Returning to the issue of facial bones, Vir raised the subject of a request to “lift” the facial bones so that they are closer to the surface of the face, rather than being located deep within the avatar head. This sparked a discussion on bone placement, approaches to animating facial features, the potential to develop a “standard” or “default” approach and whether that should be based rotation or translation of the bones.

Vir and Cathy Foil discuss the original intent and reasons for the facial bone positions

Medhue Simoni, Vir, Coyot and Oz Linden, and Cathy Foil discuss the idea of default bone placement

Elizabeth Jarvinen, Medhue Simoni and Teager discuss default and customised approaches to facial animations

Cathy Foil raises the idea of weighting the current default avatar from the Lab to use the facial bones as a means to provide the widest possible use of facial animations, Elizabeth Jarvinen points to the resultant content breakage for existing morph systems

Time Frames for Skeleton Finalisation

Vir hopes to have the Bento skeleton finalised in the next two weeks or so. Week #6 (commencing Monday, February 8th) will mark the get-together of staff working on Second Life for a planning meeting, so it is unlikely much direct work will be done during that week. There are also some proposals he has indicated as warranting further investigation, and placed on the JIRA (see BUG-11132).


Questions have been raised on the performance hit that’s likely to be incurred with more extensively animated avatars once Bento is deployed. Gauging this is difficult, because animation playback is largely a function of the viewer, so the level of impact is going to be dependent upon the individual user’s computer system. Given that, as Vir pointed out in the meeting, those currently active in the project are all liable to have relatively high-end systems, then the task of gauging potential impact is made harder.

However, in initially developing Bento, the Lab had an eye towards performance and potential hits on it, hence why the total number of joints has been limited.

Other topics

Avatar Deformations

One of the things the Lab would like to do is offer a consistent means of resetting avatars deformed by things like multiple joint repositions to a "default" state which includes adjustment to bones made via mesh and attachments
Avatar deformations are liable to be a complex issue to fix

Vir has been delving into the issue of avatar deformations, which he has found to be potentially linked to the complexity of bone positions which may be called upon – those baked into an avatar mesh, those required by an AO that forms part of an appearance, and so on.

One issue he has noted is that the use of scripted deformers / undeformers can exacerbate problems, pointing to an issue where an undeformer can continue to run when changing between avatars, resulting in the newly worn avatar deforming as a result of the script still running and overriding the joint positions required by the avatar.

How to fix these issues isn’t entirely clear: there is currently no way to manage the order in which joint positions, etc., are run within the viewer, and while time delays could be added into things (so that, for example, the simulator has stopped running the deformer script mentioned in the example above). But this really isn’t a decent solution.

One suggestion for a possible solution is to have the shape load first – this contains the slider information etc., and it might encourage a more correct loading of positions set within an avatar mesh. However, the relationship between the shape and the mesh can also be complex, and the order in which the data is passed from viewer to servers and out to other viewers isn’t set; thus it is possible that while this approach may work in your own view, there is still no guarantee that others seeing your avatar won’t see it as deformed.

Another possible solution would be to ensure the ordering of join positions is properly prioritised within the viewer. However, a complication with this is that if there is any scripted mechanism, such as an AO, which is running when the avatar is being worn, then it will interfere with the ordering of joint positions, and potentially lead to deformations anyway.

There have been a number of bugs on the deformation issue reported, such as BUG-11157, and Vir requests that if there are deformation issues that haven’t been reported, the for people to ensure that raise a report. Given that there are a  number of complexities in the problem, Vir is looking for bugs which include repro steps which can be followed to ensure the problems can be reproduced, and from that possible causes identified. These may not work in all cases, but they may help some.  This request lead to a further discussion on how things might be reliably prioritised (shape loading, then attachments + animations, etc), to try to help avoid deformation issues.

Content Design

This discussion on deformation also touched upon issues of content design. While there are undoubtedly genuine reasons for avatar deformations (such the result of bugs in the system, some the result of workarounds to detail with the bugs – as per the aforementioned deformer / undeformer scripts), it cannot be entirely ruled out that some issues are purely down to poorly designed and  / or unoptimised wearable mesh and other content.

Precisely what can be done about this is hard to determine While educational and informative material can be put out into the world for people – both creator and purchasers – to consume, there is no guarantee they will do so. Tools such as the upcoming Avatar Complexity capabilities may help with some further education in matters, but overall, this is a difficult – and emotive – subject to deal with.

Default Avatar Pose Issues

Medhue demonstrates the forleg crossing using his wolf avatar. The issue is a lot more extensive than this, with the avatar sometimes looking as if it is standing with forelegs folded in the same way a human folds their arms
Medhue demonstrates the foreleg crossing using his wolf avatar. The issue is a lot more extensive than this, with the avatar sometimes looking as if it is standing with forelegs folded in the same way a human folds their arms

In my last Bento project update, I reported on the issue of default avatar poses affecting quadruped avatars. A couple of reasons have been identified for this, one of them being that if a quad avatar is rigged in its standing-in-all-fours pose, the default human T-pose attempts to load, causing the front legs to cross, as it tries to force them into a position 90-degrees from how they’ve been rigged.

Medhue Simoni and Dan Linden have been investigating the issue and have found there is an issue between dedicated AO systems and the basic underpinning animations (duck walk, stand, etc.), used by the simulator. Essentially, if a scripted AO isn’t calling an animation state which exists within the server as a part of the default set of animations, the simulator will still attempt to play the “missing” animation which it is expecting it, and as Bento allows bones and joints to be more readily rigged differently to how these “default” animations are expecting to manipulate limbs, etc., the issue with the latter being played by the simulator is much more readily apparent than has previously been the case.

A change made in 2013 to the server-side animation capability means that dedicated animations can effectively now replace the server-side animations, rather than just overlaying them, with the transitions managed by the simulator. However, it still means that avatars using Bento would need their own specific AOs to operate correctly.

Partially related to the question of animations, Vir pointed out the there are animations running which help maintain the position of the existing bones within the existing avatar skeleton, but nothing of a similar nature has been defined for the Bento bones. Given this, he wondered if the LAb should either provide new defaults for the Bento bones, encourage people to define their own or add the Bento bones to the existing defaults.

Voice Dot Position

In working more extensively with quadrupeds and shifting bones around, it has been noticed that an avatar’s voice dot can appear positioned above the avatar’s rear end. This is likely due to how an avatar is represented on the simulator to the physics system, as Vir and Oz explained in the meeting. One potential solution is to allow creators to ties the voice dot position to the location of an avatar’s name tag.

Avastar Facial Rig

The Avastar team have been progressing on their facial rig to ease the process of creating facial animations, and this is now included in the additional bones JIRA (BUG-11132). A video update has been produced, and Gaia provides links to the modified avatar files which use the rig:

Useful Links