ゲーム エンジンにより、使用するキャラクタ アニメーション データの表現が異なることがあるため、HumanIK には、3D 座標、向き、スケール値のために複数の異なるデータ表現の使用を選択できます。
データを設定および取得する HumanIK 関数は、次の 2 つの主要なカテゴリに分類されます。
これらの手法は基本的に同等です。プロジェクトおよび既存のデータ構造により簡単に適合する手法を使用できます。ただし、HumanIK は個別のトランスレーション、クォータニオン回転、スケール値を使用して値を内部的に格納するので、変換行列としてノードおよびエフェクタ データを受け入れて返す関数は、値を内部的に変換する必要があります。したがって、これらの行列関数は、トランスレーション、向き、スケール値を別個の配列で表す関数よりも効率が落ちます。これによるパフォーマンス上の差は非常に小さいのですが、多くの異なるノードまたはエフェクタに対して同時に値を設定または取得するときには、無視できなくなる可能性があります。
HumanIK の多くの関数(特にエフェクタとノードの座標データを設定および取得するもの)は、異なる種類の引数を受け入れる複数のバリアントで提供されます。ゲーム エンジンの要件に最適なバリアントと、その環境で最適なパフォーマンスを得ることができるバリアントを選択できます。
多くの関数は、次の接尾辞に示すように、浮動小数点数または倍精度数のいずれかを受け入れるさまざまなバージョンで提供されています。