キャラクタ検証

キャラクタ検証
+ この参照ページは、次の概要トピックと関連付けられています。

モジュール説明

キャラクタ定義とキャラクタ ジオメトリを検証する関数が含まれます。

マクロ

#define HIKNeckBoneCount   9
 
#define HIKRequiredBoneCount   15
 
#define HIKRollBoneCount   8
 
#define HIKSpineBoneCount   9
 

関数

const int * HIKGetNeckBoneList ()
 
const int * HIKGetRequiredBoneList ()
 
const int * HIKGetRollBoneList ()
 
const int * HIKGetSpineBoneList ()
 
bool HIKValidateArmsXAxis (const HIKCharacter *pCharacter, char *pErrorMsg=0, unsigned int pErrorMsgSize=0)
 
bool HIKValidateBonePosition (const HIKCharacter *pCharacter, char *pErrorMsg=0, unsigned int pErrorMsgSize=0)
 
bool HIKValidateGeometry (const HIKCharacter *pCharacter)
 
bool HIKValidateHierarchy (const HIKCharacterDefinition *pCharacterDefinition)
 
bool HIKValidateHipsXAxis (const HIKCharacter *pCharacter, char *pErrorMsg=0, unsigned int pErrorMsgSize=0)
 
bool HIKValidateNeck (const HIKCharacterDefinition *pCharacterDefinition, char *pErrorMsg=0, unsigned int pErrorMsgSize=0)
 
bool HIKValidateRequiredBone (const HIKCharacterDefinition *pCharacterDefinition, char *pErrorMsg=0, unsigned int pErrorMsgSize=0)
 
bool HIKValidateSpine (const HIKCharacterDefinition *pCharacterDefinition, char *pErrorMsg=0, unsigned int pErrorMsgSize=0)
 
bool HIKValidateSpineYAxis (const HIKCharacter *pCharacter, char *pErrorMsg=0, unsigned int pErrorMsgSize=0)
 

マクロ定義のドキュメント

#define HIKNeckBoneCount   9

キャラクタの首で有効なノードの最大数

#define HIKRequiredBoneCount   15

HIKCharacter で必要なノードの数

#define HIKRollBoneCount   8

キャラクタの腕および脚で有効なロール ノードの最大数

#define HIKSpineBoneCount   9

キャラクタの脊椎で有効なノードの最大数

関数のドキュメント

const int* HIKGetNeckBoneList ( )

HIKNodeId 列挙のどのノードが首の一部かを特定する整数のリストを返します。配列の長さは、HIKNeckBoneCount と常に等しくなければなりません。

const int* HIKGetRequiredBoneList ( )

HIKNodeId 列挙のどのノードが必要かを特定する整数のリストを返します。配列の長さは、HIKRequiredBoneCount と常に等しくなければなりません。

const int* HIKGetRollBoneList ( )

HIKNodeId 列挙のどのノードがロール ノードかを特定する整数のリストを返します。配列の長さは、HIKNeckBoneCount と常に等しくなければなりません。

const int* HIKGetSpineBoneList ( )

HIKNodeId 列挙のどのノードが脊椎の一部かを特定する整数のリストを返します。配列の長さは、HIKSpineBoneCount と常に等しくなければなりません。

bool HIKValidateArmsXAxis ( const HIKCharacter pCharacter,
char *  pErrorMsg = 0,
unsigned int  pErrorMsgSize = 0 
)

指定した HIKCharacter の腕が X 軸に沿って配置されていることを確認します。腕の位置合わせが大きく外れている場合、関数は false を返し、問題を示す pErrorMsg を更新します。

パラメータ:
pCharacterテスト対象の HIKCharacter
[out]pErrorMsgキャラクタ ジオメトリで検出されたエラーを示すように更新されます。
[out]pErrorMsgSizepErrorMsg 文字列の文字数を示すように更新されます。
戻り値:
false 腕の位置合わせが X 軸から大きく外れている場合は false。それ以外の場合は true
bool HIKValidateBonePosition ( const HIKCharacter pCharacter,
char *  pErrorMsg = 0,
unsigned int  pErrorMsgSize = 0 
)

3D 空間で同じ位置に設定されている 2 つのノードがないことを確認します。2 つのノードを同じ位置で発見すると、関数は false を返し、問題を示す pErrorMsg を更新します。

パラメータ:
pCharacterテスト対象の HIKCharacter
[out]pErrorMsgキャラクタ ジオメトリで検出されたエラーを示すように更新されます。
[out]pErrorMsgSizepErrorMsg 文字列の文字数を示すように更新されます。
戻り値:
false 同じ位置に 2 つ以上のノードがある場合は false。それ以外の場合は true
bool HIKValidateGeometry ( const HIKCharacter pCharacter)

指定した HIKCharacter の T スタンスが有効かどうかを判定します。この関数は次の内容を検証します。

  • ヒップと腕が X 軸に沿って位置合わせされていること
  • 脊椎が Y 軸に沿って位置合わせされていること
  • 3D 空間で同じ座標に設定されている 2 つのノードがないこと。

    このメソッドで true が返された場合、HIKCharacterizeGeometry() を呼び出して、キャラクタ ジオメトリを確定できる必要があります。

    このメソッドで false が返された場合、検証で検出されたエラーのログを確認してください。

    Verbose ビルドでのみ使用可能です。

    パラメータ:
    pCharacter検証対象の HIKCharacter
bool HIKValidateHierarchy ( const HIKCharacterDefinition pCharacterDefinition)

指定した HIKCharacterDefinition が有効かどうか、つまり必要なノードが欠けていないかを判定します。

このメソッドで true が返された場合、定義から有効な HIKCharacter を作成できる必要があります。

このメソッドで false が返された場合、検証で検出されたエラーのログを確認してください。

Verbose ビルドでのみ使用可能です。

パラメータ:
pCharacterDefinition検証対象の HIKCharacterDefinition
bool HIKValidateHipsXAxis ( const HIKCharacter pCharacter,
char *  pErrorMsg = 0,
unsigned int  pErrorMsgSize = 0 
)

指定した HIKCharacter のヒップが X 軸に沿って配置されていることを確認します。ヒップの位置合わせが大きく外れている場合、関数は false を返し、問題を示す pErrorMsg を更新します。

パラメータ:
pCharacterテスト対象の HIKCharacter
[out]pErrorMsgキャラクタ ジオメトリで検出されたエラーを示すように更新されます。
[out]pErrorMsgSizepErrorMsg 文字列の文字数を示すように更新されます。
戻り値:
false 腕の位置合わせが X 軸から大きく外れている場合は false。それ以外の場合は true
bool HIKValidateNeck ( const HIKCharacterDefinition pCharacterDefinition,
char *  pErrorMsg = 0,
unsigned int  pErrorMsgSize = 0 
)

指定した HIKCharacterDefinition の首に欠けているノードがないことを確認します。たとえば、キャラクタは Neck3NodeId を使用して作成することはできません。ただし、Neck2NodeId および Neck1NodeId がある場合を除きます。首で 1 つ以上のノードが欠けている場合、関数は false を返し、pErrorMsg を更新して、欠けているノードを一覧表示します。

パラメータ:
pCharacterDefinitionテスト対象の HIKCharacterDefinition
[out]pErrorMsg定義で発見されなかった、欠けているすべての首のノードを一覧表示するように更新されます。
[out]pErrorMsgSizepErrorMsg 文字列の文字数を示すように更新されます。
戻り値:
false キャラクタ定義で 1 つ以上の首のノードが欠けている場合は false。それ以外の場合は true
bool HIKValidateRequiredBone ( const HIKCharacterDefinition pCharacterDefinition,
char *  pErrorMsg = 0,
unsigned int  pErrorMsgSize = 0 
)

指定した HIKCharacterDefinition に必要なすべてのノードが含まれていることを確認します。1 つ以上のノードが欠けている場合、関数は false を返し、pErrorMsg を更新して、欠けているノードを一覧表示します。

パラメータ:
pCharacterDefinitionテスト対象の HIKCharacterDefinition
[out]pErrorMsg定義で発見されなかった、欠けているすべてのノードを一覧表示するように更新されます。
[out]pErrorMsgSizepErrorMsg 文字列の文字数を示すように更新されます。
戻り値:
false キャラクタ定義で 1 つ以上の首のノードが欠けている場合は false。それ以外の場合は true
bool HIKValidateSpine ( const HIKCharacterDefinition pCharacterDefinition,
char *  pErrorMsg = 0,
unsigned int  pErrorMsgSize = 0 
)

指定した HIKCharacterDefinition の脊椎に欠けているノードがないことを確認します。たとえば、キャラクタは Spine3NodeId だけを使用して作成することはできません。ただし、Spine2NodeId および Spine1NodeId がある場合を除きます。脊椎で 1 つ以上のノードが欠けている場合、関数は false を返し、pErrorMsg を更新して、欠けているノードを一覧表示します。

パラメータ:
pCharacterDefinitionテスト対象の HIKCharacterDefinition
[out]pErrorMsg定義で発見されなかった、欠けているすべての脊椎のノードを一覧表示するように更新されます。
[out]pErrorMsgSizepErrorMsg 文字列の文字数を示すように更新されます。
戻り値:
false キャラクタ定義で 1 つ以上の首のノードが欠けている場合は false。それ以外の場合は true
bool HIKValidateSpineYAxis ( const HIKCharacter pCharacter,
char *  pErrorMsg = 0,
unsigned int  pErrorMsgSize = 0 
)

指定した HIKCharacter の脊椎が Y 軸に沿って配置されていることを確認します。脊椎の位置合わせが大きく外れている場合、関数は false を返し、問題を示す pErrorMsg を更新します。

パラメータ:
pCharacterテスト対象の HIKCharacter
[out]pErrorMsgキャラクタ ジオメトリで検出されたエラーを示すように更新されます。
[out]pErrorMsgSizepErrorMsg 文字列の文字数を示すように更新されます。
戻り値:
false 脊椎の位置合わせが Y 軸から大きく外れている場合は false。それ以外の場合は true