icon
7장 : 애니메이션 블루프린트

애님 몽타주와 노티파이의 기초


앞선 절들에서 우리는 캐릭터의 연속적인 움직임(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 PoseFinal 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 ValueMontage Instance를 반환합니다.
    • Play Montage 노드는 몽타주가 재생될 때까지 대기합니다.
  • 컴파일 및 저장합니다.

이벤트 그래프 설정 (노티파이 수신)

  • 애님 블루프린트의 이벤트 그래프 빈 공간에서 마우스 오른쪽 버튼을 클릭합니다.
  • 여러분이 추가한 노티파이 이름(예: AttackHit)을 검색하여 Event Anim Notify_AttackHit 노드를 추가합니다.
  • 이제 이 이벤트 노드 뒤에 공격이 실제로 적에게 데미지를 주는 로직을 구현합니다. (예: Print String으로 "공격 히트 발생!", Apply Damage 노드 호출 등)
  • 컴파일 및 저장합니다.

플레이어 캐릭터에서 몽타주 재생 트리거

  • BP_PlayerCharacter 블루프린트를 엽니다.
  • Event Left Mouse Button (공격 버튼) 입력 노드를 가져옵니다.
  • 해당 이벤트 뒤에 Get Anim Instance 노드를 호출합니다. (플레이어 캐릭터의 Mesh 컴포넌트에서)
  • Get Anim InstanceReturn Value를 여러분의 애님 블루프린트(예: Cast To ABP_Mannequin)로 캐스팅합니다.
  • 캐스팅된 애님 블루프린트 참조에서 Play Montage 함수를 호출하고 AM_PlayerAttack 몽타주를 연결합니다.
  • (선택 사항) IsAttacking 불리언 변수를 Set하여 애님 블루프린트에 공격 상태를 알립니다.

테스트

게임을 플레이하고 공격 버튼을 눌러보세요.

  • 캐릭터가 공격 애니메이션을 재생하고,
  • 애니메이션 도중 AttackHit 노티파이가 있는 지점에서 "공격 히트 발생!" 메시지가 출력되거나 데미지가 적용되는 것을 확인할 수 있습니다.
  • 공격 애니메이션이 끝난 후 다시 Idle 또는 Walk/Run 상태로 자연스럽게 돌아가는지 확인합니다.

애님 몽타주는 일회성 특수 동작을 관리하고, Layered Blend Per Bone과 함께 사용하여 상체/하체 분리 애니메이션을 구현하는 데 매우 강력한 도구입니다. 애님 노티파이는 애니메이션과 게임플레이 로직을 정확하게 동기화하는 핵심적인 방법입니다. 이 두 기능을 숙달하는 것은 언리얼 엔진에서 복잡하고 반응적인 캐릭터 애니메이션을 구현하는 데 필수적입니다.