Project Bento User Group update 12 with audio

Project Bento – extending the SL avatar skeleton
Project Bento – extending the SL avatar skeleton

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

Note that this update is not intended to offer a full transcript of the meeting, nor does it present the discussion points in chronological order. Rather, it represents the core points of discussion to Project Bento, grouped together by subject matter were relevant / possible.

Bento Promotion

Troy Linden, the product team lead for Project Bento opened the meeting by offering thanks to all those who have participated in the project. The Lab is now preparing to deploy the project to the main grid, most likely some time in Q2 2016. In support of this, they want to hear from content creators who would be willing to submit avatars for use in Bento promotional videos and supporting documentation. Those interested in helping the Lab by providing content are asked to content Troy directly, indicating what they are producing, so a good cross-section of content can be demonstrated.

Skeleton Status and Viewer

From the TPV Developer Meeting, Friday April 22nd

It is believed the skeleton in now frozen, and the Lab would prefer not to add further bones / amend the existing bones. There will be a period of test (around two weeks) to ensure there are no further significant changes which must be made before the project progress to the main grid. Work is continuing on trying to resolve or at least improve issues which pre-date Bento but what have an impact on it (e.g. the various default animation issues discussed in these reports), although these are not considered blockers to the project moving forward, so they may or may not be all resolved over time.

Joint Offsets and Overrides

Partial Offsets

Note: see the forum thread discussion commencing here, and the three messages immediately following it, and further follow-ups  here and here (plus the two messages immediately following it) for additional background.

One problem people have encountered is when defining partial joint offsets – that is, having a mesh that specifies the override positions for some of the joints but leaves  other joints alone. This is seen as particularly useful in allowing different meshes to be mixed and matched to create an avatar look. However, there appear to be issues in how both the viewer and – possibly – Avastar are handling things.

The issues within the viewer have been identified as the viewer failing to handle  multiple root bones in a mesh with partial rigging correctly. For example, if a creator is trying to override the shape of both hands in a mesh without overriding anything else (and so no common root such as the pelvis is defined), the viewer currently applies the defined offsets to one hand, but not the other due to them having separate root bones. It is hoped a fix for this will be in the next project viewer update.

Flagging joint Overrides

Another issue is that currently, there is no means to flag whether or not a joint has an override on an individual basis. The current assumption is that all the joints that are skinned to either also have an offset defined, or none of them do.

The problem is how to let people specify individual overrides without changing the mesh asset structure as it is currently defined, as it would really be outside the scope for Bento (an example of this would be providing a custom attribute to specify offsets)

Suggested options are:

  • Treat certain values in the mesh asset as indicating there is no offset. There are issues associated with this. For example, if 0,0,0 were to be used, then joints would not have any offsets relative to the pelvis, leaving them all in that position, squishing the model
  • Use the default location for a joint offset as a kind of “magic” value, indicating that nothing is to be changed.

The latter is seen as preferable, although it is acknowledged it might not suit all cases or might cause more issues if using the default positions proves complex. Vir has therefore invited further discussion on the matter through the forum thread.

One other suggestion was put forward: using a true / false boolean to define the state of offsets on a joint by joint basis. However, this would again mean changes to the mesh asset structure and, if included in the mesh uploader as suggested in the discussion, a complex and potentially confusing update to the viewer UI.

Facial Sliders: Animation Translation vs. Slider Offset Conflicts

As noted in my update #11, there are concerns about the potential for animations which reposition the facial bones conflicting with the use of facial sliders to adjust the position of the same bones, particularly when using bone translations in animations. This could potentially make it difficult to make portable facial animations, as they can end up conflicting with facial bone positions set by the sliders.

In short:

  • When using rotations in an animation, the rotation will generally take its baseline from whatever offset is selected by adjusting the associated slider. So changing the size / position of a facial element with the sliders shouldn’t drastically impact the appearance when the animations are running
  • When using translations, however, their offset is taken as an absolute. This means that if the associated appearance slider only uses an offset to define the size of a bone – such as with the new ear-tip bones – changes made using the slider will be instantly overridden by the animation as soon as the appearance editor is closed (so if an animal’s ears are made larger using the sliders, then will instantly “snap back” to the size defined by the animation translation)
  • The problem should be limited to the sliders which only use offsets rather than scaling to achieve results, and these are thought to be a minority. However, further discussions will be had to try to determine how the issues might be remedied
  • Krystal Silverweb has offered some examples of issues on the forum thread Which continues through to page 58, at the time of writing), and Gaia Clary has added some further notes concerning the translation / rotation of joints and the use of the appearance sliders to the Avatar documentation.  See also discussions within the thread under the heading “Facial animations and appearance sliders compatibility….”

Vir is considering starting a best practices document on the use of animations and sliders, and is hoping that further testing can be carried out to see what works best, where limitations reside, etc., and that people will help expand this to provide practical help and support to others. This will likely be linked to the Good Building Practices for ease of reference.

Initial discussion on sliders and issues

Post-meeting discussion on sliders / offsets and animation bone rotations / translations between Medhue, Cathy and Elizabeth

Other Points of Discussion

Linking Bones to Create Snakes

Medhue Simoni referenced his observations in trying to link bones together to produce avatars such as snakes, where a large number of bones have to be linked to effectively produce a spine. The expanded into a broad discussion on the use of the “hind limb” bones, and the use of custom skeletons within 3D tools for the purposes of animating and constraining the SL skeleton bones.

Bones and Rigging

One problem with the volume of bones the skeleton is what to rig and when in creating avatar models. Following the core meeting a brief discussion was held with further explanations given on:

  • teeth bones: designed to ensure the teeth in an avatar accurately follow the movement / position of the lips; if the teeth are rigged to the lips, misalignment /warping can occur
  • Chin bone: to allow for easier adjustments to the head.

This also covered some of the thinking behind the linking of the facial sliders to the Bento bones.

 

Project Bento User Group update 11 with audio

Project Bento – extending the SL avatar skeleton
Project Bento – extending the SL avatar skeleton

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

Note that this update is not intended to offer a full transcript of the meeting, nor does it present the discussion points in chronological order. Rather, it represents the core points of discussion to Project Bento, grouped together by subject matter were relevant / possible.

Viewer Status

A new version of the project viewer arrived on Thursday, April 14th. Version 5.0.0.313876 brings with it:

  • Addition of a mFaceChin bone to the face to support the use of appearance sliders
  • Addition of “Left Hind Foot” and “Right Hind Foot” attachment points
  • Added or improved support for a large number of sliders,  notably those for the avatar shape.

As previously noted, the slider support means that many of the Edit Appearance sliders will work with both the original avatar form (using morphs) and with mesh avatars utilising the Bento skeleton. This means that height can be adjusted via the sliders, the face can be adjusted (eye or mouth position, nose and chin shape, etc.). However, musculature changes are not supported as there are insufficient bones available to properly support this.  The update also includes a number of bug fixes, including one for some graphics glitches in the mesh upload preview.

Unless serious problems are encountered when using this version of the viewer, there are no plans to make further changes to either the skeleton or the sliders going forward, and the emphasis on viewer work will primarily be on bug fixing.

The humanoid avatar models on the Bento testing wiki page should also be updated to reflect these changes, and Avatar should have an update to match the skeleton shortly (if not already available).

Sliders and Animations

A point of note with linking the appearance sliders to the Bento bones is that they can change both the position and the scale of the linked bones. Any changes made using them may therefore clash with animations used within the avatar to also reposition the same bones, or may have an impact as a result of the scaling being changed via slider adjustments (Second Life currently doesn’t support the ability for animators to control bone scaling themselves). How to limit the impact of this when users are changing their avatar shapes may be an issue, although initial testing suggests that using bone rotations on those bones which are linked to the shape sliders can reduce the impact of conflicts.

The lack of bone scaling within the SL animation system is recognised by the Lab as a limitation, but is seen as being a separate project, were it to be addressed in the future, rather than something directly encompassed by Bento, due to the amount of work involved in defining the necessary tracks to manage scaling and extending the format for how scaling data is stored and represented.

Moving to Agni

The Lab is still looking to move Bento to the main grid (Agni) during the second quarter of 2016. The final time frame hasn’t been determined, but there may be more on this at the next meeting, however it is likely to be sooner rather than later. This means that the Lab will be focused on resolving the more major / obvious bugs people are currently experiencing and will be looking for feedback on experiences with the latest version of the project viewer ASAP.

Arrival on Agni won’t signify the end of the project, but it will mean that creators will be able to upload and test content on the main grid, and more users will obviously be able to see Bento content. The project will likely be promoted by the Lab through blog posts and videos, and they will be inviting people to submit their own Bento videos and content.  Details on how to get involved in this will likely be discussed at the next Bento project meeting.

It has been suggested that once Bento has been moved to Agni, the Mesh Dev in-world group becomes the medium for handling Bento related general discussions and information exchange for content creators, rather than establishing a dedicated in-world group.

Other Items

Partial Joint Offsets / Overrides

There has been some discussion on the forums concerning partial overrides and best practices with regards to the Bento skeleton, and Vir has offered some thoughts on the matter. Some problems have been encountered in using some of the bones within “worn” pets, with offsets with these bones appearing to affect others in the skeleton. However, further investigation is required to determine whether this is a potential issue, or possibly a problem within the models being used.

Issues

  • Odd deformations seen in the Bento viewer: Medhue's fly should be standing on all six legs, not standing upright
    Odd deformations seen in the Bento viewer: Medhue’s fly should be standing on all six legs, not standing upright

    Deformations: avatars are sometimes still being seen as deformed by some using the Bento viewer (prior to the latest release). The issue is still being looked into by the Lab as to potential cause or causes

  • Spine Joints: the added spine joints are proving difficult to use in some cases – snakes and similar are proving difficult to animate
  • “idle” animation state: when transitioning between animations, or when ending an animation, the default animation system uses an “idle” animation (e.g. if an animation generates a look of surprise on an avatar’s face, the “idle” animation will return the expression back to a neutral look when the animation stops running). However, because the default system is unaware of the Bento bones, then these “idle” animations get ignored (so that the avatar’s face remains stuck with the surprised look, for example, or a transition between animation states fails to ease-in / ease-out correctly). To avoid this, one suggestion has been to encourage animators to explicit set their own “idle” animation.

While not directly related to Bento, a long-standing issue was raised at the meeting: that of the default walk failing to play under a variety of circumstances (running an animation unrelated to walking / crossing from one region to another / wearing something / etc), with the result that the avatar appears to “slide” over the ground. While long-standing, it appears a JIRA has never been raised against it, so a request has been made for one to be raised so that the Lab can dig into things outside of Bento.

Project Bento User Group update 10 with audio

Project Bento – extending the SL avatar skeleton
Project Bento – extending the SL avatar skeleton

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

Note that this update is not intended to offer a full transcript of the meeting, nor does it present the discussion points in chronological order. Rather, it represents the core points of discussion to Project Bento, grouped together by subject matter were relevant / possible.

Viewer Status

A new version of the Bento project viewer was released on Tuesday, March 29th. Version 5.0.0.313150 includes the latest updates to the Bento skeleton and the work that has been undertaken to hook-up some of the Bento bones to respond to the appearance sliders in the viewer. The skeleton changes are:

  • Some renaming and position tweaks for the face joints
  • New face joints to allow better slider support, including teeth, eye corners
  • The EyeAlt bones are no longer children of mFaceRoot
  • 4th joint added to the hind limbs.

The slider updates mean that many of the face sliders will now work for suitably rigged mesh heads.

The focus now is very much on finalising the skeleton, and subject to possible show stoppers turning up as more work is done on hooking bones into the appearance sliders, the hope is that the skeleton will not now undergo further significant change.  This should allow for in-depth testing of the skeleton without risk of further updates breaking content.

In particular, the Lab is looking to get feedback on any problems encountered with the skeleton, and whether some of the new additional bones are actually useful in achieving what has been hoped in requesting them – such as the additional joints requested for hexapods, etc.

Should it turn out that these joints are not useful, then the Lab needs to know sooner rather than later so that they can be tweaked, if possible. Also, if the joints are seen as not useful at all, than the Lab would also like to know, so that some might be removed to help reduce the overall complexity of the skeleton.

The areas the Lab are keen to see feedback on comprise:

  • The new “hind” limbs
  • The four additional spine joints
  • The additional branch in the wings to allow for wing folding
  • Testing the face sliders with animations – there is a concern that animations may conflict with slider settings used to reposition the facial bones.

There are also new .dae models which work with the new skeleton available on the Bento test page on the wiki.

Next Steps: Viewer and Sliders

From the Lab’s perspective, the immediate next steps in the projects are:

  • Have a final skeleton and slider configuration by the end of week #14 (week commencing Monday April 4th (allowing a few more days for the Avastar team to complete work on linking facial bones, etc., to the appearance sliders
  • Issue an updated project viewer ASAP after next week, which will include the finalised skeleton and sliders, together with available bug fixes (see below)
  • Once the updated project viewer is out, the Lab will be focused on the remaining bug fixes and collecting feedback based on creators’ experiences in using the new skeleton, testing the sliders with and without animations, etc.
  • To help people with this, the Lab encourage anyone working on content exercising elements of the new skeleton they are comfortable in sharing to the common pool of work on the wiki (link above)
  • There are also some additional attachment points to be added to allow for things like the “hind” limbs. However as noted in my week #8 report, there are a number of limiting factors in adding attachment points, one of which is presenting them through the viewer UI, which has certain limitations. Another issue is that there is a hard limit to the total number of attachment points, which makes it difficult to accommodate every which might logically require attachment points associated with it.

Slider Work

It should be made clear that no new appearance sliders are being added to the viewer’s appearance controls for Bento. Rather, as noted in my week #9 update, a  slider parameter has been identified which allows some of the existing sliders to work with bone rotations / translations (for Bento) as well as with the morphs used to animate the default avatar skeleton.

There are some sliders in the head which don’t currently seem to work, although this may be due to further work waiting to be carried out in hooking things up. A suggestion has been made to add a new chin joint to make the chin more mobile and allow for versatile jaw shapes, but it’s not clear if further joints will be added at this point in time due to the growing complexity of the skeleton.

Teager shows a WIP set of bird wings designed to utilises the Bento skeleton extensions
Teager shows a WIP set of bird wings designed to utilises the Bento skeleton extensions

In addition to the facial slider support means that things like increasing height should allow wings to increase proportionally. However, documentation on what has been hooked-up to the sliders has yet to be written, mainly because the work is still ongoing, so currently the only way to get the information is via the avatar.lad XML file.

A couple of discussion points on bones and sliders revolve around the wings and “hind” leg bones. On the one hand, there are instances where having these hooked into sliders makes sense – such as having the “hind” leg bones for quadruped avatars, so that if the avatar’s height is increased, the hind legs adjust as well.

However, as things like the “hind” leg bones and the wing bones are designed to be re-tasked, there are potential use cases where this linking could be undesirable, and tends to steer various bones to only be used for certain types of content, rather than leaving things more open for content creators to determine how to just the bones. One potential work-around for things like the “hind” bones would be to provide an additional set of sliders specifically for them; however, due to the amount of work involved in developing and implementing the necessary viewer updates, including the UI changes that would be required, this is currently out-of-scope for Bento.

Continue reading “Project Bento User Group update 10 with audio”

Project Bento User Group update 9 with audio

Project Bento – extending the SL avatar skeleton
Project Bento – extending the SL avatar skeleton

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

Note that this update is not intended to offer a full transcript of the meeting, nor does it present the discussion points in chronological order. rather, it represents the core points of discussion to Project Bento, grouped together by subject matter were relevant / possible, together with any additional discussion on potential future projects the Lab might be willing to examine for possible adoption in the future.

Bento Skeleton and Appearance Sliders

Recent efforts within the Bento project have been on trying to hook the appearance sliders up to the new skeleton so that they might be used to adjust various Bento bones. This involves a fair amount of work, as the sliders apply morphs to the basic avatar form, and for Bento enabled meshes they need to be able to operate with bone positions / rotations.

Gaia Clary and Matrice Laville have been working on this, and have identified a slider parameter which can be used to achieve just this, and have been specifically looking at using the facial sliders (given the face  / head is one of the largest collections of new bones), as shown in the video below.

Click image to play
Click image to play video in a new browser tab

Skeleton and Viewer Status

The “downside” of this is that this requires further work on the Bento skeleton, includes the possible addition of further bones, which are currently under consideration. This means that there will at least one further update to the viewer, which will contain the updated slider capabilities and some updates / fixes for the skeleton.

It is hoped that this will surface in week #13 (week commencing Monday, March 28th); however, this is dependent upon final updates and getting the viewer through the Lab’s QA.  Once it has been issued, the Lab is particularly keen to see the spine bones exercised within this viewer once released, as these have been causing some problems (see my last Bento update).

One potential addition to the skeleton is a set of teeth bones, as described by Cathy Foil in the meeting. Again, it’s not certain these will make the final selection, but the potential with them is interesting.

Obtaining the Latest Version of the Skeleton

Currently, the most direct way to obtain the latest version of the Bento Skeleton is via the latest version of the Bento viewer installed on your computer (e.g. C:\Program Files (x86)\SecondLife\character) and using the Avatar_skeleton.XML and Avatar_lad.XML files – the latter of which contains the shape slider capabilities. The major reason the skeleton files haven’t been updated on the wiki is because the skeleton has been going through updates and changes, and Vir has been concerned about any version put on the wiki becoming out-of-date.

Shipping Bento to the Main (Agni) Grid

Troy Linden, the product lead for Bento indicated that current thinking among the product team at the Lab is that Bento will likely move to the main (Agni) grid some time in the second quarter of 2016. This doesn’t mean the project will necessarily be declared complete by then, but it does mean that the Lab expect to have all major skeleton and viewer work wrapped up, with the emphasis firmly shifting to more widespread testing, together with any required bug fixing.

Vir did caveat this with the point that there could be reasons  – significant bugs, other work requiring release, etc., – which might cause this to slip, but the focus would appear to be firmly on moving Bento to Agni some time between April and June 2016.

Issues

Incorrect Display of Legacy Rigged Content

Elixabeth Jarvinen (Polysail) demonstrates the GOS shoe issue, which occurs with versions of the shoe both with and without the GOS feet
Elixabeth Jarvinen (Polysail) demonstrates the GOS shoe issue, which occurs with versions of the shoe both with and without the GOS feet

It is unclear how widespread this issue is, or what the precise cause is. Currently it has only been noted with GOS shoes / feet, and manifests in the Bento viewer in the left foot / shoe appearing incorrectly aligned to the left leg when worn, as shown in the image on the right – note the left shoe / foot appears partially rendered because it has “sunk” into the terrain. Details of the issue can be found in  BUG-11617.

One suggestion put forward is that the issue is down to the very high poly count used in these shoes / feet; another that it might be due to the shoes feet being uploaded as individual mesh models, which might be creating issues.

However, why either of these cases should be so is unclear: the feet / shoes render correctly in non-Bento viewers, and there have been no intentional changes made to the rendering pipeline for Bento. A further suggestion is that it might be a result of attempting to rig to and animate an attachment point; it may even be related to an old issue of float issues in the LLVolumeOctree (BUG-2058 – see FIRE-8266 for a public version).

The issue has been accepted by the Lab as a bug, and will undergo further investigation on a number of fronts, including obtaining versions of the items seen to be exhibiting problems, testing the effect using other high poly count objects, etc.

Wing Mesh Upload Issues

There is also a possible issue with the mesh uploader failing to recognise the revised Bento wing bones as bones. This apparently manifests itself by a refusal to upload rigged wings weighted to the wing bones.

Next Meetings

The next Bento meeting will take place on Thursday, March 31st at 13:00 SLT. The meeting following that should be on Thursday, April 7th, but the time is TBC, so as to avoid it clashing with a Lab internal meeting.

Project Bento User Group update 8 with audio

Project Bento – extending the SL avatar skeleton
Project Bento – extending the SL avatar skeleton

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

Note that this update is not intended to offer a full transcript of the meeting, nor does it present the discussion points in chronological order. rather, it represents the core points of discussion to Project Bento, grouped together by subject matter were relevant / possible, together with any additional discussion on potential future projects the Lab might be willing to examine for possible adoption in the future.

Skeleton and Viewer Status

Bento viewer work is now focused on finalising the new skeleton, working on bug fixes and investigating hooking the new skeleton into the appearance sliders where is can be done.

It’s anticipated that there will not be any further significant changes to the bones within the skeleton, although there has been some discussion on adding a couple of extra bones into the “hind” limbs. Content creators are therefore being encouraged to develop new test models utilising the skeleton, as available in the current project viewer (version 5.0.0.311861 at the time of writing).

A couple of issues have come to light with the additional bones. In the first, the alternate eye bones weren’t quite lined up with the original eyes, and this is being fixed. There  also appears to be some issues arising from the inclusion of additional spine bones, which is discussed below.

Appearance Sliders

The Lab has been investigating the potential of modifying the appearance sliders (controlled through the avatar.LAD file). This means taking some of the sliders that are based on morphs which deform the default avatar, and allowing them to also be utilised by the Bento skeleton when an avatar mesh employing the skeleton is worn. This work looks “promising”, although the number of sliders means that it is unlikely all of them will be dual-purposed in this way. However, as a part of this work, the Lab will be addressing the slider bugs which have been reported against the latest Bento skeleton as well.

Vir discusses the current status with the Bento skeleton and project viewer

Attachment Points

Some additional attachment points were added specifically for use with the new skeleton, and consideration is being given to adding some more (such as to the new “hind” limbs – which can be used for a variety of purposes other than “just” hind legs, as noted in my last update).  Currently, no clear preference for extra attachment points has been expressed by content creators working on Bento. One group of suggested attach points put forward in the meeting was for rear left leg and rear right leg (upper and lower). rear hip, rear groin, rear left foot, rear right foot, and rear back (for rideable centaurs/saddles).

Responding to this Vir indicated some of these may already be possible, and that others such as those for the hind legs / back are hard to determine as the joints are repositionable,. The suggestion for catering to some of these bones might be to reposition existing attachment point to suit, or the possible inclusion of a new hip root attachment point for the “hind” bones root.

The question was also raised on whether attachment points are lag producing in the same way joints can be. Vir indicated that lag isn’t really an issue with attachment points on their own (although animating them can obviously add an overhead). However, there are other issues with regards to UI / menu management which can make additional attachment points a problem.

For example, there is only a single menu structure available for selecting an attachment point for an item directly from inventory. So the more attachment points added, the more unwieldy the menu gets. The same issue isn’t so apparent when attachment an object from in-world, where the code allows for sub-menus to be added.

The Bento attachment points have added to an already large inventory attachment menu, although the in-world attachment menu has been broken down for easier locating on attach points (click for full size)
The inventory attachment point menu (left) is currently monolithic in nature, making it unwieldy when adding further attachment points, such as for Bento. Things are easier on the in-world attachment menu allows for easier addition of attachment points through sub-menus (right) – click for full size, if required

Another limiting aspect with attachment points is that there is a hard limit on the total number of joints which can be used (thought to be 255). so if an attachment point was added to every bone, this would likely be exceeded, so things like an attachment point for every finger would probably be out of the question.

Issue Updates

Work is continuing on issues of avatar deformation, but as yet there have been no major breakthroughs.

However, problems appea rto have arisen as a result of the new spine bones. In particular, quadruped avatars appear to “dip” their forelegs and shoulders forward when shifting between certain animations. The precise cause is unclear (this may not even be a new issue, just one that is exacerbated by the new bones), but it could be the result of an interpolation issues, an i-k (inverse kinematics issue) or even some issue relating to bipedal animations (a human avatar tends to lean into something like a walk, and this default movement might be affecting thing). However, the larger the quadruped avatar, the more pronounced the up-and-down motion of the forelegs seems to be.

wolf-2_001
The “scrunching” issue, possibly the result of a missing transform, but apparently related to the inclusion of the new spine bones

This problem is further compounded by a problem whereby if the avatar mesh is animated while ignoring the spine bones, then the avatar can end up being distorted following something like a relog; the spine bones must be keyframed in order for the avatar mesh to remain correctly formed.

One possible explanation for this latter issue is that there might be a missing transform in the hierarchy data, such that the weights associated with a joint are skipped, together with any child joints, causing the model to collapse.

As it is, the model in question, animations, etc., are being passed to the Lab so that they can investigate and test things.

Other issues have also been seen with the additional spine bones, which might be down to order of use or correct alignment, as the method by which they have been implemented, in order to preserve backwards compatibility with the avatar skeleton, is complicated.

Continue reading “Project Bento User Group update 8 with audio”

Project Bento User Group update 7 with audio

Project Bento – extending the SL avatar skeleton
Project Bento – extending the SL avatar skeleton

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

Note that this update does not present the discussion in chronological order; items discussed have, wherever possible and without compromising the discussion itself, have been grouped together to try to present a complete discussion of the topics raised in turn.

New Project Viewer and Bento Skeleton

A new version of the Bento project viewer has been released. Version 5.0.0.311861, dated March 2nd, 2016, includes the updated Bento skeleton, which the Lab hopes will be the final version.  In particular this adds further new bones:

  • Four new spine joints: two between mPelvis and mTorso, and two between mTorso and mChest. By default these bones are folded up inside the current spine and will not affect the appearance of the avatar, but like other bones they can be repositioned in uploaded meshes, or animated according to need
  • New face bone root: rather than adding extra neck bones, the Lab have added an extra face bone root, which could be used as an extra neck bone if desired
  • Three new centre face bones along the mid-line of the face, two on the lips and one on the forehead
  • Two new joints for ears, allowing for floppy or otherwise more flexible ears
  • An additional pair of limbs, each with 3 joints apiece, and a new root bone to which they are connected. These are named “Hind” limbs, but using the root bone, the can be relocated to be used elsewhere – such as an extra pair of arms
  • One new bone for each wing to allow a simple fan as would be used in a bat-type wing.
  • Removal of two wing root bones: these were originally included as a workaround for the lack of joint translations. As this is now possible, only a single wing root bone is actually required
  • Various bone position changes.

As some of the existing bones have been removed or changed position, this does mean that content made using the original Bento skeleton will need to be updated in order to display as intended. Aditi servers have been updated with the new skeleton.

Vir discusses the new bones and the removal of some bones

The ability to add new spine bones is a direct result of the Lab being able to fix the two issues referred to in my last Bento update, the first of which would crash the Bento viewer if additional spine joints were added, while the second was that new spine bones would break the rendering of the default avatar.

In order for this to work, the new bones have an odd positioning / ordering within the skeleton, so they seem to “zig-zag” (spine 1 is located in chest, spine 2 in the pelvis, then comes the torso, etc). The reason for this was to allow all the original skeleton joints exactly where they had always been located, and to avoid the creation of any zero length bones, with the internal matrix maths (as well as some other programmes) doesn’t particularly like, as Vir explained which discussing the new spine bones.

Vir expands on the new spine bones and ordering

There may be some issues which are causing Blender to incorrectly display the new spine bone positions and orientation. One suggestion for those encountering similar issues is to visualise the bones by setting them to the polyhedral models where it is wider on one end than the other (I’m unfamiliar with blender, so not sure of the precise term for the visualisation) to make it easier to see the orientation of the bones, although this may not work.

Aki Shichiroji, who has experienced the problems, has indicated she’d talk a little more with the Avastar team about things. Certainly, Vir believes working with them is going to require a delicate touch when working with the spine bones in the likes of Maya and Blender, due to the risk of coincident bones.

Next Steps

The Lab intends to freeze the skeleton soon, and those wishing to test it are advised to do so over the next few days. Currently, the easiest way to obtain the latest version of the skeleton is directly from the new version of the project viewer (link above), although hopefully the wiki links, etc., will be updated soon.

There is liable to be one more update to the project viewer once the skeleton is frozen, after which the Lab will be turning attention to the avatar.LAD file, the other major configuration file for the skeleton, and finalising changes and corrections to the shape sliders and potentially adding some new attachment points which can leverage the revised skeleton.

The biggest issue as far as progress the project to initial deployment on the main grid is concerned, is bug fixing. There are still some significant problems yet to be resolved, which are dependent upon understanding the route cause of the problem and having the staff available to investigate them / resolve them:

  • Issues with the extra joints, such as the default avatar pose issue (see below)
  • The rendering deformations encountered at high altitude
  • The general avatar deformation issue seen within the Bento viewer (see here and here for further notes).

There are also a number of more general bugs to be corrected as well.

Overview of the next steps in the project from the Lab’s perspective

Default Avatar Pose Issue

foreleg crossing: issue may be deeper than thought
foreleg crossing: issue may be deeper than thought

There has been further investigation into the default avatar pose issue which can see quadruped avatars unnaturally crossing or folding their forelegs when shifting between animations (for background see here, here, and here).

It had been thought that the issue was due to the way that scripted animation override systems (e.g. the ZHAO and ZHAO 2) overlay the default server-side avatar poses, occasionally allowing these server-side animation to start playing when shifting between poses as a result of a message timing issue between server and viewer. The suggested solution was therefore thought to be to encourage creators to write AO for their Bento avatars which would utilise the llSetAnimationOverride capability introduced in 2013, which overwrites the server-side defaults with the animations of the creator’s choosing, thus preventing the “wrong” animation starting to be played.

However, more recent testing suggests that the issue can still occur when using llSetAnimationOverride.

A problem here has been that the JIRA specifying the issue and providing information on various tests, etc., carried out to date by the Lab has, not been publicly viewable (for valid reasons), making it hard for other outside the Lab attempting to investigate the problem to understand what has happened to date and report their own findings back to the Lab. Arrangements are now being made to clone the JIRA and make is public to eliminate this problem.

Other Items

Removing Mesh Upload and Display Restrictions

Second Life has always had a number of upload and display restrictions wherein creators were required to include certain joint positions whether or not they were in fact using them (the uploader wouldn’t check to verify whether the positions were actually used, just that they are listed). There were some checks which insisted that if the positions of some of these bones were changed, they all had to be changed.

This obviously limited the number of meshes rigged to bones from different creators that an avatar could wear, because there would inevitably be conflicts between the listed joints in each mesh. The checks themselves date back to when the Lab used a different method for tracking joint positions, and they don’t make a lot of sense today, and so work is in hand to remove them, and should be completed with the next release of the project viewer.

The upshot of this is that once done and available, avatars will be able to wear meshes from different creators, providing the mesh items only list the joints they actually use. This would allow, for example, this will allow someone to wear a centaur avatar from one creator and add a set of wings from another creator without the risk that the meshes would conflict because they list the same “required” joint positions. However, for this to work, it does mean that creators will need to ensure they list only the joints they require in order to offer some degree of “interoperability” between meshes.

Vir discusses the removal of the upload and display restrictions

Using Bones to Animate Hair and Clothes

One benefit from being able to rig and list only the bones which are being used, is that it potentially opens the door to creators being about to use some of the additional bones to animate things like hair and dresses.

For example, as bipedal, humanoid avatars are unlikely to require the tail bones or the “hind” limb bones, these could potentially be used to naturally animate a  mesh gown (particularly one with a long train) or long dresses. Similarly, the additional ear bones might be used to animate mesh hair.

Cathy Foil points-out the potential for clothing and hair makers as a result of the removal of the restrictions

Scripted Methods for Bone Positions

BUG-11407 is a feature request to provide scripted control of bone positions, allowing to an LSL command to pass an array of bone positions to the client to animate oneself, or, with permission granted, to animate another user.

Commenting on this at the meeting, Vir indicated that while such an approach is “interesting”, but due to the scope of things, has been considered to big an undertaking for the Bento project, and would likely have to be considered as a project in its own right. Rider Linden further suggested raising the idea for discussion at the Simulator User Group meeting.

Useful Links