HumanIK는 디스크의 파일에 오브젝트를 저장하고 해당 오브젝트를 저장된 파일에서 메모리로 복원하기 위한 함수 세트를 제공합니다. 게임 중 런타임 시 이러한 함수를 호출할 필요는 없겠지만, HumanIK 사용 중에 문제가 발생하는 경우 이러한 파일은 Autodesk지원부에 정보를 제공하는 효율적이고 효과적인 방법이 될 수 있습니다.
HumanIK에 제공된 몇 가지 샘플에서 이러한 함수를 내부적으로 사용합니다. 예를 들어 MayaHIK 샘플을 사용하면 저장된 파일에서 HumanIK 오브젝트를 로드하여 HIKCharacter가 유지한 캐릭터화 포즈 또는 HIKCharacterState에 포함된 포즈를 시각화하는 데 도움이 될 수 있습니다.
오브젝트를 저장하고 로드하기 위한 모든 함수가 hikdump.h 파일에서 인라인으로 구현됩니다. 사용자는 자체 개발 환경에 맞게 파일 및 메모리 관리에 대한 방법을 자유롭게 다시 설계할 수 있습니다.
아래 표에 나열된 함수를 사용하여 다음 오브젝트 유형을 저장하고 로드할 수 있습니다.
| 오브젝트 유형 |
저장 함수 |
로드 함수 |
|---|---|---|
| HIKCharacter | 또한 HIKWriteToStream()도 참조하십시오. |
또한 HIKReadFromStream()도 참조하십시오. |
| HIKCharacterState | ||
| HIKEffectorSetState | ||
| HIKPropertySetState | ||
| 데이터 세트 |
이러한 모든 파일 로딩 함수의 기본 구현은 새 오브젝트에 메모리를 직접 할당하는 malloc 함수를 호출합니다. 이러한 파일 로딩 메서드에서 만든 오브젝트 사용이 완료되면 정리에 설명된 함수를 사용하여 해당 오브젝트를 삭제해야 합니다.
위에 설명한 파일 관리 함수는 필요에 따라 투명하게 데이터 파일의 엔디언(Endianness)을 교환합니다. big-endian 플랫폼의 파일에 오브젝트를 저장하면 Windows 시스템과 같은 little-endian 플랫폼에서 해당 파일을 로드할 수 있습니다. 반대의 경우도 마찬가지입니다.