5.4 게임애니메이션샘플 3 [TurnInplace /Jump/SpinTransition/Pivot]
진행하기 전에
PSD를 만들어 준다. Schema는 디폴트.
Nested Chooser idle 을 고쳐야 겠다.
Stop이 출력되지 않는게 너무 신경쓰인다.
![]() |
2일을 고민했는데 그냥 새로 만드니 된다. |
https://dev.epicgames.com/documentation/ko-kr/unreal-engine/motion-matching-in-unreal-engine
normalization set은 디버깅에 사용하는건가?
다시 Speed2D가 값을 받아오지 않는다.
날 열받게 해서 죽일셈인가 보다. 그래 누가 이기나 해 보자
원인을 찾았다
Enum MovementState 에서 문제가 발생 한다. 해당 조건이 없을때만 Stop이 정상 출력된다.
아무리 생각해도 이해가 안 간다.
둘이 뭔 상관...디버그로 찍어보면 float값은 항상 정상적으로 받아오는데 CHT에서만 작동하지 않는 이유를 모르겠다.
MovementState의 상태전환이 빠른게 원인인거 같다.
에픽프로젝트와 내 프로젝트의 차이를 모르겠어서 정확한 원인을 찾지는 못했지만
Is moving 함수 대신 Speed2D값을 넉넉히 가지고 상태전환을 만들어 STOP 출력을 만들어 냈다.
일단은 이렇게 하고 진도를 나가야겠다.
아 승질나...
- 턴인플레이스.
Turninplace: PoseHistory에서 Root Bone Recovery Time 설정을 꼭 해줘야 한다.
- 피봇&스핀
이제 피봇과 스핀을 을 추가하자.
PSD 4개를 추가 해 준다
Run/Walk_pivot , Run/Walk_SpinTransition
특별히 기록할만한게 없다.
특이점이 있다면 워크와 런의 조건이 다르다.
런은 스핀중이면 피봇을 false 로 전환해 주는데 워크는 그렇지 않다.
아마 깜빡 잊은게 아닐까 싶다. 런기준으로 맞춰 주는게 좀더 부드럽고 자연스러운 전환을 만들어 준다.
![]() |
요렇게 |
continuing pose Cost bias 값도 런과 같이 맞춰 줬다.
회전시 피봇보다는 스핀을 선택하도록 하기 위해서로 이해 하고 있다.
마지막으로 점프
BP 인풋액션부터 작업해야 한다.
파쿠르는 마지막에 할거니 빼고 점프만 넣어주고
ABP에서 함수 두개 추가해준다.
JustLanded_Light/JustLanded_Heavy
이름에서 알수 있듯 점프 높이에 따른 분기이다. 높은곳에서 떨어지면 헤비 보통은 라이트
![]() |
Landed light |
임계값은 700으로 설정되어 있고 보통 높이에서 낙하하면 500정도가 나온다
그래서 500<700 참이니 라이트 함수가 참을 반환한다.
![]() |
Landed Heavy |
높은곳에서 떨어지면 900정도 나오니 900>700 true 만약 500>700false
간단한 방법으로 분기를 하는데,난 왜 그렇게 어렵게만 했을까
내가 어떻게 했더라...is falling 상태일때 카운트 하는 방식으로 했던거 같다.
체공시간이 길면 무겁게 짧으면 가볍게 난 참 무식하다 무식해
PSS_Jump 스키마 사용
명확히 이해가 가지 않는부분이 있다 채널에서는 weight가 높은 값을 우선 선택하는건가?
Default 1 Stop 4 Jump 10으로 설정 되어 있는데 이거 나중에 테스트 해 보자.
로테이션이 답답한 느낌이 든다.
둘중 하나, 내가 뭔가 또 잘못했거나 AO와 린인을 달지 않아서 이거나.
린인과 AO를 달아보자
댓글
댓글 쓰기