관리 메뉴

Mini

애니메이션 몽타주 본문

UE5

애니메이션 몽타주

Mini_96 2022. 8. 14. 16:03

* 몽타주 : 기존애니메이션 조합 => new 애니메이션 만들기

1.매쉬더블클릭-에셋생성-애님 몽타주

2.애니메이션 끌어서넣기. 조합하기 to defaultslot

 

* 좌클릭-> 3단공격 구현

1. Mycharacter에 바인딩


// Called to bind functionality to input
void AMyCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
	Super::SetupPlayerInputComponent(PlayerInputComponent);

	PlayerInputComponent->BindAction(TEXT("Jump"), EInputEvent::IE_Pressed, this, &AMyCharacter::Jump);
	PlayerInputComponent->BindAction(TEXT("Attack"), EInputEvent::IE_Pressed, this, &AMyCharacter::Attack);

 

2.Character::Attack 함수에서 애님인스턴스를 불러와서 실행하는 구조.

좌클릭시 바로 실행해야됨 -> 캐릭터에서 애님인스턴스를 호출하는 식으로 짬

void AMyCharacter::Attack()
{
	//애님인스턴스 찾아와서 실행해주기
	//1. 매쉬에 붙어있는 애님인스턴스 get
	//2. 애님인스턴스 -> 내애님인스턴스로 다운캐스팅
	auto Animinstance = Cast<UMyAnimInstance>(GetMesh()->GetAnimInstance());

	//null이 아니면
	if (Animinstance)
	{
		Animinstance->PlayAttackMontage();
	}

}

 

3. 애님인스턴스 :: 생성자

3-1. 경로에서 몽타주 불러오기

3-2. 몽타주포인터 멤버변수 AttackMontage에 넣기

UMyAnimInstance::UMyAnimInstance()
{
	//1.AM에 경로로가서 몽타주 불러오기
	static ConstructorHelpers::FObjectFinder<UAnimMontage> AM(TEXT("AnimMontage'/Game/Animations/Greystone_Skeleton_Montage.Greystone_Skeleton_Montage'"));

	//2. 불러오기 성공했으면 멤버변수에 넣어주기
	if (AM.Succeeded())
	{
		AttackMontage = AM.Object;
	}

}

 

4. 몽타주 실행<=(멤버변수 이용)

//캐릭터에서 호출해줄 함수
void UMyAnimInstance::PlayAttackMontage()
{
	//현재 실행중아니면 실행하기
	if (!Montage_IsPlaying(AttackMontage))
	{
		Montage_Play(AttackMontage, 1.f);
	}

}

 

5.ABP_MyAnim - (2번에서만든)DefaultSlot 연결해주기

'UE5' 카테고리의 다른 글

애니메이션 노티파이  (0) 2022.08.14
델레게이트  (0) 2022.08.14
스테이트 머신  (0) 2022.08.14
애니메이션 기초  (0) 2022.08.14
블루프린트 클래스  (0) 2022.08.11