제한(자유도)

모듈 설명

이 섹션에서는 캐릭터의 제한(자유 각도)을 설정하는 데 사용되는 함수를 설명합니다.

참조
자유 각도.

열거

enum  HIKLimitActiveMask {
  HIKActiveMinX = 1 << 0, HIKActiveMinY = 1 << 1, HIKActiveMinZ = 1 << 2, HIKActiveMaxX = 1 << 3,
  HIKActiveMaxY = 1 << 4, HIKActiveMaxZ = 1 << 5
}
 노드에 대해 활성화할 수 있는 가능한 제한 유형을 나열합니다. HIKSetMinXYZRotationfv(), HIKSetMaxXYZRotationfv()HIKSetLimitsfv()를 참조하십시오. 자세한 내용...
 
enum  HIKRotationOrder {
  HIKOrderEulerXYZ = 0, HIKOrderEulerXYX, HIKOrderEulerXZY, HIKOrderEulerXZX,
  HIKOrderEulerYZX, HIKOrderEulerYZY, HIKOrderEulerYXZ, HIKOrderEulerYXY,
  HIKOrderEulerZXY, HIKOrderEulerZXZ, HIKOrderEulerZYX, HIKOrderEulerZYZ,
  HIKOrderSphericXYZ
}
 HIKSetRotationOrder() 함수에 설정된 값의 가능한 회전 순서를 나열합니다. 자세한 내용...
 

함수

void HIKGetLimitsdv (const HIKCharacter *pCharacter, int pNodeId, double pMin[3], double pMax[3], double pPreQ[4], double pPostQ[4], int &pActiveMask, eHIKRotationOrder &pRotationOrder)
 노드 pNodeId에 대해 설정한 제한을 검색합니다. 자세한 내용...
 
void HIKGetLimitsfv (const HIKCharacter *pCharacter, int pNodeId, float pMin[3], float pMax[3], float pPreQ[4], float pPostQ[4], int &pActiveMask, eHIKRotationOrder &pRotationOrder)
 노드 pNodeId에 대해 설정한 제한을 검색합니다. 자세한 내용...
 
void HIKSetLimitsdv (HIKCharacter *pCharacter, int pNodeId, const double pMin[3], const double pMax[3], const double pPreQ[4], const double pPostQ[4], int pActiveMask, eHIKRotationOrder pRotationOrder)
 노드 pNodeId에 대한 제한을 설정합니다. 자세한 내용...
 
void HIKSetLimitsfv (HIKCharacter *pCharacter, int pNodeId, const float pMin[3], const float pMax[3], const float pPreQ[4], const float pPostQ[4], int pActiveMask, eHIKRotationOrder pRotationOrder)
 노드 pNodeId에 대한 제한을 설정합니다. 자세한 내용...
 
void HIKSetMaxXYZRotationdv (HIKCharacter *pCharacter, int pNodeId, const double pMax[3], int pMaxActiveMask)
 노드 pNodeId에 대한 최대 회전을 설정합니다. 자세한 내용...
 
void HIKSetMaxXYZRotationfv (HIKCharacter *pCharacter, int pNodeId, const float pMax[3], int pMaxActiveMask)
 노드 pNodeId에 대한 최대 회전을 설정합니다. 자세한 내용...
 
void HIKSetMinXYZRotationdv (HIKCharacter *pCharacter, int pNodeId, const double pMin[3], int pMinActiveMask)
 노드 pNodeId에 대한 최소 회전을 설정합니다. 자세한 내용...
 
void HIKSetMinXYZRotationfv (HIKCharacter *pCharacter, int pNodeId, const float pMin[3], int pMinActiveMask)
 노드 pNodeId에 대한 최소 회전을 설정합니다. 자세한 내용...
 
void HIKSetPostQdv (HIKCharacter *pCharacter, int pNodeId, const double pPostQ[4])
 사후 회전 pPostQ를 노드 pNodeId에 적용합니다. 자세한 내용...
 
void HIKSetPostQfv (HIKCharacter *pCharacter, int pNodeId, const float pPostQ[4])
 사후 회전 pPostQ를 노드 pNodeId에 적용합니다. 자세한 내용...
 
void HIKSetPreQdv (HIKCharacter *pCharacter, int pNodeId, const double pPreQ[4])
 사전 회전 pPreQ를 노드 pNodeId에 적용합니다. 자세한 내용...
 
void HIKSetPreQfv (HIKCharacter *pCharacter, int pNodeId, const float pPreQ[4])
 사전 회전 pPreQ를 노드 pNodeId에 적용합니다. 자세한 내용...
 
void HIKSetRotationOrder (HIKCharacter *pCharacter, int pNodeId, eHIKRotationOrder pRotationOrder)
 노드 pNodeId에 대해 설정한 제한에서 축이 지정되는 순서를 설정합니다. 자세한 내용...
 
void HIKSetTranslationLimitsd (HIKCharacter *pCharacter, int pNodeId, double pMin, double pMax, bool pActive)
 노드 pNodeId에 대한 변환 제한을 설정합니다 . 자세한 내용...
 
void HIKSetTranslationLimitsf (HIKCharacter *pCharacter, int pNodeId, float pMin, float pMax, bool pActive)
 노드 pNodeId에 대한 변환 제한을 설정합니다 . 자세한 내용...
 

열거 유형 설명서

노드에 대해 활성화할 수 있는 가능한 제한 유형을 나열합니다. HIKSetMinXYZRotationfv(), HIKSetMaxXYZRotationfv()HIKSetLimitsfv()를 참조하십시오.

열거자
HIKActiveMinX 

X축에서 최소 제한을 활성화합니다.

HIKActiveMinY 

Y축에서 최소 제한을 활성화합니다.

HIKActiveMinZ 

Z축에서 최소 제한을 활성화합니다.

HIKActiveMaxX 

X축에서 최대 제한을 활성화합니다.

HIKActiveMaxY 

Y축에서 최대 제한을 활성화합니다.

HIKActiveMaxZ 

Z축에서 최대 제한을 활성화합니다.

HIKSetRotationOrder() 함수에 설정된 값의 가능한 회전 순서를 나열합니다.

열거자
HIKOrderEulerXYZ 

오일러 x, y, z.

HIKOrderEulerXYX 

오일러 x, y, x.

HIKOrderEulerXZY 

오일러 x, z, y.

HIKOrderEulerXZX 

오일러 x, z, x.

HIKOrderEulerYZX 

오일러 y, z, x.

HIKOrderEulerYZY 

오일러 y, z, y.

HIKOrderEulerYXZ 

오일러 y, x, z.

HIKOrderEulerYXY 

오일러 y, x, y.

HIKOrderEulerZXY 

오일러 z, x, y.

HIKOrderEulerZXZ 

오일러 z, x, z.

HIKOrderEulerZYX 

오일러 z, y, x.

HIKOrderEulerZYZ 

오일러 z, y, z.

HIKOrderSphericXYZ 

구형 x, y, z.

함수 설명서

void HIKGetLimitsdv ( const HIKCharacter pCharacter,
int  pNodeId,
double  pMin[3],
double  pMax[3],
double  pPreQ[4],
double  pPostQ[4],
int &  pActiveMask,
eHIKRotationOrder pRotationOrder 
)

노드 pNodeId에 대해 설정한 제한을 검색합니다.

매개변수
pCharacter쿼리하려는 캐릭터
pNodeId쿼리하려는 노드의 고유 ID. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pMin관절이 각 축 주위에서 얻을 수 있는 라디안 단위의 최소 회전. X, Y 및 Z축이 이 배열에 저장된 순서는 pRotationOrder 매개변수에 대해 설정된 값에 따라 다릅니다.
pMax관절이 각 축 주위에서 얻을 수 있는 라디안 단위의 최대 회전. X, Y 및 Z축이 이 배열에 저장된 순서는 pRotationOrder 매개변수에 대해 설정된 값에 따라 다릅니다.
pPreQ사전 회전 오프셋을 정의하는 쿼터니언. 이를 통해 노드의 방향이 최소 및 최대 제한 내에 있는지 여부를 테스트하기 전에 HumanIK가 이 노드의 회전에 적용됩니다.
pPostQ사후 회전 오프셋을 정의하는 쿼터니언. 이를 통해 노드의 방향이 최소 및 최대 제한 내에 있는지 여부를 테스트한 이후 HumanIK가 이 노드의 회전에 적용됩니다.
pActiveMask활성화될 축을 결정하는 비트 마스크. HIKLimitActiveMask 열거를 참조하십시오.
pRotationOrderX, Y 및 Z 축이 pMinpMax 매개변수에 나열된 순서를 나타내는 HIKRotationOrder 열거의 요소
void HIKGetLimitsfv ( const HIKCharacter pCharacter,
int  pNodeId,
float  pMin[3],
float  pMax[3],
float  pPreQ[4],
float  pPostQ[4],
int &  pActiveMask,
eHIKRotationOrder pRotationOrder 
)

노드 pNodeId에 대해 설정한 제한을 검색합니다.

매개변수
pCharacter쿼리하려는 캐릭터
pNodeId쿼리하려는 노드의 고유 ID. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pMin관절이 각 축 주위에서 얻을 수 있는 라디안 단위의 최소 회전. X, Y 및 Z축이 이 배열에 저장된 순서는 pRotationOrder 매개변수에 대해 설정된 값에 따라 다릅니다.
pMax관절이 각 축 주위에서 얻을 수 있는 라디안 단위의 최대 회전. X, Y 및 Z축이 이 배열에 저장된 순서는 pRotationOrder 매개변수에 대해 설정된 값에 따라 다릅니다.
pPreQ사전 회전 오프셋을 정의하는 쿼터니언. 이를 통해 노드의 방향이 최소 및 최대 제한 내에 있는지 여부를 테스트하기 전에 HumanIK가 이 노드의 회전에 적용됩니다.
pPostQ사후 회전 오프셋을 정의하는 쿼터니언. 이를 통해 노드의 방향이 최소 및 최대 제한 내에 있는지 여부를 테스트한 이후 HumanIK가 이 노드의 회전에 적용됩니다.
pActiveMask활성화될 축을 결정하는 비트 마스크. HIKLimitActiveMask 열거를 참조하십시오.
pRotationOrderX, Y 및 Z 축이 pMinpMax 매개변수에 나열된 순서를 나타내는 HIKRotationOrder 열거의 요소
void HIKSetLimitsdv ( HIKCharacter pCharacter,
int  pNodeId,
const double  pMin[3],
const double  pMax[3],
const double  pPreQ[4],
const double  pPostQ[4],
int  pActiveMask,
eHIKRotationOrder  pRotationOrder 
)

노드 pNodeId에 대한 제한을 설정합니다.

매개변수
pCharacter설정하려는 캐릭터.
pNodeId설정하려는 노드의 고유 ID. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pMin관절이 각 축 주위에서 얻을 수 있는 라디안 단위의 최소 회전을 결정합니다. X, Y 및 Z 축이 이 배열에 나타나야하는 순서는 pRotationOrder 매개변수에 대해 설정된 값에 따라 다릅니다.
pMax관절이 각 축 주위에서 얻을 수 있는 라디안 단위의 최대 회전을 결정합니다. X, Y 및 Z 축이 이 배열에 나타나야하는 순서는 pRotationOrder 매개변수에 대해 설정된 값에 따라 다릅니다.
pPreQ사전 회전 오프셋을 정의하는 쿼터니언. 이를 통해 노드의 방향이 최소 및 최대 제한 내에 있는지 여부를 테스트하기 전에 HumanIK가 이 노드의 회전에 적용됩니다.
pPostQ사후 회전 오프셋을 정의하는 쿼터니언. 이를 통해 노드의 방향이 최소 및 최대 제한 내에 있는지 여부를 테스트한 이후 HumanIK가 이 노드의 회전에 적용됩니다.
pActiveMask활성화될 축을 결정하는 비트 마스크. 이 마스크는 HIKLimitActiveMask 열거에 하나 이상의 요소를 포함할 수 있습니다. | 연산자(bitwise OR)를 사용하여 여러 값을 결합할 수 있습니다.
pRotationOrderX, Y 및 Z 축이 pMinpMax 매개변수에 나열된 순서를 나타내는 HIKRotationOrder 열거의 요소 또한 이 회전 순서는 HumanIK에서 오일러 회전을 계산하는 순서를 결정합니다. 이 순서를 변경하면 짐벌 잠금의 문제를 방지하거나 완화할 수 있습니다.

HumanIK는 항상 이 회전 순서의 처음 축을 노드의 롤 축으로 해석합니다. 이 축은 관절에 연결된 골격에 맞게 정렬되어야 하고 골격이 그 중심 주위에서 돌거나 비틀리는 방법을 제어합니다.
void HIKSetLimitsfv ( HIKCharacter pCharacter,
int  pNodeId,
const float  pMin[3],
const float  pMax[3],
const float  pPreQ[4],
const float  pPostQ[4],
int  pActiveMask,
eHIKRotationOrder  pRotationOrder 
)

노드 pNodeId에 대한 제한을 설정합니다.

매개변수
pCharacter설정하려는 캐릭터.
pNodeId설정하려는 노드의 고유 ID. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pMin관절이 각 축 주위에서 얻을 수 있는 라디안 단위의 최소 회전을 결정합니다. X, Y 및 Z 축이 이 배열에 나타나야하는 순서는 pRotationOrder 매개변수에 대해 설정된 값에 따라 다릅니다.
pMax관절이 각 축 주위에서 얻을 수 있는 라디안 단위의 최대 회전을 결정합니다. X, Y 및 Z 축이 이 배열에 나타나야하는 순서는 pRotationOrder 매개변수에 대해 설정된 값에 따라 다릅니다.
pPreQ사전 회전 오프셋을 정의하는 쿼터니언. 이를 통해 노드의 방향이 최소 및 최대 제한 내에 있는지 여부를 테스트하기 전에 HumanIK가 이 노드의 회전에 적용됩니다.
pPostQ사후 회전 오프셋을 정의하는 쿼터니언. 이를 통해 노드의 방향이 최소 및 최대 제한 내에 있는지 여부를 테스트한 이후 HumanIK가 이 노드의 회전에 적용됩니다.
pActiveMask활성화될 축을 결정하는 비트 마스크. 이 마스크는 HIKLimitActiveMask 열거에 하나 이상의 요소를 포함할 수 있습니다. | 연산자(bitwise OR)를 사용하여 여러 값을 결합할 수 있습니다.
pRotationOrderX, Y 및 Z 축이 pMinpMax 매개변수에 나열된 순서를 나타내는 HIKRotationOrder 열거의 요소 또한 이 회전 순서는 HumanIK에서 오일러 회전을 계산하는 순서를 결정합니다. 이 순서를 변경하면 짐벌 잠금의 문제를 방지하거나 완화할 수 있습니다.

HumanIK는 항상 이 회전 순서의 처음 축을 노드의 롤 축으로 해석합니다. 이 축은 관절에 연결된 골격에 맞게 정렬되어야 하고 골격이 그 중심 주위에서 돌거나 비틀리는 방법을 제어합니다.
void HIKSetMaxXYZRotationdv ( HIKCharacter pCharacter,
int  pNodeId,
const double  pMax[3],
int  pMaxActiveMask 
)

노드 pNodeId에 대한 최대 회전을 설정합니다.

매개변수
pCharacter설정하려는 캐릭터.
pNodeId최대 회전을 설정하려는 노드의 고유 ID. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pMax이 노드에 허용하는 최대 회전. 이는 라디안 단위의 벡터입니다.
pMaxActiveMask활성화될 축을 결정하는 비트 마스크. HIKLimitActiveMask 열거를 참조하십시오. Bitwise "OR" 연산자를 사용하여 여러 값을 결합할 수 있습니다.
void HIKSetMaxXYZRotationfv ( HIKCharacter pCharacter,
int  pNodeId,
const float  pMax[3],
int  pMaxActiveMask 
)

노드 pNodeId에 대한 최대 회전을 설정합니다.

매개변수
pCharacter설정하려는 캐릭터.
pNodeId최대 회전을 설정하려는 노드의 고유 ID. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pMax이 노드에 허용하는 최대 회전. 이는 라디안 단위의 벡터입니다.
pMaxActiveMask활성화될 축을 결정하는 비트 마스크. HIKLimitActiveMask 열거를 참조하십시오. Bitwise "OR" 연산자를 사용하여 여러 값을 결합할 수 있습니다.
void HIKSetMinXYZRotationdv ( HIKCharacter pCharacter,
int  pNodeId,
const double  pMin[3],
int  pMinActiveMask 
)

노드 pNodeId에 대한 최소 회전을 설정합니다.

매개변수
pCharacter설정하려는 캐릭터.
pNodeId최소 회전을 설정하려는 노드의 고유 ID. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pMin이 노드에 허용하는 최소 회전. 이는 라디안 단위의 벡터입니다.
pMinActiveMask활성화될 축을 결정하는 비트 마스크. HIKLimitActiveMask 열거를 참조하십시오. Bitwise "OR" 연산자를 사용하여 여러 값을 결합할 수 있습니다.
void HIKSetMinXYZRotationfv ( HIKCharacter pCharacter,
int  pNodeId,
const float  pMin[3],
int  pMinActiveMask 
)

노드 pNodeId에 대한 최소 회전을 설정합니다.

매개변수
pCharacter설정하려는 캐릭터.
pNodeId최소 회전을 설정하려는 노드의 고유 ID. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pMin이 노드에 허용하는 최소 회전. 이는 라디안 단위의 벡터입니다.
pMinActiveMask활성화될 축을 결정하는 비트 마스크. HIKLimitActiveMask 열거를 참조하십시오. Bitwise "OR" 연산자를 사용하여 여러 값을 결합할 수 있습니다.
void HIKSetPostQdv ( HIKCharacter pCharacter,
int  pNodeId,
const double  pPostQ[4] 
)

사후 회전 pPostQ를 노드 pNodeId에 적용합니다.

매개변수
pCharacter설정하려는 캐릭터.
pNodeId사후 회전을 설정하려는 노드의 고유 ID. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pPostQ적용할 사후 회전. 이는 정규화되어야 하는 쿼터니언입니다.
void HIKSetPostQfv ( HIKCharacter pCharacter,
int  pNodeId,
const float  pPostQ[4] 
)

사후 회전 pPostQ를 노드 pNodeId에 적용합니다.

매개변수
pCharacter설정하려는 캐릭터.
pNodeId사후 회전을 설정하려는 노드의 고유 ID. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pPostQ적용할 사후 회전. 이는 정규화되어야 하는 쿼터니언입니다.
void HIKSetPreQdv ( HIKCharacter pCharacter,
int  pNodeId,
const double  pPreQ[4] 
)

사전 회전 pPreQ를 노드 pNodeId에 적용합니다.

매개변수
pCharacter설정하려는 캐릭터.
pNodeId사전 회전을 설정하려는 노드의 고유 ID. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pPreQ적용할 사전 회전. 이는 정규화되어야 하는 쿼터니언입니다.
void HIKSetPreQfv ( HIKCharacter pCharacter,
int  pNodeId,
const float  pPreQ[4] 
)

사전 회전 pPreQ를 노드 pNodeId에 적용합니다.

매개변수
pCharacter설정하려는 캐릭터.
pNodeId사전 회전을 설정하려는 노드의 고유 ID. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pPreQ적용할 사전 회전. 이는 정규화되어야 하는 쿼터니언입니다.
void HIKSetRotationOrder ( HIKCharacter pCharacter,
int  pNodeId,
eHIKRotationOrder  pRotationOrder 
)

노드 pNodeId에 대해 설정한 제한에서 축이 지정되는 순서를 설정합니다.

매개변수
pCharacter설정하려는 캐릭터.
pNodeId회전 순서를 설정하려는 노드의 고유 ID. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pRotationOrder설정할 회전 순서. 가능한 값은 HIKRotationOrder 열거를 참조하십시오.
void HIKSetTranslationLimitsd ( HIKCharacter pCharacter,
int  pNodeId,
double  pMin,
double  pMax,
bool  pActive 
)

노드 pNodeId에 대한 변환 제한을 설정합니다.

매개변수
pCharacter변환 제한을 설정하려는 캐릭터
pNodeId설정하려는 노드의 고유 ID. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pMin관절이 스쿼시될 수 있는 최소 길이
pMax관절이 늘어날 수 있는 최대 길이.
pActive이 관절에 대해 변환 제한이 활성화되어야 하는지 여부를 나타냅니다.
void HIKSetTranslationLimitsf ( HIKCharacter pCharacter,
int  pNodeId,
float  pMin,
float  pMax,
bool  pActive 
)

노드 pNodeId에 대한 변환 제한을 설정합니다.

매개변수
pCharacter변환 제한을 설정하려는 캐릭터
pNodeId설정하려는 노드의 고유 ID. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pMin관절이 스쿼시될 수 있는 최소 길이
pMax관절이 늘어날 수 있는 최대 길이.
pActive이 관절에 대해 변환 제한이 활성화되어야 하는지 여부를 나타냅니다.