アニメスクリプトのテキスト



アニメシステム



(ディレクトリ)

mgs2/source/user/tanaka/anime/



(ファイル名)

　anime.h　 anime.c



(ツール)

　 animbin

　 これにより、構造体ANIMATIONを読み込み スクリプトの形に展開。

　 場所は mgs2/source/user/tanaka/anime/conv/ の下にあります。

　 make時にこれを 実行するようにします。

　 mgs2/source/user/tanaka/anime/ の下の makefileを参照してください。



/*********************************************************************/





まず、ANIMATIONの構造体は以下のようになっております。



typedef struct	{

	FVECTOR		pos ;				/* 位置 */

	FVECTOR		speed ;				/* スピード */

	short		scr_num ;			/* スクリプト番号 */

	short		s_anim ;			/* パターン番号 */

} PRESCRIPT ;



typedef	struct	{

	int		tex;		        /* テクスチャ番号 */

	short		texdev_x, texdev_y ;	/* テクスチャ分割数 */

	short		n_anime ;               /* アニメパターン数 */

	short		raise ;		        /* 表示優先 */

	short		size_w, size_h ;        /* サイズ */

	short		v ;			/* 輝度値 */

	short           amb ;                   /* 半透明属性(田中) */

	short           mode ;                  /* モード(田中)  */

	PRESCRIPT	*pre_script ;	        /* スクリプト前処理 */

	char		*script ;	        /* スクリプト */

} ANIMATION ;





●ANIMATION



 上から

   ･テクスチャID     

   ･テクスチャの縦と横の分割数  例） smoke  8,4

   ･上で分割したもののうち左上から使用するそのテクスチャ数

         smokeだと8*4 = 32 枚だが、使用しているのは 30 枚

      

   ･表示優先

   ･サイズ

   ･輝度値    （要するに色でこの数値が ｒ、ｇ、ｂに入る )

               つまり、初期カラーはr,g,b すべて同じ値。

   ･半透明属性 

   ･モード     

               ０  常にテクスチャ表示。

               １  主観時  非表示。

   

   ･スクリプト前処理

            ここで、PRESCRIPTを指す。

   ･スクリプト

            ここで、スクリプトを書きます。

            ちなみに anime.c の設定で、

            １つのANIMATIONで設定できるスクリプトのパターン数は 最大 ４つ

   

●PRESCRIPT

  ･位置        テクスチャの中心位置

  ･スピード

  ･スクリプト番号    

             どのスクリプトを使うかを指定。

             0 ～ (スクリプト数 - 1)

  ･パターン番号

             0 ～ （アニメパターン数 － １）



/*****************************************************************************/

(呼び出し)

　　NewAnime(world,where,anmform)

　　FMATRIX　　*world ;

　　int　　　　where ;

　　ANIMATION　*anmform ;



(現在存在するスクリプト)



"A"　 アニメのテクスチャの番号。

　　　　　n　　　 繰り返す。　　　　　　　　　　 An

　　　　　r　　　 ランダム。　　　　　　　　　　 Ar

　　　　　数値　　その場所のテクスチャを張る　　 A1







"W"　 ウエイト（待ち）時間

(未設定)　r　　　　ランダム　　　　　　　　　　　　　　 Wr　　 

　　　　　数値　　 値指定。(最大値 65536 ( 2バイト))　　W1



"P"　 場所指定

(未設定） r　　　　 ランダム　　　　　　　　　　　　　　 Pr

　　　　　ベクトル　値指定（すべての値のMAX 65536）　　　P0,80,-80



"M"　　移動

(未設定)　r　　　　 ランダム　　　　　　　　　　　　　　 Mr

　　　　　ベクトル　値指定（すべての値のMAX 65536）　　　M0,80,-80



"S"　　スピード設定

(未設定)　r　　　　 ランダム　　　　　　　　　　　　　　 Sr

　　　　　ベクトル　値指定（すべての値のMAX 65536)　　　 S0,80,-80



"G"　　　加速度

(未設定)　r　　　　 ランダム　　　　　　　　　　　　　　 Gr

　　　　　ベクトル　値指定（すべての値のMAX 65536)　　　 G0,80,-80





(未設定) "T"　　 半透明属性



"V"　　　色の増減　　　　　　　　　　　　　　 

　　　　　ベクトル　 色の増減値　　　　　　　　　　　　 V0,10,-10



"F"　　　光源設定

　　　　　数値　　　 光源設定(最大値 65536 ( 2バイト))　F1000

　　　　　



"Z"　　　拡大縮小

　　　　　数値(2つ)　大きさの変化量　　　　　　　　　　 Z30,30



"("　　　ループのかっこ

(未設定)　L　　　　　無限ループ

　　　　　数値　　　 値指定　(最大値 65536 ( 2バイト))　 (5



")"　　　ループの終了



"E"　　　終了。

　　　　　E　　　　　スクリプト終了　　　　　　　　　　　EE







参考として (ディレクトリ)内のソースを見てください。



/***********************************************************************/

(備考）

　･ ループの深さは、anime.cのMAX_LOOP 4 で指定しています。

　･ １つのANIMATIONで設定できるスクリプトの動きは MAX_SCRIPT 4  まで

　　設定できます。

　･ プリミティブのタイプは、絶対座標スプライト(DG_PRIM_ON_WORLD|DG_PRIM_SPRT3D2)

　　です。

　･ 現在1パケット１プリミティブです。



(追加)

　田中が追加した部分.



　anime.hのL24 

　　 short　 mode ;



　　 mode　 0　 主観モードでもアニメスクリプトを表示。

　　　　　　1　 主観モードではアニメスクリプトを非表示。



　　 

　anime.c 内の コメントで 田中と表示している個所。

