언리얼 엔진
Unreal Engine - 애니메이션 몽타주를 활용한 상황별 연출 구현 정리
로안님
2025. 4. 17. 13:12
🎮 언리얼 엔진 애니메이션 몽타주를 활용한 상황별 연출 구현 정리
이번 포스트에서는 언리얼 엔진에서 애니메이션 몽타주(Animation Montage) 를 활용해 캐릭터가 상황에 따라 애니메이션을 다르게 재생하도록 구현한 방법을 정리합니다. 에디터 설정과 C++ 코드 연동까지 실제 제작 흐름을 중심으로 설명합니다.
✅ 목표
- 피격 상황에서 방향에 따라 다른 애니메이션 몽타주 재생
- 에디터에서 미리 애니메이션을 설정하고, C++에서 재생 로직 처리
🔧 에디터 세팅
먼저 ABaseAIFighter 클래스에 다음과 같이 피격 애니메이션 몽타주를 선언합니다:
UPROPERTY(EditDefaultsOnly, Category = "Animation|Hit")
UAnimMontage* KnockMontage_Forward;
UPROPERTY(EditDefaultsOnly, Category = "Animation|Hit")
UAnimMontage* KnockMontage_Backward;
그 후 블루프린트 에디터의 Details 패널에서 해당 변수에 미리 만들어둔 AM_Knock_Fwd, AM_Knock_Bwd 애니메이션을 지정합니다.
🧠 C++ 로직 구현
C++에서는 상황(피격 방향)에 맞춰 애니메이션을 선택적으로 재생합니다. 핵심 코드는 다음과 같습니다:
void ABaseAIFighter::TakeDamage(int32 DamageAmount, ESmashAttackType AttackType, bool bIsRightDirection)
{
// 상황에 맞는 애니메이션 재생
UAnimInstance* AnimInst = GetMesh()->GetAnimInstance();
if (AnimInst)
{
if (bIsRightDirection && KnockMontage_Backward)
{
AnimInst->Montage_Play(KnockMontage_Backward);
}
else if (!bIsRightDirection && KnockMontage_Forward)
{
AnimInst->Montage_Play(KnockMontage_Forward);
}
}
}
🎬 핵심 포인트 요약
요소 설명
애니메이션 몽타주 변수 선언 | UPROPERTY로 에디터에서 설정 가능하게 함 |
Details 패널 세팅 | 디자이너가 블루프린트 상에서 쉽게 애니메이션 지정 |
C++에서 상황 판별 | 방향 정보 등 상황에 따라 몽타주 선택 재생 |
✨ 확장 가능성
- 공격 종류(AttackType)에 따라 애니메이션 종류를 세분화 가능
- 넉백 연출(LaunchCharacter)이나 이펙트 재생도 추가 가능
- Multicast 함수로 네트워크 플레이 연출에도 대응 가능
📝 마무리
애니메이션 몽타주는 상황별 애니메이션을 손쉽게 관리하고 재생할 수 있는 강력한 도구입니다. 이번처럼 에디터와 코드 양쪽에서 활용하면, 디자이너와 프로그래머 모두 협업이 쉬워지고, 게임의 연출력도 확연히 향상됩니다. 💥