Kontrolery HP Reverb G2 v unrealu
Začínáme
Důležité
Unreal Engine 4.26 a buď OpenXR nebo SteamVR je vyžadován pro přístup k modulu plug-in HP Motion Controller, který budete potřebovat pro práci s ovladači HP Reverb G2.
Povolení modulu plug-in HP Motion Controller
Mapování profilu interakce a kontroleru jsou v modulu plug-in HP Motion Controller, který musí být povolený, aby bylo možné vystavit mapování kontroleru vstupnímu systému Unreal.
Přenos existující aplikace OpenXR
Pokud ve hře pro hp Mixed Reality Controller neexistují žádné vazby ovladače, modul runtime OpenXR se pokusí přemapovat existující vazby na aktivní řadič. V tomto případě hra má Oculus Touch vazby a žádné vazby HP Mixed Reality Controller.
Události se budou stále aktivovat, ale pokud hra potřebuje použít vazby specifické pro ovladač, jako je pravé tlačítko nabídky, musí být použit profil interakce HP Mixed Reality. Pro každou akci je možné zadat více vazeb kontroleru, aby se lépe podporovala různá zařízení.
Přidání mapování vstupních akcí
Definujte novou akci a namapujte ji na jedno ze stisků kláves v části ovladač HP Mixed Reality Controller.
Ovladač HP Reverb G2 má také analogový úchyt, který lze použít v mapování os pomocí vazby "Zmáčknout osu". K dispozici je samostatná vazba Squeeze, která by se měla použít pro mapování akcí při úplném stisknutí tlačítka úchytu.
Přidání vstupních událostí
Klikněte pravým tlačítkem na podrobný plán a vyhledejte nové názvy akcí ze vstupního systému, abyste pro tyto akce přidali události. Zde podrobný plán reaguje na události pomocí tiskového řetězce výstupu aktuálního tlačítka a stavu osy.
Použití vstupu
Stejné mapování akcí a os v nastavení vstupního projektu hry lze použít z jazyka C++.
- Vytvořit novou třídu C++ se souborovou nebo novou třídou jazyka C++...
- Vytvoření pěšce
- V řešení projektu v sadě Visual Studio najděte novou třídu Pawn a nakonfigurujte ji pro vstup.
- Nejprve v konstruktoru nastavte AutoPossessPlayer na první přehrávač, který směruje vstup do zastavce.
AMyPawn::AMyPawn()
{
PrimaryActorTick.bCanEverTick = true;
AutoPossessPlayer = EAutoReceiveInput::Player0;
}
- Potom v SetupPlayerInputComponent vytvořte vazbu akcí a událostí osy na názvy akcí z nastavení vstupu projektu.
void AMyPawn::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
Super::SetupPlayerInputComponent(PlayerInputComponent);
PlayerInputComponent->BindAction("X_Button", IE_Pressed, this, &AMyPawn::XPressed);
PlayerInputComponent->BindAction("L_GripAxis", this, &AMyPawn::LeftGripAxis);
}
- Přidejte funkce zpětného volání do třídy :
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);
}
}
- Aktualizujte hlavičku pawn s použitím definic funkce zpětného volání:
private:
void XPressed();
void LeftGripAxis(float AxisValue);
- Kompilujte ze sady Visual Studio a spusťte editor s novým pěšcem. Přetáhněte pěšec z prohlížeče obsahu do hry a pěšec teď při stisknutí vstupu spustí zpětná volání.