*언리얼엔진5를 배우는 과정을 기록하는 포스팅입니다.
아직 미숙하고 처음 글을 작성하는 만큼 미흡한 부분이 많은데 댓글로 피드백 부탁드립니다! 감사합니다.
학습 자료:
https://www.youtube.com/watch?v=_-BN0avvH3Q&t=572s
메모)
Crouch(숙이기) 상태를 만들기 위한 절차
1. Crouch 키매핑 및 활성화
숙이기로의 키를 위해 연결 및 Can Crouch 활성화
(* 빠른 공부를 위해 블루프린트 및 UE4 입력방식 사용, 후에 C++ 및 Enhanced Input 으로 리팩토링 예정)
2. 애니메이션 블루프린트 State Machine
* 여기서 빨간색과 초록색 Transition Line 같은 경우엔
Transition Rule Sharing으로, 조건을 다른 Transition Line에서도 사용할 수 있게 도와주는 시스템으로,
Idle -> Crouch 의 조건인 Is Crouching? 의 조건을 Walk/RunCycle -> Crouch 와 Crouch -> Crouch Idle 에서도 사용 가능하게 해준다.
Crouch Cycle 또한 Walk / Run Cycle 처럼 앉았을때의 애니메이션을 연결해준다.
2. 점프 및 착지 스테이트 설정
기존 ThirdPersonCharacter 의 애니메이션 블루프린트에서
Jump, Fall Loop, Land 의 애니메이션을 적절한 애니메이션으로 바꾸는데,
Land의 애니메이션을 바꾸기만 한다면 이상한 증상이 발생하는데(카메라의 위치로 애니메이션이 일그러지는 현상)
기존 MM_Land의 애니메이션의 설정을 보면,
다음과 같은 옵션을 볼 수 있는데,
https://www.youtube.com/watch?v=flHL3qJB3_I
다음의 유튜브영상에서 볼 수 있듯이, 메인이 되는 애니메이션에 첨가되길 원하는 애니메이션을 추가하여 나타내 주는 기능인 것 같다.
더욱 자연스러운 효과 (관성, 마찰 등?) 를 위해서 알아둬야 할 것 같으며,
현재 점프에서 쓰이듯이 기존 애니메이션에 추가적인 느낌을 줘서 나타내기 좋아보인다.
사용할 점프 애니메이션 또한 Additive Settings 의 값을 MM_Lands 와 유사하게 진행해준다.
* 여기까지 완료 후 기본적인 동작을 해보면 꽤 나쁘지않게 이동하는 걸 볼 수는 있지만,
ctrl을 눌러 웅크리기 시작하면 카메라가 확 움직여 어색한 모습을 보였다.
그래서 캐릭터의 Spring Arm의 Enable Camera Lag을 설정하였더니 캐릭터가 웅크릴때는 자연스럽게 카메라가 넘어가지만, 캐릭터를 좌우로 움직이면 그에 맞춰서도 카메라가 래깅하여 따라와 움직임과 일치하는 느낌이 들지 않았다.
당장에 들은 생각은, Camera Lag을 활성화 하지 않되, crouch 상태에 들어갈 때, 카메라의 위치 또한 바로 이동시키는 것이 아니라 웅크렸을 때의 카메라 위치 오프셋을 정해 해당 위치로 VInterpTo 를 통해 보간으로 처리하는 방법이 좋을 것 같다.
혹은
카메라의 Lag 속도를 높이면 좌우로 이동할 때에도 자연스러운 느낌이 들어 좋은 결과를 가진 것 같으나 빠르면 빠를수록 웅크릴때의 카메라 움직임 또한 끊기는 느낌이라 상황에 맞게 처리하면 될 것 같다.
실행화면)
카메라의 위치도 일부 조정하니 조금 더 자연스러워졌다.
특히 웅크리고 일어날 때의 모습이 살짝 어색했는데 화면에서는 살짝 가려져 조금 더 깔끔해보인다.
물론 다른 사람의 시선에서 볼때에는 그대로이므로, 개선해야할 사항인 것 같다.
*)
다음 영상에서 다음과 같이 상태전환이 추가되었는데,
Crouch Cycle(이동중) -> Walk/Run Cycle을 통해서 웅크리고 일어날 때의 어색함이 사라졌다.
사실상 상태에 대해 늘어날수록 다른 상태들과의 체크를 해야하므로 Crouch 를 따로 빼는건 안좋아보인다.
(실제로 예전에 닌텐도 요시아일랜드 모작을 만들어볼 때에도 상태가 늘어날수록 감당하기 힘들었던 경험이 있었다.)
Lyra 캐릭터의 경우엔 Crouch를 Idle, Walk/Run Cycle 등등에서 내부적으로 Is Crouch 변수 값을 통해 애니메이션을 재생하곤 했는데 이 방식을 활용하는게 가장 좋아보인다.
(다음영상)
https://www.youtube.com/watch?v=-yKtw-zKOU8
이 영상의 주요 내용은 제자리에서 돌기이다.
학교에서 수업을 들었을 때, TPS 게임의 경우 컨트롤러의 Yaw에 캐릭터의 방향을 맞추면,
Idle 상태일 때 캐릭터가 무조건 idle 애니메이션으로 회전만 하다보니 발이 매우 보기 안좋은 경우가 있었고, 이를 카메라를 활용하여 가려지게 하는 방향으로 했었는데,
위 영상대로 진행하면 제자리에서 발을 딛으며 회전을 한다.
실행 이미지)
강의에선 90도로 설정하여 조금 끊기는 감이 있어 45도로 바꿨는데,
조금 더 자연스러운 모습이지만 만약 내가 90도를 옆으로 돌리면 45도 움직이고 45도를 움직이는 모습을 보인다.
이들과 더불어 조금 어색한 모습도 많이 보이기는 해서 당장에 90도를 움직이는 상황에 대해서는
캐릭터가 90도 회전하는 애니메이션, 60도 회전하는 애니메이션, 45도 회전하는 애니메이션을 만들어
차례로 수치에 맞는 애니메이션을 진행하게 하면 조금 더 깔끔하지 않을까 싶다.
당장에 각 스테이트 간에 블렌드되는 모습이 너무 어색한것도 있어 많이 찾아봐야 할 것 같다.
위 영상의 내용을 분석하는 것은 내일 진행할 예정이다.
'Unreal5 > TPS 캐릭터 만들기' 카테고리의 다른 글
키 더블클릭으로 회피 기능 만들기 (0) | 2023.08.25 |
---|---|
TPS 캐릭터 만들기 - Aim Offset (0) | 2023.08.24 |
TPS 캐릭터 만들기 - 회피 (0) | 2023.08.24 |
TPS 캐릭터 만들기 - 제자리 회전 분석 (0) | 2023.08.23 |
TPS 캐릭터 만들기 - 간단한 8방향 이동 (0) | 2023.08.21 |