njCnkEasyMultiDrawShapeMotion
シェープ付きモーションの描画。

書 式

#include <Ninja.h>
void  njCnkEasyMultiDrawShapeMotion( object, motion, shape, frame )
NJS_CNK_OBJECT  *object
NJS_MOTION  *motion
NJS_MOTION  *shape
Float    frame


引 数

*object
オブジェクト構造体へのポインタ
*motion
モーションリンク構造体へのポインタ
*shape
モーションリンク構造体へのポインタ(頂点アニメーション)
frame
フレーム番号

返 値

なし

エラー

なし

機 能

モーションをモーションデータに従って描画します。
フレーム番号には、浮動小数点が使えるため、モーションデータの補間ができます。
フレーム数が10のモーションの場合、フレーム番号の範囲は0〜10未満(9.9999)となります。
例えば、フレーム番号を0.5とすると、0フレーム目と1フレーム目のちょうど真ん中の値を、
補完して描画します。
9〜10未満(9.9999)の補完は、最後のフレームと、最初のフレームの補完となります。

頂点アニメーションの対応している頂点型は下記のとおりです。
頂点・法線:NJD_CV_VN
(ただし、線形補間のみ)


用 例


#include  
#include  

#define	OBJECT		object_sample	/* NJA(NAM)ファイル内に記述 */
#define	MOTION		motion_sample	/* NAMファイル内に記述 */
#define	SHAPE		shape_sample	/* NASファイル内に記述 */
extern NJS_CNK_OBJECT	OBJECT[];
extern NJS_MOTION		MOTION[];
extern NJS_MOTION		SHAPE[];
float	buf[10000];
float	ff=0.f;

...........
InitShape(buf);

njInitView( &view );
njSetView( &view );
njCnkSetEasyMultiLight( 1 );
njCnkSetEasyMultiLightVector(0.f, 0.f, -1.f);
njCnkSetEasyMultiAmbient(0.1f, 0.1f, 0.1f);
njCnkSetEasyMultiLightColor(NJD_CNK_EASY_MULTILIGHT_1, 0.6f, 0.5f, 0.3f);
njCnkSetEasyMultiLightMatrices();

...........
njCnkEasyMultiDrawShapeMotion( OBJECT,MOTION,SHAPE,ff );

ff+=0.2f;
if( ff >= (MOTION->nbFrame-1) ) ff=0.f;
...........

備 考

CHUNKオブジェクト構造体用のモーションです。
モーションとシェープ(頂点アニメーション)が付いただけで、描画に関しては
モデル描画と同様になります。


関 連

njCnkEasyMultiDrawMotion
njCnkEasyMultiDrawObject


njCnkEasyMultiDrawShapeMotion

Copyright SEGA ENTERPRISES, LTD., 1998