Unity 클러스터 배포
API

클러스터 렌더링 입력

마스터 노드로의 입력이 모든 클라이언트 노드로 전달될 수 있도록 클러스터 렌더링 네트워크를 설정해야 합니다. 이를 위해 클러스터 입력 설정을 설정하고 모든 클라이언트 노드로 이 입력을 전송하기 위해 VRPN 서버를 사용해야 합니다.

클러스터 입력 관리자

클러스터 입력 관리자 설정 내의 입력 매핑을 모든 일반 입력에 대해 정의해야 합니다. 이 항목은 Project setting > Cluster Input에서 찾을 수 있습니다.

프로퍼티: 기능:
Size 클러스터 입력 엔트리의 수입니다.
Name 엔트리에 대한 고유 이름입니다. 각 엔트리를 구별하기 위해 스크립트에서 사용합니다.
Device Name VRPN 서버에 등록된 장치 이름입니다.
Server URL VRPN에 접속하기 위한 URL입니다. 서버가 로컬에서 시작된 경우 보통 “localhost”를 사용합니다.
Index 입력 엔트리가 연결될 장치의 인덱스/채널입니다.
Type 입력 타입입니다.
- Button 누르거나 누르지 않았을 때의 바이너리 결과를 반환하는 디바이스입니다.
- Axis 아날로그 축 디바이스로서, 플로트형으로 표현되는 연속값을 제공합니다.
- Tracker 포지션과 오리엔테이션 값을 제공하는 디바이스입니다.
- CustomProvidedInput 사용자 커스텀화된 입력입니다.

클러스터 입력 관리자 설정에 입력되는 모든 엔트리는 ClusterInput 클래스를 통해 스크립트에서 접근 가능합니다. 이러한 사용법은 Unity의 일반 Input 클래스와 상당히 유사합니다. 즉, 매 프레임마다 API를 사용하여 입력 스테이트를 읽어오고 여기에 대응할 수 있습니다. 예제를 참조하려면 ClusterInput 스크립트 레퍼런스를 참조하십시오.

VRPN 서버

ClusterInput 클래스로부터 입력을 읽어오는 프로젝트가 있다면, 올바른 디바이스와 연결된 VRPN 서버가 존재하고 실행 중이어야 합니다. VRPN 디바이스는 이름과 URL에 의해 식별됩니다. 일반적으로 완전한 형식을 갖춘 URL은 TrackerA@localhost와 같은 형식입니다. TrackerA는 디바이스명이고, localhost는 VRPN 설정에서 정의한 서버 URL입니다.

VRPN에 대한 더 구체적인 정보를 얻으려면 http://www.cs.unc.edu/Research/vrpn/ 웹사이트를 방문해야 합니다.

프로젝트에서 ClusterInput 클래스를 사용하지 않고 오직 Custom Input만을 사용한다면, VRPN 서버를 사용할 필요가 없습니다.

커스텀 입력(Custom Input)

디바이스 제조사의 SDK를 사용하여 Unity C++ 플러그인을 작성함으로써 입력 디바이스를 직접 통합하고자 할 경우가 있습니다. 그러면 이 플러그인은 상호운용 서비스를 사용하여 프로젝트에서 C#으로 작성된 쪽에 값을 전달합니다. 이런 시나리오에서는 입력이 클러스터의 나머지 부분과 동기화되지 않습니다. ClusterInput는 이를 보완하기 위해 이러한 커스텀 입력 값을 캡처하고 전체 클러스터에 걸쳐 이 입력값을 복제하는 커맨드 세트를 제공합니다.

이를 위해서는 클러스터 입력 인스펙터에서 입력을 생성 및 환경 설정해야 하고, 타입을 "User Provided Input"으로 설정해야 합니다. 클러스터의 마스터 노드에서는 평소처럼 통합 디바이스로부터 입력 값을 폴링하고 아래 API 중에서 하나를 사용하여 이러한 입력으로 입력값을 전송합니다.

이 과정을 거치면 해당 값이 클러스터의 나머지 부분 및 마스터 노드 모두에서 사용 가능해집니다.

Unity 클러스터 배포
API