Compartir a través de


Controladores HP Reverb G2 en Unreal

Introducción

Importante

Unreal Engine 4.26 y OpenXR o SteamVR son necesarios para acceder al complemento HP Motion Controller, deberá trabajar con los controladores HP Reverb G2.

Habilitación del complemento HP Motion Controller

El perfil de interacción y las asignaciones de controladores están en el complemento HP Motion Controller, que debe estar habilitado para exponer las asignaciones de controladores al sistema de entrada de Unreal.

Habilitación del complemento OpenXRHPController

Migración de una aplicación de OpenXR existente

Si no existe ningún enlace de controlador en el juego para hp Mixed Reality controller, el runtime de OpenXR intentará reasignar los enlaces existentes al controlador activo. En este caso, el juego tiene enlaces Oculus Touch y ningún enlace hp Mixed Reality controller.

Reasignación de enlaces existentes cuando no existe ningún enlace de controlador

Los eventos se 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 asígnela a 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 Squeeze 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 Squeeze

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 botón actual y el estado del eje.

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

Uso de entradas

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

  1. Crear una nueva clase de C++ con file/new C++ Class...

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 de 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 del peón 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á las devoluciones de llamada cuando se presione la entrada.

Vea también