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.

 

SL project updates 16 16/1: server, viewer

Netherwood; Inara Pey, April 2016, on Flickr Netherwoodblog post

Server Deployments

There are no scheduled deployments for week #16. The next deployment should be to the RC channels in week #17 (week commencing Monday, April 25th). This is liable to include at least one fix to help prevent simulator crashes.

SL Viewer Updates

Both of the current RC viewers were updated on Friday, April 15th.

The Maintenance RC, which includes fixes for crashes, memory leaks, input/cursor issues, graphics bugs. invisiprims, formatting, notifications and more, was updated to version 4.0.4.314012. See my notes on the invisiprim tweak here.

The Quick Graphics RC viewer, containing the new Avatar Complexity capabilities and the graphic presets support updated to version  4.0.4.313948.

Depending on the stats gathered on these versions, one of them might be updated to the de facto release viewer later in the week (although I’m guessing there may not be a promotion until week #17).

This leaves the complete list of official viewers as:

  • Current Release version: 4.0.3.312816 (dated March 23), April 1 – formerly the HTTP / Vixox RC viewer download page, release notes
  • TC viewers – as indicated above
  • Project viewers:
    • Project Bento (avatar skeleton extensions) updated to version 5.0.0.313876 on April 15 – an updated set of bones for the Bento skeleton.
    • Oculus Rift project viewer updated to version 3.7.18.295296 on October 13, 2015 – Oculus Rift DK2 support
  • Obsolete platform viewer version 3.7.28.300847 dated May 8, 2015 – provided for users on Windows XP and OS X versions below 10.7.

News is once again light at the start of the week. Expect more from the Bento and TPVD meetings at the end of the week 🙂 .

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.

SL project updates 16 15/1: server, viewer, Aditi inventory syncing

Tatakai Tochi; Inara Pey, April 2016, on Flickr Tatakai Tochiblog post

Server Deployments

On Tuesday, April 12th, the main (SLS) grid was updated with the server maintenance package previously deployed to the three RC channels in week #14. This comprises a fix for (non-public) BUG-11163 llHTTPRequest returns 400 from some sims and not others, and some minor internal fixes.

Commenting on the llHHTTPRequest update at the Simulator User Group meeting on Tuesday, April 12th, Oz described the reason for the update as follows:

Some time ago I changed the code so that when LSL sends an HTTP request it is more explicit about what MIME types it will accept. That uncovered a much older bug in how the list of acceptable types was maintained; when a region updated its configuration, the list got duplicates. When all we were using the list for was checking a response, all that cost was a tiny bit of extra time, but when we started sending them it caused requests the servers sometimes didn’t like.

SL Viewer

There has been no change to the current list of official viewers since my last update.

  • Current Release version: 4.0.3.312816 (dated March 23), April 1 – formerly the HTTP / Vixox RC viewer download page, release notes
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself):
    • Maintenance RC viewer 4.0.4.313759 release on April 8 – fixes for iewer crashes, memory leaks, input/cursor issues, graphics bugs, invisiprims, formatting and notifications (download and release notes)
    • Quick Graphics RC viewer updated to version 4.0.2.312297 on March 11 – provides the new Avatar Complexity options and the new graphics preset capabilities for setting, saving and restoring graphic settings for use in difference environments / circumstances (download and release notes)
  • Project viewers:
  • Obsolete platform viewer version 3.7.28.300847 dated May 8, 2015 – provided for users on Windows XP and OS X versions below 10.7. This viewer will remain available for as long as reasonable, but will not be updated with new features or bug fixes and will not be promoted to release status (download and release notes)

Aditi Issues

Inventory Syncing

Work is continuing on the Aditi inventory syncing issues (see here for details). In terms of the local caching issues previously reported (see also BUG-11651) , the Lab is testing a build of the viewer which will create separate inventory .gz files for Agni and Aditi, and which appears to overcome the issues of “phantom” Aditi assets appearing in Agni inventory and Aditi assets apparently “vanishing” from Aditi inventory, both until such time as the viewer cache is cleared.

The updated test viewer creates individual inv.gz files for Aditi (red) and Agni (blue) inventories, thus avoiding the issues og BUG-11651 (with thanks to Whirly Fizzle for the pointer)
The updated test viewer creates individual inv.gz files for Aditi (red) and Agni (blue) inventories, thus avoiding the issues reported in BUG-11651 (with thanks to Whirly Fizzle for the pointer)

The Calling Card and Favourite folders are also being synced at the moment, although it looks like these will be excluded (as had been the plan) alongside the Current Outfit Folder.

Aditi log-ins

Some people are still having issues logging-in to their last location on Aditi. When attempting to log-in, people either have to wait an age or, when eventually logged-in, arrive an a random location on the Beta grid. Not all users logging-in to Aditi are affect, but for those who are, the problem is persistent, and has been for a number of months.  There is some speculation that the issue might be inventory related, as was the case a couple of years back (see BUG-7707), and the Lab are going to poke at this to see if something similar is again occurring.

SL project updates 16 14/2: TPV Developer Meeting

Light Thoughts 2, LEA20 - blog post
Light Thoughts 2, LEA20 – blog post

The following notes are primarily taken from the  TPV Developer (TPVD) meeting held on Friday, April 8th, 2016. A video of the meeting is embedded at the end of this report, my thanks as always to North for supplying it, and time stamps in the text relate to this recording.

SL Server Deployments  – Recap

There was no scheduled deployment to the Main (SLS) channel this week. All three RC channels received the same server maintenance package, comprising a fix for (non-public) BUG-11163 llHTTPRequest returns 400 from some sims and not others, and some minor improvements. Assuming nothing goes sideways with this update, it should be promoted to the Main channel in week #15 (commencing Monday, April 11th).

As of the Server Beta User Group meeting on Thursday, April 7th, it seems that there will not be any RC deployment in week #15.

SL Viewer Update

Maintenance Viewer

One of the changes within the new Maintenance RC sees the When I Spend Or Get L$ notification tick box (Preferences > Notifications) split into two options
One of the changes within the new Maintenance RC sees the When I Spend Or Get L$ notification tick box (Preferences > Notifications) split into two options

A new Maintenance RC viewer, version 4.0.4.313759, arrived on Friday April 8th. This includes fixes for a range of issues related to viewer crashes, memory leaks, input/cursor issues, graphics bugs, formatting, notifications, etc.

This Maintenance viewer sees invisiprim texture UUIDs revert to their “old” behaviour: they will mask whatever they are covering (feet, water in dry docks or in boats, etc) when ALM is disabled, and are ignored when running with ALM enabled (see here for further background on recent changes to how these texture UUIDs are handled by the SL viewer).

The familiar situation with invisiprims
The Maintenance RC viewer sees the return of the “old” invisprim texture UUID behaviour: masking items (e.g avatar feet in shoes; Linden water in dry docks – above – or boats, etc), when ALM is disabled (left) and being ignored by the rendering engine when ALM is enabled

During the TPVD meeting, Grumpity Linden described this as a “partial” fix [11:35, in text], and Oz Linden indicated that the Lab has not reached a final decision on how these textures should be handled in the future [18:35]. both of these comments suggest further work is yet to come with how invisiprims are handled.

Quick Graphics Viewer

[00:50] The Quick Graphics viewer, version 4.0.2.312297 at the time of writing, is being merged with the current release viewer code, but still has some remaining bugs to be resolved. It would therefore seem unlikely this viewer will be promoted to release status in the immediate future.

[31:44] Testing has shown that this viewer is relatively successful in preventing people wearing mesh graphics crashers from crashing it. While those using this viewer can experience a drop in frame rate in the presence of such crashers, they tend to remain connected to the simulator.

Change in how Avatar complexity is calculated means that other avatars such no longer appear as "Jelly Babies" when the slider is set to Umlimited
Change in how Avatar complexity is calculated means that other avatars such no longer appear as “rainbow avatars” when the slider is set to Unlimited

[33:24] A further change to the view means it no longer uses attachment geometry when calculating avatar complexity. This should prevent situations where setting the Avatar Complexity slider in the viewer to Unlimited still results in some avatars still appearing as solid colours.

[35:00] However, the recommendation is that if you want to have avatars mostly rendered normally but still have protection against like graphics crashers, you set the Avatar Complexity value to 350K rather than Unlimited.

[36:05] Avatars rendered as solid colours have been informally referred to as “Jelly Babies”. However, as this is actually a trademarked name (Bassett’s / Cadbury-Schweppes / Mondelēz International), the Lab prefers that it is no used, and are informally referring to solid colour avatars as “rainbow avatars” and more formally as “muted avatars”.

Oculus Rift Viewer

[06:49] The Lab is still committed to getting the Oculus Rift project viewer, version 3.7.18.295296 and dated October 2014 at the time of writing, updated. Progress has been slowed due ongoing changes in the Oculus SDK. However, the plan remains to have this viewer support the consumer release version of the headset.

64-viewer

[28:48] The Lab has started building 64-bit versions of their Windows and Mac viewers. There is no firm date on when these will appear as project viewers, but the progress to date has been relatively rapid.

SL Voice

[07:40] The recent HTTP / Vivox release viewer (version 4.0.3.312816) contains a number of updates to improve issues like Voice quality, drop-outs, connection failures, etc. The Lab has suggested TPVs might want to investigate dropping the updated voice package into their own viewers, if not about to update to the 4.0.3 code base, so users can benefit from the newer Voice package.

Widespread Voice Drop-Outs

[08:40] There have been instances of widespread Voice drop-out across SL recently. These are apparently the result of DDoS attacks aimed at the Vivox services, rather than any issues within SL. Vivox are working to reduce the impacts of these attacks and improve service resumption following them, but the current updates provided to the Lab obviously won’t help when these issues occur. However, an upcoming version of the Voice package should over improvements when reconnecting to the Vivox services after problems have occurred.

Security / Privacy Improvements

[10:25] In addition to the above, the Lab and Vivox are also working on various security and privacy improvements around Voice. When these are available, they will form a new version of the SL Voice package which will not be backwards compatible with older viewers.

Continue reading “SL project updates 16 14/2: TPV Developer Meeting”

SL project updates 16 14/1: server, viewer

Noire'leans; Inara Pey, April 2016, on Flickr Noire’leans – blog post

Server Deployments Week #14

There was no scheduled deployment to the Main (SLS) channel this week. All three RC channels received the same server maintenance package, comprising a fix for (non-public) BUG-11163 llHTTPRequest returns 400 from some sims and not others, and some minor improvements. Assuming nothing goes sideways with this update, it should be promoted to the Main channel in week #15 (commencing Monday, April 11th).

It is currently not clear if there will be a further update to the TC channel in week #15; this will apparently be determined on work being carried out over the next few days.

SL Viewer

Current Release Version – HTTP / Vivox Updates

The HTTP  / Vivox RC viewer was promoted to the de facto release viewer at the end of week #13. Version 4.0.3.312816 (dated March 23rd) presents a complete replacement of the under the hood HTTP infrastructure, replacing the self deleting responders with coroutine implementations for improved performance and stability, and to provide finer grained concurrency allowing the Viewer greater control over the numbers and types of HTTP requests that can be simultaneously outstanding.

The HTTP changes affect all areas of the viewer that use Sim Capabilities. These include, but are not limited to:

  • Asset upload (Images, Meshes, Animations)
  • AISv3 inventory manipulation
  • Viewer Managed Marketplace
  • Simhost event polling
  • LSL script compilation
  • Experience management (blocking, allowing, creating)

Alongside of this work, undertaken by Rider Linden to extend Monty Linden’s previous work on HTTP, this viewer sees the removal of  a considerable amount of deprecated and unused code, and a range of Voice fixes and improvements.

Remaining Viewer Channels

The promotion of the HTTP / Vivox viewer leaves the remaining viewer channels as follows:

  • Release candidate cohorts:
    • Quick Graphics RC viewer, version 4.0.2.312297, dated March 11th – awaiting update to bring it to parity with the release viewer
  • Project Viewers:
    • Oculus Rift project viewer updated to version 3.7.18.295296 on October 13, 2015 – Oculus Rift DK2 support (download and release notes)
  • Obsolete platform viewer, version 3.7.28.300847, dated May 8th, 2015 – provided for users on Windows XP and OS X versions below 10.7 – expect this viewer to potentially vanish once TLS 1.2 is implemented.