본문 바로가기

Unreal

언리얼 보이스 채팅 구현 (Advanced Sessions)


준비물


[세션 적용된 프로젝트], [Advanced Session Plugins]


- 이 때 프로젝트에 서버는 Create Advanced Sessions으로 세션을 열고, 클라이언트는 Join Session으로 접속함. (클라이언트가 접속할 때 [Open ip] 커맨드로 하니 안됨)

 



과정

 


1. 아래 주소에서 Advanced Sessions을 다운받는다.  


- https://forums.unrealengine.com/showthread.php?69901-Advanced-Sessions-Plugin

  

 


프로젝트에 플러그인(Advanced Sessions)을 넣고 프로젝트를 재실행 시켜 재빌드한다.


2. 프로젝트 폴더 - Config - DefaultEngine.ini 파일에서 다음을 true로 변경해준다. 보이스 시스템을 사용하려면 전부 true로 해주어야 한다.

 


3. 프로젝트 폴더 - Config - DefaultGame.ini 파일에서 다음을 true로 변경해준다.

 

 

 

 

bRequiresPushToTalk=false인 경우 : 세션에 접속하면 함수를 아무것도 적용하지

않아도 그냥 채팅 가능

bRequiresPushToTalk=True인 경우 : RegisterRemoteTalker로 플레이어 등록하고

StartNetworkedVoice로 채팅 On,

StopNetworkedVoice로 채팅 Off 시킴

 


4. 먼저 Talker를 등록해 주어야 한다. 원하는 곳에다 RegisterRemoteTalker 함수로 보이스 사용자를 등록해준다. (Event Begin Play에서 바로 호출하면 초기화 에러날 수도 있다)

Register Local Talker : 로컬(한 IP 내에서 플레이하는) 유저 등록하기

Register Remote Talker : 리모트(다른 IP로 플레이하는 유저) 등록하기

5. StartNetworkedVoice와 StopNetworkedVoice를 키에 맵핑시켜 On/Off하게 만든다.

(이 때 Local Player Num은 0 - 자기 자신)

 

N키를 누르는 동안 보이스 송신이 되며, N키를 떼면 안 된다. 듣기는 Register가 되면 어느때나 가능하다.


6. 만약 키와는 상관없이 쭉 말하고 싶다면 4번, 5번 과정 생략하고 3번 과정에서 bRequiresPushToTalk=false로만 바꾸어 주면 된다.