1. 애님 몽타주
애님 몽타주는 특정 애니메이션을 제어하고 다양한 방식으로 재생할 수 있게 해주는 기능이다.
아래와 같은 기능들을 주로 사용하게 된다.
- 애니메이션을 특정 슬롯에서 동작할 수 있도록 해주는 기능
- 노티파이를 사용하여 애니메이션 중간에 효과를 줄 수 있는 기능
이번에 사용해 본 예시로는 장전 애니메이션과 피격 애니메이션, 구르기 애니메이션에 사용해 보았다.
2. 애님 몽타주 만들기
새롭게 애님 몽타주 만들면 아래와 같이 생성이 된다.
- 주요하게 봐야할 점이 slot과
- 노티파이 이다.
2 - 1. slot
특정 bone을 기준으로 애니메이션을 나눠서 재생할 수 있게 하는 부분이다.
- default slot 이라고 검색하면 아래와 같은 노드를 선택할 수 있게 되고 해당 애니메이션은 Default 노드에서 재생되게 된다.
- 추가적으로 몽타주에서 슬롯 매니저를 통해 slot을 추가할 수 있는데, 추가를 하면 아래와 같이 새로운 slot을 사용할 수 있다.
Slot은 예를 들어 아래와 같이 사용할 수 있다.
- 총기 관련 애니메이션을 upper body slot에 저장해두고
- Layered blend per bone을 사용하여
- 장전할때 모습은 상체를 사용하고, 하체는 그대로 main(locomotion)을 사용할 수 있다.
만약 모든 slot에서 같은 애니메이션을 동작하게 하고 싶다면, 아래와 같이 slot을 두개 넣어주면 된다.
- 아래의 경우 구르기 애니메이션은 총기를 들고 있더라도 같은 애니메이션이 나오게 하기 위해서 구성한 모습이다.
2 - 2. 노티파이
노티파이는 몽타주 특정 순간 어떤 처리를 해주기 위해서 사용한다.
c++에서는 UAnimNotify를 상속받아서 구현하면 된다.
예를 들어
- 총기 장전 애니메이션이 끝나기 전까지 총을 쏘지 못하도록 하기 위해서 아래처럼 몽타주를 구성하고
- C++로 노티파이를 만들어 연결하였다.
#include "Character/PlayerReloadAnimNotify.h"
#include "Character/PlayerCharacter.h"
void UPlayerReloadAnimNotify::Notify(USkeletalMeshComponent* MeshComp, UAnimSequenceBase* Animation)
{
if (MeshComp && MeshComp->GetOwner())
{
APlayerCharacter* PlayerCharacter = Cast<APlayerCharacter>(MeshComp->GetOwner());
if (PlayerCharacter && PlayerCharacter->CurrentWeapon)
{
PlayerCharacter->bIsReloading = false;
}
}
}
추가)
- 애님 노티파이는 우리가 만드는 것 뿐만 아니라 이미 만들어져 있는 것을 사용할 수도 있다.
- 아래 사진처럼 사운드 재생이나 파티클 이팩트를 재생할 수 있다.
- 노티파이를 추가하고, 노티파이의 디테일 창을 보면 아래와 같이 직접 사운드 에셋을 넣어 소리를 재생시킬 수 있다.
'Unreal Engine' 카테고리의 다른 글
UE5 Issues : ADS (Aim Offset 1D) (0) | 2025.03.05 |
---|---|
Unreal Engine - Sound play & Effect spawn (0) | 2025.03.05 |
Unreal Engine - 캐릭터 앉기 및 구르기 (0) | 2025.03.05 |
Unreal Engine - TSubclassOf & StaticClass (0) | 2025.02.27 |
Unreal Engine - 총기 반동, 데칼, 탄피 효과 (0) | 2025.02.27 |