Jump to content

Experienced 3D modeller, new to SL. Looking for some background info on fitted mesh.


Kiramemiko
 Share

You are about to reply to a thread that has been inactive for 1135 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

Hello I'm a Blender artist who would like to create clothes for SL, but it seems a lot of the information on the wiki is outdated, or does not reflect actual practice. Other info is scattered across third party websites, and I'm not sure what is most up to date. Please note, I don't want to rely on using Avastar.

  1. From what I see in the marketplace, standard practice is to design clothes for specific bodies ("Hourglass", "eBody", "Maitreya", "Avatar 2.0", etc...) using their "dev kits". What is the best way to make one mesh that fits the greatest number of bodies? If this isn't an option, what are the most common shapes that I should stick to designing for?
  2. I understand making new mesh avatars for animals and/or fantasy creatures, but why do creators make mesh humans at all, when SL has body sliders in the viewer itself?
  3. When designing for the standard avatar body (is this what's referred to as "legacy"?) where is the correct skeleton and mesh combination? I have tried all of the following:
    1. Bento Page August 2016 female says the rig is broken, in Blender, displays 159 bones as dots instead of octahedral, stick, etc...
    2. Bento Page August 2016 angel rig has 133 bones (same as my avatar_skeleton.xml), but also displays bones as dots (am I doing something wrong...?)
    3. Bento Page FBXs don't work in modern versions of Blender (error: version 6100 unsupported, must use 7100 or later). Apparently there's a way to convert them to modern format, but I haven't done it yet.
    4. Avatar Workbench page workbench-271 is for a super old version of Blender, and only has 26 bones
    5. Avatar Workbench page "Bento Female-2017-01-09" has 159 bones, but the breast bones extend beyond the mesh, making me think the wrong mesh is being used in the file, and if used for modeling, will cause deformations upon upload.  Therefore I really don't trust the whole mesh.
  4. On the Skeleton Guide what is the difference between "Sliders that affect Bones" and "Sliders that affect Collision Volumes"? Aren't they all used to affect deformation bone size?
  5. What is the purpose of similar bones that are close to each other, example: mCollarLeft and LEFT_CLAVICLE. Should one be given weight painting preference over another?

Thanks for any help that is provided.

Edited by Kiramemiko
Link to comment
Share on other sites

24 minutes ago, Kiramemiko said:

1. From what I see in the marketplace, standard practice is to design clothes for specific bodies ("Hourglass", "eBody", "Maitreya", "Avatar 2.0", etc...) using their "dev kits". What is the best way to make one mesh that fits the greatest number of bodies? If this isn't an option, what are the most common shapes that I should stick to designing for?

Disclaimer: I'm not very experienced with making clothes, but I'm relatively fluent with Blender and how SL works.

You can generally get away with making a single mesh for your clothing item. After that, you'd use those developer-kits to rig your mesh to each of the different bodies. The dev kits generally contain a lower-resolution version of the mesh body with rigging information. Without a dev kit, getting your outfit to be compatible with the shape of someone else's mesh body is going to take a lot of trial and error.

To add to that headache, many (if not most/all) of the major human brands require you to send an application for a dev kit, some of them requiring you to be an already-established store.

17 minutes ago, Kiramemiko said:

2. I understand making new mesh avatars for animals and/or fantasy creatures, but why do creators make mesh humans at all, when SL has body sliders in the viewer itself?

Have you taken a single look at the base avatar? It's ugly and blocky, and can't even cover the many different kinds of human body shapes you might want to have.

19 minutes ago, Kiramemiko said:

3. When designing for the standard avatar body (is this what's referred to as "legacy"?)

No, the Legacy body is an intentionally confusingly named mesh body. That term should be avoided as a result.

The proper terms would be either "system body" (along with "system layers"), or base avatar, or LL (Linden Lab) avatar.

  • Like 1
Link to comment
Share on other sites

Thanks for responding to some of my questions so quickly Wulfie!

44 minutes ago, Wulfie Reanimator said:

You can generally get away with making a single mesh for your clothing item. After that, you'd use those developer-kits to rig your mesh to each of the different bodies. The dev kits generally contain a lower-resolution version of the mesh body with rigging information. Without a dev kit, getting your outfit to be compatible with the shape of someone else's mesh body is going to take a lot of trial and error.

To add to that headache, many (if not most/all) of the major human brands require you to send an application for a dev kit, some of them requiring you to be an already-established store.

I found links to a bunch of free/easily obtainable dev kits here and here. I'll just design for one of those, since I'm just getting started and need the practice.

For some it looks like I would just have to re-weight them to the different armatures, but that would still require different SL objects for different bodies correct? There's no way to upload one mesh object and have that applicable to several bodies?

50 minutes ago, Wulfie Reanimator said:

Have you taken a single look at the base avatar? It's ugly and blocky, and can't even cover the many different kinds of human body shapes you might want to have.

Thanks, yes I see now. That makes sense, though seems like a major shortcoming of LL.

Link to comment
Share on other sites

4 hours ago, Kiramemiko said:

For some it looks like I would just have to re-weight them to the different armatures, but that would still require different SL objects for different bodies correct? There's no way to upload one mesh object and have that applicable to several bodies?

That's correct. You'll end up having several different objects for each specific body. SL doesn't have a way to "swap" the rigging.

4 hours ago, Kiramemiko said:

Thanks, yes I see now. That makes sense, though seems like a major shortcoming of LL.

To be fair the base avatar was created way back when SL was. It hasn't been changed because as with many things, LL's general policy is to not break/change existing content. If they were to make even the slightest changes to the base avatar now, at least some people would suffer from it. LL's solution was to create custom mesh avatars instead.

Link to comment
Share on other sites

Ok, so I found some more information, and answered some of my questions below. If anyone knows better, please correct what I wrote below, so that I don't spread false information. I'm going to end up taking all my notes eventually, and doing a complete write up, so that someone in the same position, starting from nothing can get up to speed.

23 hours ago, Kiramemiko said:
  1. ... I have tried all of the following:
    1. Bento Page August 2016 female says the rig is broken, in Blender, displays 159 bones as dots instead of octahedral, stick, etc...
    2. Bento Page August 2016 angel rig has 133 bones (same as my avatar_skeleton.xml), but also displays bones as dots (am I doing something wrong...?)
    3. Bento Page FBXs don't work in modern versions of Blender (error: version 6100 unsupported, must use 7100 or later). Apparently there's a way to convert them to modern format, but I haven't done it yet.
    4. Avatar Workbench page workbench-271 is for a super old version of Blender, and only has 26 bones
    5. Avatar Workbench page "Bento Female-2017-01-09" has 159 bones, but the breast bones extend beyond the mesh, making me think the wrong mesh is being used in the file, and if used for modeling, will cause deformations upon upload.  Therefore I really don't trust the whole mesh.

So I took another look at the avatar_skeleton.xml file. It does list 133 "bones" but then it also lists 26 "collision volumes" which would add up to the 159. For the purposes of Blender, all of these would just be considered bones. This is where the numbers I bolded above come from.

Specifically for my point 1.5, underlined above, I found documentation that suggests that SL only uses the armature head (referred to as the "joint" in SL), and the distance between parent/child armature heads to calculate bone length. If this is the case, it wouldn't really matter at all where the breast bones end. Might also explain why the bones just appear as dots in some of those files.

23 hours ago, Kiramemiko said:

What is the purpose of similar bones that are close to each other, example: mCollarLeft and LEFT_CLAVICLE. Should one be given weight painting preference over another?

Ok, so I'm still researching this, but the "m-bones" are like actual bones for movement and animations, where as the other bones are collision volumes. As I understand it, the best way to explain it is that m-bones are like human bones, whereas the collision volumes are like how much the body stick out from the bones (fat, breasts, muscle, etc...), and they specify how physics works in SL. For instance, a very fat avatar walking towards a wall will stop sooner than a skinny avatar of the same m-bone length. This can all be very confusing since everything is just a bone in Blender.

The collision volumes all correspond to associated m-bones, like my example with the clavicle above. When it comes to the weight painting the mesh in Blender, each vertex of the mesh can be weighted by up to 4 of the 159 bones. For instance if you wanted to weight paint one specific vertex of the shoulder, the four bones you'd probably use are the mCollarLeft, LEFT_CLAVICLE, mShoulderLeft, and L_UPPER_ARM. You can assign any combination of weights to these bones, but they must add up to 100%, and only these 4 bones can be used.

I'm still not sure the best way to go about doing this, other than manually painting everything. Automatic weights can be normalized to ensure the paint on any vertex isn't greater than 100%, but I have no idea how you would restrict it to a max of 4 bones. Also, how does one choose amount of weight to add to m-bone versus collision bones?

  • Like 1
Link to comment
Share on other sites

There is a bit more information at https://github.com/RuthAndRoth/Reference - some of us in the OpenSim community work on this too, with quite a bit of overlap among the grids. The RuthAndRoth project started in OpenSim communities, but is well represented in Second Life now as well. 

Not sure if this was made clear in earlier posts: Weighting to the movement bones e.g. mPelvis and to the collision volumes, e.g. PELVIS, affects the Appearance sliders. Bone hierarchy matters - we can weight to the collision bones so that mesh attachments will respond to some of the sliders (fat, boobs, butt, belly, muscles), which most artists called "fitted" mesh. If you weight a vertex to PELVIS, it will move with mPelvis, because mPelvis is the direct parent of PELVIS. It gets tricky in the torso, where more than one collision bone is the child of a parent bone, and we're only allowed 4 weights per vert.

One important restriction: we can only import rigged mesh with 110 vertex groups or less to the viewers, exceeding that is a silent fail, though Firestorm has a nice log feature now that can point to the the problem. As there are 159 bones in all, it can mean some difficult choices, depending on what you're working on.  I generally map it out ahead of time to make sure I don't get nailed.    

Link to comment
Share on other sites

A lot of the information in the notes I'm taking actually does come from your github, so I'm glad you gave some hints. I'm a big fan of open source, so I'll probably end up building clothes for Ruth2.

17 hours ago, Ada Radius said:

If you weight a vertex to PELVIS, it will move with mPelvis, because mPelvis is the direct parent of PELVIS.

My main question right now is, when would you ever choose to weight mPelvis, when you can paint PELVIS and get the collision functionality?

Link to comment
Share on other sites

On 4/17/2021 at 11:20 AM, Kiramemiko said:

2. I understand making new mesh avatars for animals and/or fantasy creatures, but why do creators make mesh humans at all, when SL has body sliders in the viewer itself?

Detail and quality. The system avatars aren’t well-sculpted. They are relatively low-poly and have bad topology that makes them bend poorly at many joints. Their hands and faces also aren’t Bento-rigged. (They can play a small, fixed set of poses and expressions, but we can’t customize them or add more.)

Quote

3. When designing for the standard avatar body (is this what's referred to as "legacy"?) where is the correct skeleton and mesh combination? I have tried all of the following:

  1. Bento Page August 2016 female says the rig is broken, in Blender, displays 159 bones as dots instead of octahedral, stick, etc...

  2. Bento Page August 2016 angel rig has 133 bones (same as my avatar_skeleton.xml), but also displays bones as dots (am I doing something wrong...?)

Collada/DAE files only store bone heads, as singular pivot points. You need to check all the “Auto Connect”, “Find Bone Chains”, and “Fix Leaf Bones” import options if you want joints brought in looking like the kind of bones Blender was designed to work with...and even then, Blender might not make all of them the way you expect. You will have to go in and tease out the tails by hand.

Quote

Avatar Workbench page "Bento Female-2017-01-09" has 159 bones, but the breast bones extend beyond the mesh, making me think the wrong mesh is being used in the file, and if used for modeling, will cause deformations upon upload.  Therefore I really don't trust the whole mesh.

Believe it or not, bones sticking out has no effect on animations once weights are painted. You’re getting deformations because the Fitted Mesh collision volume bones — the ones with names in ALL_CAPS — contain extra, custom scaling and positioning information. You need to start with a skeleton that has that information and check the “Keep Bind Info” option when you export. That’s one option. A tool that automatically handles the extra requirements of these bones, like Avastar or Bento Buddy, is another. (If you’re working with a mesh body dev kit, you probably need to use whatever it was made with.)

Quote

4. On the Skeleton Guide what is the difference between "Sliders that affect Bones" and "Sliders that affect Collision Volumes"? Aren't they all used to affect deformation bone size?

I don’t think there’s a difference.

Quote

5. What is the purpose of similar bones that are close to each other, example: mCollarLeft and LEFT_CLAVICLE. Should one be given weight painting preference over another?

Short version: Weight your clothes exactly the way the mesh body you’re sculpting around is weighted at that spot.

Long version: When LL originally made avatar shapes customizable, they used a mix of techniques. Length/height/position changes were done through rig deforms and curves/muscles/bulk changes were done through shape keys. When mesh uploads first got added, clothes got properly adjusted by the rig deforms (because they were rigged to the same bones) but the shape keys did nothing to them (because shape keys are mesh-specific and can’t be used or even seen by others). So mesh clothes couldn’t be shaped as freely as the system body and didn’t fit right except on avatars with near-default sliders (or on avatars wearing a full mesh body that was likewise only partially adjustable).

Linden Lab fixed this by inventing Fitted Mesh. They added a bunch of bones to the skeleton and made them scale and shift in ways that imitated the curves/muscles/bulk shape key changes. Those are the ALL_CAPS bones. If you add these bones to your weighting, mesh clothes can get scrawnier/bulgier too, not just shorter/longer.

Link to comment
Share on other sites

5 hours ago, Kiramemiko said:

My main question right now is, when would you ever choose to weight mPelvis, when you can paint PELVIS and get the collision functionality?

You need to weight the clothes and the body using the same mix, or else shape sliders will affect them differently. If you're fitting for a target body, you're stuck with whatever they decided to do. :)

Also, collision bones don't give you collision. Ignore that name. It's bad. When LL created Fitted Mesh they apparently repurposed some bones from a more-accurate collision detection system they had experimented with but ultimately never implemented. For some reason, LL kept the term "collision volume bones" even though they aren't actually used for collision detection now. Avatars still have their original, simple, predefined collision shapes that ignore all attachments. SL totally ignores your avatar's collision volume bones and all your attached items' physics meshes in figuring out whether you've bumped into things. For this reason, all mesh bodies and clothing should have a simple cube or even less for its physics mesh -- it doesn't matter anyway, so it may as well be just a few bytes.

Edited by Quarrel Kukulcan
Link to comment
Share on other sites

16 hours ago, Quarrel Kukulcan said:

You need to weight the clothes and the body using the same mix, or else shape sliders will affect them differently. If you're fitting for a target body, you're stuck with whatever they decided to do.

Thanks, for some reason it never occurred to me to just transfer weights from the mesh body. Honestly, I hadn't even checked to see that the mesh bodies I had downloaded actually had proper weights already on them. Luckily most of them do. Some of them look like someone just threw a mesh onto the provided skeleton and shipped it.

 

16 hours ago, Quarrel Kukulcan said:

For this reason, all mesh bodies and clothing should have a simple cube or even less for its physics mesh -- it doesn't matter anyway, so it may as well be just a few bytes.

I remember seeing something about exporting a cube from Blender and just uploading that in the physics tab, but I didn't understand why. Thanks for explaining.

Link to comment
Share on other sites

On 4/21/2021 at 10:13 AM, Kyrah Abattoir said:

You'll have a lot of trouble finding help then.

That's fine, this has been a great learning opportunity for me. I like to treat plugins, frameworks, libraries, etc as a shortcut, but only if I already understand what they're doing internally. Kind of like using a calculator after you already understand how multiplication works.

If worse comes to worse, I'll just buy Avastar and take a look at the source code to get an a better understanding of how the Blender/SL workflow operates.

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 1135 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...