RBF는 Radial Basis Function의 약어로, 방사형 기저 함수를 가리킵니다. Pose Editor에서 RBF는 다른 조인트의 회전을 기준으로 조인트의 이동, 회전 및 스케일을 제어합니다.
각 RBF 솔버에는 드라이버 조인트의 회전 값을 기준으로 각 드리븐 조인트가 있어야 할 위치를 나타내는 일련의 포즈가 포함되어 있습니다. 애니메이션 동안 드라이버 조인트가 회전할 때 RBF 솔버는 솔버에 설정된 파라미터에 따라 각 포즈의 퍼센티지를 선택하여 그 사이를 보간하고 이를 각 드리븐 조인트에 적용합니다.
솔버 생성하기
솔버 생성 프로세스는 간단합니다. 대부분의 시간은 화면상의 결과 출력을 완벽하게 편집하는 데 소요됩니다.
새 솔버를 생성하려면 Pose Editor에서 RBF 탭 아래 왼쪽 하단의 Create 버튼을 클릭합니다. 이 포인트에서 선택한 조인트가 있는 경우, 이러한 조인트는 오른쪽의 'RBF Driver Joints' 목록에 추가됩니다.
생성된 새 솔버는 자동으로 편집 모드가 됩니다. 한 번에 하나의 솔버만 편집 모드일 수 있습니다. 현재 편집 중인 솔버는 이름 왼쪽에 연필 아이콘이 표시됩니다.
솔버 편집하기
솔버는 RBF 탭 왼쪽 하단의 Edit Selected 버튼을 눌러 편집할 수 있습니다. 솔버가 이미 편집 모드인 경우, 이 위치에는 Finish Editing 버튼이 대신 표시됩니다.
편집 모드일 때 가장 먼저 할 일은 솔버에 올바른 RBF 드라이버 및 드리븐 조인트 세트가 있는지 확인하는 것입니다. 포즈가 여러 개 있는 경우 이를 편집하기가 더 어려울 수 있기 때문입니다.
드라이버/드리븐 조인트는 Maya 뷰포트에서 조인트를 선택하고 Add Driver/Driven 버튼을 클릭하여 각각 추가할 수 있습니다. 제거할 때도 마찬가지로 목록에서 조인트를 선택한 다음 Remove Driver/Driven을 클릭합니다.
올바른 입력이 설정되었다면 이제 포즈를 편집할 차례입니다. 작업의 대부분은 여기서 이뤄집니다. 포즈 액션에 액세스하려면 'Poses' 탭으로 전환합니다.
목록에서 엘리먼트를 더블클릭하면 Maya 씬의 각기 다른 항목들이 선택됩니다.
| 아이템 | 동작 |
|---|---|
Solver Name | UERBFSolver 노드를 선택합니다. |
Pose Name | 솔버의 모든 드라이버/드리븐 조인트를 해당 포즈로 옮깁니다. |
Driver Joint | 드라이버 조인트를 선택합니다. |
Driven Joint | 드리븐 조인트를 선택합니다. |
일반적인 워크플로는 다음과 같습니다.
드라이버 조인트를 새 포즈의 위치로 회전합니다.
드리븐 조인트를 이동/회전/스케일 조절하여 보정합니다.
포즈를 생성/업데이트합니다.
포즈가 올바르지 않은 경우에는 조인트를 움직이고 포즈를 업데이트합니다.
편집 내용은 Update 버튼을 클릭했을 때만 저장되며, 편집 모드가 비활성화되면 손실됩니다.
RBF 파라미터
Radius
'Radius'는 포즈가 활성화되려면 드라이버 트랜스폼이 타깃 포즈에 얼마나 가까워야 하는지 보여줍니다.
Automatic Radius
'Automatic Radius'를 활성화하면 디폴트 포즈와 각 타깃 포즈 간의 평균 거리가 계산됩니다.
최소 반경 값과 최대 반경 값은 솔버가 자동 반경 값 계산에 무엇을 사용하는지 보여주기 위한 디버그 값입니다. 자동 반경 값은 결과를 보여주는 디버그 어트리뷰트이기도 합니다.
최소 반경은 디폴트 포즈와 가장 가까운 포즈 간의 절대 거리로 계산됩니다. 최대 반경은 가장 가까운 포즈와 가장 먼 포즈 간 절대 거리의 합계입니다.
Normalize Method
드리븐 트랜스폼을 회전하면 솔버가 가중치를 계산하여 포즈의 활성화 정도를 표시합니다. 가중치 값은 0~1 사이입니다. 경우에 따라 모든 포즈의 가중치 전체 합계가 1을 초과할 수도 있고, 1 미만일 수도 있습니다. 이러한 경우에 정규화를 사용하게 됩니다.
1을 초과하는 값은 정규화 선택 여부와 무관하게 항상 정규화됩니다. 항상 정규화하는 것이 권장됩니다. DNA는 정규화를 지원하지 않으며, 이 세팅을 사용하여 솔버를 익스포트하면 오류가 발생합니다.
Weight Threshold
포즈가 활성화되는 데 필요한 정규화된 최소 거리입니다.
Distance Method
| 이름 | 설명 |
|---|---|
Euclidean | 표준 n차원 거리 측정 방식입니다. |
Quaternion | 입력을 쿼터니언으로 취급합니다. |
SwingAngle | 입력을 쿼터니언으로 취급하고, 회전된 TwistAxis 방향 사이 거리를 찾습니다. y + z 축의 회전 값만 사용합니다(트위스트 축으로 설정되지 않은 값). |
TwistAngle | 입력을 쿼터니언으로 취급하고, TwistAxis 방향 주위의 회전 간 거리를 찾습니다. 트위스트 축에 의해 정의된 축의 회전만 사용합니다. |
Function Type
서로 다른 포즈 사이를 보간하는 데 사용되는 커브 타입입니다.
Twist Axis
SwingAngle 또는 TwistAngle 거리 메서드 계산에서 사용되는 축입니다.
Input Mode
DNA에서는 'Rotation'만 지원됩니다. 'Translation'으로 설정하면 익스포트할 때 오류가 발생합니다.
Mirroring
솔버/포즈 미러링에는 단순히 검색/대체를 사용하거나 명명된 그룹을 통해 정규 표현식을 사용하는 두 가지 방법이 있습니다.
아래 표는 정규 표현식을 사용하여 메타휴먼 스켈레톤에서 솔버, 포즈 및 조인트 이름을 올바르게 미러링하는 예시를 보여줍니다.
| 이름 | 검색 | 대체 |
|---|---|---|
솔버 | (?P<prefix>.+)?(?P<side>_l_)(?P<suffix>.+)? | {prefix}_r_{suffix} |
조인트 | (?P<prefix>.+)?(?P<side>_l) | {prefix}_r |
포즈 | (?P<prefix>.+)?(?P<side>_l_)(?P<suffix>.+)? | {prefix}_r_{suffix} |