This page assumes you have prior knowledge of the following topics. Please read them before proceeding.
SteamVR Chaperone 시스템은 VR 상호작용 영역의 경계를 표시하는 데 사용됩니다. 트래킹 디바이스가 경계에 다가가면, SteamVR Runtime 은 자동으로 비주얼 큐를 통해 사용자에게 알립니다. 여기서는 상호작용 영역을 표시하는 방법과 아울러 다른 비주얼 큐를 통해 사용자에게 디바이스 중 하나가 영역 경계에 가깝거나 밖으로 나갔는지 알리는 방법을 살펴보겠습니다.
Chaperone 시스템의 정상 작동을 위해서는, SteamVR 툴을 사용하여 Room Scale VR 구성을 해야 합니다. 그 방법 관련 자세한 정보는 공식 HTC Vive 셋업 페이지를 참고하세요.
UE4 안에서 Chaperone 시스템을 끄는 것은 가능하지도 추천하지도 않습니다. 하지만 경계에 가까워지는 사용자에 대한 UE4 의 반응을 조절할 수는 있습니다.
단계
SteamVR Chaperone 경계 표시를 위해서는 먼저 사용자의 디바이스가 언제 경계에 가까워지는지를 알아야 합니다. UE4 안에서 알아내기 위해서는, Bind Event to OnRetunToBounds 와 Bind Event to OnLeaveBounds 노드를 사용하면 됩니다. 플레이어 폰 블루프린트 안에서 다음과 같은 노드를 이벤트 그래프 에 추가합니다.
이미지를 클릭하면 원본을 확인합니다.
노드 이름
값
Bind Event to OnReturnToBounds
N/A
Bind Event to OnLeaveBounds
N/A
SteamVRChaperone
N/A
변수 패널에서 새 Boolean 변수를 만들어 inBounds 라 합니다. 사용자가 Chaperone 경계를 드나드는 것을 트래킹하는 데 쓸 것입니다.
레벨 시작과 동시에 사용자가 경계에 가까운지 확인하고 싶습니다. 그러기 위해서는 Bind Event to OnRetunToBounds 와 Bind Event to OnLeaveBounds 노드를 연결해준 뒤 SteamVRChaperone 오브젝트 레퍼런스를 양쪽 Bind Event 노드의 Target 입력에 연결하면 됩니다. 마지막으로 Bind Event to OnLeaveBounds 노드 입력을 Set Tracking Origin 노드 출력에 연결합니다. 완성된 폰 블루프린트 모습은 다음 이미지와 같을 것입니다:
이미지를 클릭하면 원본을 확인합니다.
이제 사용자가 경계를 드나들 때 적합한 메시지를 표시하기 위한 트래킹을 돕는 블루프린트 로직을 만들어야 합니다. 그러기 위해서는 먼저 Custom Event 노드를 두 개 새로 만들어 이름을 ReturnToBounds 와 LeaveBounds 라 합니다. 다음, 경계에 들어서면 In Bounds 변수를 True 로, 나서면 False 로 설정해야 합니다. 완료된 폰 블루프린트 모습은 다음 이미지와 같습니다.
이미지를 클릭하면 원본을 확인합니다.
다음, ReturnToBounds 와 LeaveBounds Event 출력을 Bind Event 노드의 각 입력에 연결하여 사용자가 Chaperone 경계를 드나드는 것을 트래킹하도록 합니다. 완료된 폰 블루프린트 모습은 다음 이미지와 같습니다.
이미지를 클릭하면 원본을 확인합니다.
이제 사용자가 트래킹 영역을 드나들 때 알릴 수 있는 방법이 필요합니다. 그러기 위해서는 Print String 노드를 사용해서 매 틱마다 화면에 메시지를 출력하여 사용자가 트래킹 영역 안에 있는지 밖에 있는지 알려주면 됩니다. 이와 같이 폰 블루프린트를 구성하기 위해서는, 이벤트 그래프에 다음과 같은 노드를 추가해야 합니다.
노드 이름
값
Event Tick
N/A
Branch
N/A
Print String x 2
N/A
InBounds
N/A
Event Tick 출력을 Branch(분기) 노드의 입력에, InBounds 를 Condition 입력에 연결한 뒤 Print String 노드를 Branch(분기) 노드의 True 와 False 출력에 연결합니다. Print String 노드에 설명을 입력합니다. 이 예제에서는 You have returned to the tracking bounds (트래킹 경계에 들어섰습니다)와 You have left the tracking bounds (트래킹 경계를 떠났습니다)로 하고있지만, 아무렇게나 해도 괜찮습니다.
완료된 폰 블루프린트는 다음 이미지와 같습니다.
[Include:Platforms\VR\SteamVR\HowTo\ChaperoneActivation\#SVRFinalBP]이미지를 클릭하면 블루프린트 코드를 복사합니다.
최종 결과
이제 HTC Vive HMD 를 쓰고 모션 컨트롤러를 집어든 뒤 VR 프리뷰로 프로젝트를 실행합니다. 프로젝트 실행 후 모션 컨트롤러 하나를 천천히 Chaperone 경계쪽으로 이동해 보면 다음 비디오처럼 화면에 출력되는 메시지가 경계에서 변하는 것을 볼 수 있습니다.
UE4 프로젝트 다운로드
이 예제를 만드는 데 사용된 UE4 프로젝트를 다운로드할 수 있는 링크입니다.