このセクションでは、キャラクタの制限(Degrees of Freedom)を設定する関数について説明します。
列挙 | |
| 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 に Post Rotation を適用します。表示... | |
| void | HIKSetPostQfv (HIKCharacter *pCharacter, int pNodeId, const float pPostQ[4]) |
pPostQ ノード pNodeId に Post Rotation を適用します。表示... | |
| void | HIKSetPreQdv (HIKCharacter *pCharacter, int pNodeId, const double pPreQ[4]) |
Pre Rotation pPreQ をノード pNodeId に適用します。表示... | |
| void | HIKSetPreQfv (HIKCharacter *pCharacter, int pNodeId, const float pPreQ[4]) |
Pre Rotation 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 のトランスレーション制限を設定します。表示... | |
| enum HIKLimitActiveMask |
ノードで有効にできる制限のタイプを一覧表示します。HIKSetMinXYZRotationfv()、HIKSetMaxXYZRotationfv()、および HIKSetLimitsfv() を参照してください。
| enum HIKRotationOrder |
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 について設定した制限を取得します。
| pCharacter | 取得するキャラクタ |
| pNodeId | 取得するノードの固有の ID。可能な値については、HIKNodeId 列挙を参照してください。 |
| pMin | ジョイントによって各軸の周りに設定可能なラジアンで示した最小回転。この配列に保存される X、Y、および Z 軸の順序は pRotationOrder パラメータに設定された値によって異なります。 |
| pMax | ジョイントによって各軸の周りに設定可能なラジアンで示した最大回転。この配列に保存される X、Y、および Z 軸の順序は pRotationOrder パラメータに設定された値によって異なります。 |
| pPreQ | Pre Rotation オフセットを定義し、ノードの方向が最小または最大制限値内かどうかのテスト前に、HumanIK がこのノードの回転に適用するクォータニオン。 |
| pPostQ | Post Rotation オフセットを定義し、ノードの方向が最小または最大制限値内かどうかをテストした後に、HumanIK がこのノードの回転に適用するクォータニオン。 |
| pActiveMask | 有効化される軸を決定するビット マスク。 参照先: HIKLimitActiveMask 列挙を参照してください。 |
| pRotationOrder | HIKRotationOrder 列挙の要素で、pMin および pMax パラメータ内でリスト化されている X、Y および Z 軸の順序を示します。 |
| 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 | Pre Rotation オフセットを定義し、ノードの方向が最小または最大制限値内かどうかのテスト前に、HumanIK がこのノードの回転に適用するクォータニオン。 |
| pPostQ | Post Rotation オフセットを定義し、ノードの方向が最小または最大制限値内かどうかをテストした後に、HumanIK がこのノードの回転に適用するクォータニオン。 |
| pActiveMask | 有効化される軸を決定するビット マスク。 参照先: HIKLimitActiveMask 列挙を参照してください。 |
| pRotationOrder | HIKRotationOrder 列挙の要素で、pMin および pMax パラメータ内でリスト化されている X、Y および Z 軸の順序を示します。 |
| 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 | Pre Rotation オフセットを定義し、ノードの方向が最小または最大制限値内かどうかのテスト前に、HumanIK がこのノードの回転に適用するクォータニオン。 |
| pPostQ | Post Rotation オフセットを定義し、ノードの方向が最小または最大制限値内かどうかをテストした後に、HumanIK がこのノードの回転に適用するクォータニオン。 |
| pActiveMask | 有効化される軸を決定するビット マスク。このマスクには、HIKLimitActiveMask 列挙の 1 つ以上の要素が含まれる可能性があります。| 演算子(bitwise OR)を使用して複数の値を結合できます。 |
| pRotationOrder | HIKRotationOrder 列挙の要素で、pMin および pMax パラメータ内でリスト化されている X、Y および Z 軸の順序を示します。この回転順序によって、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 | Pre Rotation オフセットを定義し、ノードの方向が最小または最大制限値内かどうかのテスト前に、HumanIK がこのノードの回転に適用するクォータニオン。 |
| pPostQ | Post Rotation オフセットを定義し、ノードの方向が最小または最大制限値内かどうかをテストした後に、HumanIK がこのノードの回転に適用するクォータニオン。 |
| pActiveMask | 有効化される軸を決定するビット マスク。このマスクには、HIKLimitActiveMask 列挙の 1 つ以上の要素が含まれる可能性があります。| 演算子(bitwise OR)を使用して複数の値を結合できます。 |
| pRotationOrder | HIKRotationOrder 列挙の要素で、pMin および pMax パラメータ内でリスト化されている X、Y および Z 軸の順序を示します。この回転順序によって、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 に Post Rotation を適用します。
| pCharacter | 設定するキャラクタ。 |
| pNodeId | Post Rotation を設定するノードの固有の ID。可能な値については、HIKNodeId 列挙を参照してください。 |
| pPostQ | 適用する Post Rotation。これは正規化が必要なクォータニオンです。 |
| void HIKSetPostQfv | ( | HIKCharacter * | pCharacter, |
| int | pNodeId, | ||
| const float | pPostQ[4] | ||
| ) |
pPostQ ノード pNodeId に Post Rotation を適用します。
| pCharacter | 設定するキャラクタ。 |
| pNodeId | Post Rotation を設定するノードの固有の ID。可能な値については、HIKNodeId 列挙を参照してください。 |
| pPostQ | 適用する Post Rotation。これは正規化が必要なクォータニオンです。 |
| void HIKSetPreQdv | ( | HIKCharacter * | pCharacter, |
| int | pNodeId, | ||
| const double | pPreQ[4] | ||
| ) |
Pre Rotation pPreQ をノード pNodeId に適用します。
| pCharacter | 設定するキャラクタ。 |
| pNodeId | Pre Rotation を設定するノードの固有の ID。可能な値については、HIKNodeId 列挙を参照してください。 |
| pPreQ | 適用する Pre Rotation。これは正規化が必要なクォータニオンです。 |
| void HIKSetPreQfv | ( | HIKCharacter * | pCharacter, |
| int | pNodeId, | ||
| const float | pPreQ[4] | ||
| ) |
Pre Rotation pPreQ をノード pNodeId に適用します。
| pCharacter | 設定するキャラクタ。 |
| pNodeId | Pre Rotation を設定するノードの固有の ID。可能な値については、HIKNodeId 列挙を参照してください。 |
| pPreQ | 適用する Pre Rotation。これは正規化が必要なクォータニオンです。 |
| 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 | トランスレーション制限がこのジョイントで有効になっているかどうかを示します。 |