Unreal 中的 HP Reverb G2 控制器

開始使用

重要

需要 Unreal Engine 4.26 和 OpenXR 或EamVR 才能存取 HP 動作控制器外掛程式,您必須使用 HP Reverb G2 控制器。

啟用 HP 動作控制器外掛程式

互動設定檔和控制器對應位於 HP 動作控制器外掛程式中,必須啟用此外掛程式,才能將控制器對應公開至 Unreal 的輸入系統。

啟用 OpenXRHPController 外掛程式

移植現有的 OpenXR 應用程式

如果 HP Mixed Reality 控制器的遊戲中沒有任何控制器系結存在,OpenXR 執行時間會嘗試將現有的系結重新對應至作用中控制器。 在此情況下,遊戲具有 Hps Touch 系結,而且沒有 HP Mixed Reality控制器系結。

當沒有任何控制器系結存在時重新對應現有的系結

事件仍會引發,但如果遊戲需要使用控制器特定的系結,例如右功能表按鈕,則必須使用 HP Mixed Reality互動設定檔。 每個動作可以指定多個控制器系結,以更妥善地支援不同的裝置。

使用多個控制器系結

新增輸入動作對應

定義新的動作,並對應至 HP Mixed Reality Controller 區段中的其中一個按鍵按下。

定義新的動作和對應

HP Reverb G2 控制器也有類比控點,可用於軸對應與「壓力軸」系結。 另外還有一個[壓縮系結],當完全按下底框按鈕時,應該用於動作對應。

使用壓力軸系結

新增輸入事件

以滑鼠右鍵按一下藍圖,然後從輸入系統搜尋新的動作名稱,以新增這些動作的事件。 在這裡,藍圖會以列印字串輸出目前的按鈕和軸狀態來回應事件。

藍圖回應事件並輸出目前的按鈕和座標軸狀態

使用輸入

遊戲輸入專案設定中的相同動作和座標軸對應可從 C++ 使用。

  1. 使用 File/New C++ 類別建立新的 C++ 類別...

建立新的 C++ 類別

  1. 建立分頁

建立分頁

  1. 在專案的 Visual Studio 方案中,尋找新的 Pawn 類別,並將其設定為輸入。
  • 首先,在建構函式中,將 AutoPossessPlayer 設定為第一個玩家,以將輸入路由傳送至分頁。
AMyPawn::AMyPawn()
{
    PrimaryActorTick.bCanEverTick = true;

    AutoPossessPlayer = EAutoReceiveInput::Player0;
}
  • 然後在 SetupPlayerInputComponent 中,將動作和座標軸事件系結至專案的輸入設定中的動作名稱。
void AMyPawn::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
    Super::SetupPlayerInputComponent(PlayerInputComponent);

    PlayerInputComponent->BindAction("X_Button", IE_Pressed, this, &AMyPawn::XPressed);
    PlayerInputComponent->BindAction("L_GripAxis", this, &AMyPawn::LeftGripAxis);
}
  • 將回呼函式新增至 類別:
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);
    }
}
  • 使用回呼函式定義更新 Pawn 的標頭:
private:
    void XPressed();
    void LeftGripAxis(float AxisValue);
  1. 從 Visual Studio 編譯,以使用新的分頁啟動編輯器。 將分頁從內容瀏覽器拖放到遊戲,而分頁現在會在按下輸入時執行回呼。

另請參閱