Eye Expression

VIVE Wave™ plugin supports the Eye Expression feature. By following this guide you can retrieve the Eye Expression values as below illustrations.

  1. LEFT_BLINK: This blend shape influences blinking of the right eye. When this value goes higher, left eye approaches close.
../_images/00.XR_EYE_EXPRESSION_LEFT_BLINK_HTC1.png
  1. LEFT_WIDE: This blend shape keeps left eye wide and at that time LEFT_BLINK value is 0.
../_images/01.XR_EYE_EXPRESSION_LEFT_WIDE_HTC1.png
  1. RIGHT_BLINK: This blend shape influences blinking of the right eye. When this value goes higher, right eye approaches close.
../_images/02.XR_EYE_EXPRESSION_RIGHT_BLINK_HTC1.png
  1. RIGHT_WIDE: This blend shape keeps right eye wide and at that time RIGHT_BLINK value is 0.
../_images/03.XR_EYE_EXPRESSION_RIGHT_WIDE_HTC1.png
  1. LEFT_SQUEEZE: The blend shape closes eye tightly and at that time LEFT_BLINK value is 1.
../_images/04.XR_EYE_EXPRESSION_LEFT_SQUEEZE_HTC1.png
  1. RIGHT_SQUEEZE: The blend shape closes eye tightly and at that time RIGHT_BLINK value is 1.
../_images/05.XR_EYE_EXPRESSION_RIGHT_SQUEEZE_HTC1.png
  1. LEFT_DOWN: This blendShape influences the muscles around the left eye, moving these muscles further downward with a higher value.
../_images/06.XR_EYE_EXPRESSION_LEFT_DOWN_HTC1.png
  1. RIGHT_DOWN: This blendShape influences the muscles around the right eye, moving these muscles further downward with a higher value.
../_images/07.XR_EYE_EXPRESSION_RIGHT_DOWN_HTC1.png
  1. LEFT_OUT: This blendShape influences the muscles around the left eye, moving these muscles further leftward with a higher value.
../_images/08.XR_EYE_EXPRESSION_LEFT_OUT_HTC1.png
  1. RIGHT_IN: This blendShape influences the muscles around the right eye, moving these muscles further leftward with a higher value.
../_images/09.XR_EYE_EXPRESSION_RIGHT_IN_HTC1.png
  1. LEFT_IN: This blendShape influences the muscles around the left eye, moving these muscles further rightward with a higher value.
../_images/10.XR_EYE_EXPRESSION_LEFT_IN_HTC1.png
  1. RIGHT_OUT: This blendShape influences the muscles around the right eye, moving these muscles further rightward with a higher value.
../_images/11.XR_EYE_EXPRESSION_RIGHT_OUT_HTC1.png
  1. LEFT_UP: This blendShape influences the muscles around the left eye, moving these muscles further upward with a higher value.
../_images/12.XR_EYE_EXPRESSION_LEFT_UP_HTC1.png
  1. RIGHT_UP: This blendShape influences the muscles around the right eye, moving these muscles further upward with a higher value.
../_images/13.XR_EYE_EXPRESSION_RIGHT_UP_HTC1.png

Enable Eye Expression

Before using the Eye Expression, you have to enable the feature from Project Settings > Plugins > Wave VR > Render > Enable Eye Tracking .

../_images/eyeexpression01.png

Blueprint Function Library

VIVE Wave™ plugin provides the Eye Expression interface as the following code which you can find at Plugins > WaveVR > Source > WaveVR > Public > EyeExpression.

UENUM(BlueprintType, Category = "WaveVR|Eye|Expression")
enum class EWaveVREyeExp : uint8
{
        LEFT_BLINK = 0,         // WVR_EyeExpression::WVR_EYEEXPRESSION_LEFT_BLINK
        LEFT_WIDE = 1,          // WVR_EyeExpression::WVR_EYEEXPRESSION_LEFT_WIDE
        RIGHT_BLINK = 2,        // WVR_EyeExpression::WVR_EYEEXPRESSION_RIGHT_BLINK
        RIGHT_WIDE = 3,         // WVR_EyeExpression::WVR_EYEEXPRESSION_RIGHT_WIDE
        LEFT_SQUEEZE = 4,       // WVR_EyeExpression::WVR_EYEEXPRESSION_LEFT_SQUEEZE
        RIGHT_SQUEEZE = 5,      // WVR_EyeExpression::WVR_EYEEXPRESSION_RIGHT_SQUEEZE
        LEFT_DOWN = 6,          // WVR_EyeExpression::WVR_EYEEXPRESSION_LEFT_DOWN
        RIGHT_DOWN = 7,         // WVR_EyeExpression::WVR_EYEEXPRESSION_RIGHT_DOWN
        LEFT_OUT = 8,           // WVR_EyeExpression::WVR_EYEEXPRESSION_LEFT_OUT
        RIGHT_IN = 9,           // WVR_EyeExpression::WVR_EYEEXPRESSION_RIGHT_IN
        LEFT_IN = 10,           // WVR_EyeExpression::WVR_EYEEXPRESSION_LEFT_IN
        RIGHT_OUT = 11,         // WVR_EyeExpression::WVR_EYEEXPRESSION_RIGHT_OUT
        LEFT_UP = 12,           // WVR_EyeExpression::WVR_EYEEXPRESSION_LEFT_UP
        RIGHT_UP = 13,          // WVR_EyeExpression::WVR_EYEEXPRESSION_RIGHT_UP
        MAX,                    // WVR_EyeExpression::WVR_EYEEXPRESSION_MAX
};

UENUM(BlueprintType, Category = "WaveVR|Eye|Expression")
enum class EWaveVREyeExpStatus : uint8
{
        // Initial, can call Start API in this state.
        NOT_START,
        START_FAILURE,

        // Processing, should NOT call API in this state.
        STARTING,
        STOPING,

        // Running, can call Stop API in this state.
        AVAILABLE,

        // Do nothing.
        NO_SUPPORT
};


// To enable the Eye Expression component.
void StartEyeExp();

// To disable the Eye Expression component.
void StopEyeExp();

// Retrieves the Eye Expression component status.
EWaveVREyeExpStatus GetEyeExpStatus();

// Checks if the Eye Expression is available to use.
bool IsEyeExpAvailable();

// Retrieves an eye expression value.
float GetEyeExpValue(EWaveVREyeExp lipExp);

// Retrieves all eye expression data in a float array sorted in the order as EWaveVREyeExp emum.
bool GetEyeExpData(TArray<float>& OutValue);