반응형
어드벤스드 로코모션 컴포넌트에서 가장 중요한 플러그인인 'Animation Locomotion Library' 의 기능을 적극적으로 활용해서 Start 모션과 Stop 모션을 구현하고 있습니다.
위 기능을 사용하는 스테이트를 자세히 확인하기 위해서는 아래 포스팅의 'Start 스테이트' 와 'Stop 스테이트' 부분을 보면 더 자세히 확인할 수 있다.
https://tartist.tistory.com/177
- 아래는 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 함수
반응형
'Engine > Unreal - Locomotion' 카테고리의 다른 글
Advanced Locomotion Component - 개인 개발 프로젝트 (0) | 2024.06.04 |
---|---|
Advanced Locomotion Component 의 부족한 기능 추가 개발 (0) | 2024.06.04 |
Advanced Locomotion Component (UE5) 가이드 - 4 ( Unarmed / Anim Blueprint ) (0) | 2024.05.24 |
Advanced Locomotion Component (UE5) 가이드 - 3 ( Unarmed / CT_Cmpt_Locomotion ) (0) | 2024.05.24 |
Advanced Locomotion Component (UE5) 가이드 - 2 ( Unarmed / 캐릭터 BP) (0) | 2024.05.23 |