[언리얼]배틀 그라운드 따라 만들기 #11 본 변경과 하체회전

안녕하세요 유랑입니다.



실력향상을 위해서 이번 시간부터는 유료 강의를 따라하면서 공부하겠습니다.

블루프린트와 엔진 버전은 4.18.3을 사용합니다^^




1. 배틀 그라운드 만들기



이번 강의는 얼론데브와 인프런에 있는 배틀 그라운드(로얄)을 만드는 강좌이며,

유료로 돈을 지불해야만 강의를 들을 수 있습니다.

저는 돈을 지불하였고, 스킬업을 위해서 복습겸 글을 올리겠습니다.


얼론데브 => https://alonedev.com/

인프런 => https://www.inflearn.com/






2. 본 변경과 하체회전



오늘은 본 변경을 하여 하체회전을 해보겠습니다.

좌우상하로 움직일 때 각각 애니메이션이 있으면 좋겠지만,

없을 때 구현할 수 있는 유용한 방법입니다.




배틀그라운드




2-1) 본 변경하기 -본 트랜스폼



다양한 모션 구현을 위해서 본을 다뤄보겠습니다.

Locomotion에서 선을 끌어와 '로컬을 컴포넌트로'라는 노드를 만들어 줍니다.




배틀그라운드



그리고 본 트랜스폼이라는 노드도 만들어서 연결해 줄텐데요.

본 트랜스폼은 이름 그대로 본의 트랜스폼 제어가 가능합니다!!



배틀그라운드



본 트랜스폼은 다시 로컬로 변환하여 애니메이션 포즈에 연결해 줍니다.



배틀그라운드




2-2) 본 변경하기 -㉡Hips



Hips은 본의 가장 상위 부모에 해당되는데요.

그렇기에 이 값을 회전하면 전체가 돌아갑니다.

저희는 로테이션 값만 건들거기에 나머지는 언체크하고,

로테이션 모드를 'Add to Existing'이라고 설정해 줍니다.

기존 회전 값에 설정한 값을 더해주는걸 의미합니다.




배틀그라운드




2-3) 본 변경하기 -㉢Spine



이번에는 트랜스폼을 만들어 상반신 회전 값을 설정하겠습니다.

전체 회전 값이 변하고 상반신 또한 변하면,

하반신이 돌아간 느낌을 줄 수 있겠죠?ㅎㅎ




배틀그라운드




2-4) 본 변경하기 -㉣변수 연결



수동으로 회전값 변경이 아닌 

변수값 제어를 통한 회전을 해보겠습니다.

'LowerRotation'이라는 변수를 만들어 주세요.




배틀그라운드



이 변수값을 각각 본 트랜스폼에 넣어줄텐데요.

하체가 돌아간 효과를 주기 위해서 상반신은 - 값을 넣어줄게요.



배틀그라운드



후후 돌아가네요.



배틀그라운드




2-5) 하체회전 -㉠Move Right 변수값 저장



지난 시간에 'MoveForward'는 값을 저장했지만,

'MoveRight'는 저장하지 않았죠.

변수를 생성해 저장하겠습니다.




배틀그라운드



애니메이션 블루프린트에도 'MoveRight' 변수를 만들어 값을 저장해 줄게요.

이렇게 분리한 이유는 쓰레드가 다르기 때문이었죠?!



배틀그라운드




2-6) 하체회전 -㉡회전하기



앞에서 만든 'LowerRotation' 값에 'Move Right' 값을 넣어줄게요.

이 때 'Move Right'는 회전 방향을 의미하므로, 

30이라는 값을 곱해서 넣어줄게요.




배틀그라운드



이제 키보드의 좌우 값을 받아 캐릭터가 회전하는 모습을 보입니다.



배틀그라운드




2-7) 회전 보완하기 -㉠좌우 이동



좌우로 이동할 때 회전을 하는 부분이 이상합니다.

이유는 앞으로 가는 모션이 없기 때문이죠.

좌우 입력 값이 0이 아니고, 

앞으로 가는 입력 값이 0일 때 

'MoveForward' 값을 1로 설정해 주겠습니다.




배틀그라운드



배틀그라운드




2-8) 회전 보완하기 -㉡뒤로 이동



뒤로 이동할 때 골반이 반대로 틀어지는 문제가 있습니다.

작업을 해주어야 하는데,

보여지는 부분이 복잡하기에 시퀀스를 만들어 연결하겠습니다.

시퀀스 노드는 순차적으로 실행할 때 유용합니다.




배틀그라운드



다음 노드는 로테이션 값을 반전함으로써 

뒤로 움직일 때 골반이 반대로 틀어지도록 구현해줍니다.



배틀그라운드



배틀그라운드




2-9) 회전 보완하기 -㉢회전 보간



회전 설정은 다 끝났지만 그래도 뭔가 찜찜하네요.

확 틀어지는 느낌이 불편하니깐 보간을 통해 부드럽게 만들어 주겠습니다.

'CurrentLowerRotation'은 현재 로테이션 값을 의미합니다.




배틀그라운드



시퀀스에 다음 부분을 연결해 줍니다.

'Lower Rotation' 값을 목표로 천천히 회전시켜 줍니다.



배틀그라운드



그리고 기존에 'LowerRotation' 부분을 'CurrentLowerRotation' 변수로 바꿔주세요.



배틀그라운드



이제 그럴사 하지 않나요?



배틀그라운드




3. 마무리



오늘 강의는 여기까지입니다.

배틀 그라운드를 따라하면서 본 변경과 하체회전을 적용해 보았습니다.

오늘도 고생하셨습니다.

감사합니다.




수업자료: 배틀 그라운드 따라 만들기 #11 본 변경과 하체회전








댓글

Designed by JB FACTORY