모듈형 컨트롤 릭(Modular Control Rig) 은 언리얼 엔진의 디지털 애니메이션 릭으로, 모듈 이라는 사전 빌드된 컨트롤 릭 에셋 여러 개를 결합하여 만들어졌습니다. 모듈 은 팔, 다리 또는 척추 등 캐릭터 바디의 한 파트를 나타내는 컨트롤 릭 컴포넌트입니다. 애니메이션 데이터를 수신하도록 활성화하면 컨트롤 세트를 자동으로 생성하고 바디 파트를 리깅하는 데 사용할 수 있습니다. 모듈 여러 개를 연결 하여 스켈레톤을 구동하는 연결부를 위한 완전한 애니메이션 릭을 형성할 수 있습니다.
이 문서는 모듈형 컨트롤 릭 프레임워크를 사용하여 캐릭터를 리깅하는 방법에 대한 개요를 제공합니다.
여러 모델을 결합하여 모듈형 컨트롤 릭을 만드는 것을 비주얼 리깅(Visual Rigging) 이라고 합니다. 비주얼 리깅을 사용하면 뷰포트에서 스키매틱 오버레이(Schematic Overlay) 기능으로 모듈을 빌드하고 완전히 연결할 수 있습니다.
시작하기
여기에서 모듈형 리깅 프레임워크를 사용하여 캐릭터 리깅을 시작하는 방법에 대해 읽어보실 수 있습니다.
전제 조건
-
프로젝트에 스켈레탈 메시 캐릭터가 있어야 합니다. 이 문서에 포함된 예시 워크플로의 경우 마네킹 캐릭터가 사용됩니다.
-
컨트롤 릭 모듈 플러그인을 활성화해야 합니다. 메뉴 바(Menu Bar) 로 이동하여 편집(Edit) > 플러그인(Plugins) 에서 컨트롤 릭 모듈(Control Rig Modules) 플러그인을 애니메이션(Animation) 섹션에서 찾거나 검색창(Search Bar) 을 사용합니다. 플러그인을 활성화하고 에디터를 재시작합니다.
이 플러그인은 언리얼 엔진에서 모듈형 컨트롤 릭을 사용할 필요는 없지만 포함된 워크플로 예시에서 사용하는 사전 구성된 모듈을 보유하고 있으며 모듈형 컨트롤 릭 사용을 시작하는 경우 권장됩니다. 이 플러그인은 선택사항으로 설계되었으며, 프로젝트의 필요에 따라 로드 및 언로드할 수 있습니다.
프리뷰 씬 세팅
메시 리깅을 시작하기 전에 뷰포트 를 쉽게 탐색할 수 있도록 프리뷰 씬 세팅(Preview Scene Settings) 패널에서 몇 가지 세팅을 조정할 수 있습니다. 다음 세팅을 설정하는 것이 좋습니다.
| 프로퍼티 | 권장 세팅 |
|---|---|
| 환경 표시(Show Environment) | 꺼짐(Off) |
| 바닥 표시(Show Floor) | 꺼짐(Off) |
| 포스트 프로세싱(Post Processing) > 렌즈(Lens) > 노출(Exposure) > 미터링 모드(Metering Mode) | 수동(Manual) |
| 포스트 프로세싱(Post Processing) > 렌즈(Lens) > 노출(Exposure) > 노출 보정(Exposure Compensation) | 11.0 |
UI 개요
모듈형 컨트롤 릭 에디터의 개요를 참조할 수 있습니다.
-
모듈 에셋(Module Assets): 컨트롤 릭에 추가할 수 있는 사용 가능한 모듈 에셋을 찾을 수 있습니다.
-
뷰포트(Viewport): 메시 및 릭을 스키매틱 오버레이 소켓(Schematic Overlay Sockets) 과 함께 볼 수 있습니다. 이러한 소켓은 모듈을 배치할 수 있는 메시 위 포인트를 나타냅니다.
-
디테일(Details): 릭의 세팅을 조정할 수 있습니다.
-
릭 계층구조(Rig Hierarchy): 계층구조를 보고 편집할 수 있습니다.
-
모듈 계층구조(Module Hierarchy): 컨트롤 릭 컨트롤의 계층구조를 보고 편집할 수 있습니다.
용어
모듈형 컨트롤 릭을 리깅할 때 사용되는 다양한 용어에 대해 읽어보실 수 있습니다.
모듈
모듈(Module) 은 모듈형 컨트롤 릭 프레임워크 내에서 사용할 수 있는 모듈 작성자에 의해 생성된 컨트롤 릭의 컴포넌트입니다.
보통 모듈은 팔, 다리 또는 척추와 같은 캐릭터의 일반적인 파트를 나타내지만, 이러한 개념에 국한되는 것은 아닙니다.
커넥터
전체 캐릭터 릭을 빌드하려면 커넥터(Connectors) 를 사용하여 모듈을 한데 연결해야 합니다. 커넥터 는 두 모듈 간의 관계입니다. 모듈에는 다수의 커넥터 포인트가 존재할 수 있습니다. 이러한 커넥터 포인트는 모듈 작성자(Module Authors) 에 의해 생성되어 모듈형 컨트롤 릭 내부에서 모듈이 서로 연결되는 방식을 지시합니다.
모듈이 올바르게 작동하려면 커넥터를 릭 엘리먼트에 리졸브 해야 합니다. 일반적으로 커넥터는 모듈형 컨트롤 릭에 모듈을 추가할 때 자동으로 리졸브되지만, 각 모듈 및 모듈 컴포넌트와 연관된 드롭다운을 사용하여 모듈 계층구조 패널에 이러한 리졸브를 수동 할당할 수 있습니다.
소켓
소켓(Sockets) 은 특정 위치에서 커넥터로 릭 모듈을 한데 연결하는 데 사용할 수 있는 노드입니다. 예를 들면 팔의 어깨 부분을 척추의 가슴 위치에 연결할 수 있습니다. 커넥터는 소켓 에 자동으로 리졸브 됩니다. 소켓은 계층구조 엘리먼트의 다음 타입에 대해 리졸브할 수 있습니다.
- 본(Bones)
- 컨트롤(Controls)
- 공백(Nulls)
에디터의 뷰포트에서 커넥터가 소켓에 리졸브되었는지 여부를 시각적으로 확인할 수 있습니다. 내부에 큰 회색 원이 있는 원은 리졸브된 커넥터를 나타냅니다. 내부에 작은 회색 점이 있는 원은 리졸브되지 않은 소켓을 나타냅니다. 동일한 소켓에 여러 개의 커넥터가 리졸브된 경우, 동일한 소켓에 리졸브된 커넥터의 개수를 나타내는 숫자가 표시됩니다.
| 소켓 | 설명 |
|---|---|
![]() |
소켓이 커넥터에 리졸브되지 않았습니다. |
![]() |
소켓이 커넥터에 리졸브 되었습니다. |
![]() |
다수의 커넥터가 이 소켓에 리졸브 되었습니다. |
커넥터에는 규칙 이 있습니다. 즉, 특정 타입의 소켓에만 리졸브할 수 있습니다. 예를 들어 일부 커넥터는 본 또는 소켓에만 리졸브됩니다.
첫 번째 모듈형 릭 생성
여기에서 자신만의 모듈형 릭 생성을 시작하는 방법에 대한 예시를 따라해 볼 수 있습니다.
모듈형 릭 에셋 생성
콘텐츠 브라우저 의 ( + ) 추가(Add) 를 사용하고 애니메이션(Animation) > 컨트롤 릭(Control Rig) > 컨트롤 릭(Control Rig) 을 선택하여 모듈형 릭을 생성할 수 있습니다.
알림이 표시되면 컨트롤 릭 블루프린트 생성(Create Control Rig Blueprint) 창에서 모듈형 릭(ModularRig) 옵션을 선택한 후 생성(Create) 버튼을 선택합니다.
이제 콘텐츠 브라우저 에서 더블클릭 하여 컨트롤 릭 에셋을 열 수 있습니다. 에셋을 연 후 디테일 패널에서 프리뷰 메시(Preview Mesh) 프로퍼티의 드롭다운 메뉴를 사용하거나 뷰포트 오른쪽 하단 모서리의 프롬프트를 사용하여 리깅할 스켈레탈 메시 캐릭터를 선택합니다.
캐릭터 메시를 정의한 후 척추(Spine) 모듈을 모듈 에셋 패널에서 뷰포트의 리졸브되지 않은 소켓으로 드래그 앤 드롭 할 수 있습니다.
척추 모듈을 추가하면, 모듈을 추가할 수 있는 더 많은 커넥터가 표시됩니다. 그런 다음 목(Neck) 모듈을 리졸브되지 않은 목 소켓으로 드래그 앤 드롭 합니다.
그 후 다리(Leg) 모듈을 사용 가능한 각 다리 소켓으로 드래그 앤 드롭 합니다.
다음에는 발(Foot) 모듈을 사용 가능한 각 발 소켓으로 드래그 앤 드롭 합니다.
다리 및 발 모듈 추가 프로세스와 비슷하게 어깨(Shoulder) 모듈을 각 어깨 소켓에 드래그 앤 드롭 한 후 각 팔 소켓에 팔(Arm) 모듈을 드래그 앤 드롭합니다.
마지막으로 각 손가락 소켓을 선택한 후 선택된 소켓 중 하나로 손가락 모듈을 드래그 앤 드롭하여 동시에 여러 개의 모듈을 생성합니다.
미러링
모듈형 컨트롤 릭 생성 과정을 보다 효율적으로 진행하기 위해 모듈을 미러링할 수도 있습니다. 모듈을 미러링하려면 먼저 모듈 계층구조 패널에서 미러링할 모듈 하나 또는 여러 개를 선택합니다. 그런 다음 선택을 우클릭하고 컨텍스트 메뉴에서 미러링(Mirror) 프로퍼티를 사용합니다. 그런 다음 미러 축(Mirror Axis), 플립 축(Axis to Flip), 새 모듈의 이름을 변경하기 위한 검색 및 대체 기능 등 선택된 모듈을 미러링하는 데 사용할 프로퍼티를 정의할 수 있습니다. 미러링 작업은 릭의 원본 모듈의 이름 및 위치를 기반으로 컨텍스트에 맞게 모듈의 이름을 변경하려고 시도합니다.
미러링된 모듈 커넥터가 제대로 리졸브되려면 소켓이 있어야 합니다.
커넥터 리졸브하기
모듈이 커넥터에 자동으로 리졸브되지 않고 수동 리졸브가 필요할 때가 있습니다. 리졸브되지 않은 모듈은 뷰포트에 리졸브되지 않은 커넥터로 표시되며, 모듈 계층구조 패널에 빨간색 none 정의가 나타납니다. 커넥트는 다음 방법을 통해 수동으로 리졸브할 수 있습니다.
-
뷰포트에서 리졸브되지 않은 엘리먼트를 선택하고 모듈 계층구조 패널의 엘리먼트 옆 선택된 화살표 사용(Use Selected Arrow) 버튼을 사용하면 해당 엘리먼트가 커넥터에 출력되어 문제가 해결될 수 있습니다.

-
모듈 계층구조 패널에서 리졸브로 사용될 본 또는 소켓을 수동으로 할당하기 위해 리졸브되지 않은 커넥터의 계층구조 드롭다운 메뉴를 사용할 수 있습니다. 이 방법을 사용하면 커넥터 규칙이 준수되며, 규칙으로 필터링된 타입만 표시됩니다.

-
모듈이 릭에 추가된 경우 모듈에 포함된 커넥터 이벤트(Connector Event) 가 자동으로 실행되므로 모든 커넥터를 제공된 로직으로 리졸브하려고 시도합니다.
또한 모듈 계층구조 패널에서 리졸브되지 않은 커넥터 하나 또는 여러 개를 우클릭 하고 컨텍스트 메뉴에서 자동 리졸브(Auto Resolve) 옵션을 선택하여 이 기능을 수동으로 실행할 수도 있습니다.
**
모듈형 컨트롤 릭 애니메이팅
모듈형 컨트롤 릭은 시퀀서 및 뷰포트 내 일반적인 컨트롤 릭과 정확히 동일하게 작동합니다. 언리얼 엔진의 애니메이션 컨트롤 릭에 대한 자세한 내용은 다음 문서를 참조하세요.
모듈형 컨트롤 릭 에셋을 레벨로 바로 드래그 앤 드롭하여 캐릭터 애니메이팅을 시작할 수 있습니다.
모듈 작성하기
모듈 작성자(Module Author) 는 모듈형 컨트롤 릭에 의해 사용되는 모듈을 생성합니다. 언리얼 엔진의 컨트롤 릭은 모듈 작성의 기저 프레임워크이므로, 컨트롤 릭 그래프를 생성하는 방법을 이해하는 것이 전제 조건입니다. 언리얼 엔진의 컨트롤 릭에 대한 자세한 내용은 다음 문서를 참조하세요.
%animating-characters-and-objects/ControlRig:topic%
컨트롤 릭 모듈 플러그인
모듈형 컨트롤 릭 시스템은 컨트롤 릭 모듈 플러그인 설치가 필요하지 않으며, 언리얼 엔진의 모듈형 컨트롤 릭 빌드 및 사용을 시작하지 않아도 됩니다. 하지만 사전 구성된 모듈을 사용하기 위해 선택적으로 컨트롤 릭 모듈을 설치하여 사용, 편집 또는 학습할 수 있습니다. 플러그인에는 모듈형 컨트롤 릭을 빌드하거나 직접 커스텀 모듈을 생성하는 데 사용할 수 있는 예시 커스텀 모듈이 포함되어 있습니다. 이 플러그인은 선택사항으로 설계되었으며, 프로젝트의 필요에 따라 로드 및 언로드할 수 있습니다.
루트 모듈
커스텀 컨트롤 릭 모듈을 생성하고 사용하려는 경우, 새 모듈형 컨트롤 릭을 생성할 때 어떤 루트 모듈을 사용할지 설정할 수 있습니다. 초기 루트 모듈은 프로젝트 세팅(Project Settings) 내부에서 컨트롤 릭(Control Rig) 섹션의 기본 루트 모듈(Default Root Module) 세팅을 사용하여 변경할 수 있습니다. 기본 루트 모듈 에셋은 Control Rig Plugin 폴더 안에 위치해 있으며, 신중하게 편집 해야 합니다.
이 모듈은 있는 그대로 사용하는 것을 권장합니다. 프로젝트 내부에 있거나 에셋과 함께 있는 새 루트 모듈을 생성해서 편집하는 것이 좋습니다.
첫 번째 모듈 생성하기
여기에서 모듈형 컨트롤 릭의 커스텀 모듈 생성 예시 워크플로를 참조할 수 있습니다.
새 모듈 생성
-
콘텐츠 브라우저에서 새 컨트롤 릭(Control Rig) 에셋을 생성합니다.
-
컨트롤 릭을 열고 릭 모듈로 전환(Switch to Rig Module) 을 사용하여 모듈로 변환합니다.
- 스켈레탈 메시를 임포트합니다. 이는 모듈 빌드 시 템플릿 역할을 합니다. 아래와 같이 ControlRigModules 플러그인에서 사용 가능한 사전 빌드된 템플릿 이나 자신만의 템플릿을 활용할 수 있습니다.

모듈이 이 에셋을 참조하게 되므로 가능한 한 가벼워야 합니다.
- 클래스 세팅(Class Settings) 에서 다음 프로퍼티를 설정합니다.
| 프로퍼티 | 세팅 |
|---|---|
| 이름(Name) | 모듈형 릭 에디터에 표시될 모듈 이름을 설정합니다. |
| 타입(Type) | 이 모듈의 종류를 설정합니다(기본 설정: 모듈). |
| 아이콘(Icon) | 모듈형 릭 에디터에 표시할 시각적 아이콘을 설정합니다. 프로퍼티의 드롭다운 메뉴를 사용하여 제공되는 아이콘 중 하나를 선택할 수 있습니다. 컨트롤 릭 모듈 플러그인에는 새 모듈을 위해 사용하거나 수정할 수 있는 사전 빌드된 아이콘 여러 개가 함께 패키지로 만들어져 있습니다. 이러한 에셋은 다음 파일 경로에 위치합니다.
![]() |
| 카테고리(Category) | 여기에서 모듈의 카테고리화 값을 설정할 수 있습니다. |
| 키워드(Keywords) | 모듈을 설명하는 키워드입니다. |
| 설명(Description) | 여기에서 에디터 내 모듈에 호버하는 등의 경우에 표시될 모듈 설명을 제공할 수 있습니다. |
커넥터 생성하기
릭 작성자는 모듈에 스켈레톤 연결 방식을 지시해야 합니다. 이는 커넥터 를 사용하여 구현됩니다. 커넥터는 본 및 컨트롤 등의 계층구조 정보 반환을 담당합니다. 커넥터는 계층구조 엘리먼트의 레퍼런스 역할을 하므로 작성자는 서로 다른 계층구조 또는 명명 형식을 가진 다양한 여러 스켈레톤에서 작동할 가능성이 있는 모듈을 생성할 수 있습니다.
커넥터의 타입 은 다음과 같이 두 가지입니다.
| 타입 | 설명 |
|---|---|
| 프라이머리(Primary) | 모듈은 하나의 프라이머리 커넥터만 포함할 수 있습니다. 프라이머리 커넥터가 스켈레탈 메시의 소켓에 리졸브되는 것이 좋습니다. 프라이머리 커넥터를 생성할 때 고려해야 할 사항은 다음과 같습니다.
|
| 세컨더리(Secondary) | 모듈은 여러 개의 세컨더리 커넥터를 포함할 수 있습니다. 이러한 커넥터를 본, 공백 또는 컨트롤에 리졸브하는 것이 좋습니다. 세컨더리 커넥터를 생성할 때는 모듈이 설계 목적대로 기능하도록 하기 위해 리졸브해야 하는 추가 커넥터라고 생각하면 됩니다. 모듈별로 여러 개의 세컨더리 커넥터가 존재할 수 있습니다. 스켈레탈 메시에 리졸브되는 방식에 따라 세컨더리 커넥터에 본, 컨트롤 또는 공백 타입 규칙을 제공하는 것이 좋습니다. 세컨더리 커넥터가 선택사항인 경우, 모듈을 정상적으로 작동시키기 위해 커넥터를 리졸브하지 않아도 됩니다. |
커넥터에는 규칙 을 포함할 수 있습니다. 이러한 규칙은 해당 커넥터에 무엇이 리졸브할 수 있는지 결정합니다. 다음은 커넥터에 할당할 수 있는 사용 가능한 규칙과 그 기능을 설명한 목록입니다.
| 규칙 | 설명 |
|---|---|
| And 규칙(And Rule) | 리졸브된 엘리먼트가 설정된 모든 규칙을 충족해야 합니다. |
| 프라이머리의 자손(Child of Primary) | 엘리먼트가 프라이머리 커넥터 계층구조 아래에 존재합니다. |
| Or 규칙(Or Rule) | 리졸브된 엘리먼트가 설정된 규칙 중 하나를 충족해야 합니다. |
| 태그 규칙(Tag Rule) | 리졸브된 엘리먼트가 이 태그로 지정되어 있어야 합니다. |
| 타입 규칙(Type Rule) | 리졸브된 엘리먼트가 특정 타입이어야 합니다. |
커넥터 이벤트
커넥터 이벤트는 모듈형 에셋을 리깅하는 동안 드래그 앤 드롭 단계에서 생성 시 모듈의 세컨더리 커넥터를 자동 리졸브 하는 그래프 로직을 빌드하는 방법을 제공합니다.
소켓
소켓(Socket) 은 캐릭터의 스켈레톤 에셋에서 정의되며 모듈을 스켈레탈 메시에 연결하는 데 사용됩니다. 예를 들어, 팔 모듈이 척추 소켓에 연결되도록 설정하면 척추가 팔을 구동할 수 있습니다. 소켓은 에디터 뷰포트에 원 모양을 통해 시각적으로 표시됩니다.
메타데이터
모듈은 외부 모듈이 액세스할 수 있는 모듈 레벨의 메타데이터를 포함할 수 있습니다. 이러한 메타데이터를 활용하는 컨트롤 릭 노드는 다음 2가지입니다.
| 컨트롤 릭 노드 | 설명 |
|---|---|
| Get Module Metadata | 제공된 범위에서 특정 메타데이터를 얻습니다. |
| Set Module Metadata | 제공된 범위에서 새 메타데이터를 생성합니다. |
메타데이터는 루트, 부모 또는 현재 모듈 레벨에서 액세스할 수 있습니다. 예를 들어, 컨트롤의 글로벌 크기를 저장하기 위한 메타데이터는 루트 레벨일 수 있는 반면, 팔 모듈에서 생성된 손 컨트롤은 부모 메타데이터 범위 내에 존재할 수 있습니다.
정방향 솔브 이전 또는 이후
정방향 솔브 이전(Pre Forwards Solve) 은 릭 로직이 정방향 솔브 실행 전에 실행되도록 합니다. 정방향 솔브 이후(Post Forwards Solve) 는 릭 로직이 정방향 솔브 실행 후에 실행되도록 합니다.
모듈이 기존에 존재하던 다른 모듈의 릭 로직을 편집하도록 하는 경우 유용합니다. 예를 들면 발 모듈이 발 롤 구성을 생성하도록 다리 모듈을 편집하는 경우가 여기에 해당합니다.
기술 부록
여기에서 언리얼 엔진의 모듈형 컨트롤 릭 사용에 대한 추가적인 기술 정보를 참조하실 수 있습니다.
실행 순서
모듈형 컨트롤 릭에는 해당 모듈에 대한 레퍼런스가 포함됩니다. 각 모듈은 다른 모듈과 독립적으로 실행되지만, 구체적인 실행 순서가 있습니다. 모듈은 모듈 트리에 나타나는 순서대로 실행됩니다. 예를 들면 루트에서 리프 순서 또는 척추 > 다리 > 발 순서입니다. 모든 모듈은 동일한 스레드에서 순차적으로 실행되므로 모듈형 컨트롤 릭 그래프 실행을 멀티스레드하는 것은 불가능합니다.
예를 들면 컨스트럭션 이벤트가 모든 모듈에 대해 실행된 다음 정방향 솔브가 모든 모듈에 대해 실행되는 식으로 순서대로 진행됩니다.
이후 출시 버전에서는 모듈 실행 순서 결정 방식을 세부적으로 제어하는 기능이 제공될 수도 있습니다. 특정 시나리오는 일시적으로 모듈을 건너뛰거나 모듈을 두 번 실행해야 할 수 있습니다. 또한 실행 순서를 완전히 바꾸는 기능도 제공될 수 있습니다.
실행 스택
각 모듈은 VM(Virtual Machine, 가상 머신)을 사용할 수 있지만, 모듈형 컨트롤 릭은 VM을 직접 사용하지 않습니다. 실행 스택으로 인해 모듈형 릭은 공백이거나 사용자 인터페이스에 표시되지 않습니다.
이후 출시 버전에서는 실행 스택이 다시 표시되는 지점에서 모듈형 릭이 고급 시나리오를 위해 자체적인 VM을 사용할 수 있도록 더 많은 기능이 추가될 수도 있습니다.
퍼포먼스
모듈형 컨트롤 릭은 현재 단일 인라인 컨트롤 릭에 비하면 퍼포먼스 비용이 높지만, 퍼포먼스 차이는 미미한 수준입니다.
손쉽고 빠르게 캐릭터 릭을 빌드할 때의 장점이 퍼포먼스 영향을 넘어설 것으로 기대합니다. 하지만 앞으로 그 차이를 줄이고 결국에는 모듈형 릭의 속도가 비교 가능한 인라인 컨트롤 릭보다 더 빨라질 수 있도록 퍼포먼스를 개선해 나갈 예정입니다. 여러 잠재적인 퍼포먼스 개선 사항이 머지않아 구현될 것으로 예상됩니다.
API
모듈형 릭 ( UModularRig ) 은 모델 ( FModularRigModel ) 로 관리되며, 모델은 모듈 레퍼런스, 리졸브된 커넥터, 변수 바인딩 목록을 포함합니다. 또한 모듈형 릭에 변경사항을 적용하는 데 사용할 수 있는 컨트롤러 ( UModularRigController ) 도 제공됩니다.
모듈형 릭은 특수한 컨트롤 릭이므로 모든 컨트롤 릭 API를 공유하고 추가적인 자체 API를 추가합니다.
Python
Python에서 모델 및 컨트롤러는 다음 스크립트를 통해 액세스할 수 있습니다.
model = rig_blueprint.modular_rig_model
controller = rig_blueprint.get_modular_rig_controller()



