HumanIK 역운동학 및 대상 변경 솔버에서는 골격의 구성에 의해 부분적으로 정의되는 이동 기능을 기반으로 하여 HIKCharacters의 자세를 계산합니다. Biped 및 네 발 달린 동물에서 캐릭터의 노드는 특정되고 전형적인 방식으로 연결하게 됩니다. 예를 들어 오른쪽 어깨는 오른쪽 팔꿈치의 부모 노드이고 오른쪽 팔꿈치는 오른쪽 손목의 부모 노드가 되는 방식입니다. HumanIK 생체 역학 모델에는 이러한 노드가 이동할 수 있는 방식에 대한 지식이 있습니다. HIKEffectorSetState 또는 소스 애니메이션의 요구 사항을 충족하기 위해 솔버에서 하나 이상의 노드를 이동해야 하는 경우 이 기본 제공 지식을 사용하여 새 포즈를 구성합니다.
그러나 이 프로세스에서 자체 캐릭터 중 하나를 제어하려면 HumanIK에서 이해한 노드 중 하나에 캐릭터의 골격에 있는 각 관절을 매핑해야 합니다. 이러한 각 노드에는 고유한 설명 ID가 있으며, HIKNodeId 열거에 나열되어 있습니다. 다음 섹션에서는 이 열거의 명명 규칙을 이해하고 캐릭터의 관절에 적합한 노드를 선택하는 지침을 제공합니다.
HumanIK에서 제어하는 모든 캐릭터에는 최소한의 특정 노드 세트가 있어야 합니다. 이러한 필수 노드는 빨간색과 별표로 위의 이미지에 표시되어 있습니다.
HumanIK에서는 9개의 추가 척추 노드(Spine1NodeId - Spine9NodeId) 및 최대 10개의 목 노드(NeckNodeId와 Neck1NodeId - Neck9NodeId)를 지원합니다. 이러한 노드의 번호는 아래에서 위로 지정되며 번호가 작을수록 엉덩이에 더 가깝고 클수록 머리에 더 가깝습니다.
척추 또는 목 노드를 정의할 때는 번호를 건너뛸 수 없습니다. 예를 들어 Spine1NodeId 및 Spine2NodeId를 매핑하지 않고는 Spine3NodeId에 골격을 매핑할 수 없습니다.
HumanIK에서는 손과 발이 거의 정확하게 일치합니다. 각 손과 각 발에는 동일한 유형의 관절이 포함되어 있으며 해당 부모 지정 관계만 약간 다릅니다. 각 캐릭터의 손과 발을 개별적으로 정의하여 각 캐릭터 내에서 상당한 복잡성을 허용합니다. 예를 들어 해적 캐릭터에는 발목 아래에 관절이 전혀 없는 나무 의족 하나, 발가락의 기본에 하나의 관절이 있지만 완전히 관절로 접합된 발가락은 없는 장화를 신은 발 하나, 완전히 관절로 접합된 손 하나와 손가락 몇 개가 없는 부상당한 손 하나가 있을 수 있습니다.
HumanIK에서는 각 손과 각 발에 대해 최대 6개의 손가락(엄지, 둘째, 셋째, 넷째 및 새끼손가락이라고 하는 사람 골격의 손가락 5개와 6번째 추가 손가락 또는 발가락)을 캐릭터화할 수 있습니다.
각 손가락과 각 발가락은 여러 개의 HumanIK 노드가 있는 관절 체인입니다. 위의 이미지에서는 모든 손가락과 발가락에 대해 캐릭터화할 수 있는 모든 노드를 보여 줍니다. 위에서는 엄지손가락과 추가 손가락의 노드만 완전히 명명되었지만 나머지 손가락과 발가락의 관절은 동일한 명명 규칙을 따릅니다. 전체 목록은 HIKNodeId 열거를 참조하십시오.
손가락과 발가락을 나타내는 관절 체인은 캐릭터의 나머지 골격에 다음과 같이 연결됩니다.
캐릭터에 대해 손가락과 발가락을 캐릭터화하는 경우 일반적으로 캐릭터의 각 손가락이나 발가락 끝을 노드에 매핑하는 것이 좋습니다. 특히 손가락이나 손가락 관절 수가 다른 캐릭터 간에 애니메이션을 대상 변경하는 경우가 이에 해당합니다. 이는 각 손/발가락에 대한 이펙터가 해당 관절 체인에서 마지막으로 캐릭터화된 노드의 배치를 결정하기 때문입니다. 따라서 마지막으로 캐릭터화된 노드가 손가락 끝에 있으면 이펙터를 사용하여 캐릭터의 손가락 끝 배치를 제어할 수 있습니다. 이펙터 배치을(를) 참조하십시오.
선택적인 손과 발 노드인 LeftHandNodeId, RightHandNodeId, LeftFootNodeId 및 RightFootNodeId는 각각 캐릭터의 손가락과 발가락 기본에서 관절을 제공할 수 있습니다. 이 노드는 각 손가락이나 발가락의 전체 관절이 필요하지는 않지만 손이나 발을 구부리면 사실성이 높아지는 경우에 가장 자주 사용됩니다. 예를 들어 발등을 감싸는 신발을 신은 사람 캐릭터의 경우 발 노드를 사용하면 개별 발가락에 대해 노드를 정의하지 않은 경우에도 다음과 같이 발가락의 기본에서 발을 구부릴 수 있습니다.
HumanIK에서는 위에서 설명한 노드뿐만 아니라 특수 효과를 위해 다음과 같은 노드도 지원합니다.
캐릭터의 골격은 몸체의 왼쪽과 오른쪽에 추가 쇄골을 포함하고 있으며, LeftCollarExtraNodeId 및 RightCollarExtraNodeId 노드로 정의됩니다. 이러한 추가 쇄골을 사용하면 팔을 들어 올릴 때 사람 어깨의 움직임을 시뮬레이션할 수 있습니다.
추가 쇄골 노드(사용하는 경우)는 쇄골 노드와 어깨 노드 사이에 있습니다. 예를 들어 LeftCollarExtraNodeId는 LeftCollarNodeId와 LeftShoulderNodeId 사이에 있고 RightCollarExtraNodeId는 RightCollarNodeId와 RightShoulderNodeId 사이에 있습니다.
기본적으로 HumanIK에서는 쇄골 노드와 추가 쇄골 노드 사이에 균일하게 쇄골 회전을 확산시킵니다. 예를 들어 캐릭터가 왼쪽 팔을 들어 올리는 경우 회전의 절반은 LeftCollarNodeId에 적용되고 나머지 절반은 LeftCollarExtraNodeId에 적용됩니다. 그러나 HIKExtraCollarRatioId 속성의 값을 설정하여 쇄골 노드와 추가 쇄골 노드 간 혼합의 비율을 제어할 수 있습니다. 일반 속성을(를) 참조하십시오.
HumanIK에서는 캐릭터의 어깨, 팔꿈치, 엉덩이 및 무릎에 대한 롤 노드의 사용을 지원합니다. 일반적으로 이러한 각 롤 노드는 연관된 부모와 골격에서 다음 노드 사이 거의 중간에 있습니다. 예를 들어 왼쪽 어깨의 롤 노드는 왼쪽 어깨와 왼쪽 팔꿈치 중간에 있으며 왼쪽 팔꿈치의 롤 노드는 팔꿈치와 손목 중간에 있습니다. HumanIK 솔버에서 연관된 롤 노드가 있는 노드에 롤 회전을 적용할 때마다 해당 롤 회전의 백분율을 롤 노드에 대신 적용할 수 있습니다. 이 프로세스를 롤 추출이라고 합니다.
롤 추출에서는 Biped 및 네 발 달린 동물의 팔과 다리가 실제로 축 주위를 회전하는 방식을 시뮬레이션합니다. 또한 팔 다리를 따라 더 적절한 위치에서 스킨 변형을 제어함으로써 스킨 처리된 캐릭터에 대해 만든 애니메이션의 사실성을 현저하게 향상시킬 수 있습니다.
기본적으로 롤 추출은 롤 노드에 대해 활성화되지 않습니다. 롤 추출을 활성화하려면 각 롤 노드에 대해 캐릭터 속성을 활성화하고 부모 노드 대신 롤 노드에 적용되는 롤 회전의 백분율을 나타내도록 해당 속성의 값을 설정해야 합니다.
자세한 내용은 롤 추출 사용을(를) 참조하십시오.
참조 노드인 ReferenceNodeId는 캐릭터의 전체 변환, 회전 및 배율 조정에 대한 선택적 리포지토리로 사용됩니다. 캐릭터의 엉덩이에 대한 추상적인 부모라고 생각하십시오.
대부분의 경우에는 참조 노드를 사용할 필요가 없습니다. 기본적으로 다음과 같은 경우에 사용됩니다.
엉덩이 변환 노드 HipsTranslationId는 캐릭터의 엉덩이 변환에 대한 독립적 리포지토리로 사용됩니다. 캐릭터에 대해 이 노드를 활성화한 경우 HumanIK 솔버에서 캐릭터의 엉덩이 변환을 오프셋하면 결과 변환은 HipsNodeId 노드가 아닌 엉덩이 변환 노드에 다시 저장됩니다.
기본적으로 엉덩이의 회전은 HipsTranslationId 노드가 활성화된 경우에도 HipsNodeId 노드에 계속 저장됩니다. 그러나 캐릭터에 대한 HIKHipsTranslationModeId 속성의 값을 1로 설정하면 엉덩이의 회전을 HipsTranslationId 노드에 저장하도록 HumanIK를 구성할 수 있습니다. 이런 경우 변환과 회전 모두 HipsNodeId 노드에 적용되지 않습니다.
또한 HipsTranslationId 노드를 사용하여 소스 캐릭터의 궤적을 대상 캐릭터로 대상 변경할 수 있습니다. 자세한 내용은 애니메이션 궤적 대상 변경을(를) 참조하십시오.