본문 바로가기
[ Unreal5 ]/- 언리얼엔진5 실습

언리얼엔진5 c++ AnimInstance Montage 구르기

by MRG 2024. 4. 18.
728x90
반응형

 

▣ 먼저 가져온 애니메이션에 디테일에서 EnableRootMotion을 체크합니다. 

그럼 애니메이션으로 이동되는 경로가 고정됩니다. 

 

 

▣ 그리고 애니메이션을 몽타주로 생성하고 애니메이션 블루프린트에 연결까지 진행합니다.

 

 

▣ InputMappingContext에 Rolling에 대한 InputAction을 추가합니다. 

 

 

▣ 플레이어 C++에. h 헤더에서 애니메이션 몽타주에 대한 변수, 입력변수, 함수를 선언합니다. 

 

 

 

 

▣. cpp에서 InputAction에 대한 경로 지정 및 바인딩 코드를 완성하고 Rolling함수 안에서 AnimInstance를 가져와 Montage_Play() 함수를 이용해서 몽타주를 플레이하는 코드를 완성합니다. 

 

 

▣ Montage_Play() 함수 설명

 

- UAnimMontage* Montage:
재생할 애니메이션 몽타주의 포인터입니다. UAnimMontage는 애니메이션 시퀀스의 그룹을 정의하는 클래스입니다.

 

- float InPlayRate = 1.f:
애니메이션 몽타주의 재생 속도를 설정합니다. 기본값은 1.0으로, 이는 원래 속도로 재생됨을 의미합니다. 0.5는 절반 속도, 2.0은 두 배 속도를 의미합니다.


- EMontagePlayReturnType ReturnValueType = EMontagePlayReturnType::MontageLength:
함수가 반환할 값의 유형을 지정합니다. EMontagePlayReturnType 열거형은 두 가지 값을 가질 수 있습니다:
EMontagePlayReturnType::MontageLength: 몽타주의 전체 길이를 반환합니다.
EMontagePlayReturnType::Duration: 실제 재생 시간을 반환합니다 (재생 속도 InPlayRate를 반영한 시간).

 

- float InTimeToStartMontageAt = 0.f:
애니메이션 몽타주를 시작할 시간(초)을 설정합니다. 기본값은 0.0으로, 몽타주 시작 시점에서 재생이 시작됩니다. 다른 값을 설정하면 해당 시간부터 몽타주가 재생됩니다.


- bool bStopAllMontages = true:
다른 모든 몽타주를 중지하고 이 몽타주를 재생할지 여부를 지정합니다. 기본값은 true로, 이 몽타주를 재생하기 전에 다른 모든 몽타주를 중지합니다. false로 설정하면 다른 몽타주를 중지하지 않고 이 몽타주를 추가로 재생합니다.

 

https://docs.unrealengine.com/4.27/en-US/API/Runtime/Engine/Components/USkeletalMeshComponent/GetAnimInstance/

 

USkeletalMeshComponent::GetAnimInstance

Returns the animation instance that is driving the class (if available).

docs.unrealengine.com

 

 

 

 

▣ C++ 코드에서 몽타주를 연결하거나 플레이어 블루프린트로가서 몽타주 연결 및 애니메이션 블루프린트에서 slot 추가 후 플레이를 하고 C키를 누르면 구르기 하는 애니메이션이 재생됩니다. 

728x90
반응형

댓글