NNSG3dJntAnmResult

構造体の定義

#include <nnsys/g3d/anm.h>

typedef enum
{
    NNS_G3D_JNTANM_RESULTFLAG_SCALE_ONE      = 0x00000001,
    NNS_G3D_JNTANM_RESULTFLAG_ROT_ZERO       = 0x00000002,
    NNS_G3D_JNTANM_RESULTFLAG_TRANS_ZERO     = 0x00000004,
    NNS_G3D_JNTANM_RESULTFLAG_SCALEEX0_ONE   = 0x00000008,
    NNS_G3D_JNTANM_RESULTFLAG_SCALEEX1_ONE   = 0x00000010,
    NNS_G3D_JNTANM_RESULTFLAG_MAYA_SSC       = 0x00000020
}
NNSG3dJntAnmResultFlag;

typedef struct NNSG3dJntAnmResult_
{
    NNSG3dJntAnmResultFlag flag;
    VecFx32                scale;
    VecFx32                scaleEx0;
    VecFx32                scaleEx1;
    MtxFx33                rot;
    VecFx32                trans;
}
NNSG3dJntAnmResult;

構造体の解説

NNSG3dJntAnmResult構造体は、ジョイントの位置や向きやスケールの情報を保持しています。G3Dはこの構造体に格納された情報を使用してジオメトリエンジンにコマンドを送信をします。この構造体は、NNSi_G3dFuncSbc_NODEDESC関数(SBCのNODEDESCコマンド処理時に呼び出される)の実行時に作成され、使用されます。

ジョイントアニメーションは、この構造体に格納されているデータをNNSi_G3dFuncSbc_NODEDESC関数内部においてアニメーションデータに従い設定することにより実装されています。

また、NNS_G3D_SBC_NODEDESCにコールバックを設定することによって、NNSG3dRS構造体を通じてNNSG3dJntAnmResult構造体にアクセスすることにより、ジョイントの位置や向きやスケールをユーザープログラムからコントロールすることができます。

NNSG3dJntAnmResult構造体のメンバ 説明
flag NNSG3dJntAnmResultFlag型をもつフラグ
scale ジョイントにかかるスケール
scaleEx0 補助スケール値。使用しているCGツールによって値の意味は異なります。通常この値を加工することはありません。
scaleEx1 補助スケール値。使用しているCGツールによって値の意味は異なります。通常この値を加工することはありません。
rot ジョイントの3x3回転行列
trans ジョイントの平行移動成分

NNSG3dJntAnmResultFlagの値 説明
NNS_G3D_JNTANM_RESULTFLAG_SCALE_ONE このフラグがセットされている場合、scaleに格納されている値は無効です。スケール成分は全てFX32_ONEとして扱われます。
NNS_G3D_JNTANM_RESULTFLAG_ROT_ZERO このフラグがセットされている場合、rotに格納されている値は無効です。回転行列は単位行列として扱われます。
NNS_G3D_JNTANM_RESULTFLAG_TRANS_ZERO このフラグがセットされている場合、transに格納されている値は無効です。平行移動成分は全て0として扱われます.
NNS_G3D_JNTANM_RESULTFLAG_SCALEEX0_ONE このフラグがセットされている場合、scaleEx0に格納されている値は無効です。成分は全てFX32_ONEとして扱われます。
NNS_G3D_JNTANM_RESULTFLAG_SCALEEX1_ONE このフラグがセットされている場合、scaleEx1に格納されている値は無効です。成分は全てFX32_ONEとして扱われます。
NNS_G3D_JNTANM_RESULTFLAG_MAYA_SSC このフラグがセットされている場合、このジョイントにはMayaのSegment Scale Compensateがかかっています。

参照

カーネル 描画エンジン

履歴

2004/10/13 初版