-
[UE5] 캐릭터 무브먼트 컴포넌트 작동 순서 정리언리얼엔진/그 외 2024. 6. 13. 22:16
캐릭터의 움직임이 처리되는 순서를 간단하게 정리한것.
피직스 시뮬레이션이나 루트 모션 관련은 제외했음.
TickComponent() | 서버에 접속한 클라이언트인 경우 서버에서 받은 정보를 통해 위치 업데이트 | if 캐릭터의 움직임을 처리해야하는 경우. 대부분은 캐릭터가 직접 조종되고있을때. | ControlledCharacterMove() | | 점프 입력 확인 | | 가속도 조절 | | if Authority를 가지고있을때. | | PerformMovement() | | | MaybeUpdateBasedMovement() | | | ApplyAccumulatedForces() | | | UpdateCharacterStateBeforeMovement() // 움직임을 처리하기 전에 상태 업데이트. Crouch 상태 업데이트가 여기에서 진행됨. | | | HandlePendingLaunch() // Character::LanchCharacter()는 이 시점까지 미뤄짐. | | | ClearAccumulatedForces() | | | StartNewPhysics() // MovementMode에 따라 위치와 물리적인 상태를 변경함. 위치를 변경시키는 주요 함수. | | | UpdateCharacterStateAfterMovement() // 움직임을 처리한 후에 상태를 다시 확인해서 업데이트. Crouch 상태 업데이트가 여기에서 진행됨. | | else if 현재 클라이언트에서 작동하고있으며, 이 캐릭터가 플레이어에 의해 조종되는 경우. | | ReplicateMoveToServer() // PerformMovement()를 호출하는건 마찬가지지만, SavedMove에 현재 상태를 저장해서 서버에 보내주는 과정이 추가됨. | | | 예측에 사용할 SavedMove를 생성해서 현재 상태 저장. | | | PerformMovement() | | | 서버로 SavedMove 정보 전달 | else if 현재 서버에서 작동하고있으며, 이 캐릭터가 플레이어에 의해 조종되는 경우. | MaybeUpdateBasedMovement()
'언리얼엔진 > 그 외' 카테고리의 다른 글
[UE5] GameState의 PlayerArray가 동기화되는 방법 (1) 2024.09.09 [UE5] C++로 애니메이션 시퀀스 변경, 커브 추가 (0) 2024.07.03 [UE5] USTRUCT의 NetSerialize (1) 2024.03.12 [UE5] 블렌더로 루트 모션 애니메이션 만드는 방법 (4) 2024.01.25 [UE5] Enhanced Input Binding with Gameplay Tags C++ (0) 2024.01.21