캐릭터 설정

모듈 설명

이 섹션에서는 HIKCharacter를 설정하는 데 사용되는 함수를 설명합니다.

모듈

 Limits (Degrees of Freedom)
 이 섹션에서는 캐릭터의 제한(자유 각도)을 설정하는 데 사용되는 함수를 설명합니다.
 
 Quadrupeds
 이 섹션은 네 발 달린 동물 캐릭터에서 사용할 유틸리티 함수를 설명합니다.
 
 Floor Contact
 이 섹션에서는 캐릭터의 바닥 접점을 설정하는 데 사용되는 함수를 설명합니다.
 
 Character Properties
 이 섹션에서는 HIKPropertySetStates 내의 캐릭터 속성의 모드 및 값을 설정하고 검색에 제공된 함수를 설명합니다.
 

열거

enum  HIKMiddleJoint { HIKLeftKnee = 0, HIKRightKnee, HIKLeftElbow, HIKRightElbow }
 HIKInverseJoint() 함수를 사용하여 반전될 수 있는 관절을 나열합니다. 자세한 내용...
 

함수

bool HIKCharacterizeGeometry (HIKCharacter *pCharacter)
 해석하기 위한 캐릭터 pCharacter를 설정하고 초기화합니다. 자세한 내용...
 
void HIKGetCharacterizeNodeStatefv (const HIKCharacter *pCharacter, int pNodeId, float pXForm[16])
 캐릭터가 기본 T 자세로 서 있을 때 노드 pNodeId에 대한 변환 매트릭스를 검색합니다. 자세한 내용...
 
void HIKGetCharacterizeNodeStateTQSdv (const HIKCharacter *pCharacter, int pNodeId, double pT[4], double pQ[4], double pS[4])
 캐릭터가 기본 T 자세로 서 있을 때 노드 pNodeId에 대한 변환, 방향 및 배율을 검색합니다. 자세한 내용...
 
void HIKGetCharacterizeNodeStateTQSfv (const HIKCharacter *pCharacter, int pNodeId, float pT[4], float pQ[4], float pS[4])
 캐릭터가 기본 T 자세로 서 있을 때 노드 pNodeId에 대한 변환, 방향 및 배율을 검색합니다. 자세한 내용...
 
void HIKGetDefaultState (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState)
 캐릭터 pCharacter에 대한 기본 T 자세를 검색하여, HIKCharacterState pCharacterState에 저정합니다. 이 함수는 항상 지정된 캐릭터에 대해 동일한 자세를 반환합니다. 기본 자세는 해석을 수행하기 전이나 후에 달라지지 않습니다. 자세한 내용...
 
int HIKGetNodeUse (const HIKCharacter *pCharacter, int pNodeId)
 pNodeIdHumanIK에서 사용할 캐릭터를 정의합니다. 에서 노드 pCharacter에 대한 캐릭터화 플래그 설정을 검색합니다. 자세한 내용...
 
void HIKGetParentOffsetdv (const HIKCharacter *pCharacter, int pNodeId, double pParentTOffset[4], double pParentQOffset[4], double pParentSOffset[4])
 노드 pNodeId에 대한 부모 오프셋 설정을 검색합니다. 자세한 내용...
 
void HIKGetParentOffsetfv (const HIKCharacter *pCharacter, int pNodeId, float pParentTOffset[4], float pParentQOffset[4], float pParentSOffset[4])
 노드 pNodeId에 대한 부모 오프셋 설정을 검색합니다. 자세한 내용...
 
void HIKGetRelaxPose (const HIKCharacter *pCharacter, HIKCharacterState *pCharacterState)
 캐릭터 pCharacter에 대한 기본 앉은 포즈를 계산하여 HIKCharacterState pCharacterState에 저장합니다. 자세한 내용...
 
void HIKInverseJoint (HIKCharacter *pCharacter, eHIKMiddleJoint pJoint, int pInverse)
 무릎 또는 팔꿈치와 같은 중간 관절이 구부러지는 방향을 되돌립니다. 자세한 내용...
 
int HIKIsJointInverted (const HIKCharacter *pCharacter, eHIKMiddleJoint pJoint)
 중간 관절이 반전되는지 여부를 나타냅니다. 자세한 내용...
 
void HIKSetCharacterizeNodeStatedv (HIKCharacter *pCharacter, int pNodeId, const double pXForm[16])
 캐릭터가 기본 T 자세로 서 있을 때 노드 pNodeId에 대한 변환 매트릭스를 설정합니다. 자세한 내용...
 
void HIKSetCharacterizeNodeStatefv (HIKCharacter *pCharacter, int pNodeId, const float pXForm[16])
 캐릭터가 기본 T 자세로 서 있을 때 노드 pNodeId에 대한 변환 매트릭스를 설정합니다. 자세한 내용...
 
void HIKSetCharacterizeNodeStateTQSdv (HIKCharacter *pCharacter, int pNodeId, const double pT[4], const double pQ[4], const double pS[4])
 캐릭터가 기본 T 자세로 서 있을 때 노드 pNodeId에 대한 변환, 방향 및 배율을 설정합니다. 자세한 내용...
 
void HIKSetCharacterizeNodeStateTQSfv (HIKCharacter *pCharacter, int pNodeId, const float pT[4], const float pQ[4], const float pS[4])
 캐릭터가 기본 T 자세로 서 있을 때 노드 pNodeId에 대한 변환, 방향 및 배율을 설정합니다. 자세한 내용...
 
void HIKSetParentOffsetdv (HIKCharacter *pCharacter, int pNodeId, const double pParentTOffset[4], const double pParentQOffset[4], const double pParentSOffset[4])
 노드 pNodeId에 대한 부모 오프셋을 설정합니다. 자세한 내용...
 
void HIKSetParentOffsetfv (HIKCharacter *pCharacter, int pNodeId, const float pParentTOffset[4], const float pParentQOffset[4], const float pParentSOffset[4])
 노드 pNodeId에 대한 부모 오프셋을 설정합니다. 자세한 내용...
 

열거 유형 설명서

HIKInverseJoint() 함수를 사용하여 반전될 수 있는 관절을 나열합니다.

열거자
HIKLeftKnee 

왼쪽 무릎(HIKNodeId::LeftKneeNodeId)을 나타냅니다.

HIKRightKnee 

오른쪽 무릎(HIKNodeId::RightKneeNodeId)을 나타냅니다.

HIKLeftElbow 

왼쪽 팔꿈치(HIKNodeId::LeftElbowNodeId)를 나타냅니다.

HIKRightElbow 

오른쪽 팔꿈치(HIKNodeId::RightElbowNodeId)를 나타냅니다.

함수 설명서

bool HIKCharacterizeGeometry ( HIKCharacter pCharacter)

해석하기 위한 캐릭터 pCharacter를 설정하고 초기화합니다.

모든 캐릭터의 노드에 대한 HIKSetCharacterizeNodeStatefv()를 호출한 후 이 함수를 호출합니다. 이 함수는 기본 자세를 마무리하고 엔진을 보정합니다.

매개변수
pCharacter설정하고 초기화할 캐릭터
비고
Z축의 양의 방향을 향하고, 왼쪽 손이 X축의 양의 방향을 가리키고 오른쪽 손이 X축의 음의 방향을 가리키는 캐릭터가 T 자세로 서 있어야 합니다. 이미지의 경우개요를 참조하십시오. HumanIK 솔버가 캐릭터를 제어할 수 있도록 캐릭터가 이 포즈로 캐릭터화되어야 합니다.
반환
false 제공된 T 자세에서 오류가 발생한 경우
void HIKGetCharacterizeNodeStatefv ( const HIKCharacter pCharacter,
int  pNodeId,
float  pXForm[16] 
)

캐릭터가 기본 T 자세로 서 있을 때 노드 pNodeId에 대한 변환 매트릭스를 검색합니다.

매개변수
pCharacter쿼리하려는 캐릭터
pNodeId쿼리하려는 노드. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pXForm기본 T 자세에서 이 관절의 변환 매트릭스(전역 공간)
void HIKGetCharacterizeNodeStateTQSdv ( const HIKCharacter pCharacter,
int  pNodeId,
double  pT[4],
double  pQ[4],
double  pS[4] 
)

캐릭터가 기본 T 자세로 서 있을 때 노드 pNodeId에 대한 변환, 방향 및 배율을 검색합니다.

매개변수
pCharacter쿼리하려는 캐릭터
pNodeId쿼리하려는 노드. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pT이 관절에 대한 기본 자세 변환(전역 공간)
pQ쿼터니언으로 표현된 이 관절에 대한 기본 자세 방향(전역 공간)
pS이 관절에 대한 기본 자세 배율(전역 공간)
void HIKGetCharacterizeNodeStateTQSfv ( const HIKCharacter pCharacter,
int  pNodeId,
float  pT[4],
float  pQ[4],
float  pS[4] 
)

캐릭터가 기본 T 자세로 서 있을 때 노드 pNodeId에 대한 변환, 방향 및 배율을 검색합니다.

매개변수
pCharacter쿼리하려는 캐릭터
pNodeId쿼리하려는 노드. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pT이 관절에 대한 기본 자세 변환(전역 공간)
pQ쿼터니언으로 표현된 이 관절에 대한 기본 자세 방향(전역 공간)
pS이 관절에 대한 기본 자세 배율(전역 공간)
void HIKGetDefaultState ( const HIKCharacter pCharacter,
HIKCharacterState pCharacterState 
)

캐릭터 pCharacter에 대한 기본 T 자세를 검색하여, HIKCharacterState pCharacterState에 저정합니다. 이 함수는 항상 지정된 캐릭터에 대해 동일한 자세를 반환합니다. 기본 자세는 해석을 수행하기 전이나 후에 달라지지 않습니다.

매개변수
pCharacter기본 자세를 검색할 캐릭터
[out]pCharacterStateHIKCharacterState - 기본 자세가 포함되어 있습니다.
int HIKGetNodeUse ( const HIKCharacter pCharacter,
int  pNodeId 
)

HIKCharacter pCharacter에서 노드 pNodeId에 대한 캐릭터화 플래그 설정을 검색합니다.

매개변수
pCharacter캐릭터
pNodeId플래그를 검색할 노드 ID. 가능한 값은 HIKNodeId 열거를 참조하십시오.
반환
HIKCharacter pCharacter 내에서 노드 pNodeId의 상태를 나타내는 비트 마스크입니다. . 이 비트 마스크는 HIKNodeFlags 열거에서 플래그로 구성됩니다.
  • 노드를 캐릭터에서 사용하는 경우 HIKNodeUsed 플래그는 true입니다.
  • 노드가 부모 오프셋 사용을 지원하는 경우 HIKNodeParentOffset 플래그도 true이(가) 됩니다.
  • 노드가 제한(자유 각도) 사용을 지원하는 경우 HIKNodeLimits 플래그도 true이(가) 됩니다.
  • 노드가 사용되지 않으면 모든 플래그는 false입니다.
void HIKGetParentOffsetdv ( const HIKCharacter pCharacter,
int  pNodeId,
double  pParentTOffset[4],
double  pParentQOffset[4],
double  pParentSOffset[4] 
)

노드 pNodeId에 대한 부모 오프셋 설정을 검색합니다.

이 함수는 부모 관절이 HumanIK에 대해 알 수 없고 로컬 공간 변환 또는 제한(DoF) 중 하나를 사용 중인 경우에만 필요합니다.

매개변수
pCharacter가져오려는 캐릭터
pNodeId부모 오프셋을 검색하려는 노드. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pParentTOffset부모 노드 변환 오프셋
pParentQOffset쿼터니언으로 표현된 부모 노드 회전 오프셋
pParentSOffset부모 노드 배율 조정 오프셋
void HIKGetParentOffsetfv ( const HIKCharacter pCharacter,
int  pNodeId,
float  pParentTOffset[4],
float  pParentQOffset[4],
float  pParentSOffset[4] 
)

노드 pNodeId에 대한 부모 오프셋 설정을 검색합니다.

이 함수는 부모 관절이 HumanIK에 대해 알 수 없고 로컬 공간 변환 또는 제한(DoF) 중 하나를 사용 중인 경우에만 필요합니다.

매개변수
pCharacter가져오려는 캐릭터
pNodeId부모 오프셋을 검색하려는 노드. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pParentTOffset부모 노드 변환 오프셋
pParentQOffset쿼터니언으로 표현된 부모 노드 회전 오프셋
pParentSOffset부모 노드 배율 조정 오프셋
void HIKGetRelaxPose ( const HIKCharacter pCharacter,
HIKCharacterState pCharacterState 
)

캐릭터 pCharacter에 대한 기본 앉은 포즈를 계산하여 HIKCharacterState pCharacterState에 저장합니다.

매개변수
pCharacter앉은 포즈를 검색할 캐릭터
[out]pCharacterStateHIKCharacterState - 기본 자세가 포함되어 있습니다.
void HIKInverseJoint ( HIKCharacter pCharacter,
eHIKMiddleJoint  pJoint,
int  pInverse 
)

무릎 또는 팔꿈치와 같은 중간 관절이 구부러지는 방향을 되돌립니다.

캐릭터를 프로그래밍 방식으로 캐릭터화하면 이 함수는 HIKCharacterizeGeometry()를 호출하여 캐릭터의 형상을 마무리한 후 호출될 수 있습니다.

매개변수
pCharacter설정하려는 캐릭터.
pJoint반전할 관절. 가능한 값은 HIKMiddleJoint 열거를 참조하십시오.
pInverse관절에 대한 회전 방향을 지정합니다. 0 = 정상 회전, 다른 값 = 역회전
int HIKIsJointInverted ( const HIKCharacter pCharacter,
eHIKMiddleJoint  pJoint 
)

중간 관절이 반전되는지 여부를 나타냅니다.

캐릭터를 프로그래밍 방식으로 캐릭터화하면 이 함수는 HIKCharacterizeGeometry()를 호출하여 캐릭터의 형상을 마무리한 후 호출될 수 있습니다.

매개변수
pCharacter관절 반전을 쿼리하려는 캐릭터
pJoint해당 반전 상태에 대해 쿼리할 관절. 가능한 값은 HIKMiddleJoint 열거를 참조하십시오.
반환
0 = 정상 회전, 다른 값 = 역회전
void HIKSetCharacterizeNodeStatedv ( HIKCharacter pCharacter,
int  pNodeId,
const double  pXForm[16] 
)

캐릭터가 기본 T 자세로 서 있을 때 노드 pNodeId에 대한 변환 매트릭스를 설정합니다.

매개변수
pCharacter설정하려는 캐릭터.
pNodeId설정하려는 노드의 고유 ID. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pXForm이 노드에 대한 기본 자세 매트릭스(전역 공간, 4x4열 주요 매트릭스)
void HIKSetCharacterizeNodeStatefv ( HIKCharacter pCharacter,
int  pNodeId,
const float  pXForm[16] 
)

캐릭터가 기본 T 자세로 서 있을 때 노드 pNodeId에 대한 변환 매트릭스를 설정합니다.

매개변수
pCharacter설정하려는 캐릭터.
pNodeId설정하려는 노드의 고유 ID. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pXForm이 노드에 대한 기본 자세 매트릭스(전역 공간, 4x4열 주요 매트릭스)
void HIKSetCharacterizeNodeStateTQSdv ( HIKCharacter pCharacter,
int  pNodeId,
const double  pT[4],
const double  pQ[4],
const double  pS[4] 
)

캐릭터가 기본 T 자세로 서 있을 때 노드 pNodeId에 대한 변환, 방향 및 배율을 설정합니다.

매개변수
pCharacter설정하려는 캐릭터.
pNodeId설정하려는 노드의 고유 ID. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pT이 관절에 대한 기본 자세 변환(전역 공간)
pQ쿼터니언으로 표현된 이 관절에 대한 기본 자세 방향(전역 공간)
pS이 관절에 대한 기본 자세 배율(전역 공간)
void HIKSetCharacterizeNodeStateTQSfv ( HIKCharacter pCharacter,
int  pNodeId,
const float  pT[4],
const float  pQ[4],
const float  pS[4] 
)

캐릭터가 기본 T 자세로 서 있을 때 노드 pNodeId에 대한 변환, 방향 및 배율을 설정합니다.

매개변수
pCharacter설정하려는 캐릭터.
pNodeId설정하려는 노드의 고유 ID. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pT이 관절에 대한 기본 자세 변환(전역 공간)
pQ쿼터니언으로 표현된 이 관절에 대한 기본 자세 방향(전역 공간)
pS이 관절에 대한 기본 자세 배율(전역 공간)
void HIKSetParentOffsetdv ( HIKCharacter pCharacter,
int  pNodeId,
const double  pParentTOffset[4],
const double  pParentQOffset[4],
const double  pParentSOffset[4] 
)

노드 pNodeId에 대한 부모 오프셋을 설정합니다.

이 함수는 부모 관절이 HumanIK에 대해 알 수 없고 로컬 공간 변환 또는 제한(DoF) 중 하나를 사용 중인 경우에만 필요합니다.

매개변수
pCharacter설정하려는 캐릭터.
pNodeId부모 오프셋을 설정하려는 노드. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pParentTOffset관절 체인에 있는 부모 위의 다음 HumanIK 노드에 상대적인 부모 노드 변환 오프셋
pParentQOffset관절 체인에 있는 부모 위의 다음 HumanIK 노드에 상대적인, 쿼터니언으로 표현된 부모 노드 회전 오프셋. 이 값은 정규화되어야 합니다. 다음과 같이 이 오프셋을 계산할 수 있습니다.
pParentQOffset = inverse(HIKParentGQ) * RealParentGQ
요소 설명:
  • HIKParentGQ - 골격 계층의 알 수 없는 부모 관절 위의 다음 HumanIK 관절의 회전을 포함한, 전역 공간으로 표현된 쿼터니언입니다.
  • RealParentGQ - 알 수 없는 부모 관절의 회전을 포함한, 전역 공간으로 표현된 쿼터니언입니다.
pParentSOffset관절 체인에 있는 부모 위의 다음 HumanIK 노드에 상대적인 부모 노드 배율 조정 오프셋
void HIKSetParentOffsetfv ( HIKCharacter pCharacter,
int  pNodeId,
const float  pParentTOffset[4],
const float  pParentQOffset[4],
const float  pParentSOffset[4] 
)

노드 pNodeId에 대한 부모 오프셋을 설정합니다.

이 함수는 부모 관절이 HumanIK에 대해 알 수 없고 로컬 공간 변환 또는 제한(DoF) 중 하나를 사용 중인 경우에만 필요합니다.

매개변수
pCharacter설정하려는 캐릭터.
pNodeId부모 오프셋을 설정하려는 노드. 가능한 값은 HIKNodeId 열거를 참조하십시오.
pParentTOffset관절 체인에 있는 부모 위의 다음 HumanIK 노드에 상대적인 부모 노드 변환 오프셋
pParentQOffset관절 체인에 있는 부모 위의 다음 HumanIK 노드에 상대적인, 쿼터니언으로 표현된 부모 노드 회전 오프셋. 이 값은 정규화되어야 합니다. 다음과 같이 이 오프셋을 계산할 수 있습니다.
pParentQOffset = inverse(HIKParentGQ) * RealParentGQ
요소 설명:
  • HIKParentGQ - 골격 계층의 알 수 없는 부모 관절 위의 다음 HumanIK 관절의 회전을 포함한, 전역 공간으로 표현된 쿼터니언입니다.
  • RealParentGQ - 알 수 없는 부모 관절의 회전을 포함한, 전역 공간으로 표현된 쿼터니언입니다.
pParentSOffset관절 체인에 있는 부모 위의 다음 HumanIK 노드에 상대적인 부모 노드 배율 조정 오프셋