움직임 리플리케이션 & 디버깅- Unreal Network MultiPlayer Framework 더보기https://dev.epicgames.com/documentation/ko-kr/unreal-engine/understanding-networked-movement-in-the-character-movement-component-for-unreal-engine오늘 글과 관련된 Unreal 공식 문서이다.캐릭터 움직임 리플리케이션 플로우(Chracter Movement Component에 구현되어 있음)클라이언트에서 움직임 입력 명령현재 Tick에서 입력 가속(입력을 가속도로 변환)과 움직이기 전의 캐릭터를 클래스에 기록한다.입력 가속은 이동 모드와 입력 변수를 기반으로 계산된다.Character Movement의 함수인 PerformMovement 실행Chracter Movement에 설정한 속성.. 2025. 3. 11. 네트워크 공격 기능 개선 & 최적화 - Unreal Network MultiPlayer Framework 이전 글 처럼 공격 로직을 만들면 별 문제가 없어 보이고 에디터에서 정상적으로 동작했다.하지만 통신 부하가 발생하는 경우에는 문제가 발생할 수 있다. 통신 렉이 심한 경우 공격 모션이 늦게 재생되거나 시각적인 타이밍과 클라이언트와 서버가 일치하지 않을 수 있다.이를 확인하기 위해 DefaultEngine.ini에 다음과 같이 추가해준다.이렇게 작성하면 500ms. 즉, 0.5초 딜레이를 가지고 패킷을 전송한다.이동만 해도 다음처럼 이동에 사용되는 패킷이 유효하지 않다는 경고 로그를 찍고 한박자 느리게 움직인다.Attack을 해봐도 서버보다 클라이언에서 한박자 느리게 움직인다.이렇게 타이밍이 맞지 않으면 플레이 경험적으로 좋지 않다. 이러한 현상이 발생하는 원인의 순서는 다음과 같다.클라이언트에서 Atta.. 2025. 3. 11. 공격 기능 & Damage예제 / 액터 컴포넌트 리플리케이션- Unreal Network MultiPlayer Framework Attack 기능은 기본적으로 제작되었다는 가정 하에 Network 흐름을 연습하기 위한 예제이다.h 파일에 Lifetime을 위한 GetLifetimeReplicatedProps와 Server, MulticastRPC를 만들어준다.그리고 bCanAttack을 콜백함수로 구현하기 위해 ReplicatedUsing을 사용하고 OnRep_CanAttack()함수를 만들어준다.Attack은 Attack을 수행하는 함수이고 AttackHitCheck는 Attack시 다른 캐릭터가 맞았는지 체크하는 함수이다.GetLifetimeReplicatedProps에 bCanAttack 네트워크를 통해 통신하기 위해서 DOREPLIFETIME 매크로를 통해 등록해준다.bCanAttack이 true라면 클라이언트에서 Serv.. 2025. 3. 10. RPC 개요 및 주의사항 - Unreal Network MultiPlayer Framework RPC (Remote Procedure Call, 원격 프로시저(함수) 호출)https://dev.epicgames.com/documentation/ko-kr/unreal-engine/remote-procedure-calls-in-unreal-engine?application_version=5.4원격 컴퓨터에 있는 함수를 호출할 수 있도록 만든 통신 프로토콜 (로컬 호출, 원격 실행)네트워크 멀티플레이에서서버와 클라이언트 간 빠르게 행동을 명령하고 정보를 주고받는데 사용Unreal Engine에서 클라이언트에서 서버로 통신하는 유일한 수단을 제공서버에서 클라이언트로 전파되는 방향성을 가지며 클라이언트에서 커넥션을 소유하는 Actor는 서버로 명령을 내릴 수 있다.Sound, Particle, Actor의.. 2025. 3. 9. Actor 우선권 & 휴면 / 조건식 프로퍼티 리플리케이션 / 액터 리플리케이션 로우레벨 - Unreal Network MultiPlayer Framework 액터 리플리케이션 우선권클라리언트에 보내는 대역폭(NetBandwidth)는 물리적으로 한정되어있다.클라이언트에 보낼 Actor 중, 우선권이 높은 Actor의 데이터를 우선 전달하도록 설계가 되어있다.Actor에 설정된 NetPriority 우선권 값을 활용해 전송 순서를 결정한다. (값이 높으면 우선권이 높다)우선권은 네트워크로 전송하는 비율을 높이는 것이 아니라 우선권을 높히거나 낮춰서 네트워크 성능이 향상되진 않는다.Actor 종류우선권(NetPriority)일반적인 Actor1.0Pawn3.0PlayerController3.0 Actor의 현재 우선권은 GetNetPriority()함수를 사용해서 계산한다.이 GetNetPriority함수도 연관성과 동일하 Actor와 관찰자 사이의 거리와 상대.. 2025. 3. 9. Actor Replication Frequence & Relevancy - Unreal Network MultiPlayer Framework 액터 리플리케이션 빈도( Actor Replication Frequence)클라이언트와 서버간의 진행되는 통신 빈도를 의미한다.NetUpdateFrequency 1초당 몇번 리플리케이션을 시도할지 지정한 값 (가능한 최소화하는 것이 성능에 좋음)값이 100이라는 의미는 서버가 이론적으로 1/100초 간격으로 리플리케이션을 시도한다는 뜻이다. (무조건 보장하진 않음)네트워크 빈도는 최대치일 뿐 이를 보장하진 않음서버의 Tick Rate에 따라 리플리케이션이 발생하지만 서버의 성능에 따라 달라진다.서버의 성능이 네트워크 빈도보다 낮을 경우 서버의 성능으로 복제된다.(NetUpdateFrequency가 100으로 설정되어있을 때 서버의 Tick이 50번 밖에 수행이 되지 않는다면 50번 리플리케이션이 발생함... 2025. 3. 8. 이전 1 2 3 4 5 6 7 ··· 31 다음