컨트롤 릭 컴포넌트

블루프린트에서 컨트롤 릭 컴포넌트로 컨트롤 릭을 사용합니다.

Choose your operating system:

Windows

macOS

Linux

컨트롤 릭(Control Rig) 은 블루프린트에서 컨트롤 릭 컴포넌트(Control Rig Component) 를 사용하여 호출할 수 있습니다. 이 컴포넌트를 사용하면 블루프린트의 게임플레이 로직으로 컨트롤 릭을 구동하고, 컨트롤 릭을 각각 비율이 다른 캐릭터에 맞게 다시 초기화하고, 스켈레탈 메시가 아닌 오브젝트를 컨트롤 릭 계층구조에 어태치할 수 있습니다.

이 문서에서는 컨트롤 릭 컴포넌트의 개요와 이 컴포넌트를 블루프린트에 추가하는 방법, 이 컴포넌트가 지원하는 기능에 대해 설명합니다.

전제조건

  • 캐릭터에 대한 컨트롤 릭 에셋을 생성했으며 컨트롤을 생성하는 방법을 알고 있어야 합니다. 생성 방법에 대한 정보는 컨트롤 릭 퀵스타트 페이지를 참조하세요.

  • 스켈레탈 메시 컴포넌트를 포함하는 액터 블루프린트(Actor Blueprint) 를 생성했으며 블루프린트 비주얼 스크립팅 방법을 이해하고 있어야 합니다.

컴포넌트 설정

컨트롤 릭 컴포넌트 는 블루프린트 컴포넌트 패널에서 추가(Add)(+) 버튼을 클릭하고 애니메이션(Animation) 카테고리에서 컨트롤 릭 을 선택하여 생성할 수 있습니다.

컨트롤 릭 컴포넌트 생성

그런 다음 컨트롤 릭 컴포넌트 를 선택하고 디테일(Details) 패널에서 디폴트 컨트롤 릭 클래스(Control Rig Class) 를 할당합니다. 컨트롤 릭 클래스 옆의 드롭다운 메뉴를 클릭하여 클래스를 할당합니다.

컨트롤 릭 클래스

컨트롤 릭 클래스를 할당하면 컨트롤 릭의 본이 뷰포트에 표시될 것입니다. 컨트롤 릭 컴포넌트 디테일 패널에서 본 그리기(Draw Bones) 를 비활성화하여 이 본을 숨길 수 있습니다.

본 그리기

매핑 설정

마지막으로, 컨트롤 릭을 스켈레탈 메시에 매핑 해야 합니다. 이는 컨트롤 릭 컴포넌트의 초기화 이전 이벤트(Pre Initialize Event) 에서 수행해야 합니다. 이를 수행하는 이유는 스켈레탈 메시 컴포넌트컨트롤 릭 컴포넌트 를 연결하기 위해서입니다.

컨트롤 릭 컴포넌트를 선택한 상태로 디테일 패널에서 On Pre Initialize 옆의 추가(Add)(+) 버튼을 클릭합니다. 그러면 이벤트 그래프에 해당되는 이벤트가 생성됩니다.

On Pre Initialize 이벤트

다음으로 컴포넌트(Component) 핀에서 드래그하고 컨텍스트 메뉴에서 매핑된 스켈레탈 메시 추가(Add Mapped Skeletal Mesh) 를 선택합니다. 스켈레탈 메시 컴포넌트에 레퍼런스를 추가하고 이를 스켈레탈 메시 컴포넌트 핀에 연결합니다.

매핑된 스켈레탈 메시 추가

개요

컴포넌트 설정 을 완료했으면, 블루프린트에서 컨트롤 릭 컴포넌트를 사용할 수 있습니다. 이를 통해 릭 엘리먼트 구하기 또는 설정, 디테일 편집, 새 매핑 연결 생성 등의 기본 함수를 사용할 수 있습니다.

컨트롤 릭 함수

디테일

컨트롤 릭 컴포넌트와 관련된 디테일의 목록은 다음과 같습니다.

이름

설명

컨트롤 릭 클래스

인스턴스화할 컨트롤 릭 클래스입니다. 컨트롤 릭 에셋을 여기서 지정해야 합니다.

매핑된 엘리먼트(Mapped Elements)

이 배열은 컨트롤 릭에 디폴트 매핑을 수동으로 정의하는 데 사용됩니다.

틱 전 트랜스폼 리셋(Reset Transform Before Tick)

활성화하면 컨트롤 릭 트랜스폼이 매 틱 전에 업데이트됩니다.

설정 전 초기값 리셋(Reset Initials Before Setup)

활성화하면 본, Null, 컨트롤에 대한 초기 트랜스폼이 설정 이벤트(Setup Event) 이전으로 리셋됩니다.

틱 시에 릭 업데이트(Update Rig on Tick)

활성화하면 컴포넌트 틱 시에 릭이 업데이트됩니다.

에디터에서 업데이트(Update in Editor)

재생 또는 시뮬레이션하지 않고도 뷰포트에서 컨트롤 릭 행동이 보입니다.

레이지 이밸류에이션 활성화(Enable Lazy Evaluation)

활성화하면 매핑된 입력 변경 시에만 컨트롤 릭이 평가를 실시합니다.

위치 한계치(Position Threshold)

레이지 이밸류에이션 이 활성화된 경우 사용할 위치 또는 이동 한계치입니다.

회전 한계치(Rotation Threshold)

레이지 이밸류에이션 이 활성화된 경우 사용할 회전 한계치(각도)입니다.

스케일 한계치(Scale Threshold)

레이지 이밸류에이션 이 활성화된 경우 사용할 스케일 한계치입니다.

본 그리기(Draw Bones)

컨트롤 릭 클래스 에서 임포트한 본 그리기를 활성화합니다.

본 그리기

이벤트

컨트롤 릭은 컨트롤 릭 컴포넌트로부터 다음 이벤트를 호출할 수 있습니다. 이러한 이벤트들은 컨트롤 릭 컴포넌트를 선택하고 디테일 패널에서 이벤트(Events) 카테고리로 이동하거나 이벤트 그래프를 우클릭하고 컨트롤 릭에 대한 이벤트 추가(Add Event for Control Rig) > 컨트롤 릭(Control Rig) 을 선택하여 이벤트 그래프에 추가할 수 있습니다.

컨트롤 릭 블루프린트 이벤트

이름

이미지

설명

On Pre Initialize

On Pre Initialize

이 이벤트는 컴포넌트의 컨트롤 릭이 초기화되기 전에 호출됩니다. 컨트롤 릭 컴포넌트가 초기화되기 전에 컨트롤 릭의 트랜스폼 또는 추가 변수를 설정하는 데 사용할 수 있습니다. 일반적인 컨트롤 릭 설정에서 이 이벤트는 Event Begin Play와 유사하게 한 번만 실행됩니다.

On Post Initialize

On Post Initialize

이 이벤트는 컴포넌트의 컨트롤 릭이 초기화된 후에 호출됩니다. 컨트롤 릭 컴포넌트가 초기화된 후에 컨트롤 릭의 트랜스폼 또는 추가 변수를 설정하는 데 사용할 수 있습니다. 일반적인 컨트롤 릭 설정에서 이 이벤트는 Event Begin Play와 유사하게 한 번만 실행됩니다.

On Pre Setup

On Pre Setup

이 이벤트는 컴포넌트 컨트롤 릭의 설정 이벤트 이전에 호출됩니다. 컨트롤 릭의 설정 이벤트 이전에 컨트롤 릭의 트랜스폼 또는 추가 변수를 설정하는 데 사용할 수 있습니다. 일반적인 컨트롤 릭 설정에서 이 이벤트는 Event Begin Play와 유사하게 한 번만 실행됩니다.

On Post Setup

On Post Setup

이 이벤트는 컴포넌트 컨트롤 릭의 설정 이벤트 이후에 호출됩니다. 컨트롤 릭의 설정 이벤트 이후에 컨트롤 릭의 트랜스폼 또는 추가 변수를 설정하는 데 사용할 수 있습니다. 일반적인 컨트롤 릭 설정에서 이 이벤트는 Event Begin Play와 유사하게 한 번만 실행됩니다.

On Pre Forwards Solve

On Pre Forwards Solve

이 이벤트는 컴포넌트 컨트롤 릭의 정방향 솔브 이전에 호출됩니다. 컨트롤 릭의 정방향 솔브 이전에 컨트롤 릭의 트랜스폼 또는 추가 변수를 설정하는 데 사용할 수 있습니다. 일반적인 컨트롤 릭 설정에서 이 이벤트는 Event Tick과 유사하게 지속적으로 실행됩니다.

On Post Forwards Solve

On Post Forwards Solve

이 이벤트는 컴포넌트 컨트롤 릭의 정방향 솔브 이후에 호출됩니다. 컨트롤 릭의 정방향 솔브 이후에 컨트롤 릭의 트랜스폼 또는 추가 변수를 설정하는 데 사용할 수 있습니다. 일반적인 컨트롤 릭 설정에서 이 이벤트는 Event Tick과 유사하게 지속적으로 실행됩니다.

매핑

설정 단계 도중에 전체 스켈레탈 메시 컴포넌트를 컨트롤 릭 컴포넌트에 매핑해야 합니다. 그런데 컨트롤 릭 내의 특정 엘리먼트를 다른 컴포넌트에 매핑할 수도 있습니다. 매핑은 양방향으로 이뤄집니다. 즉, 컨트롤 릭 엘리먼트는 컴포넌트에 영향을 미칠 수도 있고, 컴포넌트로부터 영향을 받을 수도 있습니다. 이런 점에서 매핑은 어태치와 약간 비슷합니다.

기본적으로 매핑은 대개 컨트롤 릭 클래스 의 본 이름을 스켈레탈 메시 컴포넌트 에 매칭하여 이루어집니다. 따라서, 두 컴포넌트가 모두 사용 중인 경우 블루프린트 내에 두 가지의 다른 스켈레톤이 작동하고 있다고 생각할 수 있습니다. 매핑은 이 두 스켈레톤과 기타 컴포넌트가 서로 영향을 미치게 합니다.

엘리먼트 매핑을 수행하는 방식은 다음과 같습니다.

수동 디테일 매핑

디테일 패널의 애니메이션 섹션에서 컨트롤 릭 컴포넌트는 매핑된 엘리먼트(Mapped Elements) 배열을 갖습니다. 추가(+) 버튼을 클릭하여 수동으로 매핑할 정보를 추가하고 엘리먼트를 컨트롤 릭에 연결할 수 있습니다.

디테일 매핑

예를 들어 카메라 컴포넌트를 블루프린트에서 매핑하여 컨트롤이 그 위치에 영향을 미치게 하려면 다음 프로퍼티를 입력합니다.

  • 컴포넌트 이름(Component Name)카메라(Camera) 로 설정하여 카메라 컴포넌트와 매칭되게 합니다.

  • 컨트롤 릭 엘리먼트에 매핑할 것이므로 엘리먼트 타입(Element Type)컨트롤(Control) 로 설정합니다.

  • 엘리먼트 이름(Element Name) 을 매핑할 카메라 릭 엘리먼트의 이름인 'Camera_ctrl' 로 설정합니다.

  • 방향(Direction)출력(Output) 으로 설정하여 매핑의 방향을 정의합니다. 이 경우 출력은 컨트롤 엘리먼트가 카메라 트랜스폼을 지시하게 합니다. 입력 을 지정하면 카메라 컴포넌트가 컨트롤 엘리먼트를 지시합니다.

디테일 매핑

매핑 세팅을 생성할 때 사용할 수 있는 프로퍼티는 다음과 같습니다.

이름

설명

컴포넌트 레퍼런스(Component Reference)

이름으로 정의되는 블루프린트 컴포넌트입니다. 컨트롤 릭 컴포넌트가 액터 기반 블루프린트인 경우, 지정된 이름이 없을 때 기본값으로 자신(Self) 을 레퍼런스된 액터로 삼습니다.

트랜스폼 인덱스(Transform Index)

다수의 트랜스폼을 갖는 컴포넌트에 대한 인덱스 값(선택 사항)입니다.

트랜스폼 이름(Transform Name)

스켈레탈 메시의 소켓 등 다수의 개별화된 트랜스폼 이름을 갖는 컴포넌트에 대한 이름 값(선택 사항)입니다.

엘리먼트 타입(Element Type)

컴포넌트를 입력 또는 출력으로 갖는 컨트롤 릭의 릭 엘리먼트 타입입니다. 본, 컨트롤, Null, 커브, 리지드 바디, 레퍼런스 중에서 선택할 수 있습니다.

엘리먼트 이름(Element Name)

컴포넌트를 입력 또는 출력으로 갖는 컨트롤 릭의 릭 엘리먼트 이름입니다.

방향

매핑된 블루프린트 컴포넌트와 컨트롤 릭 엘리먼트 사이의 컨트롤 방향을 결정합니다.

  • 출력 은 컨트롤 릭 엘리먼트가 블루프린트 컴포넌트에 영향을 미치게 합니다.

  • 입력 은 블루프린트 컴포넌트가 컨트롤 릭 엘리먼트에 영향을 미치게 합니다.

오프셋(Offset)

매핑에 적용할 트랜스폼 오프셋입니다.

가중치(Weight)

매핑의 인수입니다.

스페이스(Space)

매핑이 정의되어야 하는 트랜스폼 스페이스입니다.

다이내믹 그래프 매핑

이벤트 그래프에서 동적으로 매핑을 추가하거나 변경할 수도 있습니다. 이는 여러 함수 및 구조체를 사용하여 수행되어 다양한 수준의 매핑을 달성합니다.

매핑된 스켈레탈 메시 추가

이 노드는 스켈레탈 메시 컴포넌트를 받아서 스켈레탈 메시의 본을 컨트롤 릭 컴포넌트에 사용된 컨트롤 릭의 프리뷰 메시에 매핑합니다. 이것이 컨트롤 릭-스켈레탈 메시 매핑 링크입니다. 일반적으로 이 노드는 블루프린트에서 컨트롤 릭의 초기화를 수행할 때 사용됩니다.

매핑된 스켈레탈 메시 추가

매핑된 스켈레탈 메시 본 배열 추가

이 노드는 스켈레탈 메시 컴포넌트와 컨트롤 릭 컴포넌트 간의 또는 커브 배열을 매핑합니다. 또한, 컨트롤 릭 스켈레톤과 스켈레탈 메시 스켈레톤이 서로 다른 본 또는 커브 이름을 갖는 경우 소스(Source)타깃(Target) 이름을 지정할 수 있습니다. 이는 이름 '찾기 및 대체'와 워크플로가 유사하지만, 개별 본 또는 커브에 대해서만 작동합니다.

매핑된 스켈레탈 메시 본 배열 추가

어느 한쪽 배열의 본 또는 커브만 매핑됩니다. 전체 스켈레톤도 매핑하려면 이 노드 뒤에 매핑된 스켈레탈 메시 추가를 사용합니다.

매핑된 엘리먼트 추가

이 노드는 블루프린트 컴포넌트 배열을 컨트롤 릭 컴포넌트에 매핑합니다. 이러한 컴포넌트는**Make ComponentReferenceMake ControlRigComponentMappedElement** 구조체에 의해 정의됩니다. 이러한 구조체의 프로퍼티 및 포맷은 디테일 패널에서 매핑할 때와 동일합니다.

매핑된 엘리먼트 추가

매핑된 컴포넌트 추가

이 노드는 블루프린트 컴포넌트 배열을 컨트롤 릭 컴포넌트에 매핑합니다. 이러한 컴포넌트는 컴포넌트 및 Make ControlRigComponentMappedComponent 구조체를 직접 레퍼런스하여 정의됩니다. 이 구조체의 프로퍼티는 ControlRigComponentMappedElement 만들기 의 간소화된 베리언트이며, 가장 일반적인 매핑 프로퍼티만 제공합니다.

매핑된 컴포넌트 추가