Unreal 中的 HP Reverb G2 控制器
快速入門
重要事項
Unreal Engine 4.26 和 OpenXR 或 SteamVR 是存取 HP 運動控制器外掛程式的必要專案,您必須使用 HP Reverb G2 控制器。
移植現有的 OpenXR 應用程式
如果 HP Mixed Reality 控制器的遊戲中沒有控制器系結,OpenXR 運行時間會嘗試將現有的系結重新對應至作用中控制器。 在此情況下,遊戲具有 Oculus Touch 系結,且沒有 HP Mixed Reality 控制器系結。
事件仍會引發,但如果遊戲需要使用控制器特定的系結,例如右側功能表按鈕,就必須使用 HP Mixed Reality 互動配置檔。 您可以針對每個動作指定多個控制器系結,以更妥善地支援不同的裝置。
新增輸入動作對應
定義新的動作,並對應至 HP Mixed Reality Controller 區段中的其中一個按鍵。
HP Reverb G2 控制器也有類比底框,可用於軸對應與「軸軸」系結。 有個別的 Binding 系結,應該在完全按下底框按鈕時用於動作對應。
新增輸入事件
以滑鼠右鍵按兩下藍圖,並從輸入系統搜尋新的動作名稱,以新增這些動作的事件。 在這裡,藍圖會回應事件,並以列印字串輸出目前的按鈕和座標軸狀態。
使用輸入
遊戲輸入項目設定中的相同動作和軸對應可以從C++使用。
- 使用檔案/新C++類別建立新的C++類別...
- 建立邊框
- 在專案的Visual Studio方案中,尋找新的Pawn類別,並將其設定為輸入。
- 首先,在建構函式中,將 AutoPossessPlayer 設定為第一個玩家,以將輸入路由傳送至 pawn。
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);
- 從 Visual Studio 編譯,以使用新的 pawn 啟動編輯器。 將pawn 從內容瀏覽器拖放到遊戲中,然後在按下輸入時,Pawn 現在會執行回呼。