스토리텔링 개발자

[UE4] 애니메이션 노티파이(Animation Notify) 본문

개발/언리얼 엔진

[UE4] 애니메이션 노티파이(Animation Notify)

김디트 2022. 1. 10. 19:39
728x90

개요

애니메이션 노티파이는 애니메이션과 함께 여러 동작들을 처리하고 싶을 때 사용하는 기능입니다.

아래에서 좀 더 깊게 알아보겠습니다.

 

 

애니메이션 노티파이란

애니메이션 시퀀스 특정 지점에서 이벤트를 발생시키는 기능입니다.

일반적으로 연출(이펙트(발자국 소리 등)나 파티클(흙먼지 등)을 스폰)에 사용합니다.

 

노티파이는 애니메이션 시퀀스의 노티파이 트랙 오른쪽 마우스를 눌러 추가할 수 있습니다.

 

기본적으로 엔진에서 범용적으로 사용 가능한 노티파이를 여럿 준비해 두었습니다.

또한 커스텀 노티파이를 생성하여 자신이 원하는 기능을 구현할 수도 있습니다.

 

노티파이 트랙에 노티파이를 추가

 

 

 

애니메이션 노티파이 스테이트란

애니메이션 노티파이의 종류는 두 가지입니다.

  • 애니메이션 노티파이
  • 애니메이션 노티파이 스테이트

애니메이션 노티파이가 특정 시점(점)을 의미한다면,

애니메이션 노티파이 스테이트는 시작점과 끝점이 있는 시점(선)을 의미합니다.

 

그를 위해 begin(시작), tick(틱), end(끝) 세 가지의 이벤트를 제공합니다.

 

다양한 기본 노티파이 스테이트가 제공되는 것과, 커스텀으로 제작하여 사용할 수 있는 것은 동일합니다.

 

노티파이 트랙에 노티파이 스테이트를 추가

 

 

 

커스텀 애니메이션 노티파이

기본 애니메이션 노티파이의 종류들은 일단 재쳐두고,

우선 커스텀 애니메이션 노티파이에 대해서 다뤄보도록 하겠습니다.

 

만드는 방법은 간단합니다.

C++로 만드는 방법과 블루프린트로 만드는 방법, 두 가지를 지원합니다.

 

부모 클래스를 아래 중 하나로 지정하여 생성하면 커스텀 노티파이를 생성할 수 있습니다.

  • UAnimNotify(애니메이션 노티파이)
  • UAnimNotifyState(애니메이션 노티파이 스테이트)

 

커스텀 애니메이션 노티파이 만들기

 

Received_Notify 함수를 오버라이드 하여 구성합니다.

 

오버라이드 해야 할 함수

 

그러면 애니메이션 타임라인에서 노티파이가 노출됩니다.

 

추가 가능해진 커스텀 애니메이션 노티파이

 

커스텀 애니메이션 노티파이 스테이트 만들기

 

스테이트는 세 가지 함수를 오버라이드 하는 것이 가능합니다.

 

begin 함수 오버라이드
end 함수 오버라이드
tick 함수 오버라이드

 

다만, begin, end 중 하나만 구현할 거라면 노티파이 스테이트보다는 노티파이를 사용하는 것을 권장합니다.

 

블루프린트를 만들면 애니메이션 노티파이와 동일하게 타임라인에 노출됨

 

 

 

기본 애니메이션 노티파이 종류

 

스켈레톤 노티파이

 

애니메이션 BP로 애니메이션 특정 시점을 알리기 위해서 사용합니다.

반대로 특정 시점에 애니메이션 BP에서의 로직을 호출한다고 할 수도 있습니다.

 

새로운 스켈레톤 노티파이는 아래와 같이 생성합니다.

 

새 노티파이 추가
노티파이 이름 추가
생성한 노티파이는 스켈레톤 노티파이 아래에 노출
이와 같이 스켈레톤 노티파이를 노티파이 트랙에 추가한 모습

 

이렇게 생성한 스켈레톤 노티파이는 애니메이션 블루프린트의 이벤트 그래프에서 로직을 구성할 수 있습니다.

 

애님 노티파이를 그래프 내에서 생성

 

클로딩 시뮬레이션 노티파이

 

천 시뮬레이션 기능을 조작하기 위해 사용합니다.

제공하는 노티파이들은 아래와 같습니다.

 

  • Pause Clothing Simulation
  • Resume Clothing Simulation
  • Reset Clothing Simulation

 

제공되는 클로딩 시뮬레이션 노티파이들

 

파티클 이펙트 재생 노티파이

 

파티클 시스템을 스폰하고 재생시키기 위해 사용합니다.

 

파티클 이펙트 재생용 노티파이

 

Play Partical Effect 노티파이는 애니메이션 블루프린트에서 로직을 구성할 수 없습니다.

대신 디테일 패널에서 스폰 / 재생할 파티클 시스템을 설정할 수 있습니다.

 

Play Particle Effect 노티파이의 디테일 패널

 

각 프로퍼티의 기능은 아래와 같습니다.

 

  • PSTemplate(파티클 시스템 템플릿)
    • 스폰할 파티클 시스템
  • Socket Name(소켓 이름)
    • 스폰 지점으로 사용할 스켈레탈 메시 소켓의 이름
  • Attached(붙이기)
    • 이펙트를 본이나 소켓에 붙일 것인지 여부
  • Location Offect(위치 오프셋)
    • 소켓으로부터 생성할 위치 오프셋
  • Rotation Offect(회전 오프셋)
    • 소켓으로부터 생성 시 회전 오프셋
  • Notify Color(노티파이 색)
    • 노티파이 바에 표시할 색

 

사운드 재생 노티파이

 

노티파이 설정 시점에 사운드를 재생하기 위해 사용합니다.

블루프린트 로직은 구성할 수 없고, 디테일 패널로 제어합니다.

 

Play Sound 노티파이

 

Play Sound 노티파이의 디테일 패널

 

  • Sound(사운드)
    • 재생할 사운드 에셋
  • Volume Multiplier(볼륨 배수)
    • 사운드 이펙트의 볼륨에 적용할 스케일 배수
  • Pitch Multiplier(피치 배수)
    • 사운드 이펙트의 피치에 적용할 스케일 배수
  • Follow(따라가기)
    • 사운드 이펙트 소스가 스태틱 메시에 붙어서 따라다닐지 여부
  • Attach Name(붙일 소켓 / 본 이름)
    • 사운드 이펙트 스폰 지점으로 사용할 스켈레탈 메시 소켓이나 본 이름
  • Notify Color(노티파이 색)
    • 노티파이 바에 표시할 색

 

다이내믹스 리셋 노티파이

 

스켈레탈 메시에 적용한 애님 다이내믹스를 되돌립니다.

 

Reset Dynamics 노티파이
Reset Dynamics 노티파이 디테일 패널

 

 

 

기본 애니메이션 노티파이 스테이트 종류

 

시한 파티클 이펙트(Timed Particle Effect)

 

파티클 이펙트 재생 노티파이와 비슷하지만, 자체적으로 이펙트의 길이를 설정할 수 있습니다.

그 외적인 디테일 패널 설정부는 같습니다.

 

시한 파티클 이펙트 노티파이 스테이트
다음과 같이 이펙트 플레이 시간을 조절할 수 있습니다.

 

 

애니메이션 트레일(Animation Trail)

 

움직이는 오브젝트가 남기는 흔적을 표현하는 이미터입니다.

스켈레탈 메시의 두 소켓 위치를 매 틱마다 샘플링해서 소켓 사이의 트라이앵글을 흔적 길이만큼 이어 붙입니다.

 

애니메이션 트레일 노티파이 스테이트
움직임 뒤에 흔적을 남기는 트레일
디테일 패널

  • PSTemplate(파티클 시스템 템플릿)
    • 애님 트레일이 들어있는 파티클 시스템
  • First Socket Name(첫 번째 소켓 이름)
  • Second Socket Name(두 번째 소켓 이름)
    • 여기 설정된 두 소켓의 흔적을 샘플링합니다.
  • With Scale Mode(너비 스케일 모드)
    • 너비 적용 방식을 변경합니다.

왼쪽부터 From Centre -> From First Socket -> From Second Socket

  • Width Scale Curve(너비 스케일 커브)
    • 매 틱 샘플링하는 커브의 너비 값.
  • Render Geometry(지오메트리 렌더)
    • 메인 트레일 지오메트리 렌더링 여부
  • Render Spawn Points(스폰 지점 렌더)
    • 매 틱 소켓에서 샘플링한 위치의 디버그 렌더링 여부
  • Render Tangents(탄젠트 렌더)
    • 커브 탄젠트의 디버그 렌터링 여부
  • Render Tessellation(테셀레이션 렌더)
    • 커브의 모든 버텍스 디버그 렌더링 여부
    • 스폰 지점 사이 커브 테셀레이션 방식을 보여줍니다.

 

728x90
Comments