Contrôleurs HP Reverb G2 dans Unreal
Prise en main
Important
Unreal Engine 4.26 et OpenXR ou SteamVR sont nécessaires pour accéder au plug-in HP Motion Controller dont vous aurez besoin pour travailler avec les contrôleurs HP Reverb G2.
Activation du plug-in HP Motion Controller
Les mappages de profil d’interaction et de contrôleur se trouvent dans le plug-in HP Motion Controller, qui doit être activé pour exposer les mappages de contrôleur au système d’entrée d’Unreal.
Portage d’une application OpenXR existante
S’il n’existe aucune liaison de contrôleur dans le jeu pour hp Mixed Reality Controller, le runtime OpenXR tente de remapper les liaisons existantes au contrôleur actif. Dans ce cas, le jeu a des liaisons Oculus Touch et aucune liaison HP Mixed Reality Controller.
Les événements se déclenchent toujours, mais si le jeu doit utiliser des liaisons spécifiques au contrôleur, comme le bouton de menu droit, le profil d’interaction HP Mixed Reality doit être utilisé. Plusieurs liaisons de contrôleur peuvent être spécifiées par action pour mieux prendre en charge différents appareils.
Ajout de mappages d’actions d’entrée
Définissez une nouvelle action et mappez à l’une des touches de touche dans la section HP Mixed Reality Controller.
Le contrôleur HP Reverb G2 dispose également d’une poignée analogique, qui peut être utilisée dans les mappages d’axes avec la liaison « Axe de compression ». Il existe une liaison Squeeze distincte, qui doit être utilisée pour les mappages d’actions lorsque le bouton de poignée est entièrement enfoncé.
Ajout d’événements d’entrée
Cliquez avec le bouton droit sur un blueprint et recherchez les nouveaux noms d’action à partir du système d’entrée pour ajouter des événements pour ces actions. Ici, le blueprint répond aux événements avec une chaîne d’impression sortant le bouton actuel et l’état de l’axe.
Utilisation de l’entrée
Les mêmes mappages d’action et d’axe dans les paramètres de projet d’entrée du jeu peuvent être utilisés à partir de C++.
- Créer une classe C++ avec file/nouvelle classe C++...
- Créer un pion
- Dans la solution Visual Studio du projet, recherchez la nouvelle classe Pawn et configurez-la pour l’entrée.
- Tout d’abord, dans le constructeur, définissez AutoPossessPlayer sur le premier lecteur pour acheminer l’entrée vers le pion.
AMyPawn::AMyPawn()
{
PrimaryActorTick.bCanEverTick = true;
AutoPossessPlayer = EAutoReceiveInput::Player0;
}
- Ensuite, dans SetupPlayerInputComponent, liez les actions et les événements d’axe aux noms d’actions à partir des paramètres d’entrée du projet.
void AMyPawn::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
Super::SetupPlayerInputComponent(PlayerInputComponent);
PlayerInputComponent->BindAction("X_Button", IE_Pressed, this, &AMyPawn::XPressed);
PlayerInputComponent->BindAction("L_GripAxis", this, &AMyPawn::LeftGripAxis);
}
- Ajoutez les fonctions de rappel à la classe :
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);
}
}
- Mettez à jour l’en-tête de Pawn avec les définitions de fonction de rappel :
private:
void XPressed();
void LeftGripAxis(float AxisValue);
- Compilez à partir de Visual Studio pour lancer l’éditeur avec le nouveau pion. Faites glisser et déposez le pion à partir du navigateur de contenu dans le jeu et le pion exécute désormais les rappels lorsque l’entrée est enfoncée.