This document is about: VOICE 1
SWITCH TO

Photon Voice1은 Photon Voice의 첫 버전입니다.        현재는 리팩터링/확장을 거친 Photon Voice 2이 준비되어 있으므로 새로운 프로젝트를 시작할 경우에는 Photon Voice 2를 사용하시는 것을 권장합니다.

PUN Voice 데모

PUN Voice 데모는 간단한 4명의 플레이어가 서로 대화를 할 수 있는 모바일 게임입니다.
매치메이킹과는 달리 이 게임은 4개의 캐릭터로 플레이하며 3개의 다른 카메라 뷰가 있습니다.
이 데모는 Unity 튜토리얼 "Survival Shooter" 를 기반으로 제작되었으며
Photon Voice 패키지 에서 사용할 수 있습니다.

PUN Voice 데모 실행모습
PUN Voice 데모 실행모습

설정

PUN Voice 데모 따라 해보기:

  1. 에셋 스토어에서 패키지 다운로드.
  2. 유니티에서 프로젝트를 열고 DemoPunScene 을 로드 합니다.
  3. 유니티 인스펙터에서 PhotonServerSettings 를 (메뉴: "Window" -> "Photon Unity Networking" -> "Resources" -> "Highlight Server Settings")를 통해 오픈 합니다:
  4. 빌드하고 수행하여 게임을 즐겨 보세요!
PUN Voice 데모 설정
PUN Voice 데모 설정

기능

이 섹션에서는 데모에서 사용한 기능에 대해서 설명 할 것 입니다.

여러 캐릭터들

친구들과 데모를 수행 했을 때 모든 플레이어는 자신만의 캐릭터를 가지고 있으며 무작위 위치로 스폰된다는 것을 보셨을 것 입니다.
CharacterInstantiation 클래스를 이용하여 처리 됩니다.OnJoinedRoom 콜백에서는 액터 번호를 기반으로 한 프리팹을 선택했고 무작위 위치로 스폰 해 줍니다.

설정

UI 에서 쉽게 접근할 수 있는 설정을 작성하여 Photon Voice 어플리케이션을 편리하게 해주는 단축키 제공을 하려고 합니다.

게임내 설정

PUN Voice 데모 게임내 설정
PUN Voice 데모 게임내 설정

Photon Voice 어플리케이션의 런타임 설정에서 가장 중요한 부분은 하나의 ToggleGroup 으로 묶는 것 입니다:

  • Transmit: 이 설정을 사용할 수 없도록 하려면 마이크를 끄는 것 입니다. 그렇지 않으면 사운드가 로컬에서 기록되고 전송될 것 입니다.
  • Mute Speaker: 이 설정은 말 하면 볼륨을 0 으로 설정하여 스피커를 묵음 시키게 됩니다.
  • VoiceDetection: 이 설정은 음성 감지 기능을 사용 또는 미사용으로 설정 할 수 있습니다.
  • DebugEcho: 테스팅 Voice 어플리케이션이 하나의 클라이언트만 사용할 때 유용합니다. 켜져 있으면 서버로 전송 된 오디오 스트림은 원래 전송한 사람에게 되돌아 갈 것 입니다. 디버깅 할 때만 사용하세요.

전역 설정

PUN Voice 데모 전역 설정
PUN Voice 데모 전역 설정
  • AutoConnect: PUN 클라이언트가 "PUN 룸"에 참여 했을 때 자동으로 Photon Voice 클라이언트가 "voice 룸" 에 참여 합니다.
  • AutoDisconnect: PUN 클라이언트가 접속 해제 되었을 때 자동으로 Photon Voice 클라이엔트에서 접속 해제 됩니다.
  • AutoTransmit: Photon Voice 클라이언트가 "voice 룸"에 참가하자마나 오디오 전송을 시작 합니다.
  • DebugVoice: 디버그 모드를 토글 합니다.

디버그 텍스트는 스크린의 왼쪽 구성에 다음 사항이 포함되어 나타납니다:PUN 과 Voice 어플리케이션의 ClientState , 사용되고 있는 마이크 장치와 몇개의 음성 통계들.
켜져 있으면 모든 "말하는" 캐릭터의 상단에 Voice 스피커 lag 가 표시 됩니다.

Voice 컴포넌트들 강조하기

어떻게 두 개의 메인 Voice 컴포넌트가 동작하는지 설명하기 위해서 우리는 모든 플레이어 상단에 나오는 isometric 뷰를 사용 하였습니다.
이 뷰는 "World Space" 모드 안에 있는 유니티의 새로운 UI 시스템을 기반으로 하며 2개의 아이콘이 있습니다:

"Speaker" 아이콘

PUN Voice 데모 - 스피커 강조하기
PUN Voice 데모 - 스피커 강조하기

이 아이콘의 목적은 플레이어의 목소리가 플레이 될 때 보여 집니다. PhotonVoiceSpeaker 컴포넌트에 바인드 되어 있습니다.
이 이미지는 이 코드에 기반하여 보여지거나 감추어 집니다:

C#

speakerSprite.enabled = speaker != null && speaker.IsPlaying &&
                    PhotonVoiceNetwork.ClientState == ExitGames.Client.Photon.LoadBalancing.ClientState.Joined;

그리고 DebugVoice 전역 설정이 토글 되었을 때 텍스트는 동일한 뷰에서 계속 변경된 숫자를 포함한 것을 표시 하기 시작할 것 입니다.
이것은 스피커 컴포넌트에 있는 lag 에 대한 정보를 보여 주어야 합니다. 다음처럼 설정 사용 또는 사용 불가로 되어 질 수 있습니다:

C#

bufferLagText.enabled = showSpeakerLag && speaker.IsPlaying && speaker.IsVoiceLinked;
bufferLagText.text = string.Format("{0}", speaker.CurrentBufferLag);

"Bubble speech" 아이콘

PUN Voice 데모 - 레코더 강조하기
PUN Voice 데모 - 레코더 강조하기

이 아이콘의 목적은 플레이어 음성이 녹음되고 전송될 때를 표시 하는것 입니다.
PhotonVoiceRecorder 컴포넌트에 바인드 되어 있습니다.
아래 코드에 의해 이 이미지가 표시 또는 비표시 됩니다:

C#

recorderSprite.enabled = recorder != null && recorder.IsTransmitting &&
                    PhotonVoiceNetwork.ClientState == ExitGames.Client.Photon.LoadBalancing.ClientState.Joined;

이 사항에 더 파악하고 싶으시면 "Highlight.cs" 파일과 클래스를 살펴 보시기 바랍니다.

다른 카메라들

Photon Voice 는 AR 과 VR 을 포함한 모든 유형의 게임에서 사용할 수 있기 때문에 3D 사운드에서 얼마나 좋은지 보여주기 위한 예제를 연습하는데 도움이 됩니다.
이 목적으로 우리는 3개 카메라 모드를 준비 했습니다:

  • "First Person"
PUN Voice 데모 - First Person 뷰
PUN Voice 데모 - First Person 뷰
  • "Third Person"
PUN Voice Demo - Third Person 뷰
PUN Voice Demo - Third Person 뷰
  • "Orthographic" (디폴트)
PUN Voice 데모 - Orthographic 뷰
PUN Voice 데모 - Orthographic 뷰

룸에 참여하기만 하면 언제든지 자유롭고 끊김없이 두 사이를 변경할 수 있습니다.
3개의 버튼들은 플레이어의 캐릭터가 인스턴스 생성 되면 스크린의 우측 모서리에서 사용할 수 있습니다.

모바일 조이스틱

이 데모에서는 모바일 터치 입력을 지원 하고 있습니다.
스마트폰 또는 태블릿에서 조이스틱 UI 를 사용할 수 있는데 데모에서는 유니티의 표준 에셋을 기반으로 만들어져 있습니다.
이 기능을 사용하기 위해서는 유니티의 메뉴에서 "Mobile Input" 을 사용하도록 설정하고 유니티의 빌드 설정에서 이에 상응하는 플랫폼으로 전환 해주어야 합니다.

Back to top