728x90
반응형
애니메이션 몽타주
애니메이션 몽타주는 한 액션에 여러 애니메이션을 붙이고 싶을때 사용한다.
몽타주 생성
몽타주 생성방법은 해당매쉬의 Create Asset->Anim Montage이다.
생성한 몽타주는 이런식으로 애니메이션들을 이어붙이거나 분기점을 만드는 식으로 관리할 수 있다.
공격모션 바인딩
저번 포스팅때 처럼 Input에서 엔진에 Attack을 바인딩 시켜준다.
엔진에 바인딩후 캐릭터클래스에도 바인딩 시킨다.
//MyCharacter
PlayerInputComponent->BindAction(TEXT("Attack"),EInputEvent::IE_Pressed,this,&AMyCharacter::Attack);
하지만 Jump와는 달리 Attack은 엔진에서 제공해주지 않기에 만들어주어야한다.
Attack의 경우 플레이어가 클릭해야하기 때문에 프레임마다 확인하는것 보단 발생했을때 Anim Instance에서 추출하는편이 메모리를 아낄수 있다고 생각한다.
//Anim Instance
public:
UMyAnimInstance();
void PlayAttackMontage();
private:
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Pawn, Meta = (AllowPrivateAccess = true))
UAnimMontage* AttackMontage;
UMyAnimInstance::UMyAnimInstance()
{
static ConstructorHelpers::FObjectFinder<UAnimMontage> AM(TEXT("애니메이션 몽타주 주소"));
if (AM.Succeeded())
{
AttackMontage = AM.Object;
}
}
void UMyAnimInstance::PlayAttackMontage()
{
if (!Montage_IsPlaying(AttackMontage))
{
Montage_Play(AttackMontage,1.f);
}
}
//MyCharacter
void AMyCharacter::Attack()
{
auto AnimInstance=Cast<UMyAnimInstance>(GetMesh()->GetAnimInstance());
if (AnimInstance)
{
AnimInstance->PlayAttackMontage();
}
}
공격모션 적용
몽타주를 사용하기 위해서는 애니메이션 블루프린트에서 Default Slot을 추가해주고 적용해야한다.
적용시킨 결과는 다음과 같다.
728x90
반응형
'UE4 > 애니메이션' 카테고리의 다른 글
Ureal)애니메이션 노티파이 (0) | 2022.01.16 |
---|---|
Ureal)애니메이션 델리게이트 (0) | 2022.01.16 |
Ureal)애니메이션 스테이트 머신 (0) | 2022.01.15 |
Ureal)애니메이션 기초 (0) | 2022.01.14 |
댓글