초기화 단계에서는 포즈를 기록하는 HIKCharacterStates, 특징을 정의하는 HIKPropertySetStates 및 HumanIK 솔버에 목표점 및 IK 제약 조건을 제공하는 HIKEffectorSetStates와 함께 HumanIK에서 사용할 각 캐릭터를 만들고 설정합니다.
역운동학의 초기화: 역운동학 솔버만 사용하려는 경우 이 페이지에 나열된 모든 단계를 한 번 수행하여 캐릭터를 설정합니다.
대상 변경의 초기화: 대상 변경 솔버를 사용하려는 경우 애니메이션이 그려지는 소스 캐릭터와 애니메이션이 적용되는 대상 캐릭터의 두 캐릭터를 설정해야 합니다.
소스 캐릭터와 대상 캐릭터에 대해 한 번씩 1-3단계를 두 번 수행합니다. 그러나 대상 변경 솔버에서는 대상 캐릭터에 대해서만 내부적으로 역운동학 솔버를 시작하므로 HIKEffectorSetState가 하나만 필요합니다. 따라서 4단계는 한 번만 수행해야 합니다.
이 단계의 최종 목표는 게임에 있는 캐릭터의 골격 구조 및 물리적 형상이 정확하게 반영되는 기본 T 자세로 완전히 캐릭터화된 HIKCharacter 오브젝트를 만드는 것입니다.
이 목표를 달성할 수 있는 두 가지 주요 방법은 다음과 같습니다.
자세한 내용은 프로그래밍 방식으로 HIKCharacter 캐릭터화을(를) 참조하십시오.
이 방법을 사용하면 프로그래머가 아닌 조직의 아티스트 및 기술 감독이 캐릭터화를 설정할 수 있는 장점이 있으며 캐릭터화에 의해 생성된 IK 결과에 대한 시각적 피드백을 바로 제공할 수 있습니다.
자세한 내용은 시각적으로 HIKCharacter 캐릭터화을(를) 참조하십시오.
프로젝트 및 디자인 파이프라인에 가장 적합한 방법을 결정하는 여러 가지 방법에 대한 자세한 내용은 하위 항목을 참조하십시오.
캐릭터에 대해 HIKCharacter를 만들었으면 하나 이상의 HIKCharacterState를 만들어야 합니다. 이 HIKCharacterState에는 캐릭터의 각 노드에 대한 변환 및 회전 매트릭스가 포함되어 있으며, HumanIK 솔버의 입력 및 출력으로 모두 사용됩니다.
HIKCharacterState 클래스의 인스턴스를 만들려면 HIKCharacterStateCreate() 함수를 호출합니다. 이 함수에는 다음과 같은 두 인수가 필요합니다.
HIKCharacterState * MyCharState = HIKCharacterStateCreate(MyChar, &malloc);
HIKPropertySetState는 특정 관절이 특정 조건에서 이동하는 방식, 바닥에 접점이 설정되는 방식, 캐릭터의 왼쪽과 오른쪽이 미러링되는지 여부 등 HIKCharacters에 대해 다양한 선택적 특성을 정의합니다.
HIKPropertySetStateCreate() 함수를 호출하고 HIKPropertySetState에 대해 메모리를 할당하기 위해 호출될 콜백 함수에 대한 포인터를 인수로 전달하여 캐릭터에 대한 HIKPropertySetState를 만들어야 합니다. 표준 malloc 함수를 지정하거나 malloc과 유형 정의가 동일한 사용자 정의 메모리 할당 방법을 지정할 수 있습니다. HumanIK 오브젝트 및 메모리 관리을(를) 참조하십시오.
HIKPropertySetState * MyPropertySet = HIKPropertySetStateCreate(&malloc);
HIKPropertySetStates는 HIKCharacter 또는 HIKCharacterDefinition에 따라 직접적으로 달라지지 않습니다. 모든 HIKPropertySetStates에는 동일한 속성이 포함되어 있으며 해당 속성의 값과 모드만 캐릭터에 따라 달라질 수 있습니다. 각 HIKPropertySetState에서 사용할 수 있는 속성에 대한 자세한 내용은 캐릭터 속성을(를) 참조하십시오.
HIKEffectorSetState에는 캐릭터의 각 노드에 대한 대상 점과 각 이펙터에 대한 제약 조건 세트(도달, 당기기 및 저항)가 포함되어 있습니다. HIKEffectorSetState에서는 역운동학 솔버에서 수행해야 하는 해석 단계도 정의합니다(예: 제어할 몸체 부분).
HIKEffectorSetStateCreate() 함수를 호출하고 HIKEffectorSetState에 대해 메모리를 할당하기 위해 호출될 콜백 함수에 대한 포인터를 인수로 전달하여 HIKEffectorSetState를 만들어야 합니다. 표준 malloc 함수를 지정하거나 malloc과 유형 정의가 동일한 사용자 정의 메모리 할당 방법을 지정할 수 있습니다. HumanIK 오브젝트 및 메모리 관리을(를) 참조하십시오.
HIKEffectorSetState * MyEffectorSet = HIKEffectorSetStateCreate(&malloc);
HumanIK 대상 변경 솔버는 역운동학 솔버를 내부적으로 사용하므로 HumanIK만 사용하여 애니메이션을 대상 변경하는 경우에도 HIKEffectorSetState를 만들어야 합니다.