What are blendshapes / morph targets / shape keys
Blendshapes, also known as morph targets or shape keys depending on the software used, are a technique used in computer graphics, particularly in 3D animation and modeling. They involve creating a series of predefined shapes or poses of a character’s mesh, which can then be smoothly transitioned between to create different facial expressions or deformations.
ARKit & Oculus Visemes
Ready Player Me avatars can be downloaded with blend shapes that are compatible with real-time facial tracking and animation systems like Apple’s ARKit and Oculus LipSync API.
For Apple’s ARKit, Ready Player Me avatars come with a blendshape based facial rig that supports Apple’s ARFaceAnchor.BlendShapeLocation API. This makes it possible to build applications that use real-time facial tracking with Ready Player Me avatars. You can find the full list in the Apple ARKit section of the documentation.
For Oculus LipSync, Ready Player Me avatars come with a blend shape based facial rig that supports the Oculus Lipsync API. All avatars have the viseme blend shapes required for real-time audio-based facial animation. This makes it possible to build applications that use real-time facial animation based on audio input with Ready Player Me avatars. You can find the full list in the Oculus OVR LipSync section of the documentation.
In addition to these, Ready Player Me also provides additional blend shapes like mouthOpen, mouthSmile, eyesClosed, eyesLookUp, and eyesLookDown that you can use for more detailed and personalized facial animations.
Downloading Ready Player Me Avatars with Blendshapes / Morph Targets
By default, our avatars are generated without blendshapes for the sake of performance and optimization. If you are not going to make use of blendshapes in your project, you will probably benefit from working with a lighter .glb file.
If you want to include blendshapes in your downloaded avatar, you have to make use of the Ready Player Me REST API. In the URL for the GET request, you can specify the morph targets you want to include by adding the ?morphTargets
parameter.
This parameter accepts a comma-separated list of individual morph targets or morph target standard groups to include on the avatar. The expected values of the ?morphTargets
parameter are “Default”, “ARKit”, “Oculus Visemes”, and/or any individual morph target within those standard groups.
Examples:
- Use a selection of morph targets
- Use morph targets standard groups
- Use a selection of morph targets and a standard group
Blendshapes in Unity and Unreal
The Unity and Unreal SDK provide functionality for loading avatars with specific configurations, like blendshapes, quality, etc. This allows you to change the Avatar Configuration parameters like blendshapes to be applied when loading avatars.
More information on how to do it in Unity can be found here: Avatar Configuration | Ready Player Me
More information on how to do it in Unreal can be found here: Avatar configuration | Ready Player Me
FAQ/Troubleshooting
I downloaded an avatar with blendshapes / morph targets but they don’t work.
Are you downloading the avatar with ?lod=2
? Level of Detail 2 retains only 25% of the original triangle count. This particular low detail setting is meant to show the avatars in distance, not close to the camera, where the face morphs are rendered practically useless. For performance reasons, these morph targets would be empty and not expected to work.
My avatars used to come with blendshapes included and now they don’t.
At the end of 2023, based on developer feedback asking for lighter avatar files to increase performance, we took the decision to stop including blendshapes by default in our avatars. Now, you should specify in your API request which blendshapes you would like to have your avatar downloaded with, otherwise they will come with none. For more information read the section “Downloading Ready Player Me Avatars with Blend Shapes / Morph Targets” of this very same post.
We will keep this post updated with the questions you post as comments here. Please, don’t hesitate to provide feedback or suggestions, we will share them across the team!