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 |
댓글