애니메이션 어트리뷰트

애니메이션 시퀀스에서 커스텀 애니메이션 FBX 어트리뷰트를 임포트하고 사용합니다.

Choose your operating system:

Windows

macOS

Linux

FBX 애니메이션 시퀀스(Animation Sequences)에서 커스텀 노드 어트리뷰트를 임포트하여 다양한 애니메이션 데이터 구동 설정을 생성할 수 있습니다. 커브(Curves)와 같은 애니메이션 데이터와 달리 어트리뷰트는 시퀀스별로 저장되고 다양한 프로퍼티 타입을 지원합니다.

이 문서에서는 언리얼 엔진에서 애니메이션 어트리뷰트를 임포트하고 참조하는 방법을 간략하게 살펴봅니다.

전제조건

어트리뷰트 임포트

애니메이션 시퀀스에서 애니메이션 어트리뷰트를 임포트하려면, 먼저 본(Bone)에 애니메이션이 있는 어트리뷰트가 포함되어 있는지 확인해야 합니다. 일반적으로 이는 Autodesk Maya와 같은 DCC 소프트웨어에서 수행됩니다. 이 예시에서는 root 본 에 커스텀 플로트 어트리뷰트가 있습니다.

Maya의 커스텀 어트리뷰트

현재 임포트가 지원되는 어트리뷰트 데이터 타입은 플로트(Floats), 정수(Integers), 스트링(Strings)트랜스폼(Transforms) 입니다.

프로젝트 세팅 설정

어트리뷰트를 제대로 임포트하려면, 프로젝트 세팅(Project Setting)에 어트리뷰트가 정의되어 있는지 확인해야 합니다. 언리얼 엔진의 메인 메뉴의 편집(Edit) > 프로젝트 세팅(Project Settings) 으로 가서 엔진(Engine) > 애니메이션(Animation) 섹션으로 이동하여 커스텀 어트리뷰트(Custom Attributes) 세팅을 찾습니다. 사용 가능한 세팅은 다음과 같습니다.

프로젝트 세팅 커스텀 어트리뷰트

이름

설명

본 타임코드 커스텀 어트리뷰트 이름 세팅(Bone Timecode Custom Attribute Name Settings)

타임코드 관련 프로퍼티와 그에 해당하는 기본 커스텀 어트리뷰트 매핑의 목록입니다. 프로젝트에서 다른 어트리뷰트 이름을 사용하는 경우, 이러한 세팅을 변경하여 다른 타임코드 어트리뷰트에 매핑할 수 있습니다.

  • 시간 어트리뷰트 이름(Hour Attribute Name)정수 어트리뷰트이며 기본값은 TCHour 입니다.

  • 분 어트리뷰트 이름(Minute Attribute Name)정수 어트리뷰트이며 기본값은 TCMinute 입니다.

  • 초 어트리뷰트 이름(Second Attribute Name)정수 어트리뷰트이며 기본값은 TCSecond 입니다.

  • 프레임 어트리뷰트 이름(Frame Attribute Name)정수 어트리뷰트이며 기본값은 TCFrame 입니다

  • 서브프레임 어트리뷰트 이름(Subframe Attribute Name)플로트 어트리뷰트이며 기본값은 TCSubframe 입니다

  • 레이트 어트리뷰트 이름(Rate Attribute Name)정수 어트리뷰트이며 기본값은 TCRate 입니다.

  • Takename 어트리뷰트 이름(Takename Attribute Name)스트링 어트리뷰트이며 기본값은 Takename 입니다.

타임코드 커스텀 어트리뷰트

이러한 어트리뷰트는 임포트할 어트리뷰트 이름 목록에 포함되며, 본 커스텀 어트리뷰트 이름 배열에 추가된 것처럼 작동합니다.

본 커스텀 어트리뷰트 이름(Bone Custom Attributes Names)

애니메이션 임포트 시 검색할 커스텀 어트리뷰트 이름을 정의하는 배열입니다. 이 목록에 어트리뷰트 이름을 정의하면 스켈레톤에서 그 어트리뷰트에 대한 모든 본을 검색합니다.

추가(+) 를 클릭하여 목록에 어트리뷰트를 추가하고, 다음 프로퍼티를 채웁니다.

  • 이름(Name) - 커스텀 애니메이션 어트리뷰트와 일치하는 이름입니다.

  • 의미(Meaning) - 원하는 경우 이 어트리뷰트에 대한 추가 컨텍스트를 정의할 수 있는 필드입니다.

본 커스텀 어트리뷰트 이름

커스텀 어트리뷰트가 있는 본 이름(Bone Names with Custom Attributes)

애니메이션 임포트 시 커스텀 어트리뷰트를 필터링할 본 목록을 정의할 수 있는 배열입니다. 이 목록에서 본을 정의하면 애니메이션을 임포트할 때 해당 본에서 모든 커스텀 어트리뷰트를 임포트합니다.

추가(+) 를 클릭하여 목록에 항목을 추가한 다음, 본 이름을 정의합니다.

커스텀 어트리뷰트가 있는 본 이름

어트리뷰트 블렌드 모드(Attribute Blend Modes)

블렌드 중에 특정 어트리뷰트 동작 방식을 정의하는 배열입니다. 이는 어트리뷰트당 전역 기본 어트리뷰트 블렌드 모드 를 덮어씁니다.

추가(+) 를 클릭하여 목록에 항목을 추가하고 어트리뷰트 이름을 정의한 다음, 블렌드 모드를 설정합니다.

  • 오버라이드 는 블렌드 중 가장 높은 웨이트를 기반으로 커스텀 어트리뷰트 값을 덮어씁니다.

  • 블렌드 는 웨이트에 따라 애니메이션 사이의 커스텀 어트리뷰트 평균값을 설정합니다.

어트리뷰트 블렌드 모드

기본 어트리뷰트 블렌드 모드(Default Attribute Blend Mode)

모든 커스텀 어트리뷰트에 사용할 기본 블렌드 모드입니다. 어트리뷰트 블렌드 모드 와 비슷하게 오버라이드(Override) 또는 블렌드(Blend) 중에서 선택할 수 있습니다.

트랜스폼 어트리뷰트 이름(Transform Attribute Names)

트랜스폼 어트리뷰트를 임포트할 때 검색할 트랜스폼 노드 이름입니다.

커스텀 어트리뷰트를 임포트하려는 방식에 따라 값을 본 커스텀 어트리뷰트 이름 에서 설정할 수도, 커스텀 어트리뷰트가 있는 본 이름 에서 설정할 수도 있습니다. 예를 들어, root 본 에서 생성된 두 개의 커스텀 어트리뷰트를 임포트하려는 경우, 다음과 같은 방법 중 하나를 사용할 수 있습니다.

  • 본 커스텀 어트리뷰트 이름 아래에 두 개의 배열 항목을 생성하고 어트리뷰트와 같은 이름을 지정합니다.

    본 커스텀 어트리뷰트 이름 예시

  • 커스텀 어트리뷰트가 있는 본 이름 아래에 항목을 하나 생성하고 이름을 root 로 지정합니다.

    커스텀 어트리뷰트가 있는 본 이름 예시

커스텀 어트리뷰트 프로젝트 세팅을 설정한 다음에는 그 커스텀 어트리뷰트가 포함된 애니메이션 시퀀스를 임포트할 수 있습니다. FBX를 임포트할 때, 커스텀 어트리뷰트 임포트(Import Custom Attribute) 가 활성화되어 있어야 합니다.

커스텀 어트리뷰트 임포트

애니메이션 시퀀스

커스텀 어트리뷰트가 포함된 애니메이션 시퀀스를 임포트한 다음에는 애니메이션 시퀀스 에디터(Animation Sequence Editor)에서 임포트한 어트리뷰트를 확인할 수 있습니다. 어트리뷰트는 어트리뷰트 > 본 > 어트리뷰트 이름 규칙에 따라 타임라인 내에 트랙으로 위치합니다.

애니메이션 시퀀스 내 어트리뷰트

어트리뷰트 위에 커서를 놓으면 어트리뷰트 타입과 키프레임의 수 등, 어트리뷰트 세부 정보를 확인할 수 있습니다.

어트리뷰트 정보

트랜스폼 어트리뷰트

커스텀 트랜스폼 어트리뷰트 를 임포트할 수도 있는데, 이 경우에는 다른 임포트 워크플로가 필요합니다. 트랜스폼 어트리뷰트는 추가 소켓이나 본 없이 애니메이션 시퀀스 내에 보조 트랜스폼 정보를 제공하는 데 유용합니다.

트랜스폼 어트리뷰트

FBX 설정

본에 이미 베이스 트랜스폼 어트리뷰트가 포함되어 있으므로, 대신 커스텀 어트리뷰트를 적용하려는 본의 자손 노드를 생성해야 합니다. 이러한 자손 노드는 로케이터 나 빈 노드 가 될 수 있습니다.

이 예시에서 'MyTransformAttribute'라는 로케이터hand 본 의 자손 노드입니다. 다른 노드나 어트리뷰트와 마찬가지로, 이 자손 로드는 임의의 방식으로 키프레이밍될 수 있습니다.

본에 대한 로케이터 생성 및 부모 지정

세팅 및 임포트

다음으로, 커스텀 어트리뷰트 프로젝트 세팅에서 트랜스폼 어트리뷰트 이름을 정의해야 합니다. 트랜스폼 어트리뷰트 이름 을 찾아서 추가(+) 를 클릭하여 항목을 생성한 다음, 트랜스폼 어트리뷰트 노드 이름을 추가합니다.

트랜스폼 어트리뷰트 이름

이제 커스텀 트랜스폼 어트리뷰트가 포함된 애니메이션 시퀀스를 임포트할 수 있습니다. 임포트된 트랜스폼 어트리뷰트는 어트리뷰트 > 본 > 어트리뷰트 이름 규칙에 따라 타임라인 내에 트랙으로 표시됩니다.

애니메이션 시퀀스의 트랜스폼 어트리뷰트

뷰포트 메뉴에서 캐릭터(Character) > 본 을 클릭한 후 어트리뷰트 를 활성화하여 애니메이션 시퀀스 뷰포트(Animation Sequence Viewport)에서 커스텀 트랜스폼 어트리뷰트를 시각화할 수 있습니다.

트랜스폼 어트리뷰트 표시

어트리뷰트 참조

스켈레탈 메시 컴포넌트(Skeletal Mesh Component) 를 타기팅하는 어트리뷰트 얻기(Get Attribute) 함수를 사용하여 블루프린트에서 어트리뷰트를 참조하고 읽을 수 있습니다. 다음과 같은 함수를 사용할 수 있습니다.

  • Get Float Attribute

  • Get String Attribute

  • Get Integer Attribute

  • Get Transform Attribute

블루프린트에서 어트리뷰트 참조

이러한 함수에는 다음과 같은 일반 핀 정보가 포함되어 있습니다.

이름

설명

Target

타기팅할 스켈레탈 메시 컴포넌트 입니다.

Bone Name

커스텀 어트리뷰트가 포함된 본 이름입니다.

Attribute Name

찾을 커스텀 어트리뷰트 이름입니다.

Default Value

어트리뷰트를 찾을 수 없는 경우, 이 값이 Out Value 로 전송됩니다.

Lookup Type

스켈레톤에서 어트리뷰트를 찾는 방식을 결정합니다. 다음 중에서 선택할 수 있습니다.

  • Bone Only - 제공된 본 이름 의 어트리뷰트만 검색합니다.

  • Immediate Parent - 제공된 본 이름 및 첫 번째 부모 본의 어트리뷰트만 검색합니다.

  • Parent Hierarchy - 제공된 본 이름 및 계층구조에서 바로 위로 올라가 root 본까지의 어트리뷰트를 검색합니다.

Out Value

어트리뷰트 값을 전달하거나, 어트리뷰트가 없는 경우 **기본값**을 전달합니다.

Return Value

이 함수를 실행할 때 어트리뷰트가 있으면 true 를 출력하고, 그렇지 않으면 false 를 출력합니다.

어트리뷰트 레퍼런스 얻기

어트리뷰트 레퍼런스 얻기(Get Attribute Ref) 함수를 사용할 수도 있습니다. 이러한 함수를 사용하려면 Out Value변수(Variable) 가 연결되어야 하며, 그러면 핀에 연결한 변수에 값이 작성됩니다. 어트리뷰트 얻기 함수와 달리 어트리뷰트 레퍼런스 얻기 함수는 어트리뷰트를 못 찾는 경우 어트리뷰트의 마지막 값을 유지합니다.

어트리뷰트 레퍼런스 얻기