Freigeben über


HP Reverb G2 Controller in Unreal

Erste Schritte

Wichtig

Unreal Engine 4.26 und entweder OpenXR oder SteamVR ist erforderlich, um auf das HP Motion Controller-Plug-In zuzugreifen, das Sie für die Arbeit mit den HP Reverb G2-Controllern benötigen.

Aktivieren des HP Motion Controller-Plug-Ins

Das Interaktionsprofil und die Controllerzuordnungen befinden sich im HP Motion Controller-Plug-In, das aktiviert sein muss, um die Controllerzuordnungen für das Eingabesystem von Unreal verfügbar zu machen.

Aktivieren des OpenXRHPController-Plug-Ins

Portieren einer vorhandenen OpenXR-App

Wenn im Spiel für den HP Mixed Reality Controller keine Controllerbindungen vorhanden sind, versucht die OpenXR-Runtime, vorhandene Bindungen dem aktiven Controller neu zuzuordnen. In diesem Fall verfügt das Spiel über Oculus Touch-Bindungen und keine HP Mixed Reality Controller-Bindungen.

Neumapping vorhandener Bindungen, wenn keine Controllerbindungen vorhanden sind

Die Ereignisse werden weiterhin ausgelöst, aber wenn das Spiel controllerspezifische Bindungen wie die rechte Menüschaltfläche verwenden muss, muss das HP Mixed Reality Interaktionsprofil verwendet werden. Pro Aktion können mehrere Controllerbindungen angegeben werden, um verschiedene Geräte besser zu unterstützen.

Verwenden mehrerer Controllerbindungen

Hinzufügen von Eingabeaktionszuordnungen

Definieren Sie eine neue Aktion, und ordnen Sie sie einem der Tastendrücke im Abschnitt HP Mixed Reality Controller zu.

Definieren neuer Aktionen und Zuordnungen

Der HP Reverb G2 Controller verfügt auch über einen analogen Griff, der in den Achsenzuordnungen mit der Bindung "Squeeze Axis" verwendet werden kann. Es gibt eine separate Squeeze-Bindung, die für Aktionszuordnungen verwendet werden sollte, wenn die Ziehtaste vollständig gedrückt ist.

Verwenden der Quetschachsenbindungen

Hinzufügen von Eingabeereignissen

Klicken Sie mit der rechten Maustaste auf eine Blaupause, und suchen Sie im Eingabesystem nach den neuen Aktionsnamen, um Ereignisse für diese Aktionen hinzuzufügen. Hier reagiert die Blaupause auf die Ereignisse mit einer Druckzeichenfolge, die den aktuellen Schaltflächen- und Achsenzustand ausgibt.

Blaupause, die auf Ereignisse reagiert und den aktuellen Schaltflächen- und Achsenzustand ausgibt

Verwenden von Eingaben

Die gleichen Aktions- und Achsenzuordnungen in den Eingabeprojekteinstellungen des Spiels können von C++ verwendet werden.

  1. Erstellen Sie eine neue C++-Klasse mit Datei/Neue C++-Klasse...

Erstellen einer neuen C++-Klasse

  1. Erstellen eines Pawn

Erstellen eines Pawns

  1. Suchen Sie in der Visual Studio-Projektmappe des Projekts nach der neuen Pawn-Klasse, und konfigurieren Sie sie für die Eingabe.
  • Legen Sie zunächst im Konstruktor AutoPossessPlayer auf den ersten Player fest, um Eingaben an den Pawn weiterzuleiten.
AMyPawn::AMyPawn()
{
    PrimaryActorTick.bCanEverTick = true;

    AutoPossessPlayer = EAutoReceiveInput::Player0;
}
  • Binden Sie dann in SetupPlayerInputComponent Aktionen und Achsenereignisse an die Aktionsnamen aus den Eingabeeinstellungen des Projekts.
void AMyPawn::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
    Super::SetupPlayerInputComponent(PlayerInputComponent);

    PlayerInputComponent->BindAction("X_Button", IE_Pressed, this, &AMyPawn::XPressed);
    PlayerInputComponent->BindAction("L_GripAxis", this, &AMyPawn::LeftGripAxis);
}
  • Fügen Sie der -Klasse die Rückruffunktionen hinzu:
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);
    }
}
  • Aktualisieren Sie den Pawn-Header mit den Rückruffunktionsdefinitionen:
private:
    void XPressed();
    void LeftGripAxis(float AxisValue);
  1. Kompilieren Sie aus Visual Studio, um den Editor mit dem neuen Pawn zu starten. Ziehen Sie den Bauern aus dem Inhaltsbrowser in das Spiel, und der Pawn führt nun die Rückrufe aus, wenn die Eingabe gedrückt wird.

Siehe auch