This blog post describes experiments with embedding the Ready Player Me Avatar Creator into an application. Initially I wanted to create a reliable and repeatable workflow to take Ready Player Me avatars into Second Life or OpenSim. This process used Ready Player Me, .glb avatar download, conversion to FBX and texture extraction using Blender, reposing the avatar into T-Pose using Mixamo, reimporting the resulting avatar back into Blender, and then Mixamo skeleton conversion to a suitable armature for Second Life and OpenSim using Bento Buddy (a paid addon to Blender) and export of the Collada (.dae) also using Blender/Bento Buddy. The Collada export from Blender even using the tick box for SL/OpenSim use just does not work since the skeleton is not mapped in a way that works with Second Life and OpenSim. All tools are free expect for the Bento Buddy addon.
Luckily while exploring this and discussing the process with Ready Player Me developers on Discord, the capabilities of the Ready Player Me Avatar Creator were being refined and an “Avatar API” was being developed and tested. It was formally given a first release on 28-Sep-2022. This Avatar API allows the download URL for Ready Player Me avatars to be given parameters which allow a number of useful things, including obtaining the avatar directly in T-Pose hence avoiding needing to go via Mixamo for this step. This simplified the workflow I was seeking and meant that a separate application was not necessary.
The experimentation and current simplified process are described in this blog post:
https://blog.inf.ed.ac.uk/atate/2022/09/08/using-ready-player-me-avatars-in-second-life-and-opensim/
- Tested in Blender 3.2.0 and 3.3.0
Check the glTF Import/Export and FBX Import/Export Addins are enabled (they usually are by default or tick them in Edit -> Preferences -> Add-ons). - Tested in Bento Buddy – bentobuddy_v3_0_5_blender_2_8x_to_3x_fix1.zip (Paid Add-on)
- Tested in Second Life Viewer 6.6.3 and Firestorm Viewer OS 6.6.3
Simplified Workflow for Avatar using Multiple Faces and in T-Pose
- 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
- To fix the issue of the fingers being deformed in a relaxed pose, 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 skeleton to be in front in Viewport Display.
- Rotate the avatar finger and thumb bones to closely match the reference rig. Its best not to scale or move them to avoid bad hand positions.
- Note that you can save this “T-Pose with Fingers Splayed” pose for use in future via Bento Buddy Animation -> Enable Posing Library
- 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.
- Under Bento Buddy Character Converter, load the mixamo_no_prefix 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”
- Attach the uploaded mesh avatar (e.g. to Avatar Center)
- 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
- 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
- You could add a hand relax low priority pose into the mesh
Ready Player Me Subdomain Experiment
- https://aiaustin.readyplayer.me
- https://aiaustin.readyplayer.me/avatar?clearCache (clear cache)
- Simple Web Example
Ready Player Me Documentation
- Ready Player Me Documentation
- Avatar API – Initial Release 28-Sep-2022
- Embedding the Avatar Creator in a Web App (and ?clearCache parameter)
Ready Player Me Avatar API – 3D (.glb), 2D (.png) and JSON (.json)
https://api.readyplayer.me/v1/avatars/63288f8314e8ef684bac27c4.glb?textureAtlas=none&pose=T (Multiple faces and separate materials, T-Pose)
https://api.readyplayer.me/v1/avatars/63288f8314e8ef684bac27c4.glb?textureAtlas=1024&pose=T (Single face and one material (1024 max.), T-Pose)
Venturebeat blog post describing the Avatar API, Dean Takahashi, 11-Oct-2022.
Ready Player Me Avatar in OpenSim