본문 바로가기
Unreal Engine/[UE4] RPG Project

6. Dedicated Server 네트워킹 - Anim Montage이용한 플레이어 무기 모드 변경 기능 RPC

by JJPearl 2022. 7. 7.
반응형

플레이어 캐릭터는 현재 칼과방패, 활 두가지의 무기 모드를 갖고 있다.

플레이어 캐릭터는 무기 모드를 변경할 때 무기를 변경하는 AnimMontage를 Play한다.


 

- 무기 변경 기능 동기화를 위한 RPC

클라이언트에서 Change Weapon 입력 발생시 서버에서 모든 클라이언트에게 montage를 실행시키게 하는 흐름으로 구현했다.

- OnSwordAndShieldMode(), OnBowMode() : Change Weapon 입력에 바인드 된 함수  

- ServerSwitchWeaponMode(서버에서 실행) : SetCurrentWeaponMode 함수를 Call


- SetCurrentWeaponMode(멀티캐스트) : CurWeaponType을 바꿔주고 플레이어 캐릭터의 ChangeWeapon Montage를 재생하는 이벤트

// reliable NetMulticast 함수를 너무 많이 쓰면 네트워킹에 좋지는 않다고 한다. 다른 중요 데이터들을 밀쳐내고 들어갈 수도 있기 때문. 하지만 아직까지는 많이 쓰고 있지 않아서 그런지 문제가 없다.

 

=> 실행 흐름을 정리하자면 

  1. Change Weapon 입력발생(소유 클라이언트)
  2. ServerSwitchWeaponMode 함수 Call : 클라이언트에서 호출, 서버에서 실행
  3. SetCurrentWeaponMode 함수 Call : 서버와 현재 연결된 모든 클라이언트에서 실행. 

 

 

다른 플레이어의 무기 변경이 동기화 되었다.

 

 

추후 다른 기능 동기화 하면서 언리얼 네트워킹 방식들에 익숙해 진 다음 필요할 때 RepNotify도 구현해볼 예정.

반응형