We’re super excited to release a preview Studio beta for Dynamic Heads! We are only releasing a preview today of the tech and functionality that will be made available in experiences sometime next year.
A Dynamic Head is a new avatar head type that supports facial animation! The new Dynamic Head schema standardizes a set of controls that will allow Avatars on Roblox to play facial animations and trigger facial expressions.
Here are some examples of what you can do with a dynamic head:
Set a mood which will be your static face. For example, you set a happy face so you walk around happy all the time
Trigger an emote that will combine a face and body animation. This means when you dance or cheer, your face expression will match your body animation
Equip dynamic accessories. These are face and head accessories that will deform with your facial expressions. For example, your beard will adjust when you smile
Today, we are only releasing a preview of the tech and functionality that will be made available in experience next year. Below we have linked documentation and example places that will allow you to:
Familiarize yourself with the new Dynamic Head schema and the addition of the FaceControls instance to the DataModel
Inspect the Head MeshPart and play around with the FaceControls instance in the example place
Try out animating the face within Studio using the Animation Editor
We have set up two example places for you to try Dynamic Heads
To use facial animation please follow the steps below:
- Download example RBXL files from this link
- Open Studio, navigate to File > Beta Features > Facial Animation and check the box
- Restart Studio
- Open one of the example RBXL file from File > Open From File
As mentioned earlier, this is a preview studio beta for Dynamic Heads. Next year, we will do a full Studio Release and add functionality that can be implemented in your experiences!
Thank you for all the amazing hard work from the engineers and technical artists that contributed towards this studio-beta release *
Expand for FAQ
- A: In order to try out facial animation you need to open the example place in Studio, turn on the “Facial Animation” beta feature, and restart.
- A: Not yet! This release is a preview of the tech and functionality we’ll be releasing next year. In the meantime you can explore the documentation, familiarize yourself with the addition of the FaceControls instance in the data model, and play around with facial animation within the Studio beta feature!
- A: We’re working hard to optimize performance and we hope to release this functionality next year with little to no hit on performance. In the current release, the FaceControls instance drives the BoneInstance of the Dynamic heads and as such performance is tied to the number of bones in the Dynamic head rig.
- A: Next year we will release templates, tools, documentation, and tutorials that will help you make new Dynamic Heads for your experience.
Q: If I make a new facial animation for a particular Dynamic Head, do I need to re-create the facial animation for a different head?
- A: Nope! The beauty of the FaceControls API is that we’re standardizing all the controls that move the face. This means that every Dynamic Head could be animated using the same controls and the same facial animation will work with every Dynamic Head that follows this new schema.
- A: The example place has Dynamic Heads with 31 bones. While we don’t expect much degradation in the run time performance (FPS), the join time for a game might be impacted slightly with rigs that have 100’s of bones.
- A: The FaceControls API can be used to create new face animations in the Animation Editor. Furthermore, plugins can change the FACS values through the code.
- A: The underlying bones in the Dynamic Head rig are currently exposed in the Data Model but this might change in the future. In fact, these bones are procedurally driven by FaceControls and hence cannot be directly animated.
- A: Currently there is no easy process to do this. Next Year we will release tools, documentation, and tutorials that will help you make your existing head dynamic.
- A: Yes, as long as the script is running as a plugin.