Ninja Library - モーション関数

njMotionTransformEx

現在のモーションパラメータにおいてのカレントノードのマトリックス作成

書式

void njMotionTransformEx( cnkobj )
const NJS_CNK_OBJECT *cnkobj

引数

cnkobj   カレントノードに対応したチャンクオブジェクト構造体へのポインタ

戻り値

なし

解説

予め設定されているモーション情報に従った カレントノードのモーション(移動・回転・スケール)をカレントマトリクスに反映させます。

本関数を実行する前に njStartMotionObj() でモーション情報を設定する必要が有ります。

本関数は njGetMotionNodeData() 関数によって取得したノード情報に基づいて、マトリックス を作成します。

本関数と等価なソースコードが、njGetMotionNodeData() 関数の用例欄に示されています。


用例

void UserDrawMotion( const NJS_CNK_OBJECT *object, const NJS_MOTION *motion, Float frame )
{
    njStartMotionObj( motion, frame );
    
    UserPushPopMotion( object );
}

void UserPushPopMotion( const NJS_CNK_OBJECT *cnkobj )
{
    do {
        njPushMatrixEx();
        
        njMotionTransformEx( cnkobj );
        
        if ( ( cnkobj->model != NULL ) && ( !( cnkobj->evalflags & NJD_EVAL_HIDE ) ) ) {
            njCnkEasyDrawModel( cnkobj->model );
        }
        
        if ( cnkobj->child != NULL ) {
            UserPushPopMotion( ( NJS_CNK_OBJECT* )cnkobj->child );
        }
        
        njPopMatrixEx();
        
        cnkobj = cnkobj->sibling;
    } while ( cnkobj != NULL );
}

備考

本関数はカレントモーション情報構造体に対し動作します。

参照

njMotionLinkTransformEx() 現在のモーションリンクパラメータにおいてのカレントノードのマトリックス作成
njStartMotionObj() 0番スロットへのオブジェクトモーションパラメータの設定
njGetMotionNodeData() 現在のモーションパラメータにおいてのカレントノードの姿勢情報の取得
njSetNextMotionNodeEx() モーションのカレントノードの更新

njMotionTransformEx
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000