HP Reverb G2-Controller in Unreal
Erste Schritte
Wichtig
Unreal Engine 4.26 und OpenXR oder SteamVR sind 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 werden muss, um die Controllerzuordnungen für das Eingabesystem von Unreal verfügbar zu machen.
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 Controllerbindungen.
Die Ereignisse werden weiterhin ausgelöst, aber wenn das Spiel controllerspezifische Bindungen verwenden muss, z. B. die rechte Menüschaltfläche, muss das HP-Mixed Reality-Interaktionsprofil verwendet werden. Pro Aktion können mehrere Controllerbindungen angegeben werden, um verschiedene Geräte besser zu unterstützen.
Hinzufügen von Eingabeaktionszuordnungen
Definieren Sie eine neue Aktion, und ordnen Sie eine Zuordnung zu einem der Tastendrücke im Abschnitt HP Mixed Reality Controller zu.
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 Grifftaste vollständig gedrückt ist.
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 antwortet die Blaupause auf die Ereignisse mit einer Druckzeichenfolge, die 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.
- Erstellen Sie eine neue C++-Klasse mit File/New C++-Klasse...
- Erstellen eines Pfotens
- 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 die Eingabe 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);
- Kompilieren Sie aus Visual Studio, um den Editor mit dem neuen Pawn zu starten. Ziehen Sie den Pawn aus dem Inhaltsbrowser in das Spiel, und der Pawn führt nun die Rückrufe aus, wenn die Eingabe gedrückt wird.