Ninjaライブラリ - モーション関数

njCnkEasyDrawShapeMotion

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

書式

void njCnkEasyShapeDrawMotion( *object, *motion, *shape, frame )
NJS_CNK_OBJECT *object
NJS_MOTION *motion
NJS_MOTION *shape
Float frame

引数

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

戻値

なし

解説

モーションをモーションデータに従って描画します。

フレーム番号には、浮動小数点が使えるため、モーションデータの補間ができます。 フレーム数が10のモーションの場合、フレーム番号の範囲は0〜10未満(9.9999)となります。

例えば、フレーム番号を0.5とすると、0フレーム目と1フレーム目のちょうど真ん中の値を補完して描画します。 9〜10未満(9.9999)の補完は、最後のフレームと、最初のフレームの補完となります。

頂点アニメーションの対応している頂点型は下記のとおりです。

頂点NJD_CV,NJD_CV_D8
頂点・法線NJD_CV_VN

(ただし、線形補間のみ)


用例

#include <Shinobi.h>
#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);
	:
njCnkEasyDrawShapeMotion( OBJECT,MOTION,SHAPE,ff );
ff+=0.2f;
if( ff >= (MOTION->nbFrame-1) ) ff=0.f;
	:

備考

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

参照

njCnkEasyDrawMotion()
njCnkEasyDrawObject()

njCnkEasyDrawShapeMotion
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998