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.
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.
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.
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.
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.
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.
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++.
- Crear una nueva clase de C++ con file/new C++ Class...
- 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 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);
- 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.