언리얼 엔진

언리얼엔진 BP 공부 복습용 -5- 캐릭터 움직임 애니메이션

인똑이 2022. 10. 2. 09:14

우선 만든 캐릭터에 애니메이션을 적용시키려면

블렌드 스페이스

애니메이션 블루 프린트

가 필요하다

블렌드 스페이스는 각 동작들을 합쳐놓은 또하나의 애니메이션이라고 보면된다.

애니메이션 블루프린트는 말그대로 상황이나 경우에따라 어떤 애니메이션을 보여줄지 설정하는 것이다.

결국 우리는 최종적으로 애니메이션 블루프린트를 만들어 캐릭터에 적용시키면된다.

일단 다운받은 에셋에 이미 만들어져 있지만 우리는 새로만들기로한다

마네킹 폴더아래 BS 와 ABP 폴더를 만들자

우선 블렌드 스페이스먼저 해보자

이후 BS폴더 빈곳에 우클릭을 하고 저기 고급에셋 설정 - 애니메이션 -블렌드 스페이스1D 를 클릭

스케레톤을 선택하면 끝

이름은 BS_Move라고 해주었다.

한번 더블클릭으로 실행해보자

우선 이렇게 보일텐데

1번: 지금현재 프로젝트에서 가지고있는 애니메이션 파일들

2번: 애니메이션파일을 넣고 초록색은 미리볼수있는 상태를 나타낸다.

3번 BS에관한 설정

그럼 우선 우리에게 있는 파일

IDLE WALK RUN 이3개가 있지만

자연스러움을 위해 4단계로 나눌거다

이게 무슨말인지 한번 아래를 보자

아까 BS설정부분에서 가로축을 누르고 저 4라고 되어있는 것은

잘 안보이겟지만 잘보면 가로줄로 사각형들이 나누어져있는데 이 사각형의 개수이다.

지금은 4개는 필요없으니 3으로 바꿔줘보자

박스가 3개가 됫다

여기에 애니메이션을 한번 끌어다보자 아까 말한 IDLE WALK RUN

둘때는 아래에 0과 100이있으니

0에는 IDLE 100에는 RUN 그리고 가운데 왼쪽선에 WALK를 두자

그래서 이렇게 두었는데 초록색을 잡고 옆으로 움직이면

그 가운데 모델이 자연스럽게 재생해주며 미리보여준다.

그리고 우리는 0~100에 따라 멈췄다 뛰는 모습으로 바뀌는것을 알수있고

이를 속도라고 하자 근데 이 100이 100%의 100이아니다 진짜 속도가 100이란뜻이니

지금이대로 적용시키면 무조건 멈췄다 뛰는것밖에 나오지않을거다 아무튼 캐릭터의 MAX 속도를 달리기로 설정해주자 우선 캐릭터의 MAX속도는

BP_Character 에서

확인 가능하다 보면 600이 최대니 BS에서 100을 600으로 바꿔주자

자 바꿧다

근데 600이 달리기인데

200에서 걷다가 달리면 속도가 3배가 되는데 그럼너무 빠른거같으니

걷기를 400으로 맞춰주었다. 이건 뭐 하는사람 자유

자 그럼 이제 애니메이션 블루프린트를 만들어보자

아까와 같이 빈폴더 ABP로 가서

만들자

보면 애님인스턴스 맨위에 꺼랑

아래 스켈레톤을 설정해주자.

그리고 ABP_Character로 생성

더블클릭해보자

보면 이상하게 뭐가 뜨는데 지금 이 최종애니메이션이 보이는게

애님그래프라고한다 AnimGraph 자주 왔다갔다 할거니 기억해두자

저기에 빈곳을 우클릭하고

스테이트머신을 새로 추가해주자.

그리고 이름도 Default로 바꾸자 이제 이 스테이트머신에 사람모양을 최종애니메이션 사람모양이 꼿고

Default 더블클릭

그럼 이리 휑할것이다

빈곳에 우클릭 스테이트 추가 이름을 MOVE로 해주자

이후 무브를 더블클릭

이후 우리가 열심히 만든 BS_Move를 넣어주자

근데 저 상수에 속도를 넣어줘야하는데

변수 + 클릭

저부분을 Speed로 바꾸고 변수유형 플로트(float)로 바꿔주자

그리고 그변수를 블루프린트에 드래그하면

GET인지 SET인지 나오는데 우리는 값을 얻어와야하기때문에 GET으로 가져온다.

자이러면 선을 연결하고 컴파일하면 이렇게보이는데

우선 Speed가 0이기때문에 계속 아이들상태를 보여줄것이다.

저 위에 Defalut를 눌러 Move밖으로 나가고

아까만든 entry에 Move를 연결해주자.

 

자그럼 이제 Speed를 설정해줄 프로그래밍(블루프린트 질)을 해주자

저 애니메이션 이벤트를 클릭

우선 저 두개를 추가해주자

저 두개가 우리의 속도를 계산해주는 함수니 외워두거나 그냥 두고두고 이런거다라고만 알면되겠다 자세한건

마우스올리고 설명보면될듯

자그럼 변수 Speed를 SET으로 가져오고

이런식으로 해보자

그리고 우리 캐릭터 BP로 다시돌아가서

메쉬를 클릭 후 애니메이션 저부분에 지금 애니메이션 블루프린트 타입을 넣으라는데

우리가 아까 만든것을 검색해서 넣어주자

그럼

캐릭터가 약간 숨쉬는 IDLE 상태로 바뀐것을 보게된다.

그 후

플레이해서 움직여보면 애니메이션이 잘 작동되는것을 볼 수 있다

근데 사실 이제 기본속도와 달리기버튼 눌렀을때 속도도 설정해줘야한다.

아까 MAX WALK SPEED 기억하는가

그 부분을 400으로 바꿔주고

쉬프트키를 눌렀을때 그 MAX스피드가 600이 되게 해주자.

보통은 기본이 달리기 걷기버튼눌렀을때 400으로해주는데

뭐 방식은똑같으니

아무튼 최대 400으로바꿧으면 플레이를 누르고 재생하면 걸을것이다.

자그럼 액션매핑에 Sprint를 만들어주자 왜냐하면 눌렀다 떼는것을 검사할수 있게하기 위해서다

이렇게 추가하고

이제 BP캐릭터에서 설정하자

자 MoveEvent에 빈곳에 액션매핑 Sprint를 불러오고 눌렀을때

바꿔줘야할것이 캐릭터 무브먼트의 MAX SPEED이니

이렇게 가져오고

그 Character Movement 안에있는 Max Walk Speed를 Set으로 400인지 600인지 설정해줘야하기땜에 Set으로 가져온다.

그럼이제 눌렀을때 600이 될것이다

그럼 뗏을때는??

400으로 되는걸 하나 더만들어주고 릴리스와 연결시켜주면 끝

자 그러면 쉬프트를 누르면 뛰고 떼면 걷는것을 잘 확인할수 있다

오늘은 여기까지 하고 담에는 점프를한다던지 이런부분을 한번 알아보겟다.