반응형
외부 입력에 따른 각각의 이벤트 처리를 알아봅시다.
- Movement Input - 아래 펼쳐 보기
- 입력에 따른 캐릭터 방향처리와 카메라 이동 처리 부분
더보기
각각의 입력과 회전에 따른 움직임을 함수로 처리하여 폰을 움직이도록 처리하였다. 키보드는 입력값이 일정해서 큰 오류가 없지만, 패드의 입력값은 float단위로 매우 민감하게 떨리게 처리되는 경우가 많아 range clamp 값으로 입력값을 안정되게 들어오도록 처리한 방식이다.
- Camera Input - 해당 부분은 일반적인 카메라 움직임이 적용되었다.
- Jump Action Input - 점프 입력이 들어왔을 때의 처리
Ragdoll과 Mantle등의 예외처리가 필요하다 보니 다른 부분보다 로직이 복잡하다.
지금 상태에서도 키보드 X버튼을 누르면 Ragdoll이 발동되긴 하지만, Skeletal Mesh의 정확한 렉돌 정보가 아직 들어오고 있지 않기 때문에 컴파일 에러가 발생하게 된다.
Mantle 체크와 Ragdoll 체크등은 스켈레탈 메시가 연결되고 나서 다시 한번 확인을 해볼 필요성이 있다.
- Stance Action Input - 앉기 버튼에 따른 입력처리와 예외 처리 부분.
- 기본적으로 Movement Action에서 None 상태에서만 Crouch가 작동되도록 설정되어 있다.
- Walk Action Input / Sprint Action Input : 인풋이 올 때 마다 모드가 변경되도록 처리.
더보기
ALS Gait 타입으로 된 변수 4개로 캐릭터의 행동을 Tick마다 계산하고 있기 때문에 각각의 Gait변수들의 특성을 알 필요가 있다.
- Desired Gait
- 컨트롤러의 키 입력이 들어가면 즉시 변경되는 변수입니다.
- 예를 들어 Sprint 키인 Left Shift 키를 누르면 그 즉시 Desired Gait 변수는 Sprinting으로 변경됩니다.
- Allowed Gait
- 여러 State(Stance, Rotation)에 따라 현재 Desired Gait를 허용할 지 판단합니다.
- 예를 들어 Crouch 상태에서 Sprint 키를 눌렀을 때 Desired Gait는 Sprinting이 됩니다. 하지만 Crouch 상태에서 Sprint를 하지 못하길 원한다면(최대 Running까지) Desired Gait는 Sprinting이지만 이를 허용하지 않고 Allowed Gait를 Running으로 설정합니다.
- 설정된 Allowed Gait에 따라 Character Movement Component의 Max Speed와 같은 값들을 변경합니다.
- Actual Gait
- Allowed Gait까지 설정 후 캐릭터의 물리적인 속도에 따라 실질적인 Gait를 설정합니다.
- 예를 들어 캐릭터가 Running 중에 Walking으로 변경 시 Allowed Gait는 Walking이 되었지만 실제 캐릭터 속도는 아직 Running의 속도이므로 Actual Gait는 Running입니다. 서서히 캐릭터 속도가 줄어들어 Walking의 속도가 됐을 때 Actual Gait도 Walking이 됩니다.
- Gait
- AnimBP에 전달되는 최종 ALS Gait 타입 변수입니다.
- Allowed Gait, Actual Gait 변수는 Tick마다 새로 써주고 있는데 Actual Gait 변수가 변경 되었을 때만 Gait 변수에 Actual Gait를 그대로 설정합니다.
- SelectRotationMode Input : VelocityDirection / LookingDirection 셋하는 곳.
- Aim Action Event : 총이나 활등의 무기를 사용할 때 저격 모드 인풋이 들어올 때의 처리 내용이다.
- Camera Action Event : 캐릭터가 카메라의 우측에 배치하게 할 것인지 좌측에 배치하게 될것인지 처리하게 된다. Aim 모드나 Looking Direction(FirstPerson) 모드에서만 작동한다.
- RagdollAction Input : 캐릭터가 렉돌 될때의 처리를 진행한다.
- Skeletal Mesh가 Pawn으로 적용된 이후 더 확실하게 체크할 수 있다.
-
더보기Ragdoll Start /Ragdoll End 상황을 처리하게 되는데, Ragdoll 아닐 때는 Ragdoll Start가 처리되고, Ragdoll Start가 되면 End로 오게 하는 구조이다.
렉돌이 시작되면 Pawn Mesh의 Physics Body의 Collision Type을 활성화 시키게 된다.
rag처리가 완료되는데로, Physic Body를 다시 꺼주게 한다.
반응형
'Engine > Unreal - Locomotion' 카테고리의 다른 글
Advanced Locomotion V4(UE4) 가이드 - 6 (캐릭터 Child BP-Skeletal Mesh 연결 및 기본 작동 테스트) (0) | 2024.05.20 |
---|---|
Advanced Locomotion V4(UE4) 가이드 - 5 (캐릭터 BP-TickGraph 해체 분석) (0) | 2024.05.17 |
Advanced Locomotion V4(UE4) 가이드 - 3 (캐릭터 BP-EventGraph 해체 분석) (0) | 2024.05.16 |
Advanced Locomotion V4(UE4) 가이드 - 2 (캐릭터 BP 이주하여 분석) (0) | 2024.05.16 |
Advanced Locomotion V4(UE4) 가이드 - 1 (구조 파악) (0) | 2024.05.16 |