스페이스 전환

컨트롤 릭으로 애니메이팅할 때 컨트롤의 부모를 동적으로 재설정합니다.

애니메이팅 시에 상황에 따라 컨트롤의 트랜스폼 스페이스를 변경해야 하는 경우가 있을 수 있습니다. 손이 바디 또는 다른 오브젝트의 일부와 닿거나 함께 움직이는 경우가 그 예시입니다. 릭의 복잡도에 따라서는 컨트롤 내에 프리셋 컨스트레인트 시스템을 생성해야 해결할 수 있는 까다로운 문제입니다.

컨트롤 릭 스페이스 전환(Control Rig Space Switching) 을 사용하면 애니메이션의 필요에 따라 쉽고 다이내믹하게 다른 릭 엘리먼트를 컨트롤의 부모로 재설정할 수 있습니다. 스페이스에는 컨트롤 릭 에셋(Control Rig Asset) 에서 사전 정의할 수도 있고, 시퀀서(Sequencer) 에서 생성할 수도 있는 유연성이 있습니다.

이 문서에서는 시퀀서와 컨트롤 릭 내에서의 스페이스 전환에 대해 간략히 알아봅니다.

전제 조건

  • 컨트롤 릭 에셋 을 생성한 상태여야 합니다. 자세한 방법은 컨트롤 릭 퀵스타트 페이지를 참고하세요.

  • 애니메이팅 중의 스페이스 전환은 애니메이션 모드 패널을 통해 이뤄지므로 애니메이션 모드 를 활성화해야 합니다.

  • 스페이스 전환은 시퀀서 에서의 컨트롤 릭 사용에 크게 의존하므로 시퀀서에 대한 기본 지식이 있어야 합니다.

시퀀서에서의 스페이스 전환

컨트롤 릭 애니메이팅 중의 스페이스 전환은 애니메이션 모드가 활성화되어 있을 때 애니메이션(Animation) 패널을 통해 액세스됩니다. 패널에서 스페이스(Spaces) 를 클릭하여 스페이스 전환 인터페이스를 표시합니다.

animation spaces

커서가 뷰포트(Viewport) 에 있을 때 Tab 을 눌러서 임시 스페이스 메뉴를 열 수도 있습니다.

tab spaces menu

부모 및 월드 스페이스

컨트롤에 적용되는 주요 디폴트 스페이스 두 가지가 있습니다. 부모(Parent) 스페이스와 월드(World) 스페이스입니다.

일반적인 컨트롤의 경우 디폴트 스페이스는 부모 로 설정되며, 컨트롤 릭 아웃라이너에 정의된 부모 스페이스 내에 컨트롤을 배치합니다. 예를 들어 목 컨트롤을 선택하면 부모 스페이스가 하이라이트되어 이것이 현재 트랜스폼 스페이스임을 나타냅니다. 이를 애님 아웃라이너(Anim Outliner) 의 계층구조와 연결할 수 있습니다.

parent transform space

월드 를 클릭하면 선택한 컨트롤의 트랜스폼 스페이스를 절대 월드 좌표 기준으로 변경합니다. 그러면 컨트롤 릭 계층구조 위치 내에서 선택한 모든 컨트롤의 부모 설정이 다이내믹하게 해제됩니다.

world transform space

커스텀 스페이스

모든 컨트롤, 본, Null은 트랜스폼 스페이스로도 사용될 수 있습니다. 이를 통해 컨트롤의 부모를 다른 컨트롤에 동적으로 재지정할 수 있어 스페이스 전환이 보다 유연해집니다.

custom transform space

선택한 컨트롤에 대한 커스텀 스페이스를 추가하려면 스페이스 헤더 메뉴 에서 추가(+) 를 클릭한 다음 릭 엘리먼트(rig element) 를 선택합니다. 이렇게 하면 스페이스 목록에 선택 가능한 스페이스로 추가됩니다.

add custom space

본, 컨트롤, Null을 커스텀 스페이스로 선택할 수도 있지만, 부모 재지정 시의 릭 순환 오류를 피할 수 있도록 컨트롤 을 선택하는 편을 권장합니다.

스페이스 전환 키프레임하기

스페이스의 주요 장점 중 하나는 애니메이션에서 스페이스를 전환할 수 있다는 것입니다. 이는 캐릭터가 손을 접촉 지점에 가져가고 그 지점을 애니메이팅해야 할 때 유용합니다.

다른 스페이스를 선택하면 자동으로 해당 컨트롤에 대한 스페이스 키프레임(space Keyframe) 이 생성되며, 해당 컨트롤의 시각적 위치를 유지하는 보완 트랜스폼 키프레임(Transform Keyframes) 도 생성됩니다. 각 스페이스 키프레임은 해당 스페이스의 기간 동안 트랙에서 고유한 색을 사용합니다.

keyframe transform space switch

컨트롤이 스페이스를 전환할 때는 새 부모의 로컬 스페이스를 점유합니다. 이 때문에 그 로컬 스페이스의 좌표가 이전과 달라집니다. 스페이스 전환은 이런 식으로 단일 프레임에서 발생합니다. 커브 에디터에서 키프레임을 표시하여 이를 시각화할 수 있습니다.

transform space switch curve editor

플레이헤드를 다른 스페이스 키프레임으로 옮기고 부모 컨트롤을 조작하여 스페이스 전환 기능을 프리뷰할 수 있습니다. 헤드 컨트롤이 부모인 이 예시의 경우, 손에 키프레임을 지정하지 않아도 머리 컨트롤이 손 IK 컨트롤에 영향을 미칩니다.

keyframe transform space switch

굽기

스페이스 전환이 있는 애니메이션을 마무리하면 키프레임의 최종 결과를 구울 수 있습니다. 이는 최종 애니메이션을 디폴트 부모 스페이스로 다시 안정화하려는 경우 유용합니다.

선택한 컨트롤을 구우려면 스페이스 메뉴에서 굽기...(Bake...) 를 클릭하여 다음 인터페이스가 있는 굽기 대화 메뉴 를 엽니다.

bake transform space switch

  1. 구울 자리인 트랜스폼 스페이스입니다. 일반적으로 부모 를 선택하여 컨트롤의 원본 스페이스를 복원하는 것이 좋지만, 부모가 아닌 트랜스폼 스페이스를 유지하고 싶다면 다른 스페이스를 선택하거나 추가해도 됩니다.

  2. 다음 프로퍼티를 포함하는 굽기 세팅입니다.

이름

설명

시작 프레임(Start Frame)

굽기 범위를 정의하는 시퀀서의 시작 프레임입니다.

끝 프레임(End Frame)

굽기 범위를 정의하는 시퀀서의 끝 프레임입니다.

키 감소(Reduce Keys)

활성화하면 굽기 프로세스가 일어난 후 간소화 프로세스가 실행되어 허용치를 바탕으로 중복 키프레임을 제거합니다.

허용치(Tolerance)

허용치 값이 높을수록 필터링된 커브가 원본과 더 큰 차이를 보일 수 있으며, 그러면 키 감소 가 활성화된 경우 더 많은 키프레임이 제거됩니다.

세팅 및 개인설정

시퀀서에서 사용되는 스페이스 키프레임 색을 에디터 개인설정 창에서 변경할 수 있습니다. 이 세팅에 액세스하려면 언리얼 엔진 메뉴에서 편집(Edit) > 에디터 개인설정(Editor Preferences) 을 선택한 다음 커브 에디터 섹션으로 이동하여 다음 프로퍼티를 찾습니다.

space keyframe color setting

세팅

설명

부모 스페이스 커스텀 컬러(Parent Space Custom Color)

현재 스페이스가 부모 로 설정된 경우 사용할 키프레임 트랙 색입니다.

월드 스페이스 커스텀 컬러(World Space Custom Color)

현재 스페이스가 월드 로 설정된 경우 사용할 키프레임 트랙 색입니다.

컨트롤 스페이스 커스텀 컬러(Control Space Custom Colors)

커스텀 컨트롤 이름을 추가하고 해당 컨트롤에 사용할 명시적인 키프레임 트랙 색을 설정할 수 있는 커스터마이징 가능한 배열입니다.

컨트롤 릭 에셋에서의 스페이스 전환

스페이스 전환은 컨트롤 릭 에셋 내에도 사전 빌드될 수 있습니다. 이는 일반 스페이스를 시퀀서에 계속 추가하지 않도록 컨트롤에서 사전에 정의하려 할 때 유용합니다. 컨트롤 어트리뷰트를 통해서도 스페이스 전환을 컨트롤하는 로직을 생성할 수 있습니다.

커스텀 스페이스 사전 정의하기

컨트롤 릭 에셋에서 컨트롤 을 선택하고 디테일 패널로 이동하여 사용 가능한 스페이스(Available Spaces) 프로퍼티를 찾습니다. 이 배열을 통 트랜스폼 스페이스로 사용할 다른 릭 엘리먼트를 사전 정의할 수 있습니다.

available spaces

추가(+) 버튼을 클릭하여 새 엔트리를 추가하고 드롭다운 메뉴 에서 사용할 타입(Type)엘리먼트(Element) 를 지정합니다. 앞서 설명했듯이 본, 컨트롤, Null을 커스텀 스페이스로 선택할 수도 있지만, 부모 재지정 시의 릭 순환 오류를 피할 수 있도록 컨트롤 을 선택하는 편을 권장합니다.

add available spaces

사용 가능한 스페이스 프로퍼티에서 항목을 지정하면 이 커스텀 공간이 해당 컨트롤에 대해 전환 가능한 스페이스로 목록에 자동 포함됩니다.

transform space add

다이내믹 계층구조 노드

스페이스 전환 기능은 컨트롤 릭 그래프 내에서도 다이내믹 계층구조 노드를 사용하여 그래프화될 수 있습니다. 컨트롤 릭 그래프 에서 우클릭하고 다이내믹 계층구조(Dynamic Hierarchy) 에서 다음 노드를 찾습니다.

dynamic hierarchy nodes

이름

이미지

설명

Add Parent

add parent

릭 엘리먼트에 두 번째 부모를 추가합니다. 새 부모의 가중치는 초기에 0이며, 부모 가중치 설정 을 사용하여 가중치를 설정할 수 있습니다. 이 노드에는 다음 옵션이 포함됩니다.

  • 자손(Child) 은 추가 부모를 받을 항목을 정의합니다.

  • 부모(Parent) 는 새 부모를 정의합니다.

Get Parent Weights

get parent weights

주어진 릭 엘리먼트의 모든 부모의 현재 가중치 배열을 반환합니다.

Set Parent Weights

set parent weights

주어진 릭 엘리먼트의 부모의 가중치 배열을 설정합니다. 가중치 수는 릭 엘리먼트의 부모 수와 같아야 합니다.

Switch Parent

switch parent

릭 엘리먼트를 새 부모로 전환합니다. 이 노드에는 다음 옵션이 포함됩니다.

  • 모드(Mode) 는 자손을 새 부모 , 월드 스페이스(World Space) , 또는 다시 디폴트 스페이스(Default Space) 중 하나로 전환하도록 지정할 수 있습니다.

  • 자손 은 스페이스를 전환할 항목을 정의합니다.

  • 부모 는 모드가 부모 항목(Parent Item) 으로 설정된 경우, 전환할 새 부모 엘리먼트를 정의합니다. 그러지 않고 이 핀을 링크되지 않은 채로 둬도 됩니다.

  • 글로벌 유지(Maintain Global) 는 전환 시 로컬 스페이스와 글로벌 스페이스 중 어느 쪽을 유지할지 정의하는 데 사용됩니다.

스페이스 전환 프리뷰

스페이스 전환은 다이내믹 계층구조 시스템을 바탕으로 빌드되며, 이는 컨트롤 릭 에셋 내에서 프리뷰 및 디버그할 수 있습니다. 이 예시에서 릭 계층구조(Rig Hierarchy) 패널은 컨트롤 스페이스에서 월드 스페이스 로의 전환을 처리하기 때문에 자동으로 업데이트됩니다.

dynamic hierarchy

뷰포트에서 선택한 컨트롤 을 우클릭하고 스페이스 전환(Space Switching) 을 선택하거나 Tab 을 눌러서 다른 스페이스를 일시적으로 테스트할 수도 있습니다.

test space switching

언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
취소