7.Teleportation 질문

22.05.05 19:11 작성 조회수 477

0

안녕하세요 XR Interaction Toolkit 2.0.1 버전 업데이트 되면서 Teleport Select가 Locomotion으로 포함되었는데요. 영상 7분에서 설명해주신대로 진행하면 Snap Turn과 동시에 Teleport가 됩니다. Grab(B키)는 물론 작동하지 않구요. 회전과 동시에 텔레포트가 되면 불편사항이 많이 생기는데 해결방법 알려주실 수 있으신가요?

답변 2

·

답변을 작성해보세요.

2

 

말씀하신 대로 XR Interaction Toolkit이 2.0.1로 업데이트 되면서 XRI Default Input Actions가 바뀌었네요.

텔레포테이션 관련해서는 primartButton이 기본적으로 설정되어 있어서 그걸 사용했었는데, 그 부분이 제거 되었습니다.

강의와 동일하게 진행하시려면 수동으로 Button 액션을 하나 추가하고 연결해주시면 되는데, 아래 스텝을 따라서 액션을 설정해주세요.

 

0. 기존 XR IT 2.0.0을 사용하시던 분들이 따라하시려면, Package Manager에서 2.0.1로 업데이트하시고, 기존 샘플은 삭제하고, 업데이트된 샘플들을 다시 임포트해주시면 됩니다.

 

1. 새로 업데이트된 2.0.1 버전의 XRI Default Input Actions 에셋을 더블클릭하여 설정창을 엽니다.

 

2. 아래 스크린샷을 보고 직접 바인딩 하나를 추가해도 되고, 아래 코드를 Ctrl+C 한 뒤에, 아래 설정 창에 Actions 탭에서 우클릭 후 Paste해서 Teleport Select (Button) 액션을 하나 추가하고, 저장합니다.
(이름은 관계 없습니다)

 

INPUTASSET ActionTreeItem{"m_Name":"Teleport Select (Button)","m_Type":1,"m_ExpectedControlType":"Button","m_Id":"28ecac93-4109-4841-bf97-5c4bef1e1f83","m_Processors":"","m_Interactions":"","m_SingletonActionBindings":[],"m_Flags":0}BindingTreeItem{"m_Name":"","m_Id":"3bbd2cd5-17c1-43f7-a7ff-72ff772d2a1e","m_Path":"<XRController>{LeftHand}/primaryButton","m_Interactions":"","m_Processors":"","m_Groups":"","m_Action":"Teleport Select (Button)","m_Flags":0}

 

 

3. 텔레포테이션 기능을 사용하고자 하는 XR Controller에 Select Action에 방금 만든 XRI LeftHand Locomotion/Teleport Select (Button) 액션을 연결해줍니다.

 

위 순서대로 설정하면 텔레포테이션은 실습과 마찬가지로 B키로 할 수 있고, Snap Turn은 원래대로 스틱을 조작하는 걸로 작동합니다.

감사합니다.

동일한 내용을 새소식에도 올렸습니다.

배규혁님의 프로필

배규혁

질문자

2022.05.05

공휴일에도 바로 답변해주셔서 정말 감사합니다! 강사님의 의견이 궁금해서 한 가지 여쭤보고 싶습니다.

개발자가 왜 2.0.1 업데이트에서 PrimaryButton Teleport 기능을 제거했는 지에 대해 생각해봤습니다.

개발자는 Locomotion에서 Snap Turn과 Teleport 기능을 묶는 것으로 대체했습니다. 제가 본 VR 게임에서 Teleport하는 방법은 RightHand 조이스틱을 움직였을 때 Controller에 포물선 Ray가 나오고 손을 뗀 위치로 이동하는 방법이었습니다. 그랩을 해서 Teleport하는 방식은 자주 못봤습니다. 아마 이동 방식이 조금 변경되면서 개발자가 수정한 것 같다는 생각이 듭니다. 

Turn과 동시에 Teleport하는 기능이 사용된다면 제가 생각하는 문제는 회전만 하고 싶을 때 입니다. 회전만 하고 싶을 때 조이스틱을 돌리지만 동시에 Ray가 나와서 이동하는 상황이 나옵니다.

그래서 생각한 해결방법으로는 LeftHand Controller에는 Teleport없이  Snap Turn만 사용하고 Teleport는 RightHand Controller로만 하는 것으로 설정하면 해결될 것 같다는 생각이 듭니다. 직접 해보니 Controller와 Interactor 충돌이 나지 않는 것 같기도 하구요.

조이스틱이 Active되고 난 약 1초 정도후에 RightHand에서 Ray가 나오는 것으로 Script를 짜는 방법 처럼 하나의 Controller로만 해결하고 싶지만 회전을 1초 이상 했을 때의 에러와 같은 여러 에러들이 계속 생각납니다.

강사님의 이에 대한 견해나 다른 좋은 방법이 있다면 듣고 싶습니다.

감사합니다!

저의 경우에도 스틱을 클릭하면 텔레포테이션 하는 것보다, 스틱을 위로 올리면 광선이 나오고, 스틱을 놓으면 텔레포테이션되는 형태가 일반적이라고 생각합니다.
좌/우/뒤로 스틱을 움직이면 스냅턴 되어도 좋구요.

단순히 스틱을 올리는 걸로 텔레포테이션 하도록 설정하려면, 그냥 Teleport Select 액션의 Primary2DAxis [LeftHand XR Controller]의 Sector-Directions를 North로만 바꿔 사용하기만 하면 됩니다.

중요한 건 XRI Default Input Action 파일은 말 그대로 디폴트 파일이고, 샘플로 제공해주는 파일일 뿐이니, Input Action을 직접 설정하여, 콘텐츠에 맞는 액션을 만들고, 그걸 사용하는 걸로 설정해야 하는 거라고 생각합니다.

추가로 게임 제작 실습 섹션에서는 비슷한 이유로 인해, 스냅턴은 제거하고 스틱키를 위로 올릴때만 텔레포테이션이 가능한 레이를 켜 사용하니 참고바랍니다.

배규혁님의 프로필

배규혁

질문자

2022.05.05

Sector-Directions가 있었군요! 

좋은 의견 정말 감사합니다!

0

손문성님의 프로필

손문성

2022.05.24

Primary Button이 업데이트로 사라졌군요.. 마침 궁금했던 내용인데 두분다 감사합니다