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.

Activation du plug-in OpenXRHPController

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.

Remapping des liaisons existantes lorsqu’il n’existe aucune liaison de contrôleur

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.

Utilisation de plusieurs liaisons de contrôleur

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.

Définition de nouvelles actions et mappages

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é.

Utilisation des liaisons d’axe Squeeze

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.

Blueprint répondant aux événements et sortant l’état actuel du bouton et 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++.

  1. Créer une classe C++ avec file/nouvelle classe C++...

Création d’une classe C++

  1. Créer un pion

Création d’un pion

  1. 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);
  1. 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.

Voir aussi