애니메이팅 시에 상황에 따라 컨트롤의 트랜스폼 스페이스를 변경해야 하는 경우가 있을 수 있습니다. 손이 바디 또는 다른 오브젝트의 일부와 닿거나 함께 움직이는 경우가 그 예시입니다. 릭의 복잡도에 따라서는 컨트롤 내에 프리셋 컨스트레인트 시스템을 생성해야 해결할 수 있는 까다로운 문제입니다.
컨트롤 릭 스페이스 전환(Control Rig Space Switching) 을 사용하면 애니메이션의 필요에 따라 쉽고 다이내믹하게 다른 릭 엘리먼트를 컨트롤의 부모로 재설정할 수 있습니다. 스페이스에는 컨트롤 릭 에셋(Control Rig Asset) 에서 사전 정의할 수도 있고, 시퀀서(Sequencer) 에서 생성할 수도 있는 유연성이 있습니다.
이 문서에서는 시퀀서와 컨트롤 릭 내에서의 스페이스 전환에 대해 간략히 알아봅니다.
전제 조건
컨트롤 릭 에셋 을 생성한 상태여야 합니다. 자세한 방법은 컨트롤 릭 퀵스타트 페이지를 참고하세요.
애니메이팅 중의 스페이스 전환은 애니메이션 모드 패널을 통해 이뤄지므로 애니메이션 모드 를 활성화해야 합니다.
스페이스 전환은 시퀀서 에서의 컨트롤 릭 사용에 크게 의존하므로 시퀀서에 대한 기본 지식이 있어야 합니다.
시퀀서에서의 스페이스 전환
컨트롤 릭 애니메이팅 중의 스페이스 전환은 애니메이션 모드가 활성화되어 있을 때 애니메이션(Animation) 패널을 통해 액세스됩니다. 패널에서 스페이스(Spaces) 를 클릭하여 스페이스 전환 인터페이스를 표시합니다.
커서가 뷰포트(Viewport) 에 있을 때 Tab 을 눌러서 임시 스페이스 메뉴를 열 수도 있습니다.
부모 및 월드 스페이스
컨트롤에 적용되는 주요 디폴트 스페이스 두 가지가 있습니다. 부모(Parent) 스페이스와 월드(World) 스페이스입니다.
일반적인 컨트롤의 경우 디폴트 스페이스는 부모 로 설정되며, 컨트롤 릭 아웃라이너에 정의된 부모 스페이스 내에 컨트롤을 배치합니다. 예를 들어 목 컨트롤을 선택하면 부모 스페이스가 하이라이트되어 이것이 현재 트랜스폼 스페이스임을 나타냅니다. 이를 애님 아웃라이너(Anim Outliner) 의 계층구조와 연결할 수 있습니다.
월드 를 클릭하면 선택한 컨트롤의 트랜스폼 스페이스를 절대 월드 좌표 기준으로 변경합니다. 그러면 컨트롤 릭 계층구조 위치 내에서 선택한 모든 컨트롤의 부모 설정이 다이내믹하게 해제됩니다.
커스텀 스페이스
모든 컨트롤, 본, Null은 트랜스폼 스페이스로도 사용될 수 있습니다. 이를 통해 컨트롤의 부모를 다른 컨트롤에 동적으로 재지정할 수 있어 스페이스 전환이 보다 유연해집니다.
선택한 컨트롤에 대한 커스텀 스페이스를 추가하려면 스페이스 헤더 메뉴 에서 추가(+) 를 클릭한 다음 릭 엘리먼트(rig element) 를 선택합니다. 이렇게 하면 스페이스 목록에 선택 가능한 스페이스로 추가됩니다.
본, 컨트롤, Null을 커스텀 스페이스로 선택할 수도 있지만, 부모 재지정 시의 릭 순환 오류를 피할 수 있도록 컨트롤 을 선택하는 편을 권장합니다.
스페이스 전환 키프레임하기
스페이스의 주요 장점 중 하나는 애니메이션에서 스페이스를 전환할 수 있다는 것입니다. 이는 캐릭터가 손을 접촉 지점에 가져가고 그 지점을 애니메이팅해야 할 때 유용합니다.
다른 스페이스를 선택하면 자동으로 해당 컨트롤에 대한 스페이스 키프레임(space Keyframe) 이 생성되며, 해당 컨트롤의 시각적 위치를 유지하는 보완 트랜스폼 키프레임(Transform Keyframes) 도 생성됩니다. 각 스페이스 키프레임은 해당 스페이스의 기간 동안 트랙에서 고유한 색을 사용합니다.
컨트롤이 스페이스를 전환할 때는 새 부모의 로컬 스페이스를 점유합니다. 이 때문에 그 로컬 스페이스의 좌표가 이전과 달라집니다. 스페이스 전환은 이런 식으로 단일 프레임에서 발생합니다. 커브 에디터에서 키프레임을 표시하여 이를 시각화할 수 있습니다.
플레이헤드를 다른 스페이스 키프레임으로 옮기고 부모 컨트롤을 조작하여 스페이스 전환 기능을 프리뷰할 수 있습니다. 헤드 컨트롤이 부모인 이 예시의 경우, 손에 키프레임을 지정하지 않아도 머리 컨트롤이 손 IK 컨트롤에 영향을 미칩니다.
굽기
스페이스 전환이 있는 애니메이션을 마무리하면 키프레임의 최종 결과를 구울 수 있습니다. 이는 최종 애니메이션을 디폴트 부모 스페이스로 다시 안정화하려는 경우 유용합니다.
선택한 컨트롤을 구우려면 스페이스 메뉴에서 굽기...(Bake...) 를 클릭하여 다음 인터페이스가 있는 굽기 대화 메뉴 를 엽니다.
구울 자리인 트랜스폼 스페이스입니다. 일반적으로 부모 를 선택하여 컨트롤의 원본 스페이스를 복원하는 것이 좋지만, 부모가 아닌 트랜스폼 스페이스를 유지하고 싶다면 다른 스페이스를 선택하거나 추가해도 됩니다.
다음 프로퍼티를 포함하는 굽기 세팅입니다.
이름 |
설명 |
---|---|
시작 프레임(Start Frame) |
굽기 범위를 정의하는 시퀀서의 시작 프레임입니다. |
끝 프레임(End Frame) |
굽기 범위를 정의하는 시퀀서의 끝 프레임입니다. |
키 감소(Reduce Keys) |
활성화하면 굽기 프로세스가 일어난 후 간소화 프로세스가 실행되어 허용치를 바탕으로 중복 키프레임을 제거합니다. |
허용치(Tolerance) |
허용치 값이 높을수록 필터링된 커브가 원본과 더 큰 차이를 보일 수 있으며, 그러면 키 감소 가 활성화된 경우 더 많은 키프레임이 제거됩니다. |
세팅 및 개인설정
시퀀서에서 사용되는 스페이스 키프레임 색을 에디터 개인설정 창에서 변경할 수 있습니다. 이 세팅에 액세스하려면 언리얼 엔진 메뉴에서 편집(Edit) > 에디터 개인설정(Editor Preferences) 을 선택한 다음 커브 에디터 섹션으로 이동하여 다음 프로퍼티를 찾습니다.
세팅 |
설명 |
---|---|
부모 스페이스 커스텀 컬러(Parent Space Custom Color) |
현재 스페이스가 부모 로 설정된 경우 사용할 키프레임 트랙 색입니다. |
월드 스페이스 커스텀 컬러(World Space Custom Color) |
현재 스페이스가 월드 로 설정된 경우 사용할 키프레임 트랙 색입니다. |
컨트롤 스페이스 커스텀 컬러(Control Space Custom Colors) |
커스텀 컨트롤 이름을 추가하고 해당 컨트롤에 사용할 명시적인 키프레임 트랙 색을 설정할 수 있는 커스터마이징 가능한 배열입니다. |
컨트롤 릭 에셋에서의 스페이스 전환
스페이스 전환은 컨트롤 릭 에셋 내에도 사전 빌드될 수 있습니다. 이는 일반 스페이스를 시퀀서에 계속 추가하지 않도록 컨트롤에서 사전에 정의하려 할 때 유용합니다. 컨트롤 어트리뷰트를 통해서도 스페이스 전환을 컨트롤하는 로직을 생성할 수 있습니다.
커스텀 스페이스 사전 정의하기
컨트롤 릭 에셋에서 컨트롤 을 선택하고 디테일 패널로 이동하여 사용 가능한 스페이스(Available Spaces) 프로퍼티를 찾습니다. 이 배열을 통 트랜스폼 스페이스로 사용할 다른 릭 엘리먼트를 사전 정의할 수 있습니다.
추가(+) 버튼을 클릭하여 새 엔트리를 추가하고 드롭다운 메뉴 에서 사용할 타입(Type) 과 엘리먼트(Element) 를 지정합니다. 앞서 설명했듯이 본, 컨트롤, Null을 커스텀 스페이스로 선택할 수도 있지만, 부모 재지정 시의 릭 순환 오류를 피할 수 있도록 컨트롤 을 선택하는 편을 권장합니다.
사용 가능한 스페이스 프로퍼티에서 항목을 지정하면 이 커스텀 공간이 해당 컨트롤에 대해 전환 가능한 스페이스로 목록에 자동 포함됩니다.
다이내믹 계층구조 노드
스페이스 전환 기능은 컨트롤 릭 그래프 내에서도 다이내믹 계층구조 노드를 사용하여 그래프화될 수 있습니다. 컨트롤 릭 그래프 에서 우클릭하고 다이내믹 계층구조(Dynamic Hierarchy) 에서 다음 노드를 찾습니다.
이름 |
이미지 |
설명 |
---|---|---|
Add Parent |
|
릭 엘리먼트에 두 번째 부모를 추가합니다. 새 부모의 가중치는 초기에 0이며, 부모 가중치 설정 을 사용하여 가중치를 설정할 수 있습니다. 이 노드에는 다음 옵션이 포함됩니다.
|
Get Parent Weights |
|
주어진 릭 엘리먼트의 모든 부모의 현재 가중치 배열을 반환합니다. |
Set Parent Weights |
|
주어진 릭 엘리먼트의 부모의 가중치 배열을 설정합니다. 가중치 수는 릭 엘리먼트의 부모 수와 같아야 합니다. |
Switch Parent |
|
릭 엘리먼트를 새 부모로 전환합니다. 이 노드에는 다음 옵션이 포함됩니다.
|
스페이스 전환 프리뷰
스페이스 전환은 다이내믹 계층구조 시스템을 바탕으로 빌드되며, 이는 컨트롤 릭 에셋 내에서 프리뷰 및 디버그할 수 있습니다. 이 예시에서 릭 계층구조(Rig Hierarchy) 패널은 컨트롤 스페이스에서 월드 스페이스 로의 전환을 처리하기 때문에 자동으로 업데이트됩니다.
뷰포트에서 선택한 컨트롤 을 우클릭하고 스페이스 전환(Space Switching) 을 선택하거나 Tab 을 눌러서 다른 스페이스를 일시적으로 테스트할 수도 있습니다.