Vivox SDK Test

유니티가 Vivox 를 인수했다.

Vivox는 블리자드의 오버워치 등의 유명 게임에서 사용하는 음성채팅 모듈을 제공하는 업체다.

Vivox 서비스 등록

개발자 사이트(https://developer.vivox.com/) 에서 계정을 등록하고 사용을 허가 받으면 SDK를 테스트할 수 있다.

Screenshot_022420_111500_AM.jpg

서비스 포탈에 접근하게 되면, 앱을 생성할 수 있다. 생성할 때는 사용할 대상 플랫폼을 지정할 수 있다. 최신 SDK를 다운로드 할 수 있는데, Unity 버전은 모두 같은 내용의 파일을 다운로드한다.  이 파일은 유니티 내 Asset Store 의 Vivox SDK 와 같은 파일이다.

 

유니티에서

Vivox 서비스가 준비가 되면, 유니티에서 관련 Asset을 설치할 수 있다.  Asset Store 창에서 Vivox를 검색해서 Vivox Voice And Text Chat 항목을 선택해서 Import 한다.

Screenshot_022420_112314_AM.jpg

Import 가 완료가 되면, Vivox 폴더에 관련 파일들을 확인할 수 있다.  Samples 폴더에 TanksUnityGameSample 은 Vivox 를 테스트하는 탱크 게임 샘플이다.  관련 씬을 추가해서 빌드 혹은 Editor 에서 테스트 할 수 있다.

테스트를 위해서는 앞서 Vivox Service 가입시 만들어진 앱의 API 종단점 값, 도메인, 발급자자, 시크릿 키 값을 등록해야한다.

주요 기능을 발췌해 보면

Import 해야할 주요 항목은 아래와 같다.

using VivoxUnity;
using System;
using System.ComponentModel;

LoginSession 등의 Callback 부분에 의해서 System.ComponentModel 의 INotifyPropertyChanged 인터페이스를 사용한다.

샘플 코드중에 안드로이드 플랫폼쪽 관련 코드가 추가되어 있다

#if UNITY_ANDROID && !UNITY_EDITOR
// Initialize the VivoxNative module
AndroidJavaClass unityPlayer = new AndroidJavaClass(“com.unity3d.player.UnityPlayer”);
AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>(“currentActivity”);
AndroidJavaObject appContext = activity.Call<AndroidJavaObject>(“getApplicationContext”);
AndroidJavaClass pluginClass = new AndroidJavaClass(“com.vivox.vivoxnative.VivoxNative”);
pluginClass.CallStatic(“init”, appContext);
#endif

일단 이 부분도 사용 시에 고려해야할 거 같다.

 

주요 클래스

  • VivoxUnity.AccountId – 연결할 계정 및 접속 정보를 갖는다.
  • VivoxUnity.Client – 연결하는 세션 정보를 갖을 Client
  • VivoxUnity.LoginSession – Client 와 AccountId를 이용한 로그인 세션
  • VivoxUnity.ChannelId – 채널 식별 정보 (발급자, 채널명,  채널 종류(일반, 위치기반, 에코), 3D 속성)
  • VovoxUnity.ChannelSession – Login Session +
    ChannelId, GroupId  로 세션 관리

 

주요 Event

  • LoginSession.PropertyChanged – 로그인 세션 상태 변경시
  • ChannelSession.PropertyChanged – 채널 상태 변경
  • ChannelSession.Participants.AfterKeyAdded – 참가자 추가시
  • ChannelSession.Participants.BeforeKeyRemoved – 참가자 제거시
  • ChannelSession.Participants.AfterValueUpdate – 참가자 정보 업데이트
  • ChannelSession.MessageLog.AfterItemAdded – 채널 채팅 메시지 추가시
  • ChannelSession.SessionArchive.AfterItemAdded – The list of session archive messages returned by a BeginSessionArchiveQuery.

 

 

 

 

서버를 어떻게 해야할려나

현재 2009년식 iMac에서 여러 서비스를 돌리고 있어.

이 iMac 엔 추억이 가득 쌓였어.

처음 구매한 애플 장비이기도 하고, 첫 게임 회사에 입사하고, 새로운 환경에서 적응하기 위한 큰 몸부림을 함께 시작했어.

현재 오버 스펙으로 카탈리나까지 설치한 상태인데, 이로 인해, Target Display는 동작하지 않고, 여러 모듈들을 다시 설치해야했어. 물론, Metal API는 동작을 안해서, iMovie나 Final Cut Pro 등이 제대로 동작을 안해.

다시 서비스들을 올렸지만, 앞으로 어떻게 해야할지 고민이 계속 쌓이네.

그래도 나름 쓸만하 것은 Skype 자동 응답 계정을 만들어서, 가끔 집에있는 아이들이랑 바로바로 얘기하기도 하고, say command 로 컴퓨터가 얘기하는 것처럼 애들이랑 얘기할 수도 있어.

이녀석도 나처럼 나이가 들어가면서 새로운 일들을 하기에 부담이 조금씩 들어가는 거 같지만, 힘내자. 나도 힘내니깐~~!