Unreal의 HP Reverb G2 컨트롤러

시작

중요

HP Reverb G2 컨트롤러와 함께 작업해야 하는 HP 모션 컨트롤러 플러그 인에 액세스하려면 Unreal Engine 4.26 및 OpenXR 또는 SteamVR이 필요합니다.

HP 모션 컨트롤러 플러그 인 사용

상호 작용 프로필 및 컨트롤러 매핑은 HP 모션 컨트롤러 플러그 인에 있으며, 컨트롤러 매핑을 Unreal의 입력 시스템에 노출하려면 사용하도록 설정해야 합니다.

OpenXRHPController 플러그 인 사용

기존 OpenXR 앱 포팅

HP Mixed Reality 컨트롤러에 대한 게임에 컨트롤러 바인딩이 없는 경우 OpenXR 런타임은 기존 바인딩을 활성 컨트롤러에 다시 매핑하려고 시도합니다. 이 경우 게임에는 Oculus Touch 바인딩이 있고 HP Mixed Reality 컨트롤러 바인딩이 없습니다.

컨트롤러 바인딩이 없는 경우 기존 바인딩 다시 매핑

이벤트는 계속 발생하지만 게임이 올바른 메뉴 단추와 같은 컨트롤러별 바인딩을 사용해야 하는 경우 HP Mixed Reality 상호 작용 프로필을 사용해야 합니다. 여러 디바이스를 더 잘 지원하기 위해 작업별로 여러 컨트롤러 바인딩을 지정할 수 있습니다.

여러 컨트롤러 바인딩 사용

입력 작업 매핑 추가

새 작업을 정의하고 HP Mixed Reality 컨트롤러 섹션의 키 누름 중 하나에 매핑합니다.

새 작업 및 매핑 정의

HP Reverb G2 컨트롤러에는 "스퀴즈 축" 바인딩을 사용하여 축 매핑에 사용할 수 있는 아날로그 그립도 있습니다. 그립 단추를 완전히 누를 때 동작 매핑에 사용해야 하는 별도의 스퀴즈 바인딩이 있습니다.

스퀴즈 축 바인딩 사용

입력 이벤트 추가

청사진을 마우스 오른쪽 단추로 클릭하고 입력 시스템에서 새 작업 이름을 검색하여 이러한 작업에 대한 이벤트를 추가합니다. 여기서 Blueprint는 현재 단추와 축 상태를 출력하는 인쇄 문자열을 사용하여 이벤트에 응답합니다.

이벤트에 응답하고 현재 단추 및 축 상태를 출력하는 청사진

입력 사용

게임의 입력 프로젝트 설정에서 동일한 동작 및 축 매핑을 C++에서 사용할 수 있습니다.

  1. 파일/새 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에서 컴파일하여 새 폰으로 편집기를 시작합니다. 콘텐츠 브라우저에서 게임으로 폰을 끌어서 놓으면 입력을 누르면 폰이 콜백을 실행합니다.

추가 정보