본문 바로가기
Unreal Engine Practice

Unreal 5 Mixamo character setting

by Srff5123 2023. 11. 3.
728x90

우선 Mixamo에서 자신이 사용할 캐릭터 애셋을 다운을 받은뒤

Animations로 이동하여 필요한 동작을 skin without으로 다운을 해줍니다.

저는 기본 동작들을 다운을 받았고 이렇게 다운을 받았으면 이제 Unreal에서 적용해보겠습니다.

 

Unreal을 실행하고 우선 캐릭터를 모아줄 폴더를 하나 만들어 준비하고, 폴더에 우선 캐릭터 파일을 넣어줍니다.

 

이런 상태로 건드릴거 없이 모두 임포트를 하면

Texture와 Material 그리고 Skeletal Mesh , PhysicsAsset, Skeleton 여러 정보가 Import가 되어지게 됩니다.

그리고 이 폴더 안에 Animation을 넣어줄 폴더를 새로 만들어 다운받은 Animation을 넣어줍니다.

내가 다운한 Skeletion인지 확인을 하고 모두 임포트를 틀릭하여 생성합니다.

 

그 다음 Skeleton 파일에서 BP파일을 생성해줍니다

클릭하여 들어가면

이런 식으로 나오는데 여기서 Result에서  New State Machine 노드를 만들어줍니다.

다음 State Machine 더블클릭으로 들어가

Entry가 나오는데 Entry에서 A new state만들어 주고

이름 설정으로 이름을 바꾸어줍니다

그 후 entry와 똑같은 방법으로 state를 하나더 만들어 jump up을 만들어 줍니다.

이런식으로 Jump Idle과 Jump Down까지 만들어 다시 Idle/Walk/Run으로 이어주어 반복동작으로 노드를 이어줍니다.

이제 해당되는 부분에 동작을 추가합니다.

우선 Jump up을 눌러들어가

드래그하여 끌고와 연결을 해줍니다.

위와 같은 방법으로 우선 적으로 Jump up , idle , down을 연결해주고 

다시 돌아와 

이 부분을 더블클릭합니다. bool값으로 체크를하여 점프에 대한 여부를 결정합니다.

 

결과 노드에서 드래그하여 Promote to Variable을 만들어주고 이름을 can jump로 바꾸어줍니다. 

yes면 점프를하고 no면 안하는 동작으로 갑니다.

다음 동작에 대한 조건은 키값으로 조정합니다.

 

이제 up -> idle -> down 은 점프하고 나서의 동작이기에 bool값 조정이 아닌 자동으로 바로 나와야 하기 떄문에

다음 연결의 중간을 누르면 디테일 패널에있는

이 부분을 체크하여 줍니다.

 

다음 Jump Idle은 공중에 떠있는 상태이기 때문에 루프를 풀어주어야하기에 더블클릭하여 들어가

Falling idle의 디테일 패널에서 애니메이션 루프를 체크해줍니다.

 

다시 원점으로 돌아와 이제 idle 과 down사이를 클릭하여  들어가줍니다

그 다음 아까 만든 변수 Can Jump를 Get 가져와 배치를 하고

 

can Jump 에서 노드를 NOT Boolean에 연결시켜줍니다.

설정을 하였으면 

 

이제 down에서 idle/walk/run 사이를 클릭하여

아까와 동일하게 체크를 해줍니다

 

이제 컴파일을 해주고

idle walk run을 설정을 하기위해 더블클릭을하여 들어가줍니다.

하나의 포즈밖에 출력이 안되기 때문에 블렌딩을 하기 위해 

콘텐츠 브라우저로 이동하여 다시 스켈레톤에서 생성을 통해 블렌드 스페이스 1D를 만들어줍니다.

 

만든 블렌드 스페이스를 더블클릭하여 들어오고 

블렌드는 스피드에 의해 하기 때문에

 

이름을 Speed로 세팅을해줍니다.

최소 축 값은 최소 스피드(idle)이고 최대 축 값은(달리기) 입니다.

다음 그리드 분할을 2로 설정을 해주고 그리드 스냅에 체크를 해줍니다.

스무딩 시간은 동작 바뀌는 시간으로 짧으면 뚝뚝 끊겨보일수있고 길면 답답할수있기 때문에 우선 0.3정도로 조정을하고

동작 전환을 보고 나서 수정을 하겠습니다.

 

이제 

이 부분으로 넘어와 0.0일 때는 속도가 0으로 가만히 있는 자세인 Idle을 드래그하여 넣어줍니다.

다음 걷는 부분을 가운데에 넣어주고 달리기를 500에 넣어주면

0일때는 가만히있고 250일떄는 걷고 500일때 달리기를 동작하게 설정합니다.

녹색 X자에 Ctrl을 눌러 좌우로 움직이면 Speed에 따른 프리뷰를 볼수있습니다.

 

이제 다시 State로 이동하여 방금 만든 BlendSpace를 드래그하여 배치하고 연결하면

이제 idle walk run 세개를 한번에 연결할수있게 됩니다.

 

이제 Speed 조절을 위해 클릭하여 변수로 만들어줍니다

그리고 이제 Speed를 조절하게 되면 동작구현이 끝이 나게 됩니다.

 

그것을 하기위해 이제 이벤트 그래프로 이동을하여 작성을 해줍니다.

 

Try Get Pawn Owner에서 아까 Speed값을 뽑기 위해 Get velocity에 연결해주고 그다음 아까 만든 변수 Speed를 set으로 끌고와 이어주고 Update에도 같이어줍니다.

이제 다음으로

점프를 하기 위해 Return Value에서 

Get Movement Component를 꺼내어주고  Get Movement Component의 Return Value에서 점프를 한후에 떨어지는지 안떨어지는지를 체크하기 위해 is Falling을 만들어 연결해줍니다.

그 다음 체크를 하였을때 결과에 따른 값을 얻기 위해 boolean값인 Can Jump를 가져와 연결을 해줍니다.

 

이제 ThirdPersonBP로 이동하여

스켈레탈 메시 에셋을 다운받은 스켈레탈로 교체해주고 애님 클라스를 아까만든 BP로 교체해주고 컴파일을 해준다음

플레이를 해주면 적용이 잘 된것을 알수있습니다.

 

 

 

Reference : https://www.youtube.com/watch?v=tisXIkLUDrU

728x90

'Unreal Engine Practice' 카테고리의 다른 글

Unreal Engine FName, FText, Fstring  (0) 2024.01.12
Unreal Engine Blend Space  (0) 2024.01.10
Unreal Engine Hierarchy  (0) 2024.01.09
Unreal Engine Reflection&Replication  (2) 2024.01.09
UE 5.2 Use Animation Montage  (0) 2023.11.14