Viven에서 상호작용이 가능한 물체를 VObject 라고 부릅니다.
VObject 는 VMap에 포함하거나 별도로 업로드할 수 있습니다.
SDK에서 VObject 제작하기
SDK를 사용해 Unity 에디터에서 원하는 물건을 VObject로 제작할 수 있습니다.
장난감 총을 만들어 Viven에서 사용해보겠습니다.
VObjectSample.unitypackage 를 다운로드해 Import 합니다.
P_ToyGun 프리팹을 더블클릭합니다.
플레이어가 장난감 총과 상호작용할 수 있게 만드려면 Viven Grabbable Module을 추가합니다.
GrabbableModule이 추가되면 PC/VR환경에서 물체와 상호작용할 수 있습니다. 물체의 물리적 상태는 네트워크를 통해 동기화되며, VivenRigidBody 클래스에서 물리와 관련된 설정을 변경할 수 있습니다.
VivenRigidBody는 Rigidbody 클래스를 대체합니다. 별도의 Rigidbody컴포넌트가 존재한다면 삭제해야 합니다.
GrabbableModule은 물체의 Collider를 통해 상호작용합니다. 물체에 적절한 Collider를 추가해야합니다.
이제 VObject를 빌드하겠습니다.
만들어진 P_ToyGun을 우클릭한 후 Viven→BuildVivenObject 버튼을 클릭합니다.
다음과 같이 ContentType이 VObject가 아니라는 에러가 출력됩니다.
SDK에서 만들어진 VObject 는 2가지 ContentType을 가집니다.
1.
Prepared : VMap과 함께 빌드되는 오브젝트
2.
VObject : 독립적으로 빌드되는 오브젝트, 맵과 상관없이 불러올 수 있습니다.
Prefab 편집창에서 나와 P_ToyGun을 선택한 후 ContentType을 VObject로 설정합니다.
Prefab 편집창에서는 Object ID가 00000000-0000-0000-0000-000000000000 으로 표시됩니다. 편집창을 나와 VivenNetworkObject 컴포넌트를 우클릭한 후 Reset을 클릭해주세요.
VivenNetworkObject의 ID는 생성과정에서 변경됩니다. ToyGun 고유의 ID 는 빌드 시 ContentID로 정의됩니다.
ContentType을 VObject 로 설정하면 빌드 설정 창이 나옵니다.
콘텐츠 ID 는 ToyGun 고유의 ID입니다. Viven 에 업로드 되는 모든 VObject는 고유한 콘텐츠 ID를 가져야합니다. ToyGun을 불러왔을 때 생성되는 GameObject는 동일한 ContentID 를 가집니다.
각 GameObject의 고유한 ID를 확인하려면 VivenNetworkObject의 Object Id를 사용해야 합니다.
콘텐츠 버전은 VObject를 업데이트할 때 사용됩니다. 동일한 오브젝트가 여러 개 업로드 된다면 가장 최신 콘텐츠 버전을 불러옵니다. 콘텐츠 버전은 X.Y.Z (X : Major 버전, Y: Minor 버전, Z: Patch 버전) 형식으로 입력해야 합니다. 자세한 내용은 Semantic Versioning 2.0.0 | Semantic Versioning 을 참고해주세요.
빌드하기를 클릭하면 오브젝트 빌드가 시작됩니다.
빌드가 완료되면 vobject파일을 저장할 경로를 선택합니다.
콘텐츠 ID 와 버전은 오브젝트를 Viven에 업로드할 때 사용됩니다. 자세한 내용은
VObject 업로드하기를 참고해주세요