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.
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.
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.
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.
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.
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.
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++.
- Cree una nueva clase de C++ con archivo o nueva clase de C++...
- Crear un peón
- 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);
- 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.