Develop

Precompute Visemes to Save CPU Processing with Unreal

Updated: Apr 17, 2026
End-of-Life Notice for Oculus Lipsync Plugin
The Oculus Lipsync Plugin is in end-of-life stage and will not receive further updates or support. For audio-driven lip sync, the Movement SDK provides equivalent viseme functionality through audio-based face tracking, delivering the same 15 visemes via the XR_META_face_tracking_visemes OpenXR extension.
The OculusXRMovement module in the Movement SDK supports both visual-based face tracking (Meta Quest Pro) and audio-based face tracking (Meta Quest 2 and later). Audio-based face tracking generates visemes from audio input, providing a migration path from the Oculus Lipsync Plugin.
This documentation is no longer being updated and is subject to removal.
You can save a lot of processing power by pre-computing the visemes for recorded audio instead of generating the visemes in real-time. This is particularly useful for lip synced animations on non-playable characters or in mobile apps as there is less processing power available.

Generate the Visemes

To Generate LipSync Sequence:
  • Import an audio file to your Unreal project
  • Right click the audio file and choose Generate LipSyncSequence
The following image shows an example:

Apply the Visemes

  • Add an OVRLipSyncPlaybackActorComponent to your scene. The OVRLipSyncPlaybackActorComponent works the same as an OVRLipSyncLiveActorComponent, but reads the visemes from a pre-computed sequence asset instead of generating them in real-time.
  • Set the sequence of the OVRLipSyncPlaybackActorComponent to the previously precomputed lipsync asset. The following image shows an example: