Make Unreal REAL.
article thumbnail
Unreal Engine 5 C++ Multiplayer Shooter

 

서 있을 때와 웅크렸을 때, 걷는 도중 조준하는데 사용할 블렌드 스페이스를 생성한다.

  • 조준 시에는 몸 기울이기(Leaning)는 사용하지 않고 와리가리(Strafing)만 할 것이므로, 1D로 생성한다.

 

 

기존 블렌드 스페이스와 동일한 방식으로 구성한다.

 

 

걷는 도중에 조준할 수 있도록 블렌드 스페이스를 다음과 같이 수정한다.

 

 

가만히 서있거나 웅크리고 있을 때도 조준할 수 있도록 한다.

 

 

애니메이션 적용에 성공했으나, 조준 시에도 이동 속도가 동일해 부자연스럽다.

 

 

bAiming 변수를 통해 조준을 관리하는 Combat 컴포넌트에서 조준 시 이동 속도를 줄이도록 해본다.

 

변수를 추가하고 생성자에서 기본값을 설정한 후, BeginPlay() 함수에서 캐릭터의 초기 이동 속도를 지정해준다.

  • 웅크리기 상태에서는 속도를 더 줄이지 않을 것이다.

 

 

로컬에서 조준 상태로 변경 후, 서버 RPC를 통해 서버에도 알리는 SetAiming() 함수에서 조준 상태에 따라 이동 속도를 변경한다.

 

 

그런데, 조준 시에도 이동 속도가 변하지 않고 화면이 뭔가 덜덜 떨리는 것 같은 현상이 생겼다.

 

서버는 Character Movement 컴포넌트를 통해 멀티 플레이어에서 움직임에 대한 권한을 갖는다.

  • 현재 로컬에서는 이동 속도가 줄었지만, 서버에서는 줄지 않은 상태이다.
  • 따라서 서버의 움직임을 따르기 위해, 느린 로컬의 움직임에 의한 이동을 끊임없이 보정하기 때문에 생기는 현상이다.

 

 

따라서 서버 RPC 함수에서도 이동 속도를 변경시켜, 로컬과 서버의 이동 속도가 동일하도록 설정해주어야 한다.

 

 

서버와 클라이언트의 이동 속도가 같아져, 보정 현상이 눈에 보이지 않는다.

 

'Unreal Engine > UE5 C++ Multiplayer Shooter' 카테고리의 다른 글

Aim Offset 적용  (0) 2023.04.13
Aim Offset  (0) 2023.04.12
웅크린 상태에서 점프하기  (0) 2023.04.11
웅크리고 걷기  (0) 2023.04.10
점프 애니메이션  (0) 2023.04.09
profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그