애님 몽타주와 노티파이의 기초
앞선 절들에서 우리는 캐릭터의 연속적인 움직임(Idle, Walk, Run)을 스테이트 머신과 블렌드 스페이스를 통해 자연스럽게 처리하는 방법을 배웠습니다. 하지만 게임에는 단순히 반복되거나 부드럽게 블렌딩되는 움직임 외에, 특정 시점에 한 번 재생되고 끝나는 '일회성' 동작들이 많습니다. 예를 들어, 공격, 스킬 사용, 피격, 구르기, 특정 상호작용 등의 애니메이션들이 여기에 해당합니다.
이러한 일회성 애니메이션을 효과적으로 관리하고, 애니메이션 재생 중 특정 시점에 게임플레이 로직을 트리거하는 강력한 기능이 바로 애님 몽타주(Anim Montage) 와 애님 노티파이(Anim Notify) 입니다.
이번 절에서는 애님 몽타주와 애님 노티파이의 기본 개념과 활용법에 대해 자세히 알아보겠습니다.
애님 몽타주(Anim Montage)란 무엇인가?
애님 몽타주(Anim Montage) 는 여러 개의 애니메이션 시퀀스를 시간축에 배치하여 하나의 복합적인 애니메이션을 만드는 에셋(Asset) 입니다. 특정 행동에 필요한 애니메이션들을 조합하고, 재생 순서나 블렌딩을 제어하며, 심지어 애니메이션 도중에 다른 애니메이션(예: 블렌드 스페이스를 통한 이동)과 겹치게(Layered Blending) 만들 수도 있습니다.
애님 몽타주가 필요한 이유
- 일회성/특수 동작 관리: 공격, 스킬, 피격, 사망과 같이 한 번 재생되고 끝나는 중요한 애니메이션들을 효과적으로 관리할 수 있습니다.
- 복합 애니메이션 구성: 여러 시퀀스를 섞어서 하나의 복잡한 동작을 만들 수 있습니다. (예: 공격 준비 → 공격 → 공격 후 딜레이)
- 상체/하체 분리 (Layered Blending): 캐릭터의 특정 부위(예: 상체)만 몽타주 애니메이션을 재생하고, 나머지 부위(예: 하체)는 기존 애님 그래프의 애니메이션(걷기/달리기)을 유지하도록 설정할 수 있습니다.
- 게임플레이 로직과의 연동: 애니메이션 재생 중 특정 시점에 게임플레이 로직을 트리거할 수 있습니다. (애님 노티파이와 함께 사용)
애님 몽타주 생성 및 설정
캐릭터의 공격 애니메이션을 재생하는 몽타주를 만들어봅시다.
필요한 애니메이션 에셋
Attack_Swing
애니메이션 시퀀스 (예:SKM_Mannequin_Attack
)
생성 단계
콘텐츠 브라우저에서 마우스 오른쪽 버튼을 클릭합니다.
애니메이션(Animation)
> 애님 몽타주(Anim Montage)
를 선택합니다.
몽타주를 적용할 스켈레톤(Skeleton) 을 선택합니다. (여러분의 캐릭터 스켈레톤, 예: SKM_Mannequin_Skeleton
)
이름을 지정합니다. (예: AM_PlayerAttack
)
애님 몽타주 에디터 설정
AM_PlayerAttack
에셋을 더블클릭하여 애님 몽타주 에디터를 엽니다.
애니메이션 시퀀스 추가
- 에셋 브라우저(Asset Browser) 패널(일반적으로 좌측 하단)에서
Attack_Swing
애니메이션 시퀀스를 찾습니다. Attack_Swing
애니메이션을 몽타주 트랙(Track)으로 드래그 앤 드롭합니다.- 이제 몽타주가
Attack_Swing
애니메이션으로 구성됩니다. 여러 개의 애니메이션 시퀀스를 드래그하여 순서대로 배치할 수도 있습니다.
슬롯 이름 설정 (Slot Name)
- 몽타주 재생을 위해
슬롯(Slot)
개념이 사용됩니다. 기본적으로DefaultGroup.DefaultSlot
이 사용되지만, 특정 부위 애니메이션을 위해 새로운 슬롯을 만들 수 있습니다. Slots
패널에서+ Slot
버튼을 클릭하여UpperBody
와 같은 새로운 슬롯 그룹을 추가할 수 있습니다. 이 슬롯을 선택하고 몽타주 트랙의 애니메이션을 해당 슬롯에 할당합니다.- 애님 그래프에서
Layered Blend Per Bone
노드와 함께 사용하여 특정 슬롯에 재생되는 몽타주가 캐릭터의 특정 뼈대(Bone)에만 영향을 미치도록 할 수 있습니다. (예:UpperBody
슬롯은 허리 위로만 영향)
저장 버튼을 클릭하여 몽타주를 저장합니다.
애님 노티파이(Anim Notify)란 무엇인가?
애님 노티파이(Anim Notify) 는 애니메이션 시퀀스 또는 애님 몽타주 내의 특정 프레임에서 이벤트를 발생시키는 기능입니다. 이 이벤트는 애님 블루프린트의 이벤트 그래프나 다른 블루프린트에서 수신하여 게임플레이 로직을 트리거하는 데 사용됩니다.
애님 노티파이가 필요한 이유
- 정확한 타이밍 동기화: 애니메이션의 특정 동작과 게임플레이 이벤트(사운드 재생, 데미지 적용, 이펙트 발생 등)를 정확하게 동기화할 수 있습니다.
- 디자이너/애니메이터 협업: 애니메이터가 애니메이션 툴 내에서 직접 특정 이벤트 발생 시점을 지정할 수 있어, 개발자와의 협업 효율성을 높입니다.
애님 노티파이 추가 및 사용
공격 애니메이션 도중 특정 시점에 데미지를 적용하는 노티파이를 추가해봅시다.
애님 몽타주 에디터 열기: AM_PlayerAttack
몽타주 에디터를 엽니다.
노티파이 트랙 추가
- 타임라인 아래
Notifies
섹션에서+ Track
버튼을 클릭하여Notify Track
을 추가합니다.
노티파이 추가
- 노티파이를 추가하고 싶은 프레임(예: 공격 애니메이션에서 무기가 실제로 적을 타격하는 지점)으로 타임라인 헤드를 옮깁니다.
- 노티파이 트랙을 마우스 오른쪽 버튼으로 클릭하고
Notify
>Add Notify...
>New Notify
를 선택합니다. - 이름을
AttackHit
으로 지정합니다.
저장 버튼을 클릭합니다.
애님 블루프린트에서 사용해보기
이제 애님 블루프린트에서 AM_PlayerAttack
몽타주를 재생하고 AttackHit
노티파이를 수신하여 게임플레이 로직을 실행해봅시다.
애님 블루프린트 (예: ABP_Mannequin
) 열기
애님 그래프 설정 (슬롯 노드 추가)
- 애님 그래프 탭으로 이동합니다.
Default State Machine
노드의Output Pose
와Final Animation Pose
사이에Slot 'DefaultSlot'
노드를 추가합니다. (또는Layered Blend Per Bone
노드를 사용하여 특정 슬롯만 블렌딩하도록 설정)- 이
Slot 'DefaultSlot'
노드는DefaultGroup.DefaultSlot
이라는 슬롯에 재생되는 모든 몽타주를 받아들여 블렌딩합니다.
이벤트 그래프 설정 (몽타주 재생)
- 이벤트 그래프 탭으로 이동합니다.
Event Blueprint Update Animation
에서 캐릭터의IsAttacking
불리언 변수(플레이어 캐릭터에서 공격 버튼 누를 시 설정)를 가져와Branch
노드를 연결합니다.True
(공격 중) 핀 뒤에Play Montage
노드를 추가합니다.In Montage To Play
핀에AM_PlayerAttack
몽타주 에셋을 연결합니다.Return Value
는Montage Instance
를 반환합니다.Play Montage
노드는 몽타주가 재생될 때까지 대기합니다.
- 컴파일 및 저장합니다.
이벤트 그래프 설정 (노티파이 수신)
- 애님 블루프린트의 이벤트 그래프 빈 공간에서 마우스 오른쪽 버튼을 클릭합니다.
- 여러분이 추가한 노티파이 이름(예:
AttackHit
)을 검색하여Event Anim Notify_AttackHit
노드를 추가합니다. - 이제 이 이벤트 노드 뒤에 공격이 실제로 적에게 데미지를 주는 로직을 구현합니다. (예:
Print String
으로 "공격 히트 발생!",Apply Damage
노드 호출 등) - 컴파일 및 저장합니다.
플레이어 캐릭터에서 몽타주 재생 트리거
BP_PlayerCharacter
블루프린트를 엽니다.Event Left Mouse Button
(공격 버튼) 입력 노드를 가져옵니다.- 해당 이벤트 뒤에
Get Anim Instance
노드를 호출합니다. (플레이어 캐릭터의Mesh
컴포넌트에서) Get Anim Instance
의Return Value
를 여러분의 애님 블루프린트(예:Cast To ABP_Mannequin
)로 캐스팅합니다.- 캐스팅된 애님 블루프린트 참조에서
Play Montage
함수를 호출하고AM_PlayerAttack
몽타주를 연결합니다. - (선택 사항)
IsAttacking
불리언 변수를Set
하여 애님 블루프린트에 공격 상태를 알립니다.
테스트
게임을 플레이하고 공격 버튼을 눌러보세요.
- 캐릭터가 공격 애니메이션을 재생하고,
- 애니메이션 도중
AttackHit
노티파이가 있는 지점에서 "공격 히트 발생!" 메시지가 출력되거나 데미지가 적용되는 것을 확인할 수 있습니다. - 공격 애니메이션이 끝난 후 다시
Idle
또는Walk/Run
상태로 자연스럽게 돌아가는지 확인합니다.
애님 몽타주는 일회성 특수 동작을 관리하고, Layered Blend Per Bone
과 함께 사용하여 상체/하체 분리 애니메이션을 구현하는 데 매우 강력한 도구입니다. 애님 노티파이는 애니메이션과 게임플레이 로직을 정확하게 동기화하는 핵심적인 방법입니다. 이 두 기능을 숙달하는 것은 언리얼 엔진에서 복잡하고 반응적인 캐릭터 애니메이션을 구현하는 데 필수적입니다.