Converting Ready Player Me Avatars for Second Life and OpenSim

This blog post provides resources and information for a route to take Ready Player Me avatars through Blender into Second Life and OpenSim to travel across the Hypergrid.

Workflow for Conversion

  • Obtain Ready Player Me avatar .glb URL.
  • Download avatar URL with ?textureAtlas=none&pose=T on the end.
  • Start Blender and delete the default camera and light.
  • Import .glb to Blender and check avatar is in T-Pose.
  • Extract textures via Texture Paint tab, select each texture via the drop down menu and then Image -> Save As.

Export FBX for other platforms such as Unity

This is a good point at which to export an FBX version of the avatar if you wish to use it in other platforms, such as Unity. The settings for “Add Leaf Bones” box and the “Bake Animation” box for FBX Export appear not to matter, so defaults are fine. The FBX avatar and its textures can be inserted into a Unity project’s assets directly. For Unity I suggest uploading the textures to a folder first, accepting any recommendation to “Fix” the normal map images. Then add the FBX model to ensure that the materials all are correctly setup with bumpiness normals.

Set Finger Pose to Second Life Splayed Fingers

The Ready Player me T-Pose has the fingers in a line. Second Life and OpenSim T-Pose rest pose has the fingers widely splayed. The steps in the bullets below should be undertaken BEFORE doing the character conversion. Missing out these steps will still give a reasonable avatar but leave the fingers deformed.

  • Add (temporarily) the Bento Buddy Rig Creation Safe Rig which have splayed fingers as expected in Second Life and OpenSim) to act as a comparison to the Ready Player me T-Pose which has the fingers straight.
  • Enter Blender Pose Mode. It is also useful to set the skeleton to be in front in Viewport Display.
  • Rotate the bones of the avatar’s fingers and thumbs to closely match the reference rig. It is best not to scale or move them to avoid bad hand positions. You can mirror the changes on one hand to the opposite hand using the “Pose Options” setting for “X-Axis Mirror”.
  • Select the avatar “Armature” and under Bento Buddy Rig Tools click the “Rebind associated mesh” button.
  • Check that the Pose and Rest Pose for the mesh are now identical (with splayed fingers).
  • Remove the temporary Bento Buddy reference safe rig.


You can save the splayed fingers T-Pose in the Bento Buddy Library for later reapplication to simplify these steps on other avatars. Use the Bento Buddy Animation tab -> Enable Posing Library. Select the avatar and “Add Pose” from the rig, rename it to something meaningful (e.g. “T-Pose Splayed Fingers”) and “Save Lib” to save a .bpl (Bento Pose Library) file. You can then skip the steps above by loading the .bpl pose library file and applying the pose to the avatar (note to make the Pose Apply button to be active you might have to click off the Armature in the Blender Outliner and and back on it). Though its safest to restrict the change of bone positions to just the thumbs and fingers which you changed by selecting them and using the Posing Library option to “Apply to selected bones only”. You can streamline that procedure by manually editing the .bpl file to only leave in the “pose_matrix” positions for the fingers and thumbs.
[Resources here https://openvce.net/resources/downloads/ReadyPlayerMe/]

Convert Avatar Rig/Armature to Second Life/OpenSim version

  • Under Bento Buddy Character Converter, load the mixamo_no_prefix.bbm map (Ready Player Me avatars have a Mixamo compatible skeleton) and click Convert
  • Use Bento Buddy to export for Second Life/OpenSim (select all three options including Project Full Rig)
  • Import to Second Life/OpenSim ticking both “Include Skin Weights” and “Include Joint Positions”

Note that there is also a readyplayerme.bbm. After 1-Oct-2022 versions of Bento Buddy will likely have readyplayerme.bbm (28KB) set as a copy of mixamo_no_prefix.bbm (28KB), but before that readyplayerme.bbm (2KB) would not give a full conversion and would leave the hands unconverted.

Prepare the Avatar

  • Attach the uploaded mesh avatar (e.g. to Avatar Center)
  • Change the Description field of the avatar mesh to include the licence information:
    CC BY-NC 4.0 https://readyplayer.me
  • As with any mesh avatar in Second Life or OpenSim, you will need to add an “Alpha Mask” to make sure the underlying standard avatar does not show through the mesh. This should make all parts transparent (Lower, Upper, Head, Eye and Hair)

Texture the Avatar in Second Life or OpenSim

  • Texture the mesh faces using the Diffuse textures and Normal Maps (for bumpiness). The shininess/metallic textures don’t work well and may be omitted

Texture with diffuse textures and add bumpiness “normal” textures to the mesh inworld. You probably don’t want to use (yet) the Metallic/Roughness/Shininess (PBR) where that is provided for soem faces. Though Physics based Rendering (PBR) is under development for Second Life, so you may wish to keep the textures to hand.

To texture the teeth you may need to Disable the Camera Constraints (Preferences -> Advanced) to be able to swing the camera inside the mesh head to select that mesh part.

The hair colour is a simple coloured image. You can alternatively change the hair colour using the “Blank” texture and setting a colour.

Avatar .glb files that are downloaded may have a single face with three textures that represent the texture (diffuse), normal map and metallic/shininess (PBR), or maybe have multiple faces for hair, face, skin, top and bottom. The single face format does not allow hiding of the hair, glasses, etc for in world customisation as described below.

Hand Relax Background Pose

  • You could add a hand relax low priority pose into the mesh
  • To “relax” the hands when not in a pose you could use the RuthAndRoth “bentohandrelax” script and “bentohandrelaxP1” animation. These are available in the Ruth2 v4 and Roth2 v2 distributions in Second Life and OpenSim or via the (GitHub RuthAndRoth “Extras” repository Animations Directory).

In-world Customisation

  • Optionally make some parts transparent (such as hair and glasses, hats, etc) to allow use of in world attachments for those parts
  • Try the Avatar Shape sliders as many will work

A number (but not all) the “Edit Shape” sliders work on Ready Player Me avatars to adjust the general shape.

Some parts such as the hair, accessories such as glasses, etc can be set to 100% transparent and the underlying avatar shows through (such as setting a bald head). This can allow some measure of in-world customisation. It also allows standard avatar attachments such as mesh and flexi hair to be added on without initially uploading a bald headed Ready Player Me avatar.

The head and body parts and textures cannot be altered. Facial hair, eyebrow details, make-up, etc are all baked onto the skin textures which have a unique mapping for Ready Player Me avatars. Hence tattoos and other elements that can be applied to skins in Second Life or OpenSim will not work.

The eye texture can be changed, even to a Bakes on Mesh (BoM) Eye (ensure you use an underlying avatar mask that allows the eye to show in that case). The normal eye texture iris image is slightly larger than the standard Ready Player Me one, so you may wish to adjust the image horizontal and vertical scale to (say) 1.1.

Licence Details

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

1 Response to Converting Ready Player Me Avatars for Second Life and OpenSim

  1. bat says:

    Ready Player Me advice on FBX export for use in Unreal Engine (UE) gives information on the RPM skeleton/Armature not being fully compatible with Mixamo and could be relevant to more general conversions…

    https://docs.readyplayer.me/ready-player-me/integration-guides/unreal-sdk/blender-to-unreal-export

    This essentially suggests FBX Export settings to use and suggests going via a Mixamo upload and download intermediate step to improve the compatibility of the skeleton/armature.

Comments are closed.