; ; HSP help manager用 HELPソースファイル ; (先頭が「;」の行はコメントとして処理されます) ; %type 拡張命令 %ver 2.61 %note hgimg.as(DirectX使用時はhgimgx.as)をインクルードすること。 %date 2004/03/01 %author onitama %dll hgimg %url http://www.onionsoft.net/ %index fvseti 整数値からベクトル設定 %group 拡張画面制御命令 %prm fv,x,y,z fv = FV値が代入される変数名 (x,y,z) = int値(整数値) %inst (x,y,z)で指定された整数値をベクトルとしてFV値に代入する。 %href fvset fvadd fvsub fvmul fvdiv fvdir fvmin fvmax fvouter fvinner fvface fvunit %index fvset ベクトル設定 %group 拡張画面制御命令 %prm fv,x,y,z fv = FV値が代入される変数名 (x,y,z) = 計算値(float値) %inst (x,y,z)で指定された小数値(X,Y,Z)をベクトルとしてFV値に代入する。 %href fvseti fvadd fvsub fvmul fvdiv fvdir fvmin fvmax fvouter fvinner fvface fvunit %index fvadd ベクトル加算 %group 拡張画面制御命令 %prm fv,x,y,z fv = FV値が代入されている変数名 (x,y,z) = 計算値(float値) %inst (x,y,z)で指定された小数値(X,Y,Z)をFV値に加算する。 %href fvseti fvset fvsub fvmul fvdiv fvmin fvmax %index fvsub ベクトル減算 %group 拡張画面制御命令 %prm fv,x,y,z fv = FV値が代入されている変数名 (x,y,z) = 計算値(float値) %inst (x,y,z)で指定された小数値(X,Y,Z)をFV値から減算する。 %href fvseti fvset fvadd fvmul fvdiv fvmin fvmax %index fvmul ベクトル乗算 %group 拡張画面制御命令 %prm fv,x,y,z fv = FV値が代入されている変数名 (x,y,z) = 計算値(float値) %inst (x,y,z)で指定された小数値(X,Y,Z)をFV値に並列で乗算する。 %href fvseti fvset fvadd fvsub fvdiv fvmin fvmax %index fvdiv ベクトル除算 %group 拡張画面制御命令 %prm fv,x,y,z fv = FV値が代入されている変数名 (x,y,z) = 計算値(float値) %inst (x,y,z)で指定された小数値(X,Y,Z)をFV値に並列で除算する。 %href fvseti fvset fvadd fvsub fvmul fvmin fvmax %index fvdir ベクトル回転 %group 拡張画面制御命令 %prm fv,x,y,z fv = FV値が代入されている変数名 (x,y,z) = 回転角度(float値) %inst fvで指定された変数に格納されているFV値をX,Y,Z角度として、 小数値(X,Y,Z)で指定されたベクトルを回転させた結果を、変数fvに代入します。 %href fvset fvdir fvface %index fvface 座標から角度を得る %group 拡張画面制御命令 %prm fv,x,y,z fv = FV値が代入されている変数名 (x,y,z) = X,Y,Z座標値(float値) %inst fvで指定された変数に格納されているベクトル(FV値)を基点とするX,Y,Z座標から、 指定されたX,Y,Z座標を直線で見るためのX,Y,Z回転角度を求めて変数fvに代入します。 %href fvset fvdir %index fvmin ベクトル最小値 %group 拡張画面制御命令 %prm fv,x,y,z fv = FV値が代入されている変数名 (x,y,z) = 比較値(float値) %inst fvで指定された変数に格納されているFV値と、 小数値(X,Y,Z)を比較して、値の大きいものを代入します。 FV値の各要素を最小値までに切り詰める場合に使用します。 %href fvseti fvset fvadd fvsub fvmul fvdiv fvmax %index fvmax ベクトル最大値 %group 拡張画面制御命令 %prm fv,x,y,z fv = FV値が代入されている変数名 (x,y,z) = 比較値(float値) %inst fvで指定された変数に格納されているFV値と、 小数値(X,Y,Z)を比較して、値の小さいものを代入します。 FV値の各要素を最大値までに切り詰める場合に使用します。 %href fvseti fvset fvadd fvsub fvmul fvdiv fvmin %index fvouter ベクトル外積 %group 拡張画面制御命令 %prm fv,x,y,z fv = FV値が代入されている変数名 (x,y,z) = 演算するベクトル値(float値) %inst fvで指定された変数に格納されているFV値と、 小数値(X,Y,Z)で指定するベクトルの外積を求めて代入します。 %href fvseti fvset fvinner %index fvinner ベクトル内積 %group 拡張画面制御命令 %prm fv,x,y,z fv = FV値が代入されている変数名 (x,y,z) = 演算するベクトル値(float値) %inst fvで指定された変数に格納されているFV値と、 小数値(X,Y,Z)で指定するベクトルの内積を求めてfv.0に代入します。 %href fvseti fvset fvouter %index fvunit ベクトル正規化 %group 拡張画面制御命令 %prm fv fv = FV値が代入されている変数名 %inst fvで指定された変数に格納されているベクトル(FV値)を正規化します。 %href fvseti fvset %index fsin サインを求める %group 拡張画面制御命令 %prm fval,frot fval = float値が代入される変数名 frot = 回転角度(float) %inst frotで指定された角度のサイン値をfvalで指定した変数に代入します。 角度の単位はラジアン(2π=360度)になります。 %href fcos fsqr froti %index fcos コサインを求める %group 拡張画面制御命令 %prm fval,frot fval = float値が代入される変数名 frot = 回転角度(float) %inst frotで指定された角度のコサイン値をfvalで指定した変数に代入します。 角度の単位はラジアン(2π=360度)になります。 %href fsin fsqr froti %index fsqr 平方根を求める %group 拡張画面制御命令 %prm fval,fprm fval = float値が代入される変数名 fprm = 演算に使われる値(float) %inst fprmで指定された値の平方根をfvalで指定した変数に代入します。 %href fsin fcos froti %index froti 整数値角度を小数値に変換 %group 拡張画面制御命令 %prm fval,rot fval = float値が代入される変数名 rot = 0〜1023の角度値(int) %inst prmで指定された整数値(0〜1023)を角度を示すものとして、 fvalに-π〜+πのラジアン角度値に変換して代入します。 %href fsin fcos fsqr %index fadd 小数値加算 %group 拡張画面制御命令 %prm fval,fprm fval = float値が代入される変数名 fprm = 演算に使われる値(float) %inst fvalで指定した変数に代入されている小数値に対して、 fprmで指定された値を加算します。 %href fsub fmul fdiv fcmp %index fsub 小数値減算 %group 拡張画面制御命令 %prm fval,fprm fval = float値が代入される変数名 fprm = 演算に使われる値(float) %inst fvalで指定した変数に代入されている小数値に対して、 fprmで指定された値を減算します。 %href fadd fmul fdiv fcmp %index fmul 小数値乗算 %group 拡張画面制御命令 %prm fval,fprm fval = float値が代入される変数名 fprm = 演算に使われる値(float) %inst fvalで指定した変数に代入されている小数値に対して、 fprmで指定された値を乗算します。 %href fadd fsub fdiv fcmp %index fdiv 小数値除算 %group 拡張画面制御命令 %prm fval,fprm fval = float値が代入される変数名 fprm = 演算に使われる値(float) %inst fvalで指定した変数に代入されている小数値に対して、 fprmで指定された値を除算します。 %href fadd fsub fmul fcmp %index fcmp 小数値比較 %group 拡張画面制御命令 %prm fval,fprm1,fprm2 val = 結果が代入される変数 fprm1 = 比較値1(float) fprm2 = 比較値2(float) %inst 比較値1と比較値2を比較した結果をvalで指定した変数に代入します。 代入される値は通常の整数になります。 ^p 条件 | 結果 --------------------------------------- 比較値1 = 比較値2 | 0 比較値1 > 比較値2 | 1 比較値1 < 比較値2 | -1 ^p %href fadd fsub fmul fdiv %index str2fv 文字列をベクトルに変換 %group 拡張画面制御命令 %prm fv,"x,y,z" fv = FV値が代入される変数名 "x,y,z" = 「,」で区切られたfloat値が格納された文字列 %inst "x,y,z"で指定された文字列情報を「,」で区切られたX,Y,Z小数値として読み出し、 fvで指定された変数に格納します。 %href fv2str str2f f2str f2i %index fv2str ベクトルを文字列に変換 %group 拡張画面制御命令 %prm fv fv = FV値が代入されている変数名 %inst fvで指定された変数に格納されているベクトル(FV値)を文字列に 変換してシステム変数refstrに結果を返します。 %href str2fv str2f f2str f2i %index str2f 文字列を小数値に変換 %group 拡張画面制御命令 %prm fval,"fval" fval = float値が代入される変数名 "fval" = float値が格納された文字列 %inst "fval"で指定された文字列情報を小数値として読み出し、 fvalで指定された変数に格納します。 %href fv2str str2fv f2str f2i %index f2str 小数値を文字列に変換 %group 拡張画面制御命令 %prm sval,fval sval = 文字列が代入される変数名 fval = 変換元のfloat値 %inst fvalで指定された小数値を文字列に変換して、valで指定された文字列型の変数に 結果を返します。 %href fv2str str2fv str2f f2i %index f2i 小数値を整数値に変換 %group 拡張画面制御命令 %prm v,x,y,z v = int値が代入される変数名 (x,y,z) = 変換元のfloat値(X,Y,Z) %inst 小数値(X,Y,Z)を整数値に変換して、vで指定された数値型の変数に代入します。 結果はそれぞれ「v.0=x:v.1=y:v.2=z」の各要素に格納されます。 %href fv2str str2fv str2f f2str %index hgini DLLの初期化 %group 拡張画面制御命令 %prm yofs,ysize yofs : 有効スクリーン範囲を縦に+yofsだけずらす ysize : 有効スクリーン範囲を縦にysizeとする %inst HGIMGの初期化を行ないます。 最初に必ず初期化をしてからHGIMGの各命令を使用しなければなりません。 hgini命令が実行された時点での描画先(ウインドゥID)が表示先として登録されます。 またその時点での画面初期化モード(パレットモードかフルカラーモードか)によって、 HGIMGの描画モードも合わせて設定されます。 yofs,ysizeの指定が省略されるか0の場合はウインドゥ全体が描画対象になります。 %href hgbye %index hgbye DLLの解放 %group 拡張画面制御命令 %prm %inst HGIMGの解放を行ないます。 プログラムの終了時に自動的に実行されるので、通常は明示する必要はありません。 %href hgini %index hgdst 転送先バッファ指定 %group 拡張画面制御命令 %prm mode mode : 転送モード %inst 画面拡大モード時に転送する先のウインドゥを指定します。 modeは拡大する種類を示します。 %href hgini hgdraw hgsync %index hgdraw 描画の実行 %group 拡張画面制御命令 %prm %inst 全描画を実行します。 %href hgini hgdst hgsync %index getsync 時間待ち情報を取得 %group 拡張画面制御命令 %prm val,mode val : 情報が代入される変数名 mode : 取得モード( 0=現在のタイマ / 1=タイマ分解能 ) %inst modeで指定した種類の情報を取得してvalで指定した変数に代入します。 %href sync hgsync %index hgsync 時間待ちを行なう %group 拡張画面制御命令 %prm val val : 待ち時間 %inst valで指定した時間(ms)だけウェイトを取ります。 hgsyncは、必ずhgdrawと対にして使用する必要があります。 hgsyncでウェイトを入れた場合は、指定した待ち時間を過ぎると 描画をキャンセルして次のフレームの処理を行ないます。 %href getsync hgdraw %index sync 時間待ちを行なう %group 拡張画面制御命令 %prm val val : 待ち時間 %inst valで指定した時間(ms)だけウェイトを取ります。 %href getsync hgsync %index getdebug デバッグ情報取得 %group 拡張画面制御命令 %prm val val : 結果が代入される変数名 %inst HGIMGのデバッグ情報が代入されます。 通常の使用では必要ありません。 %href %index hgsetreq システムリクエスト設定 %group 拡張画面制御命令 %prm type,val type : 設定タイプ(SYSREQ_???) val : 設定する値 %inst HGIMG.DLLに対して様々なシステム設定を行ないます。 type値で指定できるのは以下のシンボルです。 ^p シンボル名 値 内容 ----------------------------------------------- SYSREQ_NONE 0 (未使用) SYSREQ_MAXMODEL 1 モデルの最大値 SYSREQ_MAXOBJ 2 オブジェクトの最大値 SYSREQ_MAXTEX 3 テクスチャの最大値 SYSREQ_MAXMOC 4 MOC登録数の最大値 SYSREQ_DXMODE 5 DirectXモード SYSREQ_DXHWND 6 DirectXモードWNDハンドル SYSREQ_DXWIDTH 7 フルスクリーン時Xサイズ SYSREQ_DXHEIGHT 8 フルスクリーン時Yサイズ SYSREQ_COLORKEY 9 透明抜き色となるRGB値 ^p %href hgini hggetreq %sample ; 透明抜き色をRGB=($00,$ff,$ff)とする ; (texload命令の直前に使用可能) hgsetreq SYSREQ_COLORKEY, $00ffff %index hggetreq システムリクエスト取得 %group 拡張画面制御命令 %prm val,type val : 結果が代入される変数名 type : 設定タイプ(SYSREQ_???) %inst HGIMG.DLLのシステム設定値を取り出してvalで指定した変数に代入します。 type値で指定できるのは以下のシンボルです。 ^p シンボル名 値 内容 ----------------------------------------------- SYSREQ_NONE 0 (未使用) SYSREQ_MAXMODEL 1 モデルの最大値 SYSREQ_MAXOBJ 2 オブジェクトの最大値 SYSREQ_MAXTEX 3 テクスチャの最大値 SYSREQ_MAXMOC 4 MOC登録数の最大値 SYSREQ_DXMODE 5 DirectXモード SYSREQ_DXHWND 6 DirectXモードWNDハンドル SYSREQ_DXWIDTH 7 フルスクリーン時Xサイズ SYSREQ_DXHEIGHT 8 フルスクリーン時Yサイズ SYSREQ_COLORKEY 9 透明抜き色となるRGB値 ^p %href hgini hgsetreq %index setborder オブジェクト有効範囲設定 %group 拡張画面制御命令 %prm fx,fy,fz ( fx,fy,fz ) = ボーダー領域の大きさ(float値) %inst ボーダー領域(オブジェクト有効範囲)を設定します。 ( 0,0,0 )を中心にした、( fx,fy,fz )サイズの立方体がボーダー領域となります。 %href regobj %index clscolor 背景色設定 %group 拡張画面制御命令 %prm color color : カラーコード %inst 単色で塗りつぶす背景色を設定します。 colorに-1を指定した場合は、背景クリアを行ないません。 colorはフルカラーおよびDirectXモード時はRGBコード($rrggbb)となります。 パレットモード時は、パレット番号になります。 %href clstex %index clstex 背景テクスチャ設定 %group 拡張画面制御命令 %prm id id : テクスチャID %inst 背景となるテクスチャのIDを指定します。 idに-1を指定した場合は、背景にテクスチャを使わなくなります。 背景テクスチャはtexloadbg命令で読み込む必要があります。 DirectX使用時は使用できません。 %href texloadbg clscolor %index setfont オリジナルフォント定義 %group 拡張画面制御命令 %prm cx,cy,px,sw ( cx,cy ) : フォント1つあたりのXYサイズ px : 1文字表示ごとに右に移動するドット数 sw : 0=透明色抜きなし / 1=透明色抜きあり %inst fprt命令で表示するためのフォントを設定します。 使用するテクスチャはこの直後に読み込まれたものになります。 %href texload fprt %sample ; テクスチャフォント表示の準備 ; setfont 16,16,12,1 ; font Tex select(cx,cy,px,mode) texload "fontchr.bmp" ; フォントテクスチャの登録 %index fprt 定義フォント文字列表示 %group 拡張画面制御命令 %prm "mes",x,y "mes" : 表示する文字列 ( x,y ) : 表示する座標 %inst "mes"の内容を指定されたフォントで画面に表示します。 必ずhgdraw命令と、hgsync命令の間に使用してください。 (x,y)の指定は画面の左上が(0,0)になります。 %href setfont hgdraw hgsync %sample ; 描画メイン ; hgdraw ; 描画処理 getsync t1,0 ; 前回からの負荷を取得 fprt "HGIMG Plugin test",8,108 fprt "T:"+t1,8,124 hgsync 10 ; 処理落ちしてなければ描画 %index objset1 MOC情報を設定 %group 拡張画面制御命令 %prm ofs,x ofs : MOCのオフセット番号 x : 設定する値 %inst MOC情報を設定します。 %href objset1 objadd1 objmov1 objset1r objmov1r objsetf1 objaddf1 objmovf1 %index objsetf1 MOC情報を設定 %group 拡張画面制御命令 %prm ofs,fx ofs : MOCのオフセット番号 fx : 設定する値(float値) %inst MOC情報を設定します。 %href objset1 objadd1 objmov1 objset1r objmov1r objsetf1 objaddf1 objmovf1 %index objadd1 MOC情報を加算 %group 拡張画面制御命令 %prm ofs,x ofs : MOCのオフセット番号 x : 加算する値 %inst MOC情報に設定されている値にxを加算します。 %href objset1 objadd1 objmov1 objset1r objmov1r objsetf1 objaddf1 objmovf1 %index objaddf1 MOC情報を加算 %group 拡張画面制御命令 %prm ofs,fx ofs : MOCのオフセット番号 fx : 加算する値(float値) %inst MOC情報に設定されている値にfxを加算します。 %href objset1 objadd1 objmov1 objset1r objmov1r objsetf1 objaddf1 objmovf1 %index objmov1 MOC情報を変化 %group 拡張画面制御命令 %prm ofs,times,x ofs : MOCのオフセット番号 times : フレーム数 x : 設定する値 %inst MOC情報を、timesで示したフレーム数後に指定した値に 変わるように変化情報を設定します。 MOCが変化する補間の方法は、objmovmode命令で設定することが可能です。 また、変化が終了しているかどうかをobjcheck命令で調べることができます。 %href objmovmode objcheck objset1 objadd1 objmov1 objset1r objmov1r objsetf1 objaddf1 objmovf1 %index objmovf1 MOC情報を変化 %group 拡張画面制御命令 %prm ofs,times,fx ofs : MOCのオフセット番号 times : フレーム数 fx : 設定する値(float値) %inst MOC情報を、timesで示したフレーム数後に指定した値に 変わるように変化情報を設定します。 MOCが変化する補間の方法は、objmovmode命令で設定することが可能です。 また、変化が終了しているかどうかをobjcheck命令で調べることができます。 %href objmovmode objcheck objset1 objadd1 objmov1 objset1r objmov1r objsetf1 objaddf1 objmovf1 %index objset1r MOC情報を設定 %group 拡張画面制御命令 %prm ofs,x ofs : MOCのオフセット番号 x : 設定する値 %inst MOC情報に角度情報を設定します。 整数値(256で1回転)をラジアン単位に変換してパラメーターを書き込みます。 角度を指定するパラメーター以外では正常な値にならないので注意してください。 %href objset1 objadd1 objmov1 objset1r objmov1r objsetf1 objaddf1 objmovf1 %index objmov1r MOC情報を変化 %group 拡張画面制御命令 %prm ofs,times,x ofs : MOCのオフセット番号 times : フレーム数 x : 設定する値 %inst MOC情報を、timesで示したフレーム数後に指定した値に 変わるように変化情報を設定します。 整数値(256で1回転)をラジアン単位にパラメーターを変換します。 角度を指定するパラメーター以外では正常な値にならないので注意してください。 MOCが変化する補間の方法は、objmovmode命令で設定することが可能です。 また、変化が終了しているかどうかをobjcheck命令で調べることができます。 %href objmovmode objcheck objset1 objadd1 objmov1 objset1r objmov1r objsetf1 objaddf1 objmovf1 %index objset2 MOC情報を設定 %group 拡張画面制御命令 %prm ofs,x,y ofs : MOCのオフセット番号 x : 設定する値 y : 設定する値2 %inst MOC情報を設定します。 ofsで指定したオフセット番号から2つのパラメータが対象になります。 %href objset2 objadd2 objmov2 objset2r objmov2r objsetf2 objaddf2 objmovf2 %index objsetf2 MOC情報を設定 %group 拡張画面制御命令 %prm ofs,fx,fy ofs : MOCのオフセット番号 fx : 設定する値(float値) fy : 設定する値2(float値) %inst MOC情報を設定します。 ofsで指定したオフセット番号から2つのパラメータが対象になります。 %href objset2 objadd2 objmov2 objset2r objmov2r objsetf2 objaddf2 objmovf2 %index objadd2 MOC情報を加算 %group 拡張画面制御命令 %prm ofs,x,y ofs : MOCのオフセット番号 x : 加算する値 y : 加算する値2 %inst MOC情報に設定されている値にxを加算します。 ofsで指定したオフセット番号から2つのパラメータが対象になります。 %href objset2 objadd2 objmov2 objset2r objmov2r objsetf2 objaddf2 objmovf2 %index objaddf2 MOC情報を加算 %group 拡張画面制御命令 %prm ofs,fx,fy ofs : MOCのオフセット番号 fx : 加算する値(float値) fy : 加算する値2(float値) %inst MOC情報に設定されている値にfxを加算します。 ofsで指定したオフセット番号から2つのパラメータが対象になります。 %href objset2 objadd2 objmov2 objset2r objmov2r objsetf2 objaddf2 objmovf2 %index objmov2 MOC情報を変化 %group 拡張画面制御命令 %prm ofs,times,x,y ofs : MOCのオフセット番号 times : フレーム数 x : 設定する値 y : 設定する値2 %inst MOC情報を、timesで示したフレーム数後に指定した値に 変わるように変化情報を設定します。 ofsで指定したオフセット番号から2つのパラメータが対象になります。 MOCが変化する補間の方法は、objmovmode命令で設定することが可能です。 また、変化が終了しているかどうかをobjcheck命令で調べることができます。 %href objmovmode objcheck objset2 objadd2 objmov2 objset2r objmov2r objsetf2 objaddf2 objmovf2 %index objmovf2 MOC情報を変化 %group 拡張画面制御命令 %prm ofs,times,fx,fy ofs : MOCのオフセット番号 times : フレーム数 fx : 設定する値(float値) fy : 設定する値2(float値) %inst MOC情報を、timesで示したフレーム数後に指定した値に 変わるように変化情報を設定します。 ofsで指定したオフセット番号から2つのパラメータが対象になります。 MOCが変化する補間の方法は、objmovmode命令で設定することが可能です。 また、変化が終了しているかどうかをobjcheck命令で調べることができます。 %href objmovmode objcheck objset2 objadd2 objmov2 objset2r objmov2r objsetf2 objaddf2 objmovf2 %index objset2r MOC情報を設定 %group 拡張画面制御命令 %prm ofs,x,y ofs : MOCのオフセット番号 x : 設定する値 y : 設定する値2 %inst MOC情報に角度情報を設定します。 ofsで指定したオフセット番号から2つのパラメータが対象になります。 整数値(256で1回転)をラジアン単位に変換してパラメーターを書き込みます。 角度を指定するパラメーター以外では正常な値にならないので注意してください。 %href objset2 objadd2 objmov2 objset2r objmov2r objsetf2 objaddf2 objmovf2 %index objmov2r MOC情報を変化 %group 拡張画面制御命令 %prm ofs,times,x,y ofs : MOCのオフセット番号 times : フレーム数 x : 設定する値 y : 設定する値2 %inst MOC情報を、timesで示したフレーム数後に指定した値に 変わるように変化情報を設定します。 ofsで指定したオフセット番号から2つのパラメータが対象になります。 整数値(256で1回転)をラジアン単位にパラメーターを変換します。 角度を指定するパラメーター以外では正常な値にならないので注意してください。 MOCが変化する補間の方法は、objmovmode命令で設定することが可能です。 また、変化が終了しているかどうかをobjcheck命令で調べることができます。 %href objmovmode objcheck objset2 objadd2 objmov2 objset2r objmov2r objsetf2 objaddf2 objmovf2 %index objset3 MOC情報を設定 %group 拡張画面制御命令 %prm x,y,z x : 設定する値 y : 設定する値2 z : 設定する値3 %inst MOC情報を設定します。 オフセット番号0から3つのパラメータが対象になります。 %href objset3 objadd3 objmov3 objset3r objmov3r objsetf3 objaddf3 objmovf3 %index objsetf3 MOC情報を設定 %group 拡張画面制御命令 %prm fx,fy,fz fx : 設定する値(float値) fy : 設定する値2(float値) fz : 設定する値3(float値) %inst MOC情報を設定します。 オフセット番号0から3つのパラメータが対象になります。 %href objset3 objadd3 objmov3 objset3r objmov3r objsetf3 objaddf3 objmovf3 %index objadd3 MOC情報を加算 %group 拡張画面制御命令 %prm x,y,z x : 加算する値 y : 加算する値2 z : 加算する値3 %inst MOC情報に設定されている値にxを加算します。 オフセット番号0から3つのパラメータが対象になります。 %href objset3 objadd3 objmov3 objset3r objmov3r objsetf3 objaddf3 objmovf3 %index objaddf3 MOC情報を加算 %group 拡張画面制御命令 %prm fx,fy,fz fx : 加算する値(float値) fy : 加算する値2(float値) fz : 加算する値3(float値) %inst MOC情報に設定されている値にfxを加算します。 オフセット番号0から3つのパラメータが対象になります。 %href objset3 objadd3 objmov3 objset3r objmov3r objsetf3 objaddf3 objmovf3 %index objmov3 MOC情報を変化 %group 拡張画面制御命令 %prm times,x,y,z times : フレーム数 x : 設定する値 y : 設定する値2 z : 設定する値3 %inst MOC情報を、timesで示したフレーム数後に指定した値に 変わるように変化情報を設定します。 オフセット番号0から3つのパラメータが対象になります。 MOCが変化する補間の方法は、objmovmode命令で設定することが可能です。 また、変化が終了しているかどうかをobjcheck命令で調べることができます。 %href objmovmode objcheck objset3 objadd3 objmov3 objset3r objmov3r objsetf3 objaddf3 objmovf3 %index objmovf3 MOC情報を変化 %group 拡張画面制御命令 %prm times,fx,fy,fz times : フレーム数 fx : 設定する値(float値) fy : 設定する値2(float値) fz : 設定する値3(float値) %inst MOC情報を、timesで示したフレーム数後に指定した値に 変わるように変化情報を設定します。 オフセット番号0から3つのパラメータが対象になります。 MOCが変化する補間の方法は、objmovmode命令で設定することが可能です。 また、変化が終了しているかどうかをobjcheck命令で調べることができます。 %href objmovmode objcheck objset3 objadd3 objmov3 objset3r objmov3r objsetf3 objaddf3 objmovf3 %index objset3r MOC情報を設定 %group 拡張画面制御命令 %prm x,y,z x : 設定する値 y : 設定する値2 z : 設定する値3 %inst MOC情報に角度情報を設定します。 オフセット番号0から3つのパラメータが対象になります。 整数値(256で1回転)をラジアン単位に変換してパラメーターを書き込みます。 角度を指定するパラメーター以外では正常な値にならないので注意してください。 %href objset3 objadd3 objmov3 objset3r objmov3r objsetf3 objaddf3 objmovf3 %index objmov3r MOC情報を変化 %group 拡張画面制御命令 %prm times,x,y,z times : フレーム数 x : 設定する値 y : 設定する値2 z : 設定する値3 %inst MOC情報を、timesで示したフレーム数後に指定した値に 変わるように変化情報を設定します。 オフセット番号0から3つのパラメータが対象になります。 整数値(256で1回転)をラジアン単位にパラメーターを変換します。 角度を指定するパラメーター以外では正常な値にならないので注意してください。 MOCが変化する補間の方法は、objmovmode命令で設定することが可能です。 また、変化が終了しているかどうかをobjcheck命令で調べることができます。 %href objmovmode objcheck objset3 objadd3 objmov3 objset3r objmov3r objsetf3 objaddf3 objmovf3 %index objcheck 移動の終了を検知 %group 拡張画面制御命令 %prm val val : 情報が代入される変数名 %inst MOCの変化状態(objmovなどで指定するもの)か、停止状態かを取得します。 valに代入される値が0の場合は変化中、それ以外の場合は停止中です。 あらかじめ対象となるMOCを選択しておく必要があります。 %href objmovf1 objmov1 objmov1r objmovf2 objmov2 objmov2r objmovf3 objmov3 objmov3r %index objmovmode MOC補間モード設定 %group 拡張画面制御命令 %prm mode mode : 補間モード %inst MOCのグループに対してobjmov命令などの変化時に使用される補間モードを設定します。 ここで補間モードに使用できるのは、以下の通りです。 ^p OBJMOV_STATIC 値変化なし OBJMOV_LINEAR 直線補間 OBJMOV_SPLINE スプライン補間 ^p スプライン補間にした場合は、objmov〜命令で変化させる値を2個まで 同時にストックできるようになり、それぞれの点をなめらかに通るような形で値の増減が行なわれます。 デフォルトでは、すべてのグループの補間モードは直線補間になっています。 %href objmovf1 objmov1 objmovf2 objmov2 objmovf3 objmov3 %sample objmovmode OBJMOV_SPLINE ; スプライン補間モードを選択 %index objmovopt MOC移動オプション設定 %group 拡張画面制御命令 %prm ofs,opt ofs : MOCオフセット番号 opt : オプション設定値 %inst MOCに対して移動オプションを設定します。 このオプションはオフセット番号ごとに設定することができます。 以下のラベルを使用することができます。 ^p OBJMOV_OPT_REVERSE = 「開始値→終了値→開始値」に変化する OBJMOV_OPT_ETERNAL = 「開始値→終了値」を繰り返す ^p %href objmovmode objmovf1 objmov1 objmovf2 objmov2 objmovf3 objmov3 %index selmoc MOC情報を設定 %group 拡張画面制御命令 %prm id, mocofs id : オブジェクトID mocofs : MOCのグループ指定 %inst MOC設定命令の対象となるMOCグループを指定します。 idは、オブジェクトIDとなります。 通常は、selpos,selang,selscale,seldir命令をお使いください。 %href selpos selang selscale seldir selcam selcpos selcang selcint %index selcam カメラをMOC情報に設定 %group 拡張画面制御命令 %prm mocofs mocofs : MOCのグループ指定 %inst MOC設定命令の対象となるMOCグループをカメラに設定します。 通常は、selcpos,selcang,selcint命令をお使いください。 %href selmoc selpos selang selscale seldir selcpos selcang selcint %index sellight 光源をMOC情報に設定 %group 拡張画面制御命令 %prm id,ofs id : 光源のID(0〜3) mocofs : MOCのグループ指定 %inst MOC設定命令の対象となるMOCグループをライト(光源)に設定します。 通常は、sellpos,sellang,sellcolor命令をお使いください。 %href sellpos sellang sellcolor selmoc selcam %index selpos 移動座標をMOC情報に設定 %group 拡張画面制御命令 %prm id id : オブジェクトID %inst MOC設定命令の対象となるMOCグループをA(移動座標)に設定します idは、オブジェクトIDとなります。 %href selmoc selang selscale seldir selefx selcam selcpos selcang selcint %index selang 回転角度をMOC情報に設定 %group 拡張画面制御命令 %prm id id : オブジェクトID %inst MOC設定命令の対象となるMOCグループをB(回転角度)に設定します idは、オブジェクトIDとなります。 %href selmoc selpos selscale seldir selefx selcam selcpos selcang selcint %index selscale スケールをMOC情報に設定 %group 拡張画面制御命令 %prm id id : オブジェクトID %inst MOC設定命令の対象となるMOCグループをC(スケール)に設定します idは、オブジェクトIDとなります。 %href selmoc selpos selang selefx seldir selcam selcpos selcang selcint %index seldir 移動量をMOC情報に設定 %group 拡張画面制御命令 %prm id id : オブジェクトID %inst MOC設定命令の対象となるMOCグループをD(移動量)に設定します idは、オブジェクトIDとなります。 %href selmoc selpos selang selscale selefx selcam selcpos selcang selcint %index selefx オブジェクト特殊効果をMOC情報に設定 %group 拡張画面制御命令 %prm id id : オブジェクトID %inst MOC設定命令の対象となるMOCグループをE(効果)に設定します idは、オブジェクトIDとなります。 %href selmoc selpos selang selscale selcam selcpos selcang selcint %index selcpos カメラ座標をMOC情報に設定 %group 拡張画面制御命令 %prm %inst MOC設定命令の対象となるMOCグループをカメラのA(移動座標)に設定します %href selmoc selpos selang selscale seldir selcam selcang selcint %index selcang カメラ角度をMOC情報に設定 %group 拡張画面制御命令 %prm %inst MOC設定命令の対象となるMOCグループをカメラのB(回転角度)に設定します cammodeの設定が注視点を見るモードになっている場合は、カメラ回転角は自動的に設定されます。 %href cammode selmoc selpos selang selscale seldir selcam selcpos selcint %index selcint カメラ注視点をMOC情報に設定 %group 拡張画面制御命令 %prm %inst MOC設定命令の対象となるMOCグループをC(注視点座標)に設定します 注視点は、cammodeの設定によって有効になります。 %href cammode selmoc selpos selang selscale seldir selcam selcpos selcang %index cammode カメラモードの設定 %group 拡張画面制御命令 %prm mode mode : モード値 %inst カメラの向きについてのモードを設定します。 指定できるモードは、 CAM_MODE_NORMAL (カメラの位置、角度に従う) と、 CAM_MODE_LOOKAT (カメラは注視点を常に向いている) です。 %href selcam selcpos selcint %index sellpos 光源座標をMOC情報に設定 %group 拡張画面制御命令 %prm id id : 光源のID(0〜3) %inst MOC設定命令の対象となるMOCグループをライト(光源)の座標に設定します。 %href sellight sellang sellcolor %index sellang 光源角度をMOC情報に設定 %group 拡張画面制御命令 %prm id id : 光源のID(0〜3) %inst MOC設定命令の対象となるMOCグループをライト(光源)の角度に設定します。 %href sellight sellpos sellcolor %index sellcolor 光源色をMOC情報に設定 %group 拡張画面制御命令 %prm id id : 光源のID(0〜3) %inst MOC設定命令の対象となるMOCグループをライト(光源)の色(R,G,B,Ambient)に設定します。 %href sellight sellpos sellang %index objgetfv MOC情報を取得 %group 拡張画面制御命令 %prm fv fv = FV値が代入される変数名 %inst MOCに設定されている値を変数fvに代入します。 %href objsetfv fvset fvadd fvsub fvmul fvdiv %index objsetfv MOC情報を設定 %group 拡張画面制御命令 %prm fv fv = FV値が代入されている変数名 %inst 変数fvの内容をMOCに設定します。 %href objgetfv fvset fvadd fvsub fvmul fvdiv %index objaddfv MOC情報を加算 %group 拡張画面制御命令 %prm fv fv = FV値が代入されている変数名 %inst 変数fvの内容をMOCに加算します。 %href objgetfv fvset fvadd fvsub fvmul fvdiv %index objmovfv MOC移動情報を設定 %group 拡張画面制御命令 %prm fv,times fv : FV値が代入されている変数名 times : フレーム数 %inst timesフレーム後に変数fvの内容になるようにMOC変化値を設定します。 %href objsetfv objgetfv fvset fvadd fvsub fvmul fvdiv %index objgetv MOC情報を整数値で取得 %group 拡張画面制御命令 %prm v v : 値が代入される変数名 %inst MOCに設定されている値を変数vに整数で代入します。 v.0〜v.3にそれぞれのオフセット番号が持つ値が代入されます。 %href objsetv objsetfv objgetfv fvset fvadd fvsub fvmul fvdiv %index objsetv MOC情報を整数値で設定 %group 拡張画面制御命令 %prm v v : 値が代入されている変数名 %inst 変数vに整数で代入されている値をMOCに設定します。 v.0〜v.3がそれぞれのオフセット番号に設定されます。 %href objgetv objsetfv objgetfv fvset fvadd fvsub fvmul fvdiv %index objgetstr MOC情報を文字列で取得 %group 拡張画面制御命令 %prm sval sval : 結果が代入される文字列型変数名 %inst MOCに設定されている値を変数svalに文字列で書き出します。 %href fv2str f2str %index setuv 登録テクスチャUV座標を指定 %group 拡張画面制御命令 %prm tx0,ty0,tx1,ty1 (tx0,ty0) : テクスチャの左上座標 (tx1,ty1) : テクスチャの右下座標 %inst モデル登録の際に使用されるUV値を指定します。 %href addspr addplate addbox %index setsizef 登録モデルの幅、高さを指定 %group 拡張画面制御命令 %prm fsx,fsy (fsx,fsy) : X,Yサイズ(float値) %inst モデル登録の際に使用されるサイズ値を指定します。 %href addspr addplate addbox %index setbg BGマップ情報設定 %group 拡張画面制御命令 %prm sx,sy,cx,cy (sx,sy) : マップX,Yサイズ (cx,cy) : チップX,Yサイズ %inst BGマップ表示モデルの登録に使用される マップのサイズと、チップサイズを指定します。 %href addbg getbg setmap %index getbg BGマップを取得 %group 拡張画面制御命令 %prm val,modelID val : クローンが作成される変数名 modelID : モデルID %inst BGマップに割り当てられたメモリ空間を変数valにクローンで割り当てます。 以降は、変数valのメモリ空間としてBGマップを書き換えることができます。 %href addbg setbg setmap %index setmap BGマップスクロール指定 %group 拡張画面制御命令 %prm modelID,x,y (x,y) : 左上の座標 modelID : モデルID %inst BGマップでウインドゥ内に表示される左上のマップ座標を指定します。 %href addbg setbg %index addbox 箱(BOX)モデルを作成 %group 拡張画面制御命令 %prm val val : 作成されたモデルIDが代入される変数名 %inst 箱(BOX)モデルを作成します。 setuv、setsizeで指定された情報をもとにモデルを作成します。 %href setsizef setuv %index addplate 板(PLATE)モデルを作成 %group 拡張画面制御命令 %prm val,mode val : 作成されたモデルIDが代入される変数名 mode : 0=透明色抜きなし / 1=透明色抜きあり %inst 3Dの板(PLATE)モデルを作成します。 setuv、setsizeで指定された情報をもとにモデルを作成します。 %href setsizef setuv %index addmesh 板(MESH)モデルを作成 %group 拡張画面制御命令 %prm val,divx,divy,mode val : 作成されたモデルIDが代入される変数名 divx : メッシュの分割数X divy : メッシュの分割数Y mode : 0=透明色抜きなし / 1=透明色抜きあり / 16=繰り返し %inst 分割された3Dポリゴンを使った板(MESH)を作成します。 setuv、setsizeで指定された情報をもとにモデルを作成します。 基本的にaddplateで作られる板と同じですが、divsizex × divsizey のポリゴンに分割されています。地面など拡大された場合にパースの 歪みが起こるモデルなどで使用します。 modeが16の場合は、指定されたテクスチャを1ポリゴンごとに割り付ける 繰り返しモードとなります。 %href setsizef setuv %index addspr 2Dスプライトモデルを作成 %group 拡張画面制御命令 %prm val,mode val : 作成されたモデルIDが代入される変数名 mode : 0=透明色抜きなし / 1=透明色抜きあり %inst 2Dスプライトモデルを作成します。 %href setsizef setuv %index addbg 2DBGマップモデルを作成 %group 拡張画面制御命令 %prm val,winsizex,winsizey val : 作成されたモデルIDが代入される変数名 winsizex : ウインドゥに表示するチップの数X winsizey : ウインドゥに表示するチップの数Y %inst 2DBGマップモデルを作成します。 %href setsizef setuv setbg %index mxload モデルファイル読み込み %group 拡張画面制御命令 %prm "filename" "filename" : 読み込むモデルファイル(MX形式) %inst "filename"で指定したmx形式のファイルをモデルとして読み込みます。 作成されたモデルIDは、システム変数statに代入されます。 %href maload mxconv mxgetpoly mxgetname %index regobj オブジェクトの登録 %group 拡張画面制御命令 %prm val,ModelID, mode val : 作成されたオブジェクトIDが代入される変数名 modelID : モデルID mode : モード値 %inst 指定されたモデルを表示するためのオブジェクトを作成します。 成功すると作成されたオブジェクトIDが変数に代入されます。 何らかの理由で作成に失敗した場合は、-1が代入されます。 ^ モードは以下の中から選択します。 ^p ラベル | 内容 -------------------------------------------------------------- OBJ_HIDE 非表示(画面から消す) OBJ_TREE 木属性(Y軸のみ正面を向く) OBJ_XFRONT 正面属性(常に画面に正面を向く) OBJ_UVANIM UVアニメーションを行なう OBJ_UVANIM_1SHOT UVアニメーション表示後に消滅する OBJ_MOVE XYZ移動量を有効にする OBJ_FLIP ボーダー領域で反転する OBJ_BORDER ボーダー領域を有効にする OBJ_2D 2D表示オブジェクトとして扱う OBJ_TIMER 消滅タイマーを有効にする OBJ_WIPEBOM ボーダー領域で爆発オブジェクトに変わる OBJ_NOSORT Zソートを無効にする OBJ_GRAVITY 重力制御を有効にする OBJ_SKY 常に一番奥に描かれる OBJ_GROUND 地面オブジェクトとして描かれる ^p 複数の項目を同時に選択する場合は、「OBJ_SKY|OBJ_MOVE」のように 「|」で区切って指定してください。何も指定しない場合は、0にするか 省略して構いません。 オブジェクトのモードは、あらかじめデフォルトのモードがモデルの種類に応じて 設定されているので、通常は特に設定する必要はありません。 また、setmode命令でモデルにモードを指定した場合は、そのモードが オブジェクトにも継承されます。 %href delobj %index delobj オブジェクトの削除 %group 拡張画面制御命令 %prm ObjID ObjID : オブジェクトID %inst 指定されたオブジェクトを削除します。 %href regobj %index setobjm オブジェクトのモデル設定 %group 拡張画面制御命令 %prm ObjID,modelID ObjID : オブジェクトID modelID : モデルID %inst 指定されたオブジェクトが表示するモデルを変更します。 %href %index objact 指定アニメーションを開始 %group 拡張画面制御命令 %prm ObjID,Anim ObjID : オブジェクトID Anim : アニメーションID %inst 指定されたオブジェクトのアニメーションを開始します。 animにマイナスの値(-1)を指定することで、アニメーションを解除(停止)させることができます。 アニメーションは、MAファイルから読み込むことが可能です。 %href maload %index setobjmode オブジェクトのモード設定 %group 拡張画面制御命令 %prm ObjID,mode,sw ObjID : オブジェクトID mode : モード値 sw : 設定スイッチ %inst 指定されたオブジェクトのモードを変更します。 モード値は、regobj命令で指定するものと同様です。 swは、以下のように動作します。 ^p sw = 0 : 指定したモード値を追加 sw = 1 : 指定したモード値を削除 sw = 2 : 指定したモード値だけを設定 ^p %href setmode regobj %index setcoli オブジェクトのコリジョン設定 %group 拡張画面制御命令 %prm id,mygroup,enegroup id : オブジェクトID mygroup : 自分が属するグループ値 enegroup : 衝突を検出する対象となるグループ値 %inst オブジェクトに対してコリジョン情報を設定します。 グループ値は、 1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768 の中から1つだけを選択可能です。 %href getcoli findobj nextobj %index getcoli オブジェクトのコリジョン判定 %group 拡張画面制御命令 %prm val,id,distance val : 結果が代入される変数名 id : オブジェクトID distance : 衝突を検出する範囲(float値) %inst 指定したオブジェクトが持つコリジョン情報をもとに、その オブジェクトが衝突している別なオブジェクトのIDを調べます。 distanceは、衝突する範囲(半径)をfloat値で指定します。 衝突が検出された場合は、変数にオブジェクトIDが代入されます。 何も衝突が検出されなかった場合は、-1が代入されます。 %href setcoli findobj nextobj %index findobj オブジェクト検索 %group 拡張画面制御命令 %prm exmode,group exmode : 検索を除外するモード group : 検索対象グループ値 %inst 指定したグループのオブジェクトだけを検索します。 最初にfindobjを実行して、次にnextobj命令で該当する オブジェクトを検索することができます。 また、exmodeで指定したモード(regobjで指定するモード値と同じ) は検索から除外されます。 %href setcoli nextobj %index nextobj 次のオブジェクト検索 %group 拡張画面制御命令 %prm val val : 結果が代入される変数名 %inst findobj命令で指定された条件をもとにオブジェクトを検索します。 検索されると、変数にオブジェクトIDが代入されます。 検索対象がなくなった時には-1が代入されます。 %href setcoli findobj %index uvanim モデルのUVアニメ設定 %group 拡張画面制御命令 %prm id, wait, times, sw id : モデルID wait : 1コマごとの待ち時間 times : アニメーションコマ数 sw : モード(0=繰り返し/1=1回のみ) %inst 指定したモデルIDにUVアニメーションの設定を付加します。 UVアニメーションは、指定したモデルのV(y)座標を一定時間 ごとに縦にずらしていくことで実現します。 (元のテクスチャには縦方向にアニメーションパターンが連続して 記録されている必要があります) %href %index setmode モデルのモード設定 %group 拡張画面制御命令 %prm ModelID, mode ModelID : モデルID mode : モード値 %inst 指定したモデルIDにデフォルトのモードを付加します。 モード値はregobj命令で使用しているものと同様です。 %href setobjmode %index settimer モデルのタイマー設定 %group 拡張画面制御命令 %prm ModelID, timer ModelID : モデルID timer : タイマー値 %inst 指定したモデルIDにタイマー値を付加します。 タイマー値が設定されたモデルは、regobj命令で画面上に 発生した後、タイマー値の示すフレーム数が過ぎると自動的に 消去されます。 %href %index setmtex モデルのテクスチャを設定 %group 拡張画面制御命令 %prm modelid, nodeid, tex ModelID : モデルID NodeID : ノードID tex : テクスチャID %inst 指定したモデルIDの管理するポリゴン、スプライトなどが 持つテクスチャID情報を変更します。 ノードIDは通常0ですが、mxファイルなどから取得した1つの モデルに複数のポリゴンが含まれている場合には、0以上の ノードIDを使用することができます。 %href getmtex %index getmtex モデルのテクスチャを取得 %group 拡張画面制御命令 %prm val, modelid, nodeid val : 結果が代入される変数名 ModelID : モデルID NodeID : ノードID %inst 指定したモデルIDの管理するポリゴン、スプライトなどが 持つテクスチャID情報を取得します。 ノードIDは通常0ですが、mxファイルなどから取得した1つの モデルに複数のポリゴンが含まれている場合には、0以上の ノードIDを使用することができます。 %href setmtex %index evmodel イベントモデルID設定 %group 拡張画面制御命令 %prm eventID, modelID ModelID : モデルID eventID : イベントID %inst 指定したイベントIDにモデルIDを設定します。 %href %index copybuf 指定バッファに画面コピー %group 拡張画面制御命令 %prm mode mode : コピーモード %inst HGIMGの描画先から別なスクリーンに画面を拡大しながら コピーします。modeで、コピーの種類を指定します。 %href hgdst %index settex テクスチャを登録 %group 拡張画面制御命令 %prm x,y,sw (x,y) : テクスチャ登録サイズ sw : テクスチャ登録スイッチ (0=上下補正/1=補正なし) %inst 現在選択されているウインドゥIDの内容をテクスチャとして登録します。 テクスチャの登録に失敗した場合はシステム変数statが0以外になります。 通常は、texload命令、texloadbg命令によってファイルから テクスチャを読み込むようにしてください。 %href gettex texload texloadbg %index texload テクスチャを登録 %group 拡張画面制御命令 %prm "filename" "filename" : 登録するテクスチャとなる画像ファイル %inst 画像ファイル"filename"の内容をテクスチャとして登録します。 画像は、picload命令で使用可能なフォーマットと同じものが利用可能です。 テクスチャの登録に失敗した場合はエラーダイアログが表示され、 システム変数statが0以外になります。 あらかじめgettex命令で調べておくことで、登録されたテクスチャIDを 得ることができます。 %href settex gettex texloadbg %index texloadbg 背景テクスチャを登録 %group 拡張画面制御命令 %prm "filename" "filename" : 登録するテクスチャとなる画像ファイル %inst 画像ファイル"filename"の内容をテクスチャとして登録します。 texloadbgで読み込まれたテクスチャは、clstexで指定する背景となる画像のみで 使用可能です。 画像は、picload命令で使用可能なフォーマットと同じものが利用可能です。 テクスチャの登録に失敗した場合はエラーダイアログが表示され、 システム変数statが0以外になります。 あらかじめgettex命令で調べておくことで、登録されたテクスチャIDを 得ることができます。 %href settex gettex texload %index gettex テクスチャIDを取得 %group 拡張画面制御命令 %prm val val : テクスチャIDが代入される変数名 %inst 次に登録されるものに割り当てられるテクスチャIDを取得します。 ここで得たテクスチャIDが、次にtexload命令、またはtexloadbg命令、 settex命令で割り当てたテクスチャと同義になります。 %href settex texload texloadbg %index mxsend MX形式ファイルをパース %group 拡張画面制御命令 %prm val val : ファイルがメモリにロードされている変数名 %inst MXファイル読み込みを初期化します。 この命令は、mxload命令モジュール内で使用されています。 通常は使う必要はありません。通常はmxload命令を使用してください。 %href mxconv mxaconv mxgetpoly mxgetname %index mxconv MX形式ファイルを変換 %group 拡張画面制御命令 %prm val val : モデルIDが代入される変数名 %inst MXファイルをモデルに変換しますです。 この命令は、mxload命令モジュール内で使用されています。 通常は使う必要はありません。通常はmxload命令を使用してください。 %href mxsend mxaconv mxgetpoly mxgetname %index mxaconv MA形式ファイルを変換 %group 拡張画面制御命令 %prm val val : ファイルがメモリにロードされている変数名 %inst MAファイルをアニメーションデータに変換します。 この命令は、maload命令モジュール内で使用されています。 通常は使う必要はありません。通常はmaload命令を使用してください。 %href maload %index mxgetpoly ポリゴン数を取得 %group 拡張画面制御命令 %prm val val : 結果が代入される変数名 %inst 変換されたMXファイルのポリゴン数を取得します。 この命令は、mxload命令モジュール内で使用されています。 通常は使う必要はありません。 %href mxsend mxconv mxaconv mxgetname %index mxgetname テクスチャ名を取得 %group 拡張画面制御命令 %prm val,id val : 結果(文字列)が代入される変数名 id : ローカルのテクスチャID %inst 変換されたMXファイルで使用されるテクスチャ名を取得します。 この命令は、mxload命令モジュール内で使用されています。 通常は使う必要はありません。 %href mxsend mxconv mxaconv mxgetpoly %index falpha フォント文字α値を設定 %group 拡張画面制御命令 %prm val val : フォント表示に使用するα合成値 %inst fprt命令によるフォント表示で使用されるα合成値を指定します。 以降すべてのfprt命令に適用されます。 α値についての詳細は以下の通りです。 ^p α合成値 = 0〜255 : 背景とα合成(blend)を行なう α合成値 = 256〜511 : 合成を行なわない(通常時) α合成値 = 512〜767 : 背景と色加算(modulate)を行なう α合成値 = 768〜1023 : 背景と色減算(substract)を行なう ^p %href %index maload モデルアニメーション読み込み %group 拡張画面制御命令 %prm "file" "file" : 読み込むファイル名(拡張子なし) %inst MA形式で書かれたアニメーション情報ファイルを読み込みます。 先に、mxload命令によりモデルデータを読み込んでおく必要があります。 その直後に、対応するアニメーションデータを読み込むことで、 モデルにアニメーションが関連付けられます。 複数のアニメーションを1つのモデルに対して読み込むことも可能です。 maload命令で最初に読み込まれたアニメーションは、ID0となり、次に読み込むと ID1…という具合にアニメーションIDが順番に付けられていきます。 アニメーションの再生は、objact命令によって行ないます。 %href objact mxload %sample ; MXファイルオブジェクトを登録 mxload "rb_000" ; モデルファイル読み込み model=stat ; 登録されたモデルIDをmodelに代入 maload "walk" ; アニメーション#0読み込み regobj mychr,model ; モデルをオブジェクトに登録 selpos mychr objsetf3 0.0f, 0.0f, 0.0f objact mychr,0 %index setcolor 単色ポリゴン作成設定 %group 拡張画面制御命令 %prm r,g,b r,g,b : RGB色情報(それぞれ0〜255) %inst モデルの作成を行なう際のポリゴン色を設定します。 addplate,addbox命令などで単色ポリゴンを作成する場合に使用します。 %href addplate addbox %index clsblur ブラー設定 %group 拡張画面制御命令 %prm val val : 強度(0〜255) %inst 擬似ブラー効果を設定します。 valで設定した強度の値が小さいほど、画面に前のフレームが残像として 残ります。 %href clscolor clstex %index modelmovef モデルの絶対位置を移動 %group 拡張画面制御命令 %prm id,x,y,z id : モデルID (x,y,z) : X,Y,Z移動値(float値) %inst 指定したモデルが持つのポリゴン座標データを移動させます。 これによりモデルの中心座標をずらすことなどが可能になります。 %href %index modelshade モデルシェーディングモードの設定 %group 拡張画面制御命令 %prm id,mode,sw id : モデルID mode : シェーディングモード(0〜7) sw : 法線再計算スイッチ(0=ON/1=OFF) %inst モデルのシェーディングモード(光源計算モード)を設定します。 シェーディングモードにより、リアルタイムに光源計算を行なうことが 可能になります。 ^ swで法線の再計算をするかどうかを指定することができます。 swが0の場合は、法線の再計算を行ないます。これは、ポリゴン数に比例して 時間がかかります。特にグーローシェーディングの場合は、あらかじめ計算済みの モデルデータを用意する方が効率的です。 モードに+4を加算することで、ワイヤーフレーム表示に切り替わります。 ワイヤーフレーム表示中も、シェーディングモードが反映されます。 また、テクスチャはワイヤーフレーム表示時は白線(RGB=255)となります。 ^ ただし、速度的な問題からDirectXモードとそれ以外では、サポート されない機能もあるので注意してください。 サポートされる機能は以下の通りです。 ^p ・光源計算なし(0)(4) ^ 通常のHGIMGで使われる状態です。光源計算は特に行なわず、 指定された色やテクスチャがポリゴンの表面に貼られます。 ^ ・フラットシェーディング(1)(5) ^ ポリゴンの面単位で光源計算を行ないます。 DirectXか、フルカラーの単色ポリゴン時にのみサポートされます。 ^ ・グーローシェーディング(2)(6) ^ 頂点単位で光源計算を行ないグラデーション処理されます。 DirectX時にのみサポートされます。 ^ ・高機能グーローシェーディング(3)(7) ^ 複数の光源をサポートした高度な光源処理を行ないます。 DirectX時にのみサポートされます。 現時点ではまだサポートされていません。 ^p ^ ・テクスチャなし(単色)ポリゴン ^p | モード | パレット | フルカラー | DirectXフルカラー | ---------------------------------------------------------------- | 0 | × | 光源計算なし | 光源計算なし | | 1 | × | フラット | フラット | | 2 | × | フラット | グーロー | | 3 | × | フラット | 高機能グーロー | ---------------------------------------------------------------- ^p ・テクスチャありポリゴン ^p | モード | パレット | フルカラー | DirectXフルカラー | ---------------------------------------------------------------- | 0 | 光源計算なし | 光源計算なし | 光源計算なし | | 1 | 光源計算なし | 光源計算なし | フラット | | 2 | 光源計算なし | 光源計算なし | グーロー | | 3 | 光源計算なし | 光源計算なし | 高機能グーロー | ---------------------------------------------------------------- ^p %href %index dxfload DXF形式ファイルを読み込み %group 拡張画面制御命令 %prm "filename" "filename" : 読み込むモデルファイル(DXF形式) %inst DXF形式のファイルをモデルデータとして読み込みます。 システム変数statに読み込まれた先のモデルIDが返されます。 DXF形式は、CADやほとんどの3Dツールがサポートしている基本的な 3D形状フォーマットです。テクスチャ情報など高度な情報は反映 されませんが、形状をやり取りすることが可能です。 dxfload命令では、DXF形式の3DFACEというタイプにのみ対応しています。 一部のファイルとは互換がない可能性があります。 %href dxfconv dxfgetpoly %index dxfconv DXF形式ファイルをパース %group 拡張画面制御命令 %prm val val : DXF形式ファイルをバッファに読み込んだ変数名 %inst DXFファイルを読み込む際に使われる命令です。 通常はdxfload命令を使用してください。 これらの命令は、dxfload命令モジュール内で使用されています。 %href dxfload dxfgetpoly %index dxfgetpoly DXF形式のポリゴン数を取得 %group 拡張画面制御命令 %prm val val : 結果が代入される変数名 %inst 変換されたDXFファイルのポリゴン数を取得します。 この命令は、dxfload命令モジュール内で使用されています。 通常は使う必要はありません。 %href dxfconv dxfload %index objscanf2 2D座標からポリゴン検索 %group 拡張画面制御命令 %prm val,fx,fy val : 結果が代入される変数名 (fx,fy) : 画面上の2D座標(float値) %inst 指定した画面上の2D座標に表示されているポリゴンを特定します。 結果は、valで指定した変数に代入されます。 ^ valは、配列変数の情報として以下のものが代入されます。 あらかじめdim命令で必要なサイズ(32)を確保しておく必要があります。 ^p 例: dim scan,32 objscan2 scan,mousex,mousey 代入される情報 val.0 ; Scan ObjID ( -1=情報なし ) val.1 ; Scan ModelID val.2 ; Scan SubModelID val.3 ; Scan NodeID val.4 ; Scan Z-OT val.5 ; Scan Mode (0=2DPoint/1=3DLine) val.6〜val.9 ; Scan Result(float x,y,z,w) (Collision Point) val.10〜val.13 ; Scan target point (float x,y,z,w) val.14〜val.17 ; Scan target vector (float x,y,z,w) ^p %href objscan2 %index objscan2 2D座標からポリゴン検索 %group 拡張画面制御命令 %prm val,x,y val : 結果が代入される変数名 (x,y) : 画面上の2D座標(整数値) %inst 指定した画面上の2D座標に表示されているポリゴンを特定します。 結果は、valで指定した変数に代入されます。 ^ valは、配列変数の情報として以下のものが代入されます。 あらかじめdim命令で必要なサイズ(32)を確保しておく必要があります。 ^p 例: dim scan,32 objscan2 scan,mousex,mousey 代入される情報 val.0 ; Scan ObjID ( -1=情報なし ) val.1 ; Scan ModelID val.2 ; Scan SubModelID val.3 ; Scan NodeID val.4 ; Scan Z-OT val.5 ; Scan Mode (0=2DPoint/1=3DLine) val.6〜val.9 ; Scan Result(float x,y,z,w) (Collision Point) val.10〜val.13 ; Scan target point (float x,y,z,w) val.14〜val.17 ; Scan target vector (float x,y,z,w) ^p %href objscan2f %index mxsave 指定モデルをMX形式で出力 %group 拡張画面制御命令 %prm "file",id "file" : ファイル名(拡張子含む) id : モデルID %inst 指定したモデルIDの情報をMX形式のファイルとして書き出します。 テクスチャがある場合には、あらかじめmxtex命令でテクスチャリストを 指定しておく必要があります。 %href mxtex mxload %index mxtex MX形式出力時のテクスチャリスト登録 %group 拡張画面制御命令 %prm val val : テクスチャリストが格納されている変数 %inst mxsave命令でMX形式のファイル書き出しを行なう場合に、テクスチャ 情報を付加します。 valで指定した文字列型変数に、複数行のテキストデータとして、 テクスチャのファイル名(拡張子なし)を指定することで、MXファイル内に 情報が格納されます。 テクスチャリストは、1行目がテクスチャID0になり、以降1行ごとにIDが 振られていきます。 %href mxsave %index setmchild 階層の子を設定 %group 拡張画面制御命令 %prm model_id,sub_id,id model_id : 設定元モデルID sub_id : 設定元モデルサブID id : 追加モデルID %inst 指定したモデルID、サブIDに子を追加します。 %href setmsibling %index setmsibling 階層の兄弟を設定 %group 拡張画面制御命令 %prm model_id,sub_id,id model_id : 設定元モデルID sub_id : 設定元モデルサブID id : 追加モデルID %inst 指定したモデルID、サブIDに兄弟を追加します。 %href setmchild %index getmchild 指定した階層の子を取得 %group 拡張画面制御命令 %prm val,id,sub_id val : 結果が代入される変数名 id : モデルID sub_id : モデルサブID %inst 指定したモデル階層が持つ、子のサブIDを取得します。 結果は、valで指定した変数に代入されます。 %href getmsibling %index getmsibling 指定した階層の兄弟を取得 %group 拡張画面制御命令 %prm val,id,sub_id val : 結果が代入される変数名 id : モデルID sub_id : モデルサブID %inst 指定したモデル階層が持つ、兄弟のサブIDを取得します。 結果は、valで指定した変数に代入されます。 %href getmchild %index setmfv 階層パラメータを設定 %group 拡張画面制御命令 %prm fv,model_id,sub_id,type fv : FV値が代入されている変数名 model_id : モデルID sub_id : モデルサブID type : タイプID %inst 指定した階層にFV値を設定します。 タイプIDで指定できるものは以下の通りです。 ^p タイプID | ------------------------------------------- 0 | 階層の移動(trans) 1 | 階層の角度(angle) 2 | 階層のスケール(scale) ^p %href getmfv %index getmfv 階層パラメータを取得 %group 拡張画面制御命令 %prm fv,model_id,sub_id,type fv : FV値が代入される変数名 model_id : モデルID sub_id : モデルサブID type : タイプID %inst 指定した階層のFV値を取得します。 タイプIDで指定できるものは以下の通りです。 ^p タイプID | ------------------------------------------- 0 | 階層の移動(trans) 1 | 階層の角度(angle) 2 | 階層のスケール(scale) ^p %href setmfv %index getmodel モデル情報を読み出し %group 拡張画面制御命令 %prm val,model_id,sub_id val : 情報が代入される変数名 model_id : モデルID sub_id : モデルサブID %inst モデル情報の読み出しを行ないます。 valで指定された変数に、指定モデルID、サブIDの情報が代入されます。 変数に代入される値は、以下のC構造体のイメージがコピーされます。 これらのデータの中には、通常HSPで内容を書き換えたり参照することが難しいものも含まれています。 イメージ全体として読み書きを行なうような場合に使用されるもので、通常は使用されません。 ^p // シーンモデル情報 typedef struct { VECTOR pos; // local Position VECTOR ang; // local Angle VECTOR scale; // local Scale short id; // Model ID short opt; // option (no use) short num; // num of NODE short nummax; // Maximum num of NODE(0=none) PNODE **node; // Node ptr void *sibling; // Sibling Object void *child; // Child Object float bound; // Bounding Box Max Length short aindex; // Animation Max Index ( 0 = No Anim) short anum; // Animation Frame Max ( 0 = No Anim ) ANMINF *ani; // Animation Data Array (option) short anifr[16]; // Animation Frame Start Index (option) short animax[16]; // Animation Frame Max Index (option) } MODEL; ^p %href putmodel %index putmodel モデル情報を書き出し %group 拡張画面制御命令 %prm val,model_id,sub_id val : 情報が代入されている変数名 model_id : モデルID sub_id : モデルサブID %inst モデル情報の書き出しを行ないます。 valで指定された変数の内容が、指定モデルID、サブIDの情報として登録されます。 変数に代入される値は、以下のC構造体のイメージのコピーです。 これらのデータの中には、通常HSPで内容を書き換えたり参照することが難しいものも含まれています。 getmodel命令と組み合わせて、イメージ全体として読み書きを行なうような場合に使用されるもので、通常は使用されません。 ^p // シーンモデル情報 typedef struct { VECTOR pos; // local Position VECTOR ang; // local Angle VECTOR scale; // local Scale short id; // Model ID short opt; // option (no use) short num; // num of NODE short nummax; // Maximum num of NODE(0=none) PNODE **node; // Node ptr void *sibling; // Sibling Object void *child; // Child Object float bound; // Bounding Box Max Length short aindex; // Animation Max Index ( 0 = No Anim) short anum; // Animation Frame Max ( 0 = No Anim ) ANMINF *ani; // Animation Data Array (option) short anifr[16]; // Animation Frame Start Index (option) short animax[16]; // Animation Frame Max Index (option) } MODEL; ^p %href getmodel %index dupnode ノード情報へのクローンを作成 %group 拡張画面制御命令 %prm val,ID,subID,nodeID val : クローンを作成する変数名 modelID : モデルID subID : モデルサブID nodeID : ノードID %inst 指定されたノード情報を参照する変数のクローンを作成します。 3Dのノードは、Cの構造体で以下の内容が格納されています。 これらのデータの中には、通常HSPで内容を書き換えたり参照することが難しいものも含まれています。 特殊な用途のためデータ参照に使われるもので、通常は使用する必要はありません。 ^p // 3Dノード情報 typedef struct { short code; // primitive code short attr; // attribute code (material) int color; // color data short tex; // TexID short num; // num of VECTOR VECTOR *fv; // XYZ Vertices VECTOR *fn; // XYZ Normals short num2; // num of UV IAXIS *uv; // UV Vertices void *exdata; // Extra data field (option) } PNODE; ^p %href getmodel putmodel %index gettree 指定モデル階層構造をテキストで取得 %group 拡張画面制御命令 %prm val,id val : 情報が代入される変数名 id : モデルID %inst 指定されたモデルIDが持つ階層構造の情報を複数行テキストの形で取得します。 valで文字列型の変数を指定することで、idのモデル情報が代入されます。 取得されたテキストは、関連モデルのサブIDが行ごとに示され、深い階層に なるほど行頭にスペースが挿入されます。これにより、子供のモデルか、兄弟の モデルであることを知ることができます。 %href setmfv getmfv getmchild getmsibling setmchild setmsibling %sample mxload s1 ; モデルファイル読み込み model = stat ; (変数statにモデルIDが返される) sdim mdltree,256 gettree mdltree,model mes mdltree ; 取得例: ; (1) ; (2) ; (3) ; (4) %index hgreset シーン情報の初期化 %group 拡張画面制御命令 %prm %inst シーンの情報の初期化を行ないます。 すべてのモデル、オブジェクト、テクスチャなどの情報は破棄され、 まったく新しいシーンの状態に戻します。 %href hgini %index setmuv UV情報の設定 %group 拡張画面制御命令 %prm val,model_id,node_id val : 情報が代入されている変数名 model_id : モデルID node_id : ノードID %inst ポリゴン単位のUV値を設定します。 model_idで指定されたモデル内の、node_idで指定されたポリゴンが 持つUV値をvalで指定された変数のものに設定します。 ポリゴンは4角形の情報が保存されています。valは、配列変数に 格納された整数値で、以下のように設定されます。 ^p val.0 , val.1 UV0 val.2 , val.3 UV1 val.4 , val.5 UV2 val.6 , val.7 UV3 ^p %href getmuv %index getmuv UV情報の取得 %group 拡張画面制御命令 %prm val,model_id,node_id val : 情報が代入される変数名 model_id : モデルID node_id : ノードID %inst ポリゴン単位のUV値を取得します。 model_idで指定されたモデル内の、node_idで指定されたポリゴンが 持つUV値をvalで指定された変数に読み出します。 ポリゴンは4角形の情報が保存されています。valは、配列変数に 格納された整数値で、以下のように設定されます。 ^p val.0 , val.1 UV0 val.2 , val.3 UV1 val.4 , val.5 UV2 val.6 , val.7 UV3 ^p %href setmuv %index nodemax ノード情報の数を取得 %group 拡張画面制御命令 %prm val,model_id,sub_id val : 情報が代入される変数名 model_id : モデルID sub_id : モデルサブID %inst 指定されたモデルが持つノード数を取得します。 モデルが持つノードIDは、0〜(ノード数-1)になります。 %href dupnode %index setmpoly ポリゴン頂点情報の設定 %group 拡張画面制御命令 %prm val,id,node_id,mode val : 頂点情報が代入されている変数名 model_id : モデルID node_id : ノードID mode : 頂点の種類(0=座標/1=法線) %inst ポリゴン単位の頂点情報を設定します。 model_idで指定されたモデル内の、node_idで指定されたポリゴンが 持つ頂点情報をvalで指定された変数値で書き込みます。 変数valは、浮動小数値が格納される配列変数となります。 ^p val.0 , val.1 , val.2 , val.3 頂点1(X,Y,Z,W) val.4 , val.5 , val.6 , val.7 頂点2(X,Y,Z,W) val.8 , val.9 , val.10, val.11 頂点3(X,Y,Z,W) val.12, val.13, val.14, val.15 頂点4(X,Y,Z,W) ^p modeで、頂点の種類(0=座標/1=法線)を指定することが可能です。 %href getmpoly %index getmpoly ポリゴン頂点情報の取得 %group 拡張画面制御命令 %prm val,id,node_id,mode val : 頂点情報が代入される変数名 model_id : モデルID node_id : ノードID mode : 頂点の種類(0=座標/1=法線) %inst ポリゴン単位の頂点情報を取得します。 model_idで指定されたモデル内の、node_idで指定されたポリゴンが 持つ頂点情報をvalで指定された変数に読み出します。 変数valは、浮動小数値が格納される配列変数となります。 ^p val.0 , val.1 , val.2 , val.3 頂点1(X,Y,Z,W) val.4 , val.5 , val.6 , val.7 頂点2(X,Y,Z,W) val.8 , val.9 , val.10, val.11 頂点3(X,Y,Z,W) val.12, val.13, val.14, val.15 頂点4(X,Y,Z,W) ^p modeで、頂点の種類(0=座標/1=法線)を指定することが可能です。 %href setmpoly