Compartir a través de


Controladores de HP Reverb G2 en Unreal

Introducción

Importante

Unreal Engine 4.26 y OpenXR o SteamVR es necesario para acceder al complemento hp Motion Controller que necesitará para trabajar con los controladores HP Reverb G2.

Habilitación del complemento de controlador de movimiento de HP

El perfil de interacción y las asignaciones de controladores se encuentran en el complemento hp Motion Controller, que debe estar habilitado para exponer las asignaciones del controlador al sistema de entrada de Unreal.

Habilitación del complemento OpenXRHPController

Migración de una aplicación OpenXR existente

Si no existen enlaces de controlador en el juego para el controlador de hp Mixed Reality, el tiempo de ejecución de OpenXR intentará reasignar los enlaces existentes al controlador activo. En este caso, el juego tiene enlaces Táctiles y ningún enlace hp Mixed Reality controlador.

Reasignación de enlaces existentes cuando no existen enlaces de controlador

Los eventos seguirán desencadenando, pero si el juego necesita usar enlaces específicos del controlador, como el botón de menú derecho, se debe usar el perfil de interacción de HP Mixed Reality. Se pueden especificar varios enlaces de controlador por acción para admitir mejor diferentes dispositivos.

Uso de varios enlaces de controlador

Adición de asignaciones de acciones de entrada

Defina una nueva acción y asigne una de las pulsaciones de tecla en la sección Controlador de HP Mixed Reality.

Definición de nuevas acciones y asignaciones

El controlador HP Reverb G2 también tiene un agarre analógico, que se puede usar en las asignaciones de ejes con el enlace "Eje de compresión". Hay un enlace De compresión independiente, que se debe usar para las asignaciones de acciones cuando el botón de control está completamente presionado.

Uso de los enlaces del eje Depresión

Adición de eventos de entrada

Haga clic con el botón derecho en un plano técnico y busque los nuevos nombres de acción del sistema de entrada para agregar eventos para estas acciones. Aquí el plano técnico responde a los eventos con una cadena de impresión que genera el estado actual del botón y del eje.

Plano técnico que responde a eventos y genera el estado actual del botón y del eje

Uso de la entrada

Las mismas asignaciones de eje y acción en la configuración del proyecto de entrada del juego se pueden usar desde C++.

  1. Cree una nueva clase de C++ con archivo o nueva clase de C++...

Creación de una nueva clase de C++

  1. Crear un peón

Creación de un peón

  1. En la solución de Visual Studio del proyecto, busque la nueva clase Pawn y configúrela para la entrada.
  • En primer lugar, en el constructor, establezca AutoPossessPlayer en el primer jugador para enrutar la entrada al peón.
AMyPawn::AMyPawn()
{
    PrimaryActorTick.bCanEverTick = true;

    AutoPossessPlayer = EAutoReceiveInput::Player0;
}
  • A continuación, en SetupPlayerInputComponent, enlace acciones y eventos de eje a los nombres de acción desde la configuración de entrada del proyecto.
void AMyPawn::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
    Super::SetupPlayerInputComponent(PlayerInputComponent);

    PlayerInputComponent->BindAction("X_Button", IE_Pressed, this, &AMyPawn::XPressed);
    PlayerInputComponent->BindAction("L_GripAxis", this, &AMyPawn::LeftGripAxis);
}
  • Agregue las funciones de devolución de llamada a la clase :
void AMyPawn::XPressed()
{
    UE_LOG(LogTemp, Log, TEXT("X Pressed"));
}

void AMyPawn::LeftGripAxis(float AxisValue)
{
    if(AxisValue != 0.0f) 
    {
        UE_LOG(LogTemp, Log, TEXT("Left Grip Axis Valule: %f"), AxisValue);
    }
}
  • Actualice el encabezado de pawn con las definiciones de función de devolución de llamada:
private:
    void XPressed();
    void LeftGripAxis(float AxisValue);
  1. Compile desde Visual Studio para iniciar el editor con el nuevo peón. Arrastre y coloque el peón desde el explorador de contenido en el juego y el peón ejecutará ahora las devoluciones de llamada cuando se presione la entrada.

Consulte también