njSimpleDrawShapeMotion
シェープ付きモーションの実行。

書 式

#include <Ninja.h>
void	njSimpleDrawShapeMotion( object, motion, frame )
NJS_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)の補完は、最後のフレームと、最初のフレームの補完となります。
頂点アニメーションについても同様です。

用 例


#include  

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

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

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

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


備 考

モーションとシェープ(頂点アニメーション)が付いただけで、描画に関してはモデル描画と全く同様になります。
つまり、njControl3Dの設定はすべて同様になります。
モデル関数ではnjSimpleDrawObjectに対応しますので、光源は平行光源1つとなります。

関 連

njInitShape()
njDrawShapeMotion()
njFastDrawShapeMotion()

njSimpleDrawShapeMotion

Copyright SEGA ENTERPRISES, LTD., 1998