UE5 Create Walk Animation Using Editor Utility Part.1/4

 



걷기 애니메이션을 스크립트로 찍어 보겠습니다.


골반은 나비 모양으로 움직여 줄겁니다.



이렇게 움직이면 되요,








idle 하고는 다른 배열 을 사용 합니다.

배열 변수를 하나 추가 해 주고 위와 같은 노드로 배열을 만들어 줍니다.



IDLE 과 같은 방식입니다.




Location.X 


Location.Z








나비가 되었습니다.

골반의 타이밍이 만들어 졌으니, 다리 부터 만들어 보겠습니다.


필요하다 생각 되는 변수 몇개를 추가 하겠습니다. 뭐가 많아지니 구분을 하는게 좋겠습니다.


 이벤트를 새로 하나 만들어 주고,변수 몇개를 만들어 줍니다. 

다음으로 해 볼 단계는 다리 움직임을 러프하게 만들어 주려 합니다.


이렇게 러프하게 움직이는 다리 애니메이션을 만들어 줍니다.

이 단계에서 같이 진행될 두가지 


  • 추가된 Switch Foot R L 불리언을 사용 앞다리 정하기

  • 다리 길이로 보폭 계산하기


스크립트 실행시 Switch Foot R L체크 유무에 따라 앞발을 결정 합니다.


불리언 기본 값은 0입니다. 

디폴트로 왼발 앞으로 시작 합니다.

테스트 해 보겠습니다.

잘 작동 하네요



캐릭터마다 비율이 다를테니 안전성을 위해서도 수동으로 체크 하는게 좋을거 같습니다.

다리 길이는 수동으로 작성 하도록 합니다. 


이렇게 간단히 체크를 해 보고 본인 캐릭터 키에 맞는 다리 길이를 스크립트 실행시 입력해 줍니다.

변수를 하나 더 추가 해 주도록 합니다. 보폭 입니다.

일반적으로 보폭은 앞발 뒷꿈치 부터 뒷발 뒷꿈치의 거리를 의미 합니다.

보폭은 다리 길이의 70% 정도를 맥스로 생각 하고 있습니다.

이부분은 진행 해 보면서 적당한 값을 찾아 수정 하도록 합니다.


입력된 다리길이 값에 0.7을 곱해주고 반으로 나눠서 앞발은 양수 뒷발은 음수를 넣어 주면 

내가 희망하는 보폭 값이 나오겠죠?


91*0.7 = 63.7  나눠주면 31.85 입니다.

노드로 정리 하면 아래와 같습니다.

leg transform 변수를 추가 해 주었구요
테스트 해 보겠습니다.


거의 오차 없는 값을 보이고 있습니다.


계획했던 러프한 애니메이션만 만들거기 때문에 필요한 프레임만 채워줍니다.



양쪽발 모두 잘 움직이네요

디테일은 후반에 잡아 주도록 합니다.

Stride Step 값을 0.7 디폴트로 만들어 주고 변수로 빼준후 연결 해 줍니다.




발간격을 만들어 주는 Spacing of feet 변수도 Location.x 값에 넣어 주면 
발간격도 설정 할수 있게 됩니다.


하나 놓친 부분이 있네요
앞발을 설정 해 주는 기능이 들어 가면 골반의 움직임도 영향을 받아야 합니다.
디딤발에 맞게 골발이 움직여야 하니까요
디폴트 왼발 일때는 현재 설정이 문제 없지만 반대가 되면 골반도 반대로 움직여 줘야 합니다. 변수를 추가해 간단히 처리 합니다.











애니메이터가 걷기를 만들때 발의 트레젝토리 모양입니다.
저거보다는 옆으로 누운 물방울 모양으로 만들어야 하는데 디테일은 나중에 살리기로 하고 우선 러프하게 저런 모양으로 움직이는 다리를 만들도록 하겠습니다.





적절하다 싶은 값으로 키를 찍어 줍니다.
아래는 각각 X,Y,Z 로케이션 값입니다.

Y

Location.Y 값은 보폭운동을 만들어 내는 가장 중요한 부분입니다.
적절한 타이밍을 잡는게 중요합니다.
미세한 값을 조절해 가며 현재까지는 가장 부드럽다 생각 하는 값으로 넣어줬습니다.

Z

Location.Z 는 발을 들어 올리는 프레임에 적용 해 줍니다.
다리 길이에 비례한 값으로 넣어 줬습니다.
본인 판단에 맞게 해당 값을 바꿔 주면 됩니다.



X



Location.X는 아직까진 특별히 계산된 값을 넣지 않습니다.
스페이싱 값을 넣어주고 반댓발에는 음수 값을 넣어 두 발 폭을 조절 해 줍니다.


트렌스폼 값에 보면 로테이션 X 값도 들어가 있는걸 확인 할 수 있습니다.
발목 회전을 만들어 줘야 하기 때문입니다.
이부분 또한 적당하다 싶은 값으로 원하는 타이밍에 넣어주면 됩니다.



배열로 만든 프레임이 아닌 다른 타이밍에 키를 줘야 해서 루프완료후 아래와 같이 키를 추가 해 줍니다.

 
추가로 위와 같은 노드를 반들어 준 이유는 우리가 배열로 만든 프레임이 아닌 부분을 사용 하기 때문입니다.

반대쪽 발은 반대로 만들어 주면 됩니다.




첫 프레임과 두번째 프레임, 일반적으로 한 두 프레임 간격으로 만들어 줍니다.
그리고 마지막에 발을 가져와 딛는 과정 
반댓발로 가면 이부분도 반대로 적용 해 주면 됩니다.


여기까지 이해가 안가도 괜찮습니다. 
마지막에 전체 노드를 링크시켜 둘 생각이니 포기 하지 말고 천천히 따라 만들어 보시면 좋겠습니다.

이제 골반회전과 바운싱을 다리 움직임과 맞춰 봐야 겠습니다.


Location.x 스패이싱 값은 앞발의 좌우에 따라 달라야 합니다.
이부분을 수정하고 다음으로 넘어가겠습니다.





spacing of feet 이 사용된 부분에 모두 pelvis offset 값을 곱해줍니다.

댓글