Jump to content

mBone and cBone Weighting Issue


Phaytel
 Share

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

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

Recommended Posts

Not sure if terminology is shared among everyone but just to be clearer in my post:

  • mBone: Bones that control deform I think (i.e. mChest, mElbowRight, etc)
  • cBone: Bones used for collisions (i.e. 

I was hoping someone familiar with fitted mesh might be able to answer my question. I'm currently learning about rigging in Blender and SL without the use of Avastar currently just for learning purposes. I was doing a test with sliders by creating two spheres as markers on the LEFT_PEC and RIGHT_PEC bones to see effects. When I weighted each sphere to 1 on their respective PEC bones and nothing else, then imported into SL. The mesh were like tiny specs as if they had been scaled down 1000 times.

From the reading I've done though, certain mBones and cBones work together. So my assumption is that the breast size slider is a combination of mChest, LEFT_PEC, and RIGHT_PEC. So I tried various techniques with the following result:

  • 1.0 Weight to Chest | 0.0 Weight to PEC: The mesh is scaled correctly but the sliders don't effect the size/position of the spheres.
  • 0.0 Weight to Chest | 1.0 Weight to PEC: The mesh is super tiny, near invisible, but the sliders seem to translate position 1:1.
  • 0.5 Weight to Chest | 0.5 Weight to PEC: The mesh are probably about half the size, and only move half as much with the slider.

So I don't get really how I"m suppose to make a accurate sized mesh and have it move 1:1 with the appearance sliders when the appearance sliders seem to compromise of both a mBone and cBone. I feel like I could be missing something. Like I can weight my mesh 1.0 to the PEC bones so it slides, but then I'd have to scale up my mesh tremendously to make it even visible. Would anyone be able to give any insight on this?

Link to comment
Share on other sites

33 minutes ago, Phaytel said:

Not sure if terminology is shared among everyone but just to be clearer in my post:

  • mBone: Bones that control deform I think (i.e. mChest, mElbowRight, etc)
  • cBone: Bones used for collisions (i.e. 

I was hoping someone familiar with fitted mesh might be able to answer my question. I'm currently learning about rigging in Blender and SL without the use of Avastar currently just for learning purposes. I was doing a test with sliders by creating two spheres as markers on the LEFT_PEC and RIGHT_PEC bones to see effects. When I weighted each sphere to 1 on their respective PEC bones and nothing else, then imported into SL. The mesh were like tiny specs as if they had been scaled down 1000 times.

From the reading I've done though, certain mBones and cBones work together. So my assumption is that the breast size slider is a combination of mChest, LEFT_PEC, and RIGHT_PEC. So I tried various techniques with the following result:

  • 1.0 Weight to Chest | 0.0 Weight to PEC: The mesh is scaled correctly but the sliders don't effect the size/position of the spheres.
  • 0.0 Weight to Chest | 1.0 Weight to PEC: The mesh is super tiny, near invisible, but the sliders seem to translate position 1:1.
  • 0.5 Weight to Chest | 0.5 Weight to PEC: The mesh are probably about half the size, and only move half as much with the slider.

So I don't get really how I"m suppose to make a accurate sized mesh and have it move 1:1 with the appearance sliders when the appearance sliders seem to compromise of both a mBone and cBone. I feel like I could be missing something. Like I can weight my mesh 1.0 to the PEC bones so it slides, but then I'd have to scale up my mesh tremendously to make it even visible. Would anyone be able to give any insight on this?

You have to get the avatar workbench file from machinimatrix website, the makers of Avastar. 

Long story short, cbones start at a scale between 0.01 and 0.05,some of them not uniformly. That is the bind pose for them in SL. Blender doesn't support that natively, so the avatar workbench includes some custom properties that override the default when you export the rigged mesh. 

Link to comment
Share on other sites

The SL armature was built in Maya, where the bone parameters are expressed differently than Blender. Converting the collision bones to Blender means writing custom bone properties for those bones.

You can find the custom bone settings here: http://wiki.secondlife.com/wiki/Mesh/Rigging_Fitted_Mesh - in the armatures for BaseMale and BaseFemale, all except LEFT_HANDLE and RIGHT_HANDLE - the handle values can be found in any viewer Character folder in avatar_skeleton.xml. I've been collecting this information for a few months and it's stashed at https://github.com/RuthAndRoth in the References repo. I blogged about it (adaradius.com) without actually solving it - I am no programmer. Avastar (in beta for Blender 2.8x) does it with updated custom property settings and drivers and has, as far as I know, the only Blender dae exporter for vertex weights for collision bones that works.

  • Like 1
Link to comment
Share on other sites

3 hours ago, Ada Radius said:

The SL armature was built in Maya, where the bone parameters are expressed differently than Blender. Converting the collision bones to Blender means writing custom bone properties for those bones.

Yes, that's correct. Maya uses joints, not bones, so you won't find the concept of a tail because, in a skeleton, that matches the next joint in the hierarchy. Now, collision volume bones have a custom orientation even though their rotations are at zero and you could achieve that by orienting the bone accordingly by rotation and then applying the pose as rest pose to keep its space orient and zero out the rotation transforms. The other thing is the scale. As i mentioned in my previous post, those joints at default already have a non uniform scale less than 1 in all three axis. This is because in Maya there are bindpose, any rotation or scale can be used as default binding configuration for a mesh, which blender does not support (yet, who knows in the future). So to circumvent that limitation, you should add the scale values as a custom property in the form of scale.x scale.y scale.z followed by the values found in the avatar lad xml file within the viewer. About the scale, it's worth to mention also that both male and female avatar mbones at their default state already start with a scale applied along one axis, because that's how the length of a bone is achieved in SL. So that is another custom property that needs to be added. It's worth noting that an avatar with the mbones scale values set to a uniform 1 in all axis is what we can call a "pre-Ruth" and is the common basis for both male and female avatars and should be the preset to use when editing the skeleton to make custom avatars and animesh. 

Finally, a word about orientation. SL built in forward direction is the X axis and all the joints should have their local orientations set to match the world orientation (except the few collision volume bones that have their own custom orientation), which means that in blender your avatar should face +X (which breaks the mirror function) to export correctly for SL. 

  • Like 1
Link to comment
Share on other sites

Wow, that's quite a bit to digest but I do appreciate all the detail it goes into. I've seen a few posts of people being able to make meshes without the help of Avastar but I assume those have to be rather basic and don't work very well with sliders. At least from the take away, Avastar does a lot more under the hood in adding more data to the exported DAE file I assume.

Thanks for taking the time to really explain things in detail, it really helps!

  • Like 1
Link to comment
Share on other sites

  • 1 month later...
On 4/29/2020 at 9:56 AM, Ada Radius said:

You can find the custom bone settings here: http://wiki.secondlife.com/wiki/Mesh/Rigging_Fitted_Mesh - in the armatures for BaseMale and BaseFemale, all except LEFT_HANDLE and RIGHT_HANDLE - the handle values can be found in any viewer Character folder in avatar_skeleton.xml.

Is there a version of the extended Bento skeleton with these settings incorporated?

If not, could things like the finger bones be copied over in straightforward fashion, or would the differences in rest poses cause incompatibilities?

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 1393 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...