안선생의 개발 블로그

[UE5 멀리플레이 게임 만들기] 2. 에셋 및 애니메이션 본문

언리얼/멀티플레이 게임 만들어보자

[UE5 멀리플레이 게임 만들기] 2. 에셋 및 애니메이션

안선생 2023. 12. 18. 22:39

먼저 캐릭터 에셋 부터 구해올게요!

캐릭터 에셋은 원하는거 하시면 돼여

저는 언리얼에서 무료로 제공해주는 파라곤 에셋을 다운받았습니다.

프로젝트에 추가해줄게요

 

캐렉티 블루프린트는 콘텐츠 -> ThirdPerson ->BluePrint에 있어요

그런 다음 다운받은 스켈레탈 메시로 바꿔줘야 겠죠?

캐릭터 스켈레탈 메시를 바꿔줄게요

 

그런다음 메시 전용 애니메이션 필요하니 하나 만들어줄게요

 

우클릭 ->애니메이션 -> 애니메이션 블루프린트 클릭하시고 하나 만들게요

 

먼저 이벤트그래프에서 캐릭터 블루프린트와 Movement가져올게요

EventBlueprintInitalizeAnimation은 애니메이션 초기화 시 시작되요 즉 처음 한번만 실행되요.

TryGetPawnOwner는 이 애니메이션 소유자를 반환해요 즉 저희 캐릭터겠죠?

 

그런다음에 캐릭터 달리고 있는지, 점프해있는지 알아야겠죠? 그걸 통해 기본 움직임을 구현할거에요

 

 

이 이벤트는 Actor에 Tick함수라고 생각하면 되요 매 틱마다 실행되고 매 순간 캐릭터가 상태를 알 수 있어요

 

그런다음 AnimGraph에서 가서 스테이트를 하나 만들어줍니다.

그러고 캐시화 해줄게요!

 

Locomotion스테이트 머신에는 

이렇게 해주면 됩니다. 

 

먼저 가장 기본 상태인 Idle 스테이트를 추가해줄게요!

Idle에는 Idle포즈를 넣어야겠죠?

그런다음에 캐릭터가 움직이면 걷는 State가 있어야 겠죠 State를 하나 만들고 

 

거기에 트렌지션을 붙여줄게요 트렌지션은 조건이라고 생각하면 되여 저기 위에 동그라미 누르고 조건을 추가해줄게요

위에 만든 bool변수인 Should Move가 참일 때가 움직이는거니깐 참일때 Walk로 가게 해줄게요

그럼 Walk에서 Idle갈라면 반대로 하면 되겠죠?

 

그런 다음에는 점프를 구현해야 되요 점프는 아래 보시면 핑크색으로 된게 하나있는데 이게 무엇이냐면

스테이트 에일리어스라는거에요 자세한 설명은 여기 <-  에일리어스는 쉽게 말하면 선택한 스테이트일 때 실행된다고 생각하면 되여

아래 예시를 통해 볼게요.

To Falling에 에일리어스인데 위에서 선택한 상태일 때 자동으로 실행된다 했죠? 그뜻은 현재 상태가 Idle,Walk,Land상태일 때 트렌지션이 맞으면 상태가 바뀌는겁니다. 즉 가만히 있거나, 걷고있거나, 땅에 착지했을 때 점프할라면 트렌지션을 걸어줘야겠죠 이 트렌지션이 참이면 점프를 하게 됩니다. 

 트렌지션에는 ISFalling이 참이면 점프하게 할게요 (떨어지는 중이면) 

 

애니메이션은 Jump_Start를 넣어줄게요

 

 

점프를 했으면 공중에  떠 있는 시간이 있겠죠? 

 

Jump_Loop라고 하고 점프하고 자동으로 Jump_Loop로 가게 해줄게요

Jump에서 Jump_Loop 트렌지션에 위에 동그라미를 체크해줍니다 그러면 점프 시작하고 자동으로 다음 애니메이션을 실행하게 됩니다.

 

Jump_Loop 애니메이션

저는 Jump_Apex를 넣어줬습니다.

 

그런다음에 착지를 해야겠죠 마찬가지로 스테이트 에일리어스로 구현해볼게요

점프하거나 공중에 있을때를 해야겠죠?체크해줄게요

점프하거나 공중에 있을때를 체크해줄게요.

 

트렌지션에는 떨어지는중이 아닐때 이겠죠?

ToLand->Land 트렌지션

 

 

Land 애니메이션

 

 

땅에 착지를 했으면 이제 Idle이나 Walk중이겠죠 다시 트렌지션을 걸어줄게요

 

지금 보시면 Land에서 Walk 트렌지션은 두개인데 그 이유는 자동으로 가고싶거나 캐릭터가 움직이고 있을 때 Walk로 가야겠죠 만약 자동으로 안가면 캐릭터는 떨어지고 가만히 있는데도 Walk로 갈 수 없어요 왜냐하면 캐릭터가 움직이지 않고 있기 때문 그래서 두개를 해줘야돼여 

 

하나는 자동으로 가게 해줄게요 (Idle 상태를 가기 위함)

하나는 움직이고 있을 때 가게 해줄게요(움직이고 있으면 걷고 있어야됨)

 

 

그런다음 걷고 있을 때  멈추면  Idle상태로 가줘야 겠죠

 

위에를 보시면 Idle하고 Walk는 양방향인데 서로 갈 수 있다는 뜻이에요 Idle상태일 때 Walk로 갈 수 있음 Walk상태 일 떄 Idle로 갈 수 있음 

 

Walk상태일 때 멈추면 Idle상태로 가야하니 트렌지션에는 아래와 같이 해줄게요

 

그럼 아래와 같이 기본 움직임은 완료입니다.

 

이제 애님그래프에서 연결해주면 끝입니다.

캐시화 한걸 Use Cached Pose를 통해 연결해줍니다.

 

그리고 캐릭터 블루프린트로 들어와 저희가 만든 애니메이션을 사용해줍니다.

 

메시에 클릭하고 하셔야 찾기 쉬워요 애니메이션 모드를 Use Animation Blueprint를 하고 저희가 만들 클래스를 선택해주면 완성입니다.

 

실행하면 캐릭터가 정상적으로 애니메이션을 할 수 있는것을 볼 수 있습니다. 다음에 계속할게요!