On Wednesday November 20th, Linden Lab surprised the Second Life community by announcing the release of the Fitted Mesh project viewer.

Project Viewer 3.6.11.283899 is aimed squarely at resolving the thorny and oft-critiqued issue of making mesh clothing fit a wide variety of avatar shapes, as the blog post itself notes, reading in part:

Since the introduction of Mesh to Second Life, creators have faced challenges fitting Mesh garments to the Second Life avatar. Because mesh objects are not resizable in as many ways as the avatar itself is, it has been difficult for mesh garment creators to provide garments that adapt to the shape of the avatar in the way that the image-based clothing layers do. While many creators have made heroic efforts to provide products in a range of sizes, and some have collaborated to define a set of standard sizes that work reasonably well for much of the user population, many have found that mesh garments just don’t work well enough for their avatars. Mesh garments also don’t move with the body parts affected by avatar physics.

Users have developed two approaches to address these problems:

Rigging garments to the “collision bones” of the avatar skeleton (often marketed as “Liquid Mesh”). This works in current Viewers for some body parts, but there are some avatar shape parameters that do not have corresponding collision bones, so garments do not adapt to fit everywhere on the body.

The “Mesh Deformer” project added code to the Viewer to dynamically compute how to modify each garment shape by looking at how the vertices of the avatar were changed from that of the female and male base shapes.

The Linden Lab development team has studied both approaches, and compared their effectiveness, maintainability, and performance. Neither approach completely eliminates the occasional need for an alpha clothing layer to prevent small parts of the avatar skin from appearing through garments, but both work quite well at resizing garments so that they fit the avatar and move naturally with it. While the collision bones method requires the creator to do some additional rigging, we have decided that because it leverages more of the existing avatar shape system it is likely to be the more maintainable solution and to perform better for a wider range of users.

While the two current approaches to fitting mesh clothing are mentioned in the blog post (“Liquid Mesh” and the mesh deformer), it’s worth pointing out that the “Liquid Mesh” solution is actually based on an idea first demonstrated by RedPoly Inventor as far back as June 2012 – and it turns out that his approach is the one that the Lab, via Oz Linden, acknowledge as the one that first got them “started down the path of using collision bones to do this.”

At the time Liquid Mesh first appeared, there were concerns as to its impact on the market and the potential for content breakage should it prove popular only for something like the mesh deformer to eventually arrive in Second Life, prompting calls earlier in 2013 for the approach to be blocked by preventing mesh rigged to non-standard collision bones from being uploaded. At the time, the Lab remained silent on the matter, although many did blog on the potential pros and cons about the approach, including myself. Strawberry Singh not only blogged, but produced a video showing her testing a pair of boots she’d purchased which utilised the capability.

Prior to the launch of the Fitted Mesh project viewer, I was fortunate enough to be given the opportunity to preview it, and get to try out some sample clothing to see how it works. I don’t pretend this is a comprehensive review of the viewer, the new collision bones or skeleton; nor is it intended to compare / contrast the Lab’s approach to other methods. It is purely intended to provide an overview of the viewer and how suitably rigged mesh garments are handled.

The New Bones

As noted in the LL blog post, the project viewers includes an additional set of collision bones alongside the familiar set of bones. These are:

BUTT *

LEFT_PEC *

RIGHT_PEC *

LEFT_HANDLE

RIGHT_HANDLE

* These bones are affected by avatar physics.

All of these bones, and the original avatar bones, now affect mesh clothing when the avatar shape sliders (Edit Shape) are manipulated, thus giving mesh clothing which is rigged to the avatar skeleton the ability to adjust with the avatar shape as the sliders are adjusted, thus leading to a better “fit” for the clothing.

Content creators are invited to begin experimenting with creating garments rigged to the new skeleton. To assist creators in this, a Rigged Fitted Mesh wiki page is under construction, which includes information on the existing / new collision bones, links to the male and female .fbx, .ma and .dae files, and basic instructions on getting started with creating fitted mesh, including a link to downloading the avatar skeletons and to additional external resources.

Do be aware that this wiki page is a work-in-progress, as is the viewer, and liable to both update and change.

The Viewer and a Quick Series of Tests

There are a number of important things to note before going too much further. The first is highlighted in the Lab’s blog post, and is this:

At this time, the new skeleton should be considered provisional and subject to change; we do not yet recommend selling or buying garments rigged to it. Since we may find reasons to improve it during this testing process, and any change to the collision bones will likely break garments rigged before the change, we want to make sure that we have a set of bones that we can all live with into the indefinite future before it is widely used.

The second is that as with RedPoly’s original approach and Liquid Mesh, the approach will not entirely eliminate the need for alpha layers – but then again, it’s unlikely the mesh deformer would have entirely eliminated them, either.

The third is that the viewer obviously will not work with either unrigged mesh or rigged mesh which does not make use of the new collision bones (or additional bones intended to work with the appropriate sliders).

As the test clothing passed to me was for male avatars, and presented some of the usual problems when used with a female shape (and given I have very few mesh garments in my inventory, unrigged, rigged, liquid or otherwise), Oz kindly popped over and gave an initial demonstration. As he was already wearing a mesh jacket, he quickly played with the sliders to give himself a more portly shape – with the result that his mesh jacket (as expected) no longer fitted. However, when he swapped to the rigged t-shirt in the pack, it more-or-less fitted off-the-bat.

My own experiments using the supplied male shape and clothing were likewise successful for the most part. although as has been noted with both the deformer and Liquid Mesh in the past, distortions will occur with more extreme body shapes.

As a further experiment, I grabbed a demo Liquid Mesh outfit from Redgrave and tried that out, again using the male avatar shape for consistency in comparisons, and enjoyed much the same results; the top and Bermuda shorts resized consistently in the viewer, allowing for the aforementioned issues around extreme body dimensions.

This is perhaps not surprising; even if Liquid Mesh and the variants used by other makers are using unique collision bones, they are still going to be tied to the same avatar shape sliders, and liable to produce the same results. Nevertheless it does show that content already using the approach won’t necessarily be broken, and that converting it to the bones supplied by the Lab may not be too hard a task as a result.

One very important point to note here is that because the viewer does use a new set of collision bones, it can lead to issues when clothing specifically rigged to use the new bones is seen in a viewer without the code, as shown below, with Oz as seen by my alt, logged-in via Firestorm.

This is because displaying garments rigged to the new bones is a function of the garment rigging, and a viewer without the new bones distorts those garments. While the issues is not related to what viewer the wearer is running per se, the Lab advises that users may want to be careful with when/where they wear garments rigged to the new bones in order not to look odd to older viewers, but there is no reason not to use the project viewer as a primary viewer. It can also be overcome by viewers updating their Avatar_skeleton.XML / avatar_lad.XML files, as noted by Darien Caldwell in the comments following this article.

General Feedback

My tests are not the most comprehensive; even with the gracious help from both Oz and Pete Linden – to whom I wish to express my sincere thanks – my time trying-out the project viewer was limited, and I admit I’m not anywhere near being an expert in the avatar form or with mesh.

What I can say is that the viewer does appear to work, and already does what it says on the tin. It would have been nice to test clothing created around a female skeleton and rigging to see how well bust sizes are handled, but experiments using the supplied test items suggested they would be handled reasonably well.

As LL’s blog post states, there is still more work to be done on the project, and creators and users wishing to more comprehensively test the viewer (such as by producing and testing clothing using the system)are invited to do so and to provide feedback via JIRA through the Fitted Mesh project.

Obviously, the release of this project viewer is going to come as something of a surprise, and is liable to provoke a range of reactions, particularly given the level of user investment placed in the original mesh deformer (and the fact that the deformer is, to a degree, being carried forward within OpenSim). However, as solutions go, this approach does appear to work, and has the benefit of already being in use within Second Life, where it has been proving popular, and it would appear to have minimal impact on those products already using custom collision bones to achieve better fitting mesh clothing. As such, it does appear to be the preferable choice.

Related Links

With sincere thanks to Oz Linden and Pete Linden in allowing me advanced access to the viewer, and to Jeremiah Linden for providing the test assets.