C Specification

The XrFaceTrackingVisemesMETA structure is defined as:

// Provided by XR_META_face_tracking_visemes
typedef struct XrFaceTrackingVisemesMETA {
    XrStructureType    type;
    const void*        next;
    XrBool32           isValid;
    float              visemes[XR_FACE_TRACKING_VISEME_COUNT_META];
} XrFaceTrackingVisemesMETA;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to the next structure in a structure chain.

  • isValid is an XrBool32 which indicates that the visemes are valid.

  • visemes is an array of float that will be filled with visemes.

Description

The XrFaceTrackingVisemesMETA structure returns the visemes. The application can add XrFaceTrackingVisemesMETA to the next chain of the XrFaceExpressionWeights2FB structure when calling xrGetFaceExpressionWeights2FB.

The runtime should set isValid to XR_FALSE, if any of the following are true:

  • the face tracker failed to estimate visemes

  • the application lost focus

  • the consent for audio recording was denied.

If isValid is XR_FALSE, the runtime must also set all elements of visemes to zero.

Otherwise, if the runtime sets isValid to XR_TRUE, the runtime must update the visemes array ordered so that the array elements are indexed using the corresponding viseme enumeration XrFaceTrackingVisemeMETA.

Each value in the visemes array must be between 0.0 and 1.0 (inclusive), and the values represent a probability. If isValid is XR_TRUE, the summation of all elements in the visemes array must be 1.0.

If the application only wants visemes without blend shapes, as a change in the behavior of the underlying extension, it may assign 0 to XrFaceExpressionWeights2FB::weightCount and XrFaceExpressionWeights2FB::confidenceCount when calling xrGetFaceExpressionWeights2FB. In this case, the application can assign NULL to XrFaceExpressionWeights2FB::weights and XrFaceExpressionWeights2FB::confidences.

Valid Usage (Implicit)

See Also

Document Notes

For more information, see the OpenXR Specification

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright 2014-2026 The Khronos Group Inc.