Ruth2 v4 – Rigging in Blender

This is an updated blog post explaining how to take the Ruth2 v4 avatar mesh with included armature and export it in a form suitable for use in Second Life and OpenSim. The post is still under development to debug the process. Thanks to Ada Radius.

These notes describe the process to use Blender to take the Ruth2 v4 mesh avatar, including an “armature” for rigging and go through the process of exporting Collada (.dae) and importing to Second Life/OpenSim. It is largely based on notes and guidance from Ada Radius.

Gather Resources

A place to start is this GitHub Ruth2 Wiki page on… Clothing Creator Guide … and much more technical detail is in this Wiki page on… Blender and Rigging. Though as at 16-May-2022 these need an update.

  1. Blender 3.0.1 or later (using 3.1.0)
  2. Ruth2/Mesh/Ruth2_v4/Ruth2v4DevWithArmature.blend (GitHub/Ruth2)

Process Guide

Open Blender with a new project, remove default cube.

Check if Edit > Lock Object Modes is ticked tick and if so turn if off. Save as defaults for future via File -> Defaults -> Save Startup File.

Add Ruth2 v4 mesh parts dev kit via File > Append Ruth2v4DevWithArmature.blend and select the “Object” mesh part you want to work with (e.g Ruth2v4 for the head, body, legs and hands but no feet part). Open the “Object” item to get the list of parts available.

In the Outliner (usually to the right side of Blender), note that “OSSLFemaleCustVolBones” is the armature. The selected mesh part(s) is under that. There may be other mesh parts bundled in (like feet) which you can delete if they are not going to be part of your exported mesh. When using “Append” in Blender always bring in the “Object” which will pull in any related items needed, i.e. to avoid confusion, you should not try to only bring in the separate “Armature” part in this case.

In Outliner, if present Delete Light and Camera.

An alternative to the “append” process might be to just open Ruth2v4DevWithArmature.blend and choose to show (if necessary) and highlight the mesh part(s) you want to export.

Using top left menu in Object Mode, Select > All. Rotate the selection by +90 degrees on Z axis to face right in front orthographic view (make sure the armature also rotates).

Use Object > Apply > All Transforms to ensure all subparts of rotated outer container/mesh are transformed.


Select the armature OSSLFemaleCustVolBones and choose “Edit Mode”. Select > All, Armature > Bone Roll > Clear Roll.

In “Object Mode” and in outliner, select mesh first and then avatar_skeleton.xml. The armature must be the last thing selected. Then use Object > Parent (Ctrl/P) to get Parenting options. Set to “Armature Deform”. Parent should then be shown as avatar_skeleton.xml.

Now carefully check all the mesh properties as described in the Ada Radius guidance notes.

In the sample mesh part I was checking the Ruth2v4 (head, body and hands, no feet) already had the required single Armature Modifier, but also a “DataTransfer” Modifier to Ruth2v4FeetFlat. “DataTransfer” and “Weld” may be able to be left in as according to Ada Radius… “those are Modifiers that do apply well on export from Blender and import inworld. Not perfectly, but well”. So I left that in. Ada adds…

The Data Transfer Modifier has several uses. In this case I use it for separate objects that we want perceived as a single object inworld. With the settings I used, it matches the face corner normals to the target we point it to. It works fairly well, depending on inworld lighting and how well the textures match. If you see a modifier called “Weld” it’s the same thing

Export to Collada

Select the mesh part you wish to export (e.g. “Ruth2v4”)… note its the mesh part which is parented to the armature… i.e. do NOT select the parent armature (named “Ruth2v4WithArmature”).

File > Export > Collada.

Via the cog settings icon in the top right of teh export window use Operator Presets > SL+Open Sim Rigged (which sets nearly all settings needed).

Under the “Main” tab check the “Selection Only” and “Global Orientation Apply” boxes are ticked.

Detailed check of Export Collada options under each tab…

Main tab:

    Selection Only
    Include Armatures
    Global Orientation Apply
    Forward Axis Y
    Up Axis Z
    Texture options
    UV – Only Selected Map

Geom(etry) tab:

    Apply Modifiers Viewport
    Transform Matrix

Arm(ature) tab:

    Deform Bones Only
    Export to SL/OpenSim

Anim(ation) tab:

    Include Animations (may or may not be needed)

Extra tab:

    Use Blender Profile
    Sort by Object Name
    Keep Bind Info

For rigged mesh items (like the Ruth2 avatar mesh parts themselves, or rigged mesh clothing) in the Extra tab you must ALSO tick “Keep Bind Info” (otherwise the mesh in Second Life/OpenSim will look like a spindly deformed alien when imported).

Export the Collada.

Import – Mesh Upload to Second Life/OpenSim

Import to OpenSim/SL via the Mesh Uploader as usual. Make sure to use the Second Life only version of the viewer (with Havok Physics) if uploading to Second Life. Make sure to tick “Include Skin Weight” in the Options/Rigging tab if it is not already preselected. But “Include joint positions” should not be ticked.

Avatar Mesh in OpenSim after Texturing for Bakes on Mesh

Include image incorporating the relaxed hand Pose script and animation, and after texturing the mesh for Bakes on Mesh (BoM).

This entry was posted in OpenSim, Second Life and tagged , , , . Bookmark the permalink.

1 Response to Ruth2 v4 – Rigging in Blender

  1. bat says:

    Gaia Clary of Avalab/Avastar fame (, has provided armatures/skeleton and sample body meshes for versions of Blender up to 2.7*

    She indicates (on Discord’s RuthAndRoth channel) that they take the skeleton data from the SL Default Viewer’s definition files which she believes those to be absolutely accurate, as those files are used in the viewer.

    She indicates that you can download an accurate SL skeleton for Blender 2.5 up to 2.7 on their website at – they have not (yet) been converted for Blender 3.2.

    This information on using meshes without Avastar may be useful…

    But Ada Radius made further notes on this…

    It’s more complex than what Gaia posted. There are two sets of definitions in avatar_skeleton.xml, plus morphs in avatar.lad.xml that define some of the female to male, and more code in other bits of software that we haven’t yet nailed and was never documented by LL. The vertex weights are defined in the llm files, without volume bones, because inworld avatar processing is different than avatar attachment processing. morphs vs rigging.

    The skeleton Gaia mentions is accurate, up to a point but doesn’t have the volume bones + bento bones in the same armature for both male and female, and that’s what we need for R&R. Game engines process bones as joints (points with rotation), so the bone length gets discarded for optimization purposes. Blender uses bone length as part of its definition. The avatar_skeleton.xml definitions also have mismatches, left to right symmetry as well as from joint to joint.

Comments are closed.