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 demo screenshot
PUN Voice 데모 실행모습

설정

PUN Voice 데모 따라 해보기:

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

기능

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

여러 캐릭터들

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

설정

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

게임내 설정

pun voice demo in-game settings
PUN Voice 데모 게임내 설정

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

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

전역 설정

pun voice demo global settings
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 demo - highlighting speaker
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 demo - highlighting recorder
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 demo - first person view
PUN Voice 데모 - First Person 뷰
  • "Third Person"
pun voice demo - third person view
PUN Voice Demo - Third Person 뷰
  • "Orthographic" (디폴트)
pun voice 데모 - orthographic view
PUN Voice 데모 - Orthographic 뷰

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

모바일 조이스틱

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

Back to top