언어:
페이지 정보
수준별:
엔진 버전:
언리얼 엔진

애니메이션 모디파이어

언리얼 엔진

이 기능은 현재 실험단계이며 개발중인 기능으로, 예상대로 작동하지 않는 부분이 있을 수 있습니다.

Animation Modifiers (Anim Modifier) (애님 모디파이어)는 애니메이션 시퀀스 또는 스켈레톤 애셋에 액션 시퀀스를 적용할 수 있도록 해주는 네이티브 또는 블루프린트 클래스 유형입니다. 바닥에 왼쪽 오른쪽 발이 어느 프레임에 닿는지 핀 포인트로 지정하는 자동 발맞춤 동기화 마커를 만드는 것을 (다른 것도 포함해서) 들 수 있습니다. 이 정보를 사용해서, Animation Sync Marker (애니메이션 싱크 마커)를 발 본이 가장 낮아지는 (또는 바닥에 닿는) 프레임에 추가할 수 있습니다.

위에서 애님 모디파이어를 사용하여 자동 발맞춤 마커를 생성하고 있습니다.

애니메이션 데이터 탭 아래 애니메이션 에디터스켈레톤 에디터 를 사용하여 애님 모디파이어에 접근하고 적용할 수 있습니다. 스켈레톤에 애님 모디파이어를 적용하면, 스켈레톤을 기반으로 한 모든 애니메이션 시퀀스에 모디파이어가 적용됩니다. 애니메이션 시퀀스에 모디파이어를 적용할 때는, 시퀀스 자체에만 적용될 뿐 다른 시퀀스에는 적용되지 않습니다.

애님 모디파이어 생성

우선 Anim Modifier 블루프린트 클래스를 만들어야 합니다:

  1. 프로젝트의 콘텐츠 브라우저 에서 신규 추가 버튼을 클릭하고 Blueprint Class (블루프린트 클래스)를 선택합니다.

    Create_01.png

  2. 부모 클래스 선택 창에서 모든 클래스 를 선택하고 Animation Modifier (애니메이션 모디파이어)를 검색하여 추가한 뒤 선택 하고 이름을 짓습니다.

    Create_02.png

  3. 새로운 애니메이션 모디파이어 블루프린트 탭을 더블클릭하여 블루프린트 에디터에서 엽니다.

    Create_03.png

애님 모디파이어를 생성했으니, 이제 Animation Blueprint Library (애니메이션 블루프린트 라이브러리)에 포함된 블루프린트 스크립트와 함수를 사용하여 애니메이션 데이터를 접근하고 조작할 수 있습니다.

애니메이션 블루프린트 라이브러리

애님 모디아피어 블루프린트의 그래프에 우클릭하여 컨텍스트 메뉴와 사용가능 함수 목록을, 애니메이션 블루프린트 라이브러리 부분 아래에서 확인할 수 있습니다.

AnimBPLibrary.png

위 그림에서는, 마커 데이터를 사용하여 애니메이션 데이터를 동기화시킬 수 있도록 해주는 Marker Syncing (마커 동기화) 관련 함수가 확장되어 있습니다.

데이터 접근에 사용할 수 있는 여러 함수 작업을 하기에 앞서, OnApplyOnRevert 이벤트 구현을 하고싶을 것입니다. OnApply 이벤트는 사용자가 애니메이션에서 데이터를 추가 또는 제거할 수 있도록 해주는 반면, OnRevert 이벤트는 기존에 사용자가 적용한 변경사항을 제거( 또는 시퀀스를 원래 상태로 복원)시킬 수 있도록 해줍니다. 각 이벤트는 애니메이션 시퀀스를 반환하며, 여기에 애니메이션 블루프린트 라이브러리 작업이 물립니다.

EventNodes.png

위 그림에서, 애니메이션 모디파이어가 적용되면, 새로운 노티파이 트랙이 정의된 이름으로 생성되는 반면, 애님 모디파이어를 복원시키면 트랙은 제거됩니다.

애님 모디파이어 구현

스켈레톤 애셋 안에서 (스켈레톤에 연관된 모든 애니메이션에 애님 모디파이어를 추가시키기 위해) 또는 단일 애니메이션 시퀀스에 애님 모디파이어를 구현할 수 있습니다.

  1. 스켈레톤 에디터 또는 애니메이션 에디터 안에서, 메뉴 옵션의 Animation Data Modifiers (애니메이션 데이터 모디파이어)를 선택합니다.

    Implement_01.png

  2. 애니메이션 데이터 모디파이어 탭에서, 모디파이어 추가 를 선택한 뒤 원하는 애님 모디파이어 블루프린트 를 선택합니다.

    Implement_02.png

  3. 애님 모디파이어 블루프린트에 우클릭한 뒤 Apply Modifier (모디파이어 적용)을 선택하여 애님 모디파이어와 변경사항을 적용(, 또는 Revert Modifier (모디파이어 복원)을 선택하여 변경사항을 제거)할 수 있습니다.

    Implement_03.png

    적용할 때까지는 애님 모디파이어가 Out of Date (오래된 버전)에 나타날 것입니다.

    아래는 애님 모디파이어를 스켈레톤 애셋에 적용한 예제인데, 스켈레톤 아이콘으로 알 수 있습니다.

    SkeletonModifier.png

Instance Editable (인스턴스 편집가능) 설정한 프로퍼티는 애니메이션 데이터 모디파이어 탭에서 편집할 수 있는 것으로 나타날 것입니다.

Implement_04.png

위 그림은, 자동 발맞춤 구동에 사용할 수 있는 프로퍼티를 정의한 것입니다.

프로퍼티 노출

애님 모디파이어 블루프린트 안에서, Instance Editable (인스턴스 편집가능)을 통해 파라미터를 노출시키면 애니메이션 툴의 애니메이션 탭 에서 조작할 수 있습니다.

InstanceEditable.png

위 그림에서, 구조체 변수를 사용하여 본의 이름 설정은 물론 오프셋도 지정해주고 있습니다.

애니메이션 시퀀스 안에서 애님 모디파이어를 구현하고 적용할 때, 노출된 파라미터를 확인할 수 있습니다.

AnimDataVariables.png

위 그림에서, 애님 모디파이어에 포함시키고자 하는 본 이름을 입력하면 거기서 (본 트랜스폼과 같은) 애니메이션 데이터를 수집합니다.

애니메이션 블루프린트 라이브러리 레퍼런스

애니메이션 블루프린트 라이브러리에서 사용할 수 있는 노드는 여러가지 다양한데, 여기서는 애님 모디파이어 안에서 자주 사용되는 유형을 몇 가지 나열해 봅니다.

노티파이 및 커브 트랙 추가/제거

NotifiesAndCurves.png

이 노드는 지정된 애니메이션 시퀀스에 노티파이 또는 커브 트랙을 동적으로 추가시켜 줍니다. 노티파이 또는 커브 트랙을 추가한 이후에는, 그 트랙에 다양한 키 또는 이벤트 유형을 추가시킬 수 있습니다. 예를 들어, 커브 트랙에 Add Float Curve Keys (플로트 커브 키 추가)를 하거나, 노티파이 트랙에 Add Animation Notify Events (애니메이션 노티파이 이벤트 추가) 또는 Add Animation Sync Markers (애니메이션 싱크 마커 추가)가 가능합니다.

AddMarkers.png

본 포즈 구하기

GetPose.png

본 트랜스폼 데이터를 구하기 위해서는 Get Bone Pose for Frame 또는 Get Bone Pose for Time 노드를 사용하면 됩니다. 제공된 애니메이션 시퀀스에 대해 본 이름으로 지정된 본 트랜스폼을 반환해 줍니다. 다른 방법으로는, Get Bone Poses for Frame 또는 Get Bone Poses for Time 을 사용하여 지정된 본 이름 배열에 대해 본 트랜스폼을 수집할 수 있습니다.

구한 본 트랜스폼 데이터는 로컬 스페이스 기준입니다. 컴포넌트 스페이스 기준이 필요한 경우, 수동으로 변환해 줘야 합니다.

헬퍼 노드

HelperNodes.png

애니메이션 블루프린트 라이브러리 노드에는 여러가지 헬퍼 노드가 있어 프레임이나 시간 정보를 변환할 수 있습니다 (예: Get Time at Frame, Get Frame at Time). 정보를 구하는 데 유용한 노드가 몇 가지 더 있는데, Find Bone Path to Root 는 애니메이션 시퀀스와 본 이름을 (보통 루트 본) 받아 본 이름 목록을 체인으로 출력해 줍니다.