스플라인 리깅

컨트롤 릭에서 스플라인을 활용하여 긴 조인트 체인에서 프로시저럴 애니메이션을 더 쉽게 달성합니다.

스켈레탈 계층구조와 무관하게 다이내믹하고 프로시저럴한 모션을 만들기 위해 컨트롤 릭에서 스플라인을 빌드 및 사용할 수 있습니다. 스플라인을 사용하면 촉수, 척추, 뱀 등 림(limb)에서 더 적은 필수 컨트롤로 더 복잡한 포즈를 생성할 수 있습니다.

이 문서에서는 릭에서 스플라인을 생성 및 사용하는 방법을 살펴봅니다.

전제조건

  • 꼬리 등 스플라인에 적합한 조인트 구조가 있는 스켈레탈 메시에 대해 컨트롤 릭 에셋을 생성한 상태여야 합니다. 자세한 방법은 컨트롤 릭 퀵스타트 페이지를 참조하세요.

  • 컨트롤 생성 및 배치 방법을 숙지하고 있어야 합니다.

스플라인 생성하기

컨트롤 릭에서 스플라인 생성은 스플라인 구성에 사용되는 임의의 이동 포인트를 지정함으로써 이뤄집니다. 일반 설정에서 이러한 포인트는 컨트롤(Controls) 의 트랜스폼 정보를 바탕으로 합니다.

먼저, 릭 그래프에서 우클릭하고 Spline From Points 를 선택하여 Spline From Points 노드를 생성합니다.

spline from points

다음으로, 스플라인에서 포인트를 정의하는 데 사용되는 릭 엘리먼트를 생성합니다. 이 예시에서는 4개의 컨트롤을 생성하여 촉수 길이를 따라 균등하게 분포시켰습니다. 컨트롤 수는 체인에 있는 본 수와 일치하지 않아도 됩니다.

create spline controls

그런 다음, 루트 릭 엘리먼트를 릭 그래프로 레퍼런스하고 Spline From Points 노드의 추가(+) 버튼을 클릭하여 배열에 첫 스플라인 포인트를 추가합니다. 엘리먼트 레퍼런스에서 트랜스폼(Transform) 핀을 펼쳐서 이동(Translation) 핀을 포인트(Points) 핀의 입력에 연결합니다.

control rig spline points

계속해서 스플라인 형성에 사용할 모든 릭 엘리먼트에 대한 스플라인 포인트를 추가합니다. Spline From Points 노드에 연결하는 순서가 스플라인의 방향과 일치해야 합니다.

control rig spline points

컨트롤 릭의 스플라인은 성공적인 스플라인 생성을 위해 최소 4개 포인트를 필요로 합니다.

이제 스플라인을 시각적으로 표시하는 Draw Spline 노드를 사용하여 스플라인을 프리뷰할 수 있습니다. 그래프에서 우클릭하고 Draw Spline 을 선택하여 이 노드를 생성한 다음, Spline From Points스플라인(Spline) 핀을 연결하고 Forwards Solve실행(Execute) 이벤트를 연결합니다. 뷰포트에서 컨트롤을 조작하면 스플라인 행동을 프리뷰할 수 있습니다.

control rig spline preview

본에 스플라인 적용하기

스플라인이 생성되면 조인트 체인에 이를 적용할 수 있습니다.

우선 그래프에서 우클릭하고 Fit Chain on Spline Curve 를 선택하여 Fit Chain on Spline Curve 노드를 생성합니다.

fit chain on spline curve

다음으로, 스플라인에 포함할 본을 릭 계층구조(Rig Hierarchy) 패널에서 다중 선택하고 릭 그래프로 드래그한 후 항목 배열 생성(Create Item Array) 을 선택합니다. 이 작업에서는 선택 순서가 중요한데, 결과 본 배열이 스플라인 포인트의 순서와 일치하도록 해야 하기 때문입니다.

spline bone array

마지막으로, 릭 엘리먼트(Rig Element) 배열을 항목(Items) 핀에 연결하고 Spline From Points 노드에서 스플라인 핀을 연결한 후, 실행 이벤트가 컨트롤 릭 로직 체인에 연결됐는지 확인합니다.

control rig spline bones

이제 스플라인이 본 체인에 영향을 미칠 것입니다.

control rig spline

스플라인 프로퍼티

Spline From Points 노드에서 사용 가능한 프로퍼티는 다음과 같습니다.

spline from points

이름

설명

Points(포인트)

스플라인 구성에 사용될 위치 정보입니다. 이는 배열일 수도 있고, 추가(+) 버튼을 클릭해 개별 이동 핀을 사용하여 빌드할 수도 있습니다.

스플라인 모드(Spline Mode)

사용할 스플라인 타입입니다. 다음 중에서 선택할 수 있습니다.

  • 에르미트(Hermite) 는 스플라인이 정의된 포인트 를 모두 통과하게 합니다.

    hermite spline type

  • BSpline 은 보다 부드러운 스플라인이며 시작점과 끝점만 통과합니다. 이는 TinySpline 라이브러리를 바탕으로 합니다.

    bspline type

세그먼트당 샘플(Samples Per Segment)

이 프로퍼티는 스플라인의 근사치 정확도를 제어합니다. 높게 설정하면 스플라인이 더 정확하고 매끄러워집니다. 낮게 설정하면 스플라인이 더 들쭉날쭉하고 부정확해 보입니다. 샘플 카운트가 높아지면 퍼포먼스 비용도 높아지므로 이 값을 너무 높게 설정하지 않는 것이 좋습니다.

압축(Compression)

스플라인 길이를 줄일 때 스플라인이 압축되는 정도입니다.

스트레치(Stretch)

스플라인 길이를 늘일 때 스플라인이 스트레칭되는 정도입니다.

스플라인(출력)(Spline (Output))

이 노드의 결과 스플라인입니다.

Fit Chain on Spline Curve 노드에서 사용 가능한 프로퍼티는 다음과 같습니다.

fit chain on spline curve

이름

설명

항목(Items)

제공된 스플라인 에 정렬할 릭 엘리먼트 배열입니다.

스플라인(Spline)

정렬할 대상 스플라인 커브입니다.

정렬(Alignment)

정렬된 엘리먼트를 전체 스플라인 길이에 맞춰 스트레칭할지 여부입니다.

  • 스트레치됨(Stretched) 는 최대한으로 스트레칭되게 합니다.

    spline stretched alignment

  • 프런트(Front) 는 스트레치를 비활성화합니다.

    spline front alignment

최소(Minimum)

커브에 사용할 최소 U 값입니다. U 는 모든 결합된 컨트롤 포인트 사이의 정규화된(0~1) 백분율입니다.

최대(Maximum)

커브에 사용할 최대 U 값입니다. U 는 모든 결합된 컨트롤 포인트 사이의 정규화된(0~1) 백분율입니다.

샘플링 정밀도(Sampling Precision)

이 프로퍼티는 스플라인의 근사치 정확도를 제어합니다. 높게 설정하면 스플라인이 더 정확하고 매끄러워집니다. 낮게 설정하면 스플라인이 더 들쭉날쭉하고 부정확해 보입니다. 이 프로퍼티는 Spline From Points 노드의 세그먼트당 샘플 프로퍼티를 덮어씁니다. 샘플 카운트가 높아지면 퍼포먼스 비용도 높아지므로 이 값을 너무 높게 설정하지 않는 것이 좋습니다.

기본 축(Primary Axis)

체인에서 정렬되는 주요 축입니다. 단순한 설정에서는 이 프로퍼티를 무시해도 되지만 일반적으로는 이 값을 항목 체인이 진행하는 방향으로 설정하는 것이 좋습니다.

spline primary axis

보조 축(Secondary Axis)

체인에서 정렬되는 보조 축 또는 '상향' 축입니다. 단순한 설정에서는 이 프로퍼티를 무시해도 되지만 일반적으로는 폴 벡터가 사용되는 경우 이 값을 폴 벡터 방향으로 설정하는 것이 좋습니다.

spline secondary axis

폴 벡터 위치(Pole Vector Position)

선택 사항인 폴 벡터 컨트롤의 위치입니다. 보조 축 이 설정된 경우에만 효과가 있습니다.

회전(Rotations)

스플라인 전반에 추가적으로 적용할 회전 배열입니다.

회전 이즈 타입(Rotation Ease Type)

각 회전 엘리먼트 사이에 사용할 이즈 타입입니다.

가중치(Weight)

커브에 엘리먼트 적용 시 사용되는 인수입니다.

자손으로 전파(Propagate to Children)

릭 엘리먼트의 변경 사항을 모든 자손에 재귀적으로 적용할지 여부입니다.

스플라인 노드

컨트롤 릭 그래프에서 사용할 수 있는 스플라인 노드는 다음과 같습니다.

이름

이미지

설명

Closest Parameter From Spline

closest parameter from spline

주어진 스플라인과 위치에서 가장 가까운 U 값을 가져옵니다.

Draw Spline

draw spline

뷰포트에서 프리뷰 목적으로 스플라인 커브를 표시합니다. 색(Color), 두께(Thickness), 샘플 디테일(Detail) 제어를 위한 프로퍼티를 포함합니다.

Fit Chain on Spline Curve

fit chain on spline curve

주어진 스플라인을 항목 배열을 따라 맞춥니다. 이 노드는 일반적으로 스플라인을 포함하는 역방향 솔브 수행 시 사용됩니다.

Fit Spline Curve on Chain

fit spline curve on chain

릭 엘리먼트 체인을 스플라인에 적용합니다.

Get Length Of Spline

get length of spline

스플라인 길이를 구합니다.

Parameter At Length Percentage

parameter at length percentage

길이 백분율을 고려하여 스플라인의 U 값을 반환합니다.

Position From Spline

position from spline

스플라인을 따라 U 값을 고려한 위치를 반환합니다.

Set Spline Points

set spline points

현재 존재하는 스플라인 포인트를 새 값으로 설정하고 이에 따른 새 스플라인을 출력합니다.

Spline From Points

spline from points

이동 포인트 배열에서 스플라인을 빌드합니다.

스플라인에서 탄젠트(Tangent From Spline)

tangent from spline

U 값에 의해 정의된 스플라인을 따라 포인트의 탄젠트 각도를 반환합니다.

Transform From Spline

transform from spline

주어진 스플라인U 값에서 주어진 상향(Up)롤(Roll) 을 바탕으로 트랜스폼을 반환합니다.

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