반응형

어드벤스드 로코모션 컴포넌트에서 가장 중요한 플러그인인 'Animation Locomotion Library' 의 기능을 적극적으로 활용해서 Start 모션과 Stop 모션을 구현하고 있습니다.

위 기능을 사용하는 스테이트를 자세히 확인하기 위해서는 아래 포스팅의 'Start 스테이트' 와 'Stop 스테이트' 부분을 보면 더 자세히 확인할 수 있다.

https://tartist.tistory.com/177

 

Advanced Locomotion Component (UE5) 가이드 - 4 ( Unarmed / Anim Blueprint )

기본적으로 Ct_Cmpt_Locomotion 에서 보내주는 이벤트 정보를 바인딩하여 Data Table에서 가장 적절한 모션을 찾아 뿌려주는 기능에 초점이 맞춰져 있습니다.이벤트 내용은 이전 페이지를 참고하여 Ct_Cm

tartist.tistory.com

 

  • 아래는 Start 스테이트의 Update Start Anim Layer의 위 플러그인을 사용하여 캐릭터의 이동을 처리하는 부분이다.
    • Distance Curve 네임을 이용하여 캐릭터의 모션과 이동에 대한 싱크를 맞춰주게 됩니다.
    • 원본 애니메이션 에셋은 반드리 Root 모션으로 제작해야 하며, 옵션에서 Root모션 사용은 제거하고, 모션 에셋에 있는 Root 정보를 이용해 커브를 생성해 내게 된다.

  • 아래는 Process Turn Yaw Curve에서 Turn Yaw Curve Value를 구하는 부분입니다.
    • 애님 시퀀스 상에 있는 TurnYawWeight 와 RemainingTurnYaw 커브값을 이용하여 Turn Yaw Curve Value를 구하고 구해진 Turn Yaw Curve Value를 이용해 Root Yaw Offset 값을 구하고 그 값이 캐릭터를 회전시키는데 직접적으로 활용되게 됩니다.

 

그래서 결론적으로 캐릭터의 각방향의 Start 모션은 아래의 다섯개이며(뛰기만, 걷기포함하면 10개) 에서 각 모션별로 필요한 커브는 Distance  / RemainingTurnYaw / TurnYawWeight  세가지이다.(정면Start는 회전하지 않으므로  Distance 만)

  • Distance : 모션에 따른 이동 수치 (Root 모션으로 제작해야 얻어올 수 있다.)
  • RemainingTurnYaw : 회전 할 때 남은 회전 수치 (Root 모션으로 제작해야 얻어 올 수 있다.)
  • TurnYawWeight : 현재 회전하고 있는 수치 ( Root 모션으로 제작해야 얻어 올 수 있다. )

 

각각의 커브가 없을경우에 어떻게 작동하게 되는지 확인해 봅시다.

  • Distance 커브가 없을 때 - 이동과 모션에 따른 싱크를 맞추지 못하게 되면서 재생속도가 잘못출력된다.

  • RemainingTurnYaw 가 없을 때 - 남은 턴양이 계산되지 않아 잘못된 결과를 출력합니다.

  • TurnYawWeight 가 없을 때 - 현재의 턴양이 계산되지 않아 어색한 결과가 출력됩니다.

 

  • 세 커브가 모두 온전히 있을 때 아래처럼 온전한 결과를 얻을 수 있습니다.

 

  • 커브 추가 하는 방법
    • 모디파이어 추가->DistanceCurveModifier를실행해 주면distance커브가추가된다
    • 모디파이어 추가->TurnYawAnimModifier를실행해 주면 RemainingTurnYaw와 TurnYawWeight 커브가추가된다.

 

 

  • TurnYawAnimModifier 블루프린트 확인
    • ALC의 이 블루프린트가 RemainingTurnYaw 커브값과 TurnYawWeight 커브값을 얻도록 도와주는 모디파이어 블루프린트이다.

  • Populate Curve Keys 함수

반응형

+ Recent posts