컨트롤 릭

컨트롤 릭으로 실시간으로 움직이는 릭과 캐릭터 애니메이션을 만듭니다.

Windows
MacOS
Linux

컨트롤 릭(Control Rig)을 사용하면 임포트한 스켈레탈 메시에 커스텀 컨트롤을 생성하여 언리얼 에디터에서 새 애니메이션을 생성하거나 기존 애니메이션을 수정할 수 있습니다. 본 문서는 컨트롤 릭 에디터의 개요와 함께 릭으로 애니메이션을 제작하는 방법을 설명합니다.

전제조건

  • 컨트롤 릭(Control Rig) 플러그인을 활성화해야 합니다. 이를 활성화하려면 언리얼 에디터 메뉴 바에서 편집 > 플러그인(Edit > Plugins) 으로 이동한 다음 컨트롤 릭(Control Rig) 을 검색합니다. 플러그인을 활성화하고 에디터를 재시작합니다.

    컨트롤 릭 플러그인

  • 스켈레탈 메시 에셋을 프로젝트로 임포트해 본 적이 있어야 합니다.

  • 언리얼 시퀀서 툴을 사용해 본 경험이 있어야 합니다.

컨트롤 릭 에셋 생성하기

스켈레탈 메시에 쓸 컨트롤 릭을 생성하는 방법은 몇 가지가 있습니다.

첫 번째 방법은 스켈레탈 메시 에셋을 우클릭한 다음 컨트롤 릭 생성(Create Control Rig) 을 선택하는 것입니다. 이렇게 하면 스켈레탈 메시가 이미 할당된 채로 새 컨트롤 릭 에셋이 생성됩니다. 이 에셋의 이름은 자동으로 스켈레탈 메시의 이름을 따서 명명되며 이름 뒤에 _CtrlRig 가 붙습니다.

컨트롤 릭 생성

두 번째 방법은 컨트롤 릭 을 수동으로 생성하는 것입니다. 콘텐츠 브라우저에서 우클릭하고 애니메이션 > 컨트롤 릭(Animation > Control Rig) 을 선택합니다. 컨텍스트 메뉴에서 컨트롤 릭(ControlRig) 을 선택하고 생성(Create) 을 클릭합니다.

컨트롤 릭 생성 2

에셋이 생성되면 콘텐츠 브라우저에서 에셋을 더블클릭해서 엽니다.

이 방법으로 컨트롤 릭을 만들면 컨트롤 릭 에셋을 열고서 수동으로 스켈레톤을 에셋에 추가해줘야 합니다.

컨트롤 릭 에디터

컨트롤 릭 에셋을 열면 컨트롤 릭 에디터가 나타납니다. 주 영역의 개요는 다음과 같습니다.

이미지 대체 텍스트

  1. 툴바

  2. 뷰포트

  3. 릭 계층구조

  4. 실행 스택

  5. 릭 그래프

  6. 디테일/프리뷰 씬

  7. 내 블루프린트

툴바

이미지 대체 텍스트

컨트롤 릭 툴바에는 프리뷰 동작과 컨트롤 릭 구성을 제어하는 버튼과 세팅이 포함돼 있습니다. 각 버튼의 컨트롤 릭 기능은 다음과 같습니다:

컴파일(Compile)

이미지 대체 텍스트

릭 계층구조를 변경할 때마다 반드시 컴파일해야 합니다. 이러한 변경 사항으로는 컨트롤, 본, 스페이스에 대한 추가, 제거, 부모 재설정, 이름변경 등이 있습니다. 변수를 생성할 때에도 리컴파일해야 합니다.

컴파일(Compile) 버튼은 컨트롤을 리셋하는 용도로도 사용할 수 있습니다.

컴파일 리셋

이벤트 모드(Event Mode)

이벤트 모드 툴은 여러 가지 그래프 이벤트 체인 간에 전환할 때 사용됩니다. 각 옵션은 릭 그래프 이벤트 노드와 연결돼 있습니다.

이미지 대체 텍스트

이벤트 설정(Setup Event) 은 이벤트 설정 노드 체인을 개시할 뿐만 아니라 본, 컨트롤, 스페이스의 초기 위치를 조작할 수 있는 설정 모드를 활성화하기도 합니다.

정방향 솔브(Forwards Solve) 는 정방향 솔브 노드 체인을 트리거합니다. 이 모드에서 컨트롤을 움직이면 현재 위치만 일시적인 영향을 받습니다.

역방향 솔브(Backwards Solve) 는 역방향 솔브 노드 체인을 개시합니다. 이 모드를 사용하면 컨트롤이 본을 구동하는 게 아니라 본이 컨트롤을 구동하게 되며, 시퀀서의 컨트롤 릭에 굽기(Bake to Control Rig) 기능을 사용할 수 있게 됩니다.

역방향 후 정방향(Backwards and Forwards) 은 역방향 솔브 체인을 먼저 개시한 다음, 정방향 솔브 체인을 개시합니다. 보통 두 체인이 순차적으로 잘 작동하는지 검증하고 싶을 때 이 기능을 사용합니다.

자동 컴파일(Auto Compile)

이미지 대체 텍스트

이 세팅을 활성화하면 릭 그래프를 변경했을 때 자동으로 컴파일이 실행됩니다. 위에 언급한 다른 모든 변경 사항은 수동으로 컴파일해야 합니다.

디버그 오브젝트(Debug Object)

이미지 대체 텍스트

이 드롭다운 메뉴를 통해 컨트롤 릭 뷰포트를 실행중인 게임 세션의 캐릭터에 연결할 수 있습니다. 이를 통해 실행중인 세션의 현재 애니메이션을 컨트롤 릭 뷰포트에서 프리뷰할 수 있습니다.

컨트롤 릭 디버그 오브젝트 링크

클래스 세팅(Class Settings)

이미지 대체 텍스트

이곳의 항목은 대부분 일반적인 블루프린트 프로퍼티입니다. 컨트롤 릭 블루프린트의 클래스 세팅에는 기즈모 라이브러리(Gizmo Library) 가 포함되어 있습니다. 이를 이용하여 컨트롤의 모양을 정의하는 데 사용하는 다양한 기즈모를 편집할 수 있습니다.

이미지 대체 텍스트

뷰포트

뷰포트에서는 컨트롤 릭 노드와 인터랙션하고 여러 가지 프리뷰 모드와 디스플레이 세팅을 설정할 수 있습니다.

컨트롤 릭 뷰포트

컨트롤 릭 옵션은 뷰 옵션(View Options) 패널 안에 있습니다. 스페이스 표시(Display Spaces) 는 씬에서 스페이스 오브젝트의 로컬 축 표시를 활성화/비활성화합니다. 선택되면 축 디스플레이(Display Axes on Selection) 는 스페이스가 선택된 경우에만 로컬 축을 표시하며 축 스케일(Axes Scale) 은 표시되는 축의 스케일을 조절합니다.

컨트롤 릭 뷰 옵션

릭 계층구조

릭 계층구조 패널은 아웃라이너 유형의 뷰에서 현재 스켈레톤과 컨트롤 계층구조를 보는 데 사용됩니다. 이는 새로운 , 컨트롤 ,스페이스 을 생성하는 주요 영역이기도 합니다.

패널에서 우클릭하고 신규(New) > 본, 컨트롤 또는 스페이스(Bone, Control, or Space) 를 선택하여 이러한 엘리먼트들을 생성합니다. 그러면 0,0,0에 새 컨트롤이 생성됩니다.

컨트롤 스페이스 본 생성

기타 컨텍스트 메뉴 명령은 다음과 같습니다:

트랜스폼 리셋/모든 트랜스폼 리셋(Reset Transform/All Transforms)

이 명령은 현재 선택된 노드 또는 모든 노드를 초기 트랜스폼으로 리셋합니다.

컨트롤 릭 트랜스폼 리셋

현재에서 초기 트랜스폼 설정(Set Initial Transform from Current)

이 명령을 사용하면 노드의 현재 위치를 초기 트랜스폼으로 설정합니다. 이제 트랜스폼을 리셋하면 새로운 이 위치로 리셋됩니다.

컨트롤 릭 초기 트랜스폼

가장 가까운 본에서 초기 트랜스폼 설정(Set Initial Transform from Closest Bone)

이 명령을 사용하면 선택된 컨트롤을 가장 가까운 본에 스냅하고 그 위치를 초기 트랜스폼으로 설정합니다. 컨트롤을 본에 맞춰 정렬하는 데 유용합니다.

컨트롤 릭 가장 가까운 본

현재에서 기즈모 트랜스폼 설정(Set Gizmo Transform from Current)

기즈모의 트랜스폼을 바꿀 때 이 명령을 실행하면 기즈모의 피벗 포인트를 다시 초기 트랜스폼으로 리셋하지만 기즈모의 현재 시각적 위치는 그대로 유지합니다. 기즈모의 시각적 위치는 커스터마이징하지만 피벗 포인트는 그대로 유지하고 싶을 때 유용합니다.

컨트롤 릭 기즈모 트랜스폼 오프셋

부모 해제(Unparent)

부모 해제 는 선택된 노드를 현재 위치에서 제거하고 계층구조 상단에 배치합니다.

컨트롤 릭 부모 해제

실행 스택

실행 스택 패널은 그래프 내의 작동 순서를 미리 보여줍니다. 이는 노드를 디버그하고 이벤트의 순서를 평가하는 용도로 사용 가능합니다.

원하는 실행 노드를 우클릭하고 선택에 포커스(Focus on Selection) 를 선택하면 릭 그래프에서 해당 노드에 화면을 위치시킵니다.

컨트롤 릭 실행 스택

릭 그래프

릭 그래프는 컨트롤 릭의 동작을 스크립팅하는 곳입니다.

그래프 안에서 계층구조 노드를 레퍼런스하려면 계층구조 패널에서 그래프로 해당 노드를 드래그 앤 드롭하고 원하는 레퍼런스 유형을 선택합니다.

컨트롤 릭 그래프

우클릭으로 노드를 생성할 수도 있습니다. 원하는 노드를 검색하거나 컨텍스트 메뉴에서 찾을 수 있습니다. 실행 핀이 있는 노드는 편의를 위해 이전 노드의 실행 핀에 자동으로 연결됩니다.

컨트롤 릭 그래프

디테일/프리뷰 씬

디테일 패널에는 컨트롤 릭 에디터에서 선택한 엘리먼트의 정보가 표시됩니다. 여기에는 컨트롤, 본, 그래프 노드 등의 엘리먼트가 포함됩니다.

컨트롤 릭 디테일

프리뷰 씬 세팅(Preview Scene Setting) 패널은 뷰포트 씬을 위한 비주얼 정보를 포함하고 있습니다. 여기서 스켈레탈 메시 프리뷰를 변경하고 라이팅 및 기타 여러 가지 비주얼 세팅을 조정할 수 있습니다.

내 블루프린트

내 블루프린트 패널은 일반 블루프린트의 패널과 유사하며 다양한 함수변수 를 담을 수 있습니다.

이미지 대체 텍스트

함수와 변수를 추가하려면 패널의 왼쪽 상단이나 해당 헤더에서 추가(Add) 버튼을 클릭하면 됩니다.

이미지 대체 텍스트

컨트롤 릭의 변수는 레벨에서 인스턴스에 직접 노출되지 않고 릭 그래프 내에서 로직을 구동하는 용도로 사용됩니다.

기본 FK 컨트롤 릭 생성하기

이 섹션은 단순한 FK(정방향 운동학) 컨트롤 릭을 생성하는 방법을 다룹니다. 이 예시에서는 메인 본 5개가 있는 비교적 간단한 로봇 팔을 사용하겠습니다.

우선 원하는 스켈레탈 메시에 컨트롤 릭 에셋을 생성합니다. 콘텐츠 브라우저에서 에셋을 우클릭하고 컨트롤 릭 생성 을 선택합니다. 생성하고 나면 에셋을 엽니다.

컨트롤 릭 생성

컨트롤 생성하기

이제 첫 컨트롤을 생성합니다. 이게 아마도 루트가 될 것입니다. 릭 계층구조에서 우클릭하고 신규 > 새 컨트롤(New Control) 을 선택합니다. 이렇게 생성된 컨트롤은 씬의 0,0,0 좌표에 배치됩니다. 컨트롤 생성 뒤 이름을 변경하는 것이 좋습니다.

컨트롤 릭 루트 생성

이 예시에서처럼 뷰포트에 컨트롤이 안 보일 수도 있습니다. 기즈모의 모양과 색을 변경하려면 컨트롤을 선택하고 디테일(Details) 패널에서 기즈모(Gizmo) 카테고리로 이동합니다. 이곳의 프로퍼티를 통해 컨트롤의 모양, 크기, 색을 커스터마이징할 수 있습니다.

컨트롤 릭 기즈모 모양 색 크기

이제 나머지 본의 컨트롤을 생성합니다. 이를 효율적으로 하는 한 가지 방법은 원하는 본을 우클릭한 뒤 신규 > 새 컨트롤 을 선택하는 것입니다. 이렇게 하면 선택한 본의 트랜스폼과 동일한 곳에 컨트롤이 생성되므로 보다 쉽게 정렬할 수 있습니다.

컨트롤 릭 fk 컨트롤 생성

부모 설정 및 계층구조

컨트롤 모양과 이름을 조정한 후에는 컨트롤을 스켈레탈 계층구조로부터 부모 해제하고, 본과는 다른 별도의 컨트롤 계층구조를 만들어야 합니다. 이를 위해 컨트롤을 우클릭하고 부모 해제(Unparent) 를 선택합니다. 모든 컨트롤이 부모 해제되면 더는 필요 없는 스페이스(Space) 노드를 삭제합니다.

컨트롤 릭 부모 해제

이제 컨트롤에 계층구조를 재생성할 수 있습니다. 재생성하려면 릭 계층구조 뷰에서 컨트롤을 드래그 앤 드롭하여 타깃 컨트롤을 부모로 설정합니다. 모든 컨트롤에 이 작업을 수행합니다.

릭 로직

릭 계층구조가 준비되면 컨트롤을 바인딩하여 본에 영향을 줄 수 있습니다.

우선 루트 본을 릭 계층구조(Rig Hierarchy) 패널에서 릭 그래프(Rig Graph) 로 드래그한 후, 트랜스폼 설정(Set Transform) 을 선택합니다. 그러면 그 본을 타기팅하는 트랜스폼 설정 노드가 생성됩니다. 그런 다음 해당 컨트롤을 그래프에 드래그 앤 드롭하고 컨트롤 가져오기(Get Control) 를 선택합니다. 마지막으로 트랜스폼 가져오기 - 컨트롤(Get Transform - Control) 노드의 트랜스폼(Transform) 핀을 트랜스폼 설정 - 본(Set Transform - Bone) 노드로 연결합니다.

컨트롤 릭 트랜스폼 설정

컨트롤을 마음껏 조종하면서 본이 어떻게 움직이는지 미리 살펴봅니다. 트랜스폼 설정 노드에서 자손으로 전파(Propagate to Children) 를 활성화하면 변경 사항이 해당 본에서부터 전체 계층구조로 전파되어 내려가는 것을 볼 수 있습니다.

컨트롤 릭 컨트롤 이동

이제 나머지 본과 컨트롤에도 유사한 로직 체인을 생성합니다. 각 컨트롤의 트랜스폼 가져오기 노드를 해당 본의 트랜스폼 설정 노드에 연결합니다.

이미지 대체 텍스트

이를 완료하면 모든 컨트롤이 각 본을 조작할 것입니다. 컴파일 버튼을 사용하면 컨트롤을 초기 트랜스폼으로 빠르게 리셋할 수 있다는 점을 기억하세요.

컨트롤 릭 fk 컨트롤

기본 IK 컨트롤 릭 생성하기

이 섹션은 단순한 IK(역방향 운동학) 컨트롤 릭을 생성하는 방법을 다룹니다. 이 예시에서는 메인 본 5개가 있는 비교적 간단한 로봇 팔을 사용하겠습니다. 또한 본 문서의 앞부분에서 설명한 대로, 루트 컨트롤이 있는 컨트롤 릭 에셋을 이미 생성했다고 가정하겠습니다.

컨트롤 생성하기

가장 먼저 엔드 이펙터 컨트롤 을 생성합니다. 이것은 비교적 간단한 샘플이므로 IK 이펙터 컨트롤만 하나 만들면 됩니다.

원하는 본(손)을 우클릭하고 CTRL+N 을 눌러 선택한 본에 새 컨트롤을 빠르게 생성합니다. 그런 다음 컨트롤을 우클릭하고 부모 해제 를 선택하여 컨트롤로부터 본을 부모 해제합니다. 해당 스페이스 엘리먼트는 불필요하므로 삭제합니다.

컨트롤 생성 단축키

컨트롤의 이름, 색, 크기, 모양을 디테일 패널에서 원하는 대로 설정합니다.

릭 로직

릭 그래프에서 우클릭 후 계층구조(Hierarchy) > CCDIK 로 이동합니다. 이것을 선택하여 이 노드를 생성합니다 CCDIK 노드는 다양한 본과 이펙터를 연결하게 해주는 IK 노드의 한 가지 유형입니다.

컨트롤 릭 ccdik

다음으로 항목 체인(Item Chain) 노드를 생성합니다. 그래프에서 우클릭 후 컬렉션(Collections) > 항목 체인(Item Chain) 을 선택합니다. 항목 체인 노드는 IK 체인에서 시작 본과 끝 본을 정의하는 데 사용됩니다. 정의를 마치고 나면 둘 사이에 있는 나머지 모든 본을 포함해 전체 체인 컬렉션을 형성할 것입니다.

첫 항목(First Item) 카테고리에서 원하는 시작 본에 이름(Name) 을 설정합니다. 마지막 항목 이름(Last Item Name) 도 마찬가지로 설정합니다.

이미지 대체 텍스트

마지막으로 이펙터 컨트롤(Effector Control)릭 계층구조 에서 그래프 로 드래그 앤 드롭한 다음, 컨트롤 가져오기 를 선택합니다. 트랜스폼 가져오기 - 컨트롤 노드의 트랜스폼 핀을 CCDIK 이펙터 트랜스폼(CCDIK Effector Transform) 핀에 연결합니다. 그런 다음 항목 체인컬렉션 핀을 CCDIK 항목(CCDIK Items) 핀에 연결합니다.

컨트롤 릭 ik ccdik 항목 체인

이제 IK 체인이 작동할 것입니다. 뷰포트에서 컨트롤을 움직이며 결과를 봅니다. CCDIK 노드에서 자손으로 전파(Propagate to Children) 부울을 활성화하여 자손 본도 따라오게 만들 수 있습니다.

컨트롤 릭 ik 전파

시퀀서에서 애니메이션 적용하기

컨트롤 릭을 완료한 뒤 시퀀서에서 이를 애니메이션을 적용할 수 있습니다.

이를 쉽게 하는 방법은 컨트롤 릭 에셋을 콘텐츠 브라우저 에서 레벨에 드래그하는 것입니다. 그러면 자동으로 새 시퀀서 에셋이 생성되고 열리므로 애니메이션을 시작할 수 있습니다.

컨트롤 릭 레벨

컨트롤에 키 프레임을 설정하려면 컨트롤을 선택한 상태로 Enter 키를 누르거나(모두 키 지정) S 키(트랜스폼만 키 지정)를 누릅니다.

컨트롤 릭 시퀀서 키프레임

컨트롤은 주요 컨트롤 릭 트랙 아래에 자손 트랙으로 배치됩니다. 모든 컨트롤에 설정된 키 전부를 볼 수도 있고, 트랙을 더 펼쳐서 개별 컨트롤과 거기에 연결된 키 프레임을 함께 볼 수도 있습니다.

컨트롤 릭 시퀀서 트랙

원하는 애니메이션이 나올 때까지 컨트롤의 애니메이션을 계속 조정합니다.

컨트롤 릭 시퀀서 애니메이션