안선생의 개발 블로그

[UE5] 멀티플레이 Seamless Travel 본문

언리얼/멀티플레이

[UE5] 멀티플레이 Seamless Travel

안선생 2023. 10. 29. 11:39

매끄럽고 매끄럽지 않은 여행

언리얼 엔진(UE) 에는 원활하게 이동하는 방식 과 원활하지 않게 이동하는 두 가지 주요 방법이 있습니다 . 주요 차이점은 원활한 이동은 비차단 작업인 반면, 비원활한 이동은 차단 호출이라는 것입니다.

클라이언트가 원활하지 않은 이동을 실행하면 클라이언트는 서버와의 연결을 끊었다가 동일한 서버에 다시 연결하여 새 지도를 로드할 준비가 됩니다.

Unreal Engine 멀티플레이어 게임에서는 가능하면 원활한 이동을 사용하는 것이 좋습니다. 일반적으로 사용 환경이 더 원활해지며 다시 연결 과정에서 발생할 수 있는 문제를 방지할 수 있습니다.

 

NON-Seamless Travel

클라이언트가 불분명한 이동을 할 때 현재 서버와 연결을 끊었다가 같은 서버로 다시 연결

연결을 끊었다가 다시 연결하는 데 시간이 걸리기 때문에 다른 사람들이 서버로 이동할 때마다 문제가 있을 수 있습니다.

 
원활하지 않은 이동이 발생하는 세 가지 방법
 
  • 처음 지도를 로드할 때
  • 클라이언트로 처음 서버에 접속하는 경우
  • 멀티플레이어 게임을 종료하고 새 게임을 시작하고 싶을 때

 

Seamless Travel

 

NON-Seamless Travel과 반대로 클라이언트가 서버와 연결을 끊을 필요는 없습니다.

끊을 필요가 없으니 다시 연결할 때 시간이 걸리지 않고 갑자기 사람이 많아져 못들어가는 문제를 피할 수 있습니다.

이러한 이유로 언리얼엔진에서는 Seamless Travel권장합니다.

사용 환경이 더 원활해지며 다시 연결 과정에서 발생할 수 있는 문제를 방지할 수 있습니다.

 

여행 방법

UWorld::ServerTravel

  • 서버 전용입니다.
  • 서버를 새로운 세계/레벨로 점프합니다.
  • 연결된 모든 클라이언트가 따라옵니다.
  • 이것이 멀티플레이어 게임이 지도에서 지도로 이동하는 방식이며, 서버가 이 함수를 호출하는 역할을 담당합니다.
  • 서버는 APlayerController::ClientTravel연결된 모든 클라이언트 플레이어를 호출합니다.

 

APlayerController::ClientTravel

  • 클라이언트에서 호출되면 새 서버로 이동합니다.
  • 서버에서 호출되면 특정 클라이언트에게 새 지도로 이동하도록 지시합니다(단, 현재 서버에는 계속 연결되어 있음).

 

사용법

편집->프로젝트 세팅 ->검색칸에 트랜지션 맵 입력후 트련지션 맵을 선택해줍니다.

전환 맵을 설정한 후 게임모드에 가서 AGameModeBase::bUseSeamlessTravel = true로 설정하면 거기에서 원활한 이동이 가능합니다. 간단하죠? 이렇게 설정해주시면 여행할 떄 원활한 이동을 합니다!!

 

 

 

 

더많은 정보는 아래 언리얼 공식 홈페이지에서 볼 수 있습니다. 

 

https://docs.unrealengine.com/5.1/en-US/travelling-in-multiplayer-in-unreal-engine/

 

Travelling in Multiplayer

An overview of how travelling works in multiplayer.

docs.unrealengine.com

 

'언리얼 > 멀티플레이' 카테고리의 다른 글

[UE5] 언리얼 자체 리플리케이션??  (1) 2023.11.05
[UE5] RPC  (0) 2023.11.04
[UE5] 변수 리플리케이션  (0) 2023.11.03
[UE5] Network Role  (0) 2023.11.01
[UE5]멀티플레이 클라이언트와 서버 관계  (0) 2023.10.30