본문 바로가기
공부/Animation

[Animation] 애니메이션 블렌드(Animation Blend)

by MY블로그 2023. 7. 4.

애니메이션 블렌드?

그래픽스에서 Animation Blend는 여러 개의 애니메이션 클립(Clip)을 조합하여 자연스러운 끊기지않도록 자연스럽게 연결된 애니메이션 효과를 만들어내는 기술입니다.

애니메이션 블렌드는 캐릭터 애니메이션과 같은 실시간 그래픽스 애플리케이션에서 많이 사용됩니다.

 

일반적으로 애니메이션 클립은 캐릭터의 다양한 동작을 나타나낸 동작 단위 입니다.

예를 들어 걷기, 뛰기, 점프 등의 각각 동작은 개별 애니메이션 클립으로 표현될 수 있습니다.

이러한 애니메이션 클립을 조합하여 보다 자연스러운 애니메이션을 만들어 낼 수 있습니다.

 

구현방식

애니메이션 블렌드는 크게 두 가지 방식으로 구현 됩니다.

1. Linear Blending (선형 블렌딩)

각 애니메이션 클립의 가중치(Weight)를 조절하여 선형 보간(Lerp)을 수행하는 방식입니다.

예를 들어 걷기 애니메이션의 가중치(0~1)를 0.7으로 설정하고, 뛰기 애니메이션의 가중치를 나머지 0.3으로 설정하여 캐릭터는 걷기와 뛰기를 혼합한 애니메이션을 실행 할 수 있습니다.

이러한 선형 블렌딩은 심플하며 직관적인 방식으로 다양한 애니메이션을 브렌딩할 수 있습니다.

 

2. Hierarchical Blending (계층적 블렌딩)

여러 개의 애니메이션 클립을 계층적인 구조로 조합하는 방식 입니다.

각 애니메이션 클립들은 별도의 애니메이션 레이어(Layer)로 표현되며, 레이어는 계층 구조를 형성 하게 됩니다.

상위 레이어의 애니메이션은 하위 레이어의 애니메이션에 영향을 주는 방식으로 동작하며, 이 방식은 레이어들 간의 독립성과 유연성을 제공하며, 레이어의 가중치(Weight)를 조절하여 애니메이션을 미세한단위로 제어할 수 있습니다.

 

정리

애니메이션 블렌드(Animation Blend)는 게임 개발에서 주로 사용됩니다.

캐릭터의 애니메이션, 그외의 객체나 효과등에 적용이 가능합니다.

DirectX에서는 Animation Blend를 구현하기 위한 다양한 기능과 API를 제공하고 있다고 합니다.

 

주요한 기능과 API

1. Animation Controller

애니메이션 컨트롤러를 사용하여 애니메이션 효과를 관리하고 조절 할 수 있습니다.

애니메이션 컨트롤러는 애니메이션 클립의 재생, 블렌딩, 가중치 조절 등의 기능을 제공합니다.

 

ID3DXAnimationController::KeyPriorityBlend method (D3dx9anim.h) - Win32 apps

Sets blending event keys for the specified animation track.

learn.microsoft.com

 

ID3DXAnimationController::SetTrackPriority method (D3dx9anim.h) - Win32 apps

Sets the priority blending weight for the specified animation track.

learn.microsoft.com

 

ID3DXAnimationController::SetPriorityBlend method (D3dx9anim.h) - Win32 apps

Sets the priority blending weight used by the animation controller.

learn.microsoft.com

2. Animation Blending

애니메이션 블렌딩을 위한 기능입니다.

클립 간의 선형 블렌딩, 계층적 블렌딩 등의 방식으로 애니메이션을 조합할 수 있습니다.

3. Animation Blending Transitions

애니메이션 클립 간의 자연스러운 전환을 위하여 블렌딩 전환(Transitions)를 지원합니다.

이를 통하여 애니메이션 클립 간의 전환 기간과 전환 방식등을 제어할 수 있습니다.

4. Animation Events

애니메이션의 특정 시점에 사용자의 정의 이벤트(Events)를 발생시킬 수 있습니다.

이를 활용하여 애니메이션과 상호작용하는 기능을 구현할 수 있습니다.

5. Animation Blending Techniques

키프레임 보간, 스키닝, 애니메이션 레이어 등을 활용하여 더욱 복잡하고 다양한 애니메이션 효과를 구현할 수 있습니다.

 

위의 기능들 외에대 리소스 로딩, 애니메이션 시간 조절, 루프 애니메이션 제어 등을 위한 다양한 API와 기능을 제공한다고 합니다.

개발 환경과 사용하는 DirectX의 버전에 따라 세부적인 API와 기능의 차이가 있을 수 있습니다.

 

DX와 관련하여 예제코드들을 찾기가 어렵기 떄문에 간단한 개념정도만 정리하도록 합니다.

 

언리얼 엔진에서 Animation Blend 사용하는 참고영상

블렌더에서 Animaion Blend 사용하는 참고 영상

 

댓글