UE4/애니메이션

Ureal)애니메이션 노티파이

PJNull 2022. 1. 16.
728x90
반응형

Animation Notify

애니메이션 노티파이는 애니메이션혹은 몽타주에 구간을 나누는 것을 의미한다.

베이지색 Attack_Hit는 노티파이라 하며 애니메이션의 분기점을 설정하는 것이다. 연보라색 Attack0는 몽타주 색션라 하며 합쳐진 몽타주 애니메이션을 자르는 역활을 한다.

몽타주 노티파이

//MyAnimInstance

private:
UFUNCTION()
void AnimNotify_AttackHit();//AnimNotify_설정한노티파이의이름으로 작성해야된다.
//MyAnimInstance

void UMyAnimInstance::AnimNotify_Attack_Hit()
{
 UE_LOG(LogTemp,Log,TEXT("attack"));
}

위 코드는 해당 애니메이션이 노티파이를 지날때마다 명령을 수행한다.

 

몽타주 색션

//MyCharacter.h
private:

UPROPERTY()
int32 AttackIndx=0;
//MyCharacter.cpp

void AMyCharacter::Attack()
{
	if (IsAttack)return;
	
	AnimInstance->PlayAttackMontage();
	AnimInstance->JumpToSection(AttackIndex);
	AttackIndex = (AttackIndex + 1) % 3;
	
	IsAttack = true;
}
//MyAnimInstance.h

public:
void JumpToSection(int32 Index);
	FName GetAttackMontageName(int32 Index);
//MyAniminstace.cpp


void UMyAnimInstance::JumpToSection(int32 Index)
{
	FName Name = GetAttackMontageName(Index);
	Montage_JumpToSection(Name, AttackMontage);
}

FName UMyAnimInstance::GetAttackMontageName(int32 Index)
{
	return FName(*FString::Printf(TEXT("Attack%d"),Index));
}

클릭할때마다 몽타주색션을 호출하게 된다. FName(*FString::Printf(TEXT("Attack%d"),Index))에 의해 Attack+Index를 찾고 반환해준다. Montage_JumpToSection에 의해 몽타주안에서 받아온 몽타주(Attack+Index)를 찾아서 실행한다. 마지막으로 호출이 끝나면 AttackIndex는 1씩 증가하는 형태로 나오게된다.

728x90
반응형

'UE4 > 애니메이션' 카테고리의 다른 글

Ureal)애니메이션 델리게이트  (0) 2022.01.16
Ureal)애니메이션 몽타주  (0) 2022.01.15
Ureal)애니메이션 스테이트 머신  (0) 2022.01.15
Ureal)애니메이션 기초  (0) 2022.01.14

댓글