Unreal Engine 5 C++ Multiplayer Shooter
Simulated Proxy(다른 컴퓨터에 있는 내 캐릭터)에서는 마우스를 빠르게 조정할 경우, 애니메이션이 조금씩 덜덜 떨리는 것을 볼 수 있다.
- 원격에서는 일정한 Net Update 주기마다 애니메이션을 동기화하기 때문이다.
애님 그래프의 Rotate Root Bone, FABRIK, Two Bone IK 등의 노드에는 Interp Result라는 옵션이 존재한다.
- 최종 Rotation까지 값을 보간하여 부드럽게 보이게 한다.
- 네트워크를 통해 회전이 띄엄띄엄 전달될 때 유용하다.
보간을 사용하기 때문에 마우스를 빠르게 돌릴 경우, 실제보다 더 멀리 가는 경우가 있지만 부드럽게 처리된다.
Actor 클래스에는 리플리케이션 시 네트워크 갱신 주기와 관련된 옵션들이 있다.
- Net Update Frequency
초당 갱신할 횟수
NetUpdateTime을 결정하는 데 사용된다. - Min Net Update Frequency
복제된 변수의 값이 자주 변하지 않을 때, 최적화를 위해 갱신 횟수를 최소화할 임계점 - Net Priority
액터들 간의 우선순위이며, 값이 높을수록 열악한 환경에서도 우선적으로 리플리케이션 된다.
UI의 Z-Order와 비슷하다고 생각하면 된다.
FPS 게임에서는 (66, 33)의 값을 많이 쓴다.
Net Update Frequency를 초당 4회 정도의 극단적인 값으로 낮추면, 열악한 네트워크 환경을 가정한 상황에서 테스트해볼 수 있다.
리플리케이션은 서버 -> 클라이언트로만 발생하므로 조종 중인 클라이언트와 서버에서는 잘 동기화되지만, 다른 클라이언트에서는 심한 렉이 발생한다.
DefaultEngine.ini 설정 파일에서는 멀티 플레이어 게임에서, 서버의 Tick 주기를 설정할 수 있다.
- 선호하는 값일 뿐, 서버의 성능과 네트워크 상황에 따라 줄어들 수 있다.
# 기본값은 30이다.
[/Script/OnlineSubsystemSteam.IpNetDriver]
NetServerMaxTickRate=60
이 값이 높을 수록, 매우 빠르게 발사되는 연발 소총 등의 타격 판정에 유리하다.
ini 파일을 수정한 후에는 에디터를 닫고 Binaries 폴더를 삭제한 후, 모듈을 재생성해주는 것이 좋다.
'Unreal Engine > UE5 C++ Multiplayer Shooter' 카테고리의 다른 글
부자연스러운 대각선 걷기 애니메이션 수정 (0) | 2023.04.20 |
---|---|
움직임 개선 (0) | 2023.04.19 |
Rotate Root Bone (0) | 2023.04.17 |
옆으로 도는 애니메이션 적용 (0) | 2023.04.16 |
FABRIK (0) | 2023.04.15 |