; ; HSP help manager用 HELPソースファイル ; (先頭が「;」の行はコメントとして処理されます) ; %type 拡張命令 %ver 3.0 %note hgimg3.asをインクルードすること。 %date 2005/02/25 %author onitama %dll hgimg3 %url http://www.onionsoft.net/ %index fvseti 整数値からベクトル設定 %group 拡張画面制御命令 %prm fv,x,y,z fv = FV値が代入される変数名 (x,y,z) = 整数値 %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) = 計算値(実数値) %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) = 計算値(実数値) %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) = 計算値(実数値) %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) = 計算値(実数値) %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) = 計算値(実数値) %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) = 回転角度(実数値) %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座標値(実数値) %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) = 比較値(実数値) %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) = 比較値(実数値) %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) = 演算するベクトル値(実数値) %inst fvで指定された変数に格納されているFV値と、 小数値(X,Y,Z)で指定するベクトルの外積を求めて代入します。 %href fvseti fvset fvinner %index fvinner ベクトル内積 %group 拡張画面制御命令 %prm fv,x,y,z fv = FV値が代入されている変数名 (x,y,z) = 演算するベクトル値(実数値) %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 = 実数値が代入される変数名 frot = 回転角度(ラジアン) %inst frotで指定された角度のサイン値をfvalで指定した変数に代入します。 角度の単位はラジアン(2π=360度)になります。 %href fcos fsqr froti %index fcos コサインを求める %group 拡張画面制御命令 %prm fval,frot fval = 実数値が代入される変数名 frot = 回転角度(ラジアン) %inst frotで指定された角度のコサイン値をfvalで指定した変数に代入します。 角度の単位はラジアン(2π=360度)になります。 %href fsin fsqr froti %index fsqr 平方根を求める %group 拡張画面制御命令 %prm fval,fprm fval = 実数値が代入される変数名 fprm = 演算に使われる値(実数) %inst fprmで指定された値の平方根をfvalで指定した変数に代入します。 %href fsin fcos froti %index str2fv 文字列をベクトルに変換 %group 拡張画面制御命令 %prm fv,"x,y,z" fv = FV値が代入される変数名 "x,y,z" = 「,」で区切られた実数値が格納された文字列 %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 = 実数値が代入される変数名 "fval" = 実数値が格納された文字列 %inst "fval"で指定された文字列情報を小数値として読み出し、 fvalで指定された変数に格納します。 %href fv2str str2fv f2str f2i %index f2str 小数値を文字列に変換 %group 拡張画面制御命令 %prm sval,fval sval = 文字列が代入される変数名 fval = 変換元の実数値 %inst fvalで指定された小数値を文字列に変換して、valで指定された文字列型の変数に 結果を返します。 %href fv2str str2fv str2f f2i %index hgini プラグインの初期化 %group 拡張画面制御命令 %prm yofs,ysize yofs : 有効スクリーン範囲を縦に+yofsだけずらす ysize : 有効スクリーン範囲を縦にysizeとする %inst HGIMG3の初期化を行ないます。 最初に必ず初期化をしてからHGIMG3の各命令を使用しなければなりません。 hgini命令が実行された時点での描画先(ウィンドウID)が表示先として登録されます。 またその時点での画面初期化モード(ウィンドウモードかフルスクリーンモードか)によって、 HGIMG3の描画モードも合わせて設定されます。 yofs,ysizeの指定が省略されるか0の場合はウィンドウ全体が描画対象になります。 %href hgbye hgreset %index hgreset シーン情報の初期化 %group 拡張画面制御命令 %prm %inst シーンの情報の初期化を行ないます。 すべてのモデル、オブジェクト、テクスチャ、イベントリストの情報は破棄され、 まったく新しいシーンの状態に戻します。 %href hgini hgbye %index hgbye プラグインの解放 %group 拡張画面制御命令 %prm %inst HGIMG3の解放を行ないます。 プログラムの終了時に自動的に実行されるので、通常は明示する必要はありません。 %href hgini %index hgdraw 描画の実行 %group 拡張画面制御命令 %prm %inst オブジェクトの全描画処理を実行します。 %href hgini hgsync %index hgsync 時間待ちを行なう %group 拡張画面制御命令 %prm val val : 待ち時間 %inst valで指定した時間(ms)だけウェイトを取ります。 hgsyncは、必ずhgdrawと対にして使用する必要があります。 先にhgdraw命令で描画を行ない、最後にhgsyncで待ち時間を入れるようにしてください。 %href getsync hgdraw %index hgsetreq システムリクエスト設定 %group 拡張画面制御命令 %prm type,val type : 設定タイプ(SYSREQ_???) val : 設定する値 %inst HGIMG3に対して様々なシステム設定を行ないます。 type値で指定できるのは以下のシンボルです。 ^p シンボル名 内容 ----------------------------------------------- SYSREQ_MAXMODEL モデル最大数 SYSREQ_MAXOBJ オブジェクト最大数 SYSREQ_MAXTEX テクスチャ最大数 SYSREQ_DXMODE フルスクリーンモードスイッチ SYSREQ_DXHWND ウィンドウハンドル(参照のみ) SYSREQ_DXWIDTH フルスクリーンモード時の横サイズ SYSREQ_DXHEIGHT フルスクリーンモード時の縦サイズ SYSREQ_COLORKEY テクスチャ登録時の透明色コード SYSREQ_RESVMODE エラー発生時の原因コード(参照のみ) SYSREQ_MAXEVENT イベント最大数 ^p %href hgini hggetreq %sample ; 透明抜き色をRGB=($00,$ff,$ff)とする ; (texload命令の直前に使用可能) hgsetreq SYSREQ_COLORKEY, $00ffff %index hggetreq システムリクエスト取得 %group 拡張画面制御命令 %prm val,type val : 結果が代入される変数名 type : 設定タイプ(SYSREQ_???) %inst HGIMG3のシステム設定値を取り出してvalで指定した変数に代入します。 type値で指定できるのは以下のシンボルです。 ^p シンボル名 内容 ----------------------------------------------- SYSREQ_MAXMODEL モデル最大数 SYSREQ_MAXOBJ オブジェクト最大数 SYSREQ_MAXTEX テクスチャ最大数 SYSREQ_DXMODE フルスクリーンモードスイッチ SYSREQ_DXHWND ウィンドウハンドル(参照のみ) SYSREQ_DXWIDTH フルスクリーンモード時の横サイズ SYSREQ_DXHEIGHT フルスクリーンモード時の縦サイズ SYSREQ_COLORKEY テクスチャ登録時の透明色コード SYSREQ_RESVMODE エラー発生時の原因コード(参照のみ) SYSREQ_MAXEVENT イベント最大数 ^p %href hgini hgsetreq %index hgrect 矩形の直接描画 %group 拡張画面制御命令 %prm p1,p2,p3,p4,p5,p6 p1=0〜(0) : 矩形の中心X座標 p2=0〜(0) : 矩形の中心Y座標 p3=0〜(0.0): 回転角度(単位はラジアン) p4=0〜(?) : Xサイズ p5=0〜(?) : Yサイズ %inst (p1,p2)で指定した座標を中心として、(p4,p5)で指定したサイズの矩形(長方形)を現在設定されている色で描画します。 p3で回転角度を実数で指定することができます。 角度の単位は、ラジアン(0から始まって、2πで一周)となります。 grect命令は、gmodeで設定されたコピーモードの指定が反映されます。 ^ gmodeが0,1の場合は、通常の塗りつぶし。 gmodeが3の場合は、指定されたレートで半透明になります。 gmodeが5,6の場合は、それぞれ色加算、色減算処理となります。 また、(p4,p5)のサイズ指定を省略した場合には、gmode命令で設定されている コピーサイズが使用されます。 ^ hgrect命令は、標準命令のgrect命令と同じ動作をHGIMG3の画面に対して行ないます。 この命令は、直接描画命令です。命令の実行とともに描画が実行されます。 必ず、hgdrawとhgsyncの間に直接描画を行なう必要があります。 %href hgline hgrotate %index hgrotate 矩形画像の直接描画 %group 拡張画面制御命令 %prm p1,p2,p3,p4,p5,p6 p1=0〜(0) : テクスチャID p2=0〜(0) : コピー元の左上X座標 p3=0〜(0) : コピー元の左上Y座標 p4=0〜(0.0): 回転角度(単位はラジアン) p5=0〜(?) : Xサイズ p6=0〜(?) : Yサイズ %inst hgrotate命令は、指定された矩形範囲に回転を含めたテクスチャ描画処理を行ないます。 p1で、コピー元のテクスチャIDを指定、(p2,p3)でコピーされる元の画像 にあたる座標を指定します。(gcopy命令と同様です) コピー先は、現在の描画先に指定されているウィンドウIDで、 pos命令で設定された場所を中心とした座標にコピーを行ないます。 その際に、p3で回転角度を実数で指定することができます。 角度の単位は、ラジアン(0から始まって、2πで一周)となります。 (p5,p6)で、コピーされた後のX,Yサイズを指定します。 また、コピー元のX,Yサイズはgmode命令で設定されたデフォルトの コピーサイズが使用されます。 つまり、gmode命令で指定されたサイズよりも大きなサイズを(p5,p6) で指定した場合には、拡大されることになります。 (p5,p6)を省略した場合には、コピー元と同じサイズ、つまり等倍で コピーが行なわれます。 ^ hgrotate命令は、gmodeで設定されたコピーモードの指定が反映されます。 (詳しくはgmode命令のリファレンスを参照) ^ hgrotate命令は、標準命令のgrotate命令と同じ動作をHGIMG3の画面に対して行ないます。 この命令は、直接描画命令です。命令の実行とともに描画が実行されます。 必ず、hgdrawとhgsyncの間に直接描画を行なう必要があります。 %href hgline hgrect %index hgline 直線の直接描画 %group 拡張画面制御命令 %prm p1,p2,p3,p4 p1=0〜(0) : 開始X座標 p2=0〜(0) : 開始Y座標 p3=0〜(?) : 終了X座標 p4=0〜(?) : 終了Y座標 %inst (p1,p2)で指定した座標から(p3,p4)で指定した座標を結ぶ線を現在設定されている色で描画します。 hgline命令は、gmodeで設定されたコピーモードの指定が反映されます。 ^ gmodeが0,1の場合は、通常の塗りつぶし。 gmodeが3の場合は、指定されたレートで半透明になります。 gmodeが5,6の場合は、それぞれ色加算、色減算処理となります。 ^ hgline命令は、標準命令のline命令と同じ動作をHGIMG3の画面に対して行ないます。 この命令は、直接描画命令です。命令の実行とともに描画が実行されます。 必ず、hgdrawとhgsyncの間に直接描画を行なう必要があります。 %href hgrotate hgrect %index settex テクスチャを登録 %group 拡張画面制御命令 %prm x,y,sw,mode (x,y) : テクスチャ登録サイズ sw(0) : テクスチャ登録スイッチ(0=通常/1=Y反転) mode(-1) : 更新モード指定(-1=新規) %inst 現在選択されているウィンドウIDの内容をテクスチャとして登録します。 テクスチャの登録に成功すると、システム変数statにテクスチャIDが代入されます。 失敗した場合はシステム変数statがマイナス値になります。 ^ swの値が1の場合は、イメージの上下を反転してテクスチャ登録を行ないます。 mode値が-1または省略された場合は、通常の登録処理が行なわれ、 mode値にすでに登録されたテクスチャIDを指定すると、 同じIDのテクスチャを現在のウィンドウ内容で更新します。 ^ 通常は、texload命令、texload2命令によってファイルから テクスチャを読み込むようにしてください。 %href texload texload2 %index texload テクスチャをファイルから登録 %group 拡張画面制御命令 %prm "filename" "filename" : 登録するテクスチャの画像ファイル %inst 画像ファイル"filename"の内容をテクスチャとして登録します。 画像は、picload命令で使用可能なフォーマットと同じもの(BMP,JPG,GIF)が利用可能です。 テクスチャの登録が終了すると、システム変数statにテクスチャIDが代入されます。 失敗した場合はエラーダイアログが表示されます。 ^ texload命令は、2の乗数(2,4,8,16…)サイズでないテクスチャは自動的に適正なサイズに補正します。 ビデオカードがテクスチャの色モードやサイズに対応していない場合には、 ファイルが存在する場合でもエラーになることがあるので注意してください。 また、アルファチャンネルを含むテクスチャを読み込む場合は、texload2命令を使用してください。 ^ この命令は、hgimg3.as内のモジュールとして実装されています。 %href settex texload2 %index texload2 テクスチャをファイルから登録 %group 拡張画面制御命令 %prm "filename",sx,sy "filename" : 登録するテクスチャの画像ファイル sx,sy : 基準となるテクスチャサイズ %inst 画像ファイル"filename"の内容をテクスチャとして登録します。 texload命令と同じ動作を行ないますが、DirectXのAPIを使用して読み込みが行なわれます。 使用可能なフォーマットは、BMP,JPG,GIF,PNG,DDS,TGA,TIFFなどです。 テクスチャの登録が終了すると、システム変数statにテクスチャIDが代入されます。 失敗した場合はシステム変数statにマイナス値が代入されます。 ^ DDSやTGAファイルなどアルファチャンネルを含む画像データは、 texload2命令で読み込むことで有効になります。 ただし、texload2命令はビデオカードのスペックに合わせて 画像サイズを最適なサイズに拡大縮小を行なうことがあります。 必要に応じてtexload、texload2命令を使い分けるようにしてください。 ^ sx,syでテクスチャサイズを強制的に指定することが可能です。 通常は、指定を省略していて問題ありません。 %href settex texload %index loadtoon トゥーンテクスチャをファイルから登録 %group 拡張画面制御命令 %prm p1,"filename" p1 : モデルID "filename" : 登録するテクスチャの画像ファイル %inst p1で指定したモデルに対してトゥーンシェーディングのモードを設定し、 色の情報を持つテクスチャファイルを読み込みます。 ^ あらかじめ、addxfile命令によりX形式の3Dモデルが読み込まれている必要があります。 トゥーンシェーディングを設定する場合には、あらかじめトゥーンテクスチャと呼ばれる 色情報を持った画像データを作成しておかなければなりません。 (トゥーンテクスチャは、maketoon命令によって作成することが可能です。) %href maketoon %index maketoon トゥーンテクスチャを作成 %group 拡張画面制御命令 %prm p1,p2 p1 : モデルID p2(0) : 作成モード %inst p1で指定したモデルの情報をもとにトゥーンテクスチャの作成を行ないます。 p2で、作成モードを指定することができます。 ^p 作成モード 内容 -------------------------------------------------------------- 1 作成されたトゥーンテクスチャをモデルに適用する 2 作成されたトゥーンテクスチャをファイルにセーブする ^p maketoon命令は、モデルの持つマテリアル色を抽出し、標準的なトゥーンテクスチャを作成します。 作成モードに2を指定した場合は、「toon.bmp」という名前でトゥーンテクスチャを保存します。 保存されたトゥーンテクスチャは、loadtoon命令で読み込んで使用することが可能なほか、 画像を編集することにより、より細かいトゥーンシェーディングの表現を行なうことが可能になります。 %href loadtoon %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 falpha フォント文字α値を設定 %group 拡張画面制御命令 %prm val val : フォント表示に使用するα合成値 %inst fprt命令によるフォント表示で使用されるα合成値を指定します。 以降すべてのfprt命令に適用されます。 α値についての詳細は以下の通りです。 ^p α合成値 = 0〜255 : 背景とα合成(blend)を行なう α合成値 = 256〜511 : 合成を行なわない(通常時) α合成値 = 512〜767 : 背景と色加算(modulate)を行なう α合成値 = 768〜1023 : 背景と色減算(substract)を行なう ^p %href %index setsizef 登録モデルの幅、高さを指定 %group 拡張画面制御命令 %prm fsx,fsy (fsx,fsy) : X,Yサイズ(実数値) %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 clscolor 背景色設定 %group 拡張画面制御命令 %prm color color : カラーコード %inst 単色で塗りつぶす背景色を設定します。 colorに-1を指定した場合は、背景クリアを行ないません。 colorはRGBコード($rrggbb)となります。 %href clstex clsblur %index clstex 背景テクスチャ設定 %group 拡張画面制御命令 %prm id id : テクスチャID %inst 背景となるテクスチャのIDを指定します。 idに-1を指定した場合は、背景にテクスチャを使わなくなります。 %href clscolor clsblur texload %index clsblur ブラー設定 %group 拡張画面制御命令 %prm val val : 強度(0〜255) %inst 擬似ブラー効果を設定します。 valで設定した強度の値が小さいほど、画面に前のフレームが残像として 残ります。 %href clscolor clstex %index texmake メッセージテクスチャの作成 %group 拡張画面制御命令 %prm p1,p2,p3 p1(256) : テクスチャXサイズ p2(256) : テクスチャYサイズ p3(0) : 作成モード %inst メッセージ描画用テクスチャの作成を行ないます。 このテクスチャは、texmes命令のメッセージ描画先として使用することができます。 ^ テクスチャの登録が終了すると、システム変数statにテクスチャIDが代入されます。 失敗した場合はシステム変数statにマイナス値が代入されます。 ^ 作成モードが0の場合は、16bitテクスチャ(A4R4G4B4)が作成されます。 0以外の時は、32bitテクスチャ(A8R8G8B8)となります。 デフォルトでは、16bitテクスチャが作成されます。 メッセージを扱う場合は、16bitテクスチャの方が速度的にも互換性の上でも有利になります。 より高精度なメッセージ描画を行なう場合には、32bitテクスチャを指定してください。 %href texcls texmes %index texcls メッセージテクスチャのクリア %group 拡張画面制御命令 %prm p1,p2 p1 : テクスチャID p2(0) : カラーコード %inst メッセージ描画用テクスチャの内容をクリア(消去)します。 p2で、単色で塗りつぶすための背景色を設定します。 p2はRGBコード($rrggbb)となります。 %href texmake texmes %index texmes メッセージテクスチャへの描画 %group 拡張画面制御命令 %prm "message",p1,p2,p3 "message" : メッセージ文字列 p1 : テクスチャID p2,p3 : 描画先座標 %inst メッセージ描画用テクスチャにメッセージを書き込みます。 "message"に描画したい文字列を指定することで、p1のテクスチャに書き込みを行ないます。 あらかじめ、texmake命令によりメッセージ描画用テクスチャを作成しておく必要があるので注意してください。 ^ texmes命令は、アンチエイリアスを行なった文字をテクスチャに対して書き込みます。 描画される文字フォントや色は、font命令、color命令で指定されているものが使われます。 texmes命令は、テクスチャに対して文字列を描画するだけなので、 実際に文字列を表示するためには、テクスチャをhgrotate命令やスプライトなどで表示する必要があります。 %href color font texmake texcls %index texdel テクスチャの削除 %group 拡張画面制御命令 %prm p1 p1 : テクスチャID %inst p1で指定されたテクスチャを削除します。 削除されたテクスチャは、VRAM上から破棄され新しく入れ替えることができるようになります。 %href texmake texload texload2 %index setuv 登録テクスチャUV座標を指定 %group 拡張画面制御命令 %prm tx0,ty0,tx1,ty1 (tx0,ty0) : テクスチャの左上座標 (tx1,ty1) : テクスチャの右下座標 %inst モデル登録の際に使用されるUV値を指定します。 %href addspr addplate addbox %index addspr 2Dスプライトモデルを作成 %group 拡張画面制御命令 %prm var,mode,x1,y1,x2,y2,texid var : 作成されたモデルIDが代入される変数名 mode : 0=透明色抜きなし / 1=透明色抜きあり (x1,y1) : テクスチャの左上座標 (x2,y2) : テクスチャの右下座標 texid : テクスチャのID %inst 2Dスプライトモデルを作成します。 正常にモデルが作成されると、varで指定した変数にモデルIDが代入されます。 texidが指定されている場合は、それをテクスチャIDとして参照します。 texidが省略された場合は、次に登録されるテクスチャが参照されます。 (x1,y1)-(x2,y2)で参照されるテクスチャの座標を設定することができます。 (x1,y1)-(x2,y2)の指定を省略した場合には、setuvで指定された値が適用されます。 %href setuv %index regobj オブジェクトの登録 %group 拡張画面制御命令 %prm var,ModelID, mode var : 作成されたオブジェクト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 addplate 板(PLATE)モデルを作成 %group 拡張画面制御命令 %prm var,mode,sx,sy,x1,y1,x2,y2,texid var : 作成されたモデルIDが代入される変数名 mode : 0=透明色抜きなし / 1=透明色抜きあり (sx,sy) : X,Yサイズ (x1,y1) : テクスチャの左上座標 (x2,y2) : テクスチャの右下座標 texid : テクスチャID %inst 3Dの板(PLATE)モデルを作成します。 正常にモデルが作成されると、varで指定した変数にモデルIDが代入されます。 PLATEモデルは、単色またはテクスチャで描画され3D上に配置される四角形です。 setcolor命令で色が設定されている時は、単色の板になります。 texidが指定されている場合は、それをテクスチャIDとして参照します。 texidが省略された場合は、次に登録されるテクスチャが参照されます。 (sx,sy)で板のX,Yサイズを設定します。省略された場合は、setsizefで指定された値が適用されます。 (x1,y1)-(x2,y2)で参照されるテクスチャの座標を設定することができます。 (x1,y1)-(x2,y2)の指定を省略した場合には、setuvで指定された値が適用されます。 %href setcolor setsizef setuv %index setcolor 単色ポリゴン作成設定 %group 拡張画面制御命令 %prm r,g,b r,g,b : RGB色情報(それぞれ0〜255) %inst モデルの作成を行なう際のポリゴン色を設定します。 addplate,addbox命令などで単色ポリゴンを作成する場合に使用します。 %href addplate addbox %index addbox 箱(BOX)モデルを作成 %group 拡張画面制御命令 %prm var,sx,sy var : 作成されたモデルIDが代入される変数名 (sx,sy) : X,Yサイズ %inst 箱(BOX)モデルを作成します。 正常にモデルが作成されると、varで指定した変数にモデルIDが代入されます。 BOXモデルは、単色またはテクスチャで描画され3D上に配置される立方体です。 setcolor命令で色が設定されている時は、単色の箱になります。 setuvでUVが設定されている時は、次に登録されるテクスチャを参照します。 (sx,sy)で板のX,Yサイズを設定します。省略された場合は、setsizefで指定された値が適用されます。 %href setsizef setcolor setuv %index addmesh 板(MESH)モデルを作成 %group 拡張画面制御命令 %prm var,divx,divy,mode,sx,sy var : 作成されたモデルIDが代入される変数名 divx : メッシュの分割数X divy : メッシュの分割数Y mode : 0=透明色抜きなし / 1=透明色抜きあり / 16=繰り返し (sx,sy) : X,Yサイズ %inst 分割された3Dポリゴンを使った板(MESH)を作成します。 正常にモデルが作成されると、varで指定した変数にモデルIDが代入されます。 BOXモデルは、テクスチャで描画され3D上に配置される分割メッシュです。 setuvでUVが設定されている時は、次に登録されるテクスチャを参照します。 (sx,sy)で板のX,Yサイズを設定します。省略された場合は、setsizefで指定された値が適用されます。 ^ 基本的にaddplateで作られる板と見た目は同じですが、 divsizex × divsizeyのポリゴンに分割されています。 modeが16の場合は、指定されたテクスチャを1ポリゴンごとに割り付ける繰り返しモードとなります。 %href setsizef setuv %index addbg 2DBGマップモデルを作成 %group 拡張画面制御命令 %prm val,winsizex,winsizey val : 作成されたモデルIDが代入される変数名 winsizex : ウィンドウに表示するチップの数X winsizey : ウィンドウに表示するチップの数Y %inst 2DBGマップモデルを作成します。 %href setsizef setuv setbg %index setpos posグループ情報を設定 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 設定する値 (デフォルト=0) %inst オブジェクトの持つパラメーターを設定します。 posグループ(表示座標)に(x,y,z)で指定された値を設定します。 (x,y,z)には、実数または整数値を指定することができます。 %href setang setangr setscale setdir setefx setwork %index setang angグループ情報を設定 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 設定する値 (デフォルト=0) %inst オブジェクトの持つパラメーターを設定します。 angグループ(表示角度)に(x,y,z)で指定された値を設定します。 (x,y,z)には、実数または整数値を指定することができます。 角度の単位はラジアンになります。 整数で角度を設定するためのsetangr命令も用意されています。 %href setpos setangr setscale setdir setefx setwork %index setangr angグループ情報を設定 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 設定する値 (デフォルト=0) %inst オブジェクトの持つパラメーターを設定します。 angグループ(表示角度)に(x,y,z)で指定された値を設定します。 (x,y,z)には、実数または整数値を指定することができます。 角度の単位は整数で0〜255で一周する値を使用します。 ラジアンで角度を設定するためのsetang命令も用意されています。 %href setpos setang setscale setdir setefx setwork %index setscale scaleグループ情報を設定 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 設定する値 (デフォルト=0) %inst オブジェクトの持つパラメーターを設定します。 scaleグループ(表示倍率)に(x,y,z)で指定された値を設定します。 (x,y,z)には、実数または整数値を指定することができます。 %href setpos setang setangr setdir setefx setwork %index setdir dirグループ情報を設定 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 設定する値 (デフォルト=0) %inst オブジェクトの持つパラメーターを設定します。 dirグループ(移動ベクトル)に(x,y,z)で指定された値を設定します。 (x,y,z)には、実数または整数値を指定することができます。 %href setpos setang setangr setscale setefx setwork %index setefx efxグループ情報を設定 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 設定する値 (デフォルト=0) %inst オブジェクトの持つパラメーターを設定します。 efxグループ(特殊効果設定)に(x,y,z)で指定された値を設定します。 (x,y,z)には、実数または整数値を指定することができます。 %href setpos setang setangr setscale setdir setwork %index setwork workグループ情報を設定 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 設定する値 (デフォルト=0) %inst オブジェクトの持つパラメーターを設定します。 workグループ(ワーク値)に(x,y,z)で指定された値を設定します。 (x,y,z)には、実数または整数値を指定することができます。 %href setpos setang setangr setscale setdir setefx %index addpos posグループ情報を加算 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 加算する値 (デフォルト=0) %inst オブジェクトの持つパラメーターを設定します。 posグループ(表示座標)に(x,y,z)で指定された値を設定します。 (x,y,z)には、実数または整数値を指定することができます。 %href addang addangr addscale adddir addefx addwork %index addang angグループ情報を加算 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 加算する値 (デフォルト=0) %inst オブジェクトの持つパラメーターを設定します。 angグループ(表示角度)に(x,y,z)で指定された値を加算します。 (x,y,z)には、実数または整数値を指定することができます。 角度の単位はラジアンになります。 整数で角度を設定するためのsetangr命令も用意されています。 %href addpos addangr addscale adddir addefx addwork %index addangr angグループ情報を加算 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 加算する値 (デフォルト=0) %inst オブジェクトの持つパラメーターを設定します。 angグループ(表示角度)に(x,y,z)で指定された値を加算します。 (x,y,z)には、実数または整数値を指定することができます。 角度の単位は整数で0〜255で一周する値を使用します。 ラジアンで角度を設定するためのsetang命令も用意されています。 %href addpos addang addscale adddir addefx addwork %index addscale scaleグループ情報を加算 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 加算する値 (デフォルト=0) %inst オブジェクトの持つパラメーターを設定します。 scaleグループ(表示倍率)に(x,y,z)で指定された値を加算します。 (x,y,z)には、実数または整数値を指定することができます。 %href addpos addang addangr adddir addefx addwork %index adddir dirグループ情報を加算 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 加算する値 (デフォルト=0) %inst オブジェクトの持つパラメーターを設定します。 dirグループ(移動ベクトル)に(x,y,z)で指定された値を加算します。 (x,y,z)には、実数または整数値を指定することができます。 %href addpos addang addangr addscale addefx addwork %index addefx efxグループ情報を加算 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 加算する値 (デフォルト=0) %inst オブジェクトの持つパラメーターを設定します。 efxグループ(特殊効果設定)に(x,y,z)で指定された値を加算します。 (x,y,z)には、実数または整数値を指定することができます。 %href addpos addang addangr addscale adddir addwork %index addwork workグループ情報を加算 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 加算する値 (デフォルト=0) %inst オブジェクトの持つパラメーターを設定します。 workグループ(ワーク値)に(x,y,z)で指定された値を加算します。 (x,y,z)には、実数または整数値を指定することができます。 %href addpos addang addangr addscale adddir addefx %index getpos posグループ情報を取得 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 取得する変数 %inst オブジェクトの持つパラメーターを取得します。 posグループ(表示座標)の内容が(x,y,z)で指定された変数に代入されます。 (x,y,z)は、実数型の変数として設定されます。 命令の最後に「i」を付加することで、整数値として値を取得することができます。 %href getposi getang getangr getscale getdir getefx getwork %index getang angグループ情報を取得 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 取得する変数 %inst オブジェクトの持つパラメーターを取得します。 angグループ(表示角度)の内容が(x,y,z)で指定された変数に代入されます。 (x,y,z)は、実数型の変数として設定されます。 命令の最後に「i」を付加することで、整数値として値を取得することができます。 %href getangi getpos getangr getscale getdir getefx getwork %index getangr angグループ情報を取得 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 取得する変数 %inst オブジェクトの持つパラメーターを取得します。 angグループ(表示角度)の内容が(x,y,z)で指定された変数に代入されます。 (x,y,z)は、整数型の変数として設定されます。 角度の単位は整数で0〜255で一周する値を使用します。 %href getpos getang getscale getdir getefx getwork %index getscale scaleグループ情報を取得 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 取得する変数 %inst オブジェクトの持つパラメーターを取得します。 scaleグループ(表示倍率)の内容が(x,y,z)で指定された変数に代入されますます。 (x,y,z)は、実数型の変数として設定されます。 命令の最後に「i」を付加することで、整数値として値を取得することができます。 %href getscalei getpos getang getangr getdir getefx getwork %index getdir dirグループ情報を取得 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 取得する変数 %inst オブジェクトの持つパラメーターを取得します。 dirグループ(移動ベクトル)の内容が(x,y,z)で指定された変数に代入されます。 (x,y,z)は、実数型の変数として設定されます。 命令の最後に「i」を付加することで、整数値として値を取得することができます。 %href getdiri getpos getang getangr getscale getefx getwork %index getefx efxグループ情報を取得 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 取得する変数 %inst オブジェクトの持つパラメーターを取得します。 efxグループ(特殊効果設定)の内容が(x,y,z)で指定された変数に代入されます。 (x,y,z)は、実数型の変数として設定されます。 命令の最後に「i」を付加することで、整数値として値を取得することができます。 %href getefxi getpos getang getangr getscale getdir getwork %index getwork workグループ情報を取得 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 取得する変数 %inst オブジェクトの持つパラメーターを取得します。 workグループ(ワーク値)の内容が(x,y,z)で指定された変数に代入されます。 (x,y,z)は、実数型の変数として設定されます。 命令の最後に「i」を付加することで、整数値として値を取得することができます。 %href getworki getpos getang getangr getscale getdir getefx %index getposi posグループ情報を整数で取得 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 取得する変数 %inst オブジェクトの持つパラメーターを取得します。 posグループ(表示座標)の内容が(x,y,z)で指定された変数に代入されます。 (x,y,z)は、整数型の変数として設定されます。 %href getpos getangi getangri getscalei getdiri getefxi getworki %index getangi angグループ情報を整数で取得 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 取得する変数 %inst オブジェクトの持つパラメーターを取得します。 angグループ(表示角度)の内容が(x,y,z)で指定された変数に代入されます。 (x,y,z)は、整数型の変数として設定されます。 %href getang getposi getangri getscalei getdiri getefxi getworki %index getscalei scaleグループ情報を整数で取得 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 取得する変数 %inst オブジェクトの持つパラメーターを取得します。 scaleグループ(表示倍率)の内容が(x,y,z)で指定された変数に代入されますます。 (x,y,z)は、整数型の変数として設定されます。 %href getscale getposi getangi getangri getdiri getefxi getworki %index getdiri dirグループ情報を整数で取得 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 取得する変数 %inst オブジェクトの持つパラメーターを取得します。 dirグループ(移動ベクトル)の内容が(x,y,z)で指定された変数に代入されます。 (x,y,z)は、整数型の変数として設定されます。 %href getdir getposi getangi getangri getscalei getefxi getworki %index getefxi efxグループ情報を整数で取得 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 取得する変数 %inst オブジェクトの持つパラメーターを取得します。 efxグループ(特殊効果設定)の内容が(x,y,z)で指定された変数に代入されます。 (x,y,z)は、整数型の変数として設定されます。 %href getefx getposi getangi getangri getscalei getdiri getworki %index getworki workグループ情報を整数で取得 %group 拡張画面制御命令 %prm id,x,y,z id : オブジェクトID (x,y,z) : 取得する変数 %inst オブジェクトの持つパラメーターを取得します。 workグループ(ワーク値)の内容が(x,y,z)で指定された変数に代入されます。 (x,y,z)は、整数型の変数として設定されます。 %href getwork getposi getangi getangri getscalei getdiri getefxi %index selpos 移動座標をMOC情報に設定 %group 拡張画面制御命令 %prm id id : オブジェクトID %inst MOC設定命令の対象となるMOCグループをpos(座標)に設定します idは、オブジェクトIDとなります。 %href selmoc selang selscale seldir selefx selcam selcpos selcang selcint %index selang 回転角度をMOC情報に設定 %group 拡張画面制御命令 %prm id id : オブジェクトID %inst MOC設定命令の対象となるMOCグループをang(回転角度)に設定します idは、オブジェクトIDとなります。 %href selmoc selpos selscale seldir selefx selcam selcpos selcang selcint %index selscale スケールをMOC情報に設定 %group 拡張画面制御命令 %prm id id : オブジェクトID %inst MOC設定命令の対象となるMOCグループをscale(スケール)に設定します idは、オブジェクトIDとなります。 %href selmoc selpos selang selefx seldir selcam selcpos selcang selcint %index seldir 移動量をMOC情報に設定 %group 拡張画面制御命令 %prm id id : オブジェクトID %inst MOC設定命令の対象となるMOCグループをdir(移動量)に設定します idは、オブジェクトIDとなります。 %href selmoc selpos selang selscale selefx selcam selcpos selcang selcint %index selefx オブジェクト特殊効果をMOC情報に設定 %group 拡張画面制御命令 %prm id id : オブジェクトID %inst MOC設定命令の対象となるMOCグループをefx(効果)に設定します idは、オブジェクトIDとなります。 %href selmoc selpos selang selscale selcam selcpos selcang selcint %index selwork オブジェクトワークをMOC情報に設定 %group 拡張画面制御命令 %prm id id : オブジェクトID %inst MOC設定命令の対象となるMOCグループをwork(ワーク)に設定します idは、オブジェクトIDとなります。 %href selmoc selpos selang selscale selefx selcam selcpos selcang selcint %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 : 設定する値(実数値) %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 : 加算する値(実数値) %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 : 設定する値(実数値) %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 : 設定する値(実数値) fy : 設定する値2(実数値) %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 : 加算する値(実数値) fy : 加算する値2(実数値) %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 : 設定する値(実数値) fy : 設定する値2(実数値) %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 : 設定する値(実数値) fy : 設定する値2(実数値) fz : 設定する値3(実数値) %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 : 加算する値(実数値) fy : 加算する値2(実数値) fz : 加算する値3(実数値) %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 : 設定する値(実数値) fy : 設定する値2(実数値) fz : 設定する値3(実数値) %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 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 modelscale モデルのサイズを変更する %group 拡張画面制御命令 %prm id,x,y,z id : モデルID (x,y,z) : X,Y,Z倍率(実数値) %inst 指定したモデル全体を指定したスケール値で拡大縮小します。 これによりモデルそのもののサイズ自体を変えることが可能になります。 %href modelmove %index event_wait 待ち時間イベントを追加 %group 拡張画面制御命令 %prm id,p1 id : イベントID p1(0) : 待ち時間(フレーム) %inst idで指定しているイベントIDに、待ち時間イベントを追加します。 待ち時間イベントは、p1で指定されたフレーム数だけ次のイベントに進むことを保留します。 %href newevent setevent %index event_jump ジャンプイベントを追加 %group 拡張画面制御命令 %prm id,p1,p2 id : イベントID p1(0) : ジャンプ先のイベント番号 p2(0) : ジャンプ無視の確率(%) %inst idで指定しているイベントIDに、ジャンプイベントを追加します。 ジャンプイベントは、指定されたイベント番号から実行を続けることを指示します。 イベントリストの中でのgoto命令にあたります。 p1で指定するイベント番号は、イベントに追加された順番に0,1,2…と数えたものになります。 p2で、ジャンプ無視の確率(%)を設定することができます。 0または省略された場合は、必ず(無条件)でジャンプを行ないます。 それ以外の場合は、乱数をもとに1〜100%の確率でジャンプを行ない、 ジャンプしなかった場合は次のイベントに進みます。 %href newevent setevent %index event_prmset パラメーター設定イベントを追加 %group 拡張画面制御命令 %prm id,p1,p2 id : イベントID p1(0) : パラメーターID(PRMSET_*) p2(0) : 設定される値 %inst idで指定しているイベントIDに、パラメーター設定イベントを追加します。 パラメーター設定イベントは、p1で指定されたパラメーターIDにp2の値を設定します。 (それまでに設定されていた内容は消去されます) パラメーターIDには、以下の名前を使用することができます。 ^p パラメーターID 内容 --------------------------------------- PRMSET_MODE 動作モード PRMSET_FLAG 存在フラグ PRMSET_SHADE シェーディングモード PRMSET_TIMER タイマー PRMSET_MYGROUP コリジョングループ値 PRMSET_COLGROUP 対象グループ値 ^p %href event_prmon event_prmoff newevent setevent %index event_prmon パラメータービット設定イベントを追加 %group 拡張画面制御命令 %prm id,p1,p2 id : イベントID p1(0) : パラメーターID(PRMSET_*) p2(0) : 設定されるビット %inst idで指定しているイベントIDに、パラメータービット設定イベントを追加します。 パラメータービット設定イベントは、p1で指定されたパラメーターIDにp2のビットを設定します。 (それまでに設定されていた内容は保持されたまま、新しい値のビットだけが有効になります) パラメーターIDの詳細については、event_prmset命令を参照してください。 %href event_prmset event_prmoff newevent setevent %index event_prmoff パラメータービット消去イベントを追加 %group 拡張画面制御命令 %prm id,p1,p2 id : イベントID p1(0) : パラメーターID(PRMSET_*) p2(0) : 消去されるビット %inst idで指定しているイベントIDに、パラメータービット消去イベントを追加します。 パラメータービット消去イベントは、p1で指定されたパラメーターIDから、 p2のビットだけを消去します。 パラメーターIDの詳細については、event_prmset命令を参照してください。 %href event_prmset event_prmon newevent setevent %index event_setpos posグループ設定イベントを追加 %group 拡張画面制御命令 %prm id,x1,y1,z1,x2,y2,z2 id : イベントID (x1,y1,z1) : 設定される値(下限値) (x2,y2,z2) : 設定される値(上限値) %inst idで指定しているイベントIDに、グループ設定イベントを追加します。 グループ設定イベントは、オブジェクトが持っているパラメーターを設定します。 (x1,y1,z1)と(x2,y2,z2)を指定すると、それぞれの範囲内にある値を乱数で作成します。 (x2,y2,z2)を省略して、(x1,y1,z1)だけを指定した場合はそのまま値が設定されます。 %href event_setang event_setangr event_setscale event_setdir event_setefx event_setwork newevent setevent %index event_setang angグループ設定イベントを追加 %group 拡張画面制御命令 %prm id,x1,y1,z1,x2,y2,z2 id : イベントID (x1,y1,z1) : 設定される値(下限値) (x2,y2,z2) : 設定される値(上限値) %inst idで指定しているイベントIDに、グループ設定イベントを追加します。 グループ設定イベントは、オブジェクトが持っているパラメーターを設定します。 (x1,y1,z1)と(x2,y2,z2)を指定すると、それぞれの範囲内にある値を乱数で作成します。 (x2,y2,z2)を省略して、(x1,y1,z1)だけを指定した場合はそのまま値が設定されます。 %href event_setpos event_setangr event_setscale event_setdir event_setefx event_setwork newevent setevent %index event_setangr angグループ設定イベントを追加 %group 拡張画面制御命令 %prm id,x1,y1,z1,x2,y2,z2 id : イベントID (x1,y1,z1) : 設定される値(下限値) (x2,y2,z2) : 設定される値(上限値) %inst idで指定しているイベントIDに、グループ設定イベントを追加します。 グループ設定イベントは、オブジェクトが持っているパラメーターを設定します。 (x1,y1,z1)と(x2,y2,z2)を指定すると、それぞれの範囲内にある値を乱数で作成します。 (x2,y2,z2)を省略して、(x1,y1,z1)だけを指定した場合はそのまま値が設定されます。 %href event_setpos event_setang event_setscale event_setdir event_setefx event_setwork newevent setevent %index event_setscale scaleグループ設定イベントを追加 %group 拡張画面制御命令 %prm id,x1,y1,z1,x2,y2,z2 id : イベントID (x1,y1,z1) : 設定される値(下限値) (x2,y2,z2) : 設定される値(上限値) %inst idで指定しているイベントIDに、グループ設定イベントを追加します。 グループ設定イベントは、オブジェクトが持っているパラメーターを設定します。 (x1,y1,z1)と(x2,y2,z2)を指定すると、それぞれの範囲内にある値を乱数で作成します。 (x2,y2,z2)を省略して、(x1,y1,z1)だけを指定した場合はそのまま値が設定されます。 %href event_setpos event_setang event_setangr event_setdir event_setefx event_setwork newevent setevent %index event_setdir dirグループ設定イベントを追加 %group 拡張画面制御命令 %prm id,x1,y1,z1,x2,y2,z2 id : イベントID (x1,y1,z1) : 設定される値(下限値) (x2,y2,z2) : 設定される値(上限値) %inst idで指定しているイベントIDに、グループ設定イベントを追加します。 グループ設定イベントは、オブジェクトが持っているパラメーターを設定します。 (x1,y1,z1)と(x2,y2,z2)を指定すると、それぞれの範囲内にある値を乱数で作成します。 (x2,y2,z2)を省略して、(x1,y1,z1)だけを指定した場合はそのまま値が設定されます。 %href event_setpos event_setang event_setangr event_setscale event_setefx event_setwork newevent setevent %index event_setefx efxグループ設定イベントを追加 %group 拡張画面制御命令 %prm id,x1,y1,z1,x2,y2,z2 id : イベントID (x1,y1,z1) : 設定される値(下限値) (x2,y2,z2) : 設定される値(上限値) %inst idで指定しているイベントIDに、グループ設定イベントを追加します。 グループ設定イベントは、オブジェクトが持っているパラメーターを設定します。 (x1,y1,z1)と(x2,y2,z2)を指定すると、それぞれの範囲内にある値を乱数で作成します。 (x2,y2,z2)を省略して、(x1,y1,z1)だけを指定した場合はそのまま値が設定されます。 %href event_setpos event_setang event_setangr event_setscale event_setdir event_setwork newevent setevent %index event_setwork workグループ設定イベントを追加 %group 拡張画面制御命令 %prm id,x1,y1,z1,x2,y2,z2 id : イベントID (x1,y1,z1) : 設定される値(下限値) (x2,y2,z2) : 設定される値(上限値) %inst idで指定しているイベントIDに、グループ設定イベントを追加します。 グループ設定イベントは、オブジェクトが持っているパラメーターを設定します。 (x1,y1,z1)と(x2,y2,z2)を指定すると、それぞれの範囲内にある値を乱数で作成します。 (x2,y2,z2)を省略して、(x1,y1,z1)だけを指定した場合はそのまま値が設定されます。 %href event_setpos event_setang event_setangr event_setscale event_setdir event_setefx newevent setevent %index event_pos posグループ変化イベントを追加 %group 拡張画面制御命令 %prm id,frame,x1,y1,z1 id : イベントID frame : 変化までのフレーム数 (x1,y1,z1) : 設定される値 %inst idで指定しているイベントIDに、グループ変化イベントを追加します。 グループ変化イベントは、オブジェクトが持っているパラメーターの時間による変化を設定します。 frameで指定したフレーム数が経過した時に(x1,y1,z1)の値になります。 %href event_ang event_angr event_scale event_dir event_efx event_work newevent setevent %index event_ang angグループ変化イベントを追加 %group 拡張画面制御命令 %prm id,frame,x1,y1,z1 id : イベントID frame : 変化までのフレーム数 (x1,y1,z1) : 設定される値 %inst idで指定しているイベントIDに、グループ変化イベントを追加します。 グループ変化イベントは、オブジェクトが持っているパラメーターの時間による変化を設定します。 frameで指定したフレーム数が経過した時に(x1,y1,z1)の値になります。 %href event_pos event_angr event_scale event_dir event_efx event_work newevent setevent %index event_angr angグループ変化イベントを追加 %group 拡張画面制御命令 %prm id,frame,x1,y1,z1 id : イベントID frame : 変化までのフレーム数 (x1,y1,z1) : 設定される値 %inst idで指定しているイベントIDに、グループ変化イベントを追加します。 グループ変化イベントは、オブジェクトが持っているパラメーターの時間による変化を設定します。 frameで指定したフレーム数が経過した時に(x1,y1,z1)の値になります。 %href event_pos event_ang event_scale event_dir event_efx event_work newevent setevent %index event_scale scaleグループ変化イベントを追加 %group 拡張画面制御命令 %prm id,frame,x1,y1,z1 id : イベントID frame : 変化までのフレーム数 (x1,y1,z1) : 設定される値 %inst idで指定しているイベントIDに、グループ変化イベントを追加します。 グループ変化イベントは、オブジェクトが持っているパラメーターの時間による変化を設定します。 frameで指定したフレーム数が経過した時に(x1,y1,z1)の値になります。 %href event_pos event_ang event_angr event_dir event_efx event_work newevent setevent %index event_dir dirグループ変化イベントを追加 %group 拡張画面制御命令 %prm id,frame,x1,y1,z1 id : イベントID frame : 変化までのフレーム数 (x1,y1,z1) : 設定される値 %inst idで指定しているイベントIDに、グループ変化イベントを追加します。 グループ変化イベントは、オブジェクトが持っているパラメーターの時間による変化を設定します。 frameで指定したフレーム数が経過した時に(x1,y1,z1)の値になります。 %href event_pos event_ang event_angr event_scale event_efx event_work newevent setevent %index event_efx efxグループ変化イベントを追加 %group 拡張画面制御命令 %prm id,frame,x1,y1,z1 id : イベントID frame : 変化までのフレーム数 (x1,y1,z1) : 設定される値 %inst idで指定しているイベントIDに、グループ変化イベントを追加します。 グループ変化イベントは、オブジェクトが持っているパラメーターの時間による変化を設定します。 frameで指定したフレーム数が経過した時に(x1,y1,z1)の値になります。 %href event_pos event_ang event_angr event_scale event_dir event_work newevent setevent %index event_work workグループ変化イベントを追加 %group 拡張画面制御命令 %prm id,frame,x1,y1,z1 id : イベントID frame : 変化までのフレーム数 (x1,y1,z1) : 設定される値 %inst idで指定しているイベントIDに、グループ変化イベントを追加します。 グループ変化イベントは、オブジェクトが持っているパラメーターの時間による変化を設定します。 frameで指定したフレーム数が経過した時に(x1,y1,z1)の値になります。 %href event_pos event_ang event_angr event_scale event_dir event_efx newevent setevent %index event_addpos posグループ加算イベントを追加 %group 拡張画面制御命令 %prm id,x,y,z id : イベントID (x,y,z) : 加算される値 %inst idで指定しているイベントIDに、グループ加算イベントを追加します。 グループ加算イベントは、オブジェクトが持っているパラメーターに(x,y,z)の値を加算します。 %href event_addang event_addangr event_addscale event_adddir event_addefx event_addwork newevent setevent %index event_addang angグループ加算イベントを追加 %group 拡張画面制御命令 %prm id,x,y,z id : イベントID (x,y,z) : 加算される値 %inst idで指定しているイベントIDに、グループ加算イベントを追加します。 グループ加算イベントは、オブジェクトが持っているパラメーターに(x,y,z)の値を加算します。 %href event_addpos event_addangr event_addscale event_adddir event_addefx event_addwork newevent setevent %index event_addangr angグループ加算イベントを追加 %group 拡張画面制御命令 %prm id,x,y,z id : イベントID (x,y,z) : 加算される値 %inst idで指定しているイベントIDに、グループ加算イベントを追加します。 グループ加算イベントは、オブジェクトが持っているパラメーターに(x,y,z)の値を加算します。 %href event_addpos event_addang event_addscale event_adddir event_addefx event_addwork newevent setevent %index event_addscale scaleグループ加算イベントを追加 %group 拡張画面制御命令 %prm id,x,y,z id : イベントID (x,y,z) : 加算される値 %inst idで指定しているイベントIDに、グループ加算イベントを追加します。 グループ加算イベントは、オブジェクトが持っているパラメーターに(x,y,z)の値を加算します。 %href event_addpos event_addang event_addangr event_adddir event_addefx event_addwork newevent setevent %index event_adddir dirグループ加算イベントを追加 %group 拡張画面制御命令 %prm id,x,y,z id : イベントID (x,y,z) : 加算される値 %inst idで指定しているイベントIDに、グループ加算イベントを追加します。 グループ加算イベントは、オブジェクトが持っているパラメーターに(x,y,z)の値を加算します。 %href event_addpos event_addang event_addangr event_addscale event_addefx event_addwork newevent setevent %index event_addefx efxグループ加算イベントを追加 %group 拡張画面制御命令 %prm id,x,y,z id : イベントID (x,y,z) : 加算される値 %inst idで指定しているイベントIDに、グループ加算イベントを追加します。 グループ加算イベントは、オブジェクトが持っているパラメーターに(x,y,z)の値を加算します。 %href event_addpos event_addang event_addangr event_addscale event_adddir event_addwork newevent setevent %index event_addwork workグループ加算イベントを追加 %group 拡張画面制御命令 %prm id,x,y,z id : イベントID (x,y,z) : 加算される値 %inst idで指定しているイベントIDに、グループ加算イベントを追加します。 グループ加算イベントは、オブジェクトが持っているパラメーターに(x,y,z)の値を加算します。 %href event_addpos event_addang event_addangr event_addscale event_adddir event_addefx newevent setevent %index setevent オブジェクトにイベントを設定 %group 拡張画面制御命令 %prm p1,p2 p1 : オブジェクトID p2 : イベントID %inst p1で指定したオブジェクトにp2のイベントを適用します。 あらかじめ、決まった流れの処理(イベント)を登録したイベントリストを用意しておく必要があります。 ^ setevent命令によって設定されるイベントは、オブジェクト1つあたり4つまで同時に適用することが可能です。 %href newevent %index delevent イベントリストを削除 %group 拡張画面制御命令 %prm p1 p1 : イベントID %inst p1で指定したイベントリストを削除します。 %href newevent %index newevent イベントリストを作成 %group 拡張画面制御命令 %prm p1 p1 : イベントIDが代入される変数名 %inst 新しいイベントIDを取得し、p1で指定した変数に代入します。 ^ 新しくイベントを作成する場合には、必ずnewevent命令でイベントIDを取得しておく必要があります。 次に、「event_」で始まるイベントリスト追加命令によって多彩な動作を登録しておくことができます。 一度取得されたイベントIDは、シーンのリセット(hgreset命令)が行なわれるか、 またはdelevent命令によってイベントリストが削除されるまでは保持されます。 ^ こうしてできたイベントは、setevent命令によっていつでも オブジェクトに対して適用することができます。 %href delevent setevent %index cammode カメラモードの設定 %group 拡張画面制御命令 %prm mode mode : モード値 %inst カメラの向きについてのモードを設定します。 指定できるモードは、 CAM_MODE_NORMAL (カメラの位置、角度に従う) と、 CAM_MODE_LOOKAT (カメラは注視点を常に向いている) です。 %href selcam selcpos selcint %index settoonedge トゥーンシェーディング時の設定 %group 拡張画面制御命令 %prm p1,p2,p3,p4 p1 : モデルID p2(0) : エッジの色(RGBコード) p3(0) : XYオフセット p4(0) : Zオフセット %inst p1で指定したモデルのトゥーンシェーディング時の設定を行ないます。 p2で、エッジの色コード(RRGGBB)を指定します。 p3,p4は実数値によりエッジのオフセットを指定することができます。 エッジのオフセットを変更することにより、輪郭線の太さを調整することができます。 %href loadtoon maketoon %index event_uv UV設定イベントを追加 %group 拡張画面制御命令 %prm id,u,v id : イベントID (u,v) : 設定される値 %inst idで指定しているイベントIDに、UV設定イベントを追加します。 UV設定イベントは、2D及び3D(x形式モデルを除く)の単一ポリゴンが持つUVを動的に変更します。 イベントが実行されると、テクスチャの左上座標が(u,v)で指定されたものに変更されます。 %href newevent setevent %index setobjmode オブジェクトのモード設定 %group 拡張画面制御命令 %prm ObjID,mode,sw ObjID : オブジェクトID mode : モード値 sw : 設定スイッチ %inst 指定されたオブジェクトのモードを変更します。 モード値は、regobj命令で指定するものと同様です。 swは、以下のように動作します。 ^p sw = 0 : 指定したモード値を追加 sw = 1 : 指定したモード値を削除 sw = 2 : 指定したモード値だけを設定 ^p %href regobj setobjmodel %index setobjmodel オブジェクトのモデル設定 %group 拡張画面制御命令 %prm ObjID,modelID ObjID : オブジェクトID modelID : モデルID %inst 指定されたオブジェクトが表示するモデルを変更します。 %href regobj setobjmode %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 : 衝突を検出する範囲(実数値) %inst 指定したオブジェクトが持つコリジョン情報をもとに、その オブジェクトが衝突している別なオブジェクトのIDを調べます。 distanceは、衝突する範囲(半径)を実数値で指定します。 衝突が検出された場合は、変数にオブジェクト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 event_wpos posグループ変化イベントを追加 %group 拡張画面制御命令 %prm id,frame id : イベントID frame : 変化までのフレーム数 %inst idで指定しているイベントIDに、グループ変化イベントを追加します。 グループ変化イベントは、オブジェクトが持っているパラメーターの時間による変化を設定します。 frameで指定したフレーム数が経過した時にworkグループ(ワーク値)の値になります。 %href event_wang event_wangr event_wscale event_wdir event_wefx newevent setevent %index event_wang angグループ変化イベントを追加 %group 拡張画面制御命令 %prm id,frame id : イベントID frame : 変化までのフレーム数 %inst idで指定しているイベントIDに、グループ変化イベントを追加します。 グループ変化イベントは、オブジェクトが持っているパラメーターの時間による変化を設定します。 frameで指定したフレーム数が経過した時にworkグループ(ワーク値)の値になります。 %href event_wpos event_wangr event_wscale event_wdir event_wefx newevent setevent %index event_wscale scaleグループ変化イベントを追加 %group 拡張画面制御命令 %prm id,frame id : イベントID frame : 変化までのフレーム数 %inst idで指定しているイベントIDに、グループ変化イベントを追加します。 グループ変化イベントは、オブジェクトが持っているパラメーターの時間による変化を設定します。 frameで指定したフレーム数が経過した時にworkグループ(ワーク値)の値になります。 %href event_wpos event_wang event_wangr event_wdir event_wefx newevent setevent %index event_wdir dirグループ変化イベントを追加 %group 拡張画面制御命令 %prm id,frame id : イベントID frame : 変化までのフレーム数 %inst idで指定しているイベントIDに、グループ変化イベントを追加します。 グループ変化イベントは、オブジェクトが持っているパラメーターの時間による変化を設定します。 frameで指定したフレーム数が経過した時にworkグループ(ワーク値)の値になります。 %href event_wpos event_wang event_wangr event_wscale event_wefx newevent setevent %index event_wefx efxグループ変化イベントを追加 %group 拡張画面制御命令 %prm id,frame id : イベントID frame : 変化までのフレーム数 %inst idで指定しているイベントIDに、グループ変化イベントを追加します。 グループ変化イベントは、オブジェクトが持っているパラメーターの時間による変化を設定します。 frameで指定したフレーム数が経過した時にworkグループ(ワーク値)の値になります。 %href event_wpos event_wang event_wangr event_wscale event_wdir newevent setevent %index setborder オブジェクト有効範囲設定 %group 拡張画面制御命令 %prm fx,fy,fz ( fx,fy,fz ) = ボーダー領域の大きさ(実数値) %inst ボーダー領域(オブジェクト有効範囲)を設定します。 ( 0,0,0 )を中心にした、( fx,fy,fz )サイズの立方体がボーダー領域となります。 %href regobj %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 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 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 objact 指定アニメーションを開始 %group 拡張画面制御命令 %prm ObjID,Anim,mode ObjID : オブジェクトID Anim : アニメーションインデックス値 mode(0) : 設定モード(0=即時/1=終了時) %inst 指定されたオブジェクトのアニメーションを開始します。 Animで複数あるアニメーションを示すインデックス値を指定します。 インデックス値は、複数アニメーション読み込みを行なった順番に、 0,1,2,3…という数字で表わされます。 Animにマイナスの値(-1)を指定することで、アニメーションを解除(停止)させることができます。 また、modeの値により設定のモードを指定することができます。 設定モードを0または省略した場合は、即時にアニメーションを切り替えます。 設定モードを1に指定した場合は、現在再生されているアニメーションが終わるのを待ってから、 切り替えを行ないます。 設定モード0でアニメーションを再生した場合は、再生スピードはデフォルト値に戻され、 リピート再生が行なわれる設定になります。 %href addxfile addxanim getanim %index getanim アニメーション情報を取得 %group 拡張画面制御命令 %prm p1,p2,p3 p1 : 情報が代入される変数 p2(0) : オブジェクトID p3(0) : 情報ID %inst p2で指定されたオブジェクトのアニメーションに関する情報を取得して、 p1で指定された変数に代入します。 取得される情報の種類は、p3の情報IDで指定することができます。 情報IDは、以下の値が用意されています。 ^p 情報ID 内容 ----------------------------------------------- 0 アニメーション開始からの時間(ms) 1 アニメーションループフラグ ^p 結果が代入される変数は、自動的に整数型に設定されます。 アニメーションループフラグは、アニメーション開始時は0ですが、 最後まで再生された場合には1が返されます。 %href objact %index addxfile Xファイルモデルを作成 %group 拡張画面制御命令 %prm var,"filename" var : 作成されたモデルIDが代入される変数名 "filename" : 読み込みを行なうファイル名 %inst x形式のモデルファイルを読み込みます。 正常にモデルが読みこまれると、varで指定した変数にモデルIDが代入されます。 読み込みに失敗した場合には、varで指定した変数に-1が代入されます。 HGIMG3が読み込むx形式は、DirectX8以降のスキンメッシュに対応しています。 ワンスキンモデル及びアニメーションを出力可能な各種ツールで、x形式の出力に 対応したものを別途ご用意下さい。 %href addxanim %index addxanim Xファイルアニメーションの追加 %group 拡張画面制御命令 %prm ModelID,"filename" ModelID : モデルID "filename" : 読み込みを行なうファイル名 %inst Xファイルモデルに、アニメーションデータを追加します。 ModelIDでは、すでにaddxfile命令によって読み込まれているモデルIDを指定する必要があります。 アニメーションの追加に成功すると、システム変数statにモデルIDが代入されます。 アニメーションの追加に失敗した場合は、システム変数statに-1が代入されます。 addxanim命令は、1つのモデルで複数のアニメーションを切り替えて使用する場合に利用します。 最初にモデル全体と最初のアニメーションを含んだデータをaddxfile命令により読み込み、 さらに追加でアニメーションだけを登録する場合にaddxanim命令を使用します。 必ず、モデルやボーンの構成は同一のものから出力されている必要があります。 複数のアニメーションは、objact命令によって切り替えることが可能です。 切り替えるためのアニメーションインデックス値は、最初にaddxfile命令で読み込まれたアニメーションを0として、 以降addxanim命令で追加するたびに1,2,3…と増加していきます。 %href addxfile objact %index objspeed アニメーション再生速度の設定 %group 拡張画面制御命令 %prm p1,p2 p1(0) : オブジェクトID p2(0) : 1フレームあたりの再生速度(実数値) %inst p1で指定されたオブジェクトIDのアニメーション再生速度を設定します。 p2で1フレームあたりの再生速度(ms)を実数値で指定することができます。 %href modelspeed objact %index modelspeed アニメーション再生速度の設定(2) %group 拡張画面制御命令 %prm p1,p2 p1(0) : モデルID p2(0) : 1フレームあたりの再生速度(実数値) %inst p1で指定されたモデルIDが持つ標準のアニメーション再生速度を設定します。 p2で1フレームあたりの再生速度(ms)を実数値で指定することができます。 以降は、指定されたモデルを使用するオブジェクト初期化時のアニメーション再生速度として設定されます。 modelspeed命令によって標準のアニメーション再生速度が設定されなかった場合は、 15(ms)がオブジェクト初期化時に設定されます。 %href objspeed objact %index hgcapture DirectX画面データの取得 %group 拡張画面制御命令 %prm %inst HGIMGが描画しているフレームバッファの情報をHSPの画面にコピーします。 gsel命令などで現在アクティブな画面がコピー先になります。 必ず、HGIMGを初期化したサイズと同じ大きさのバッファをコピー先にしてください。 hgcapture命令は、HSPの仮想画面バッファにコピーを行ないますが、画面の更新は行なわれません。 取得された画面をウィンドウ上で反映させるためには、redraw命令により再描画を行なう必要があります。 HGIMGを初期化したウィンドウIDと同じバッファをコピー先にした場合は、 HGIMGの画面がオーバーレイされているため、内容が表示されないので注意してください。 また、hgcapture命令は、ビデオカードのフレームバッファから大量のデータをメインメモリに コピーするため、ビデオカードやCPU負荷が発生します。 %href redraw %index objlight 参照されるライトの設定 %group 拡張画面制御命令 %prm p1,p2,p3 p1(0) : ライトが設定されるオブジェクトID p2(0) : ライトとして参照されるオブジェクトID p3(-1) : 設定モード %inst p1で指定されたオブジェクトIDが影響を受けるライトを設定します。 p2で参照されるオブジェクトIDを指定します。 通常、すべてのオブジェクトは基本ライト(HGOBJ_LIGHT)の影響を受けます。 objlight命令により、基本ライト以外のオブジェクトから影響を受ける状態に変更します。 参照される追加のライトオブジェクトは、reglight命令で作成することができます。 p3でモードを指定することができます。p3の値は、以下の意味を持ちます。 ^p モード 内容 --------------------------------------- 1 ライトの方向 2 ライトの色 4 ライトのアンビエント色 ^p 複数の項目を設定する場合は、それぞれのモード値を加算してください。 p3を省略すると、方向・色・アンビエント色のすべてが設定されます。 %href reglight %index reglight ライトオブジェクトの登録 %group 拡張画面制御命令 %prm p1 p1 : 作成されたオブジェクトIDが代入される変数名 %inst 追加のライトオブジェクトを登録して、p1に指定された変数にIDを代入します。 ライトオブジェクトは、objlight命令によって新しく参照されるためのライトとして扱うことができます。 取得されたオブジェクトIDは、他のオブジェクトと同じ方法でパラメーターを設定、取得することが可能です。 設定できるパラメーターは、基本ライト(HGOBJ_LIGHT)と同様のものになります。 %href objlight %index getxinfo Xモデル表示情報の取得 %group 拡張画面制御命令 %prm p1,p2,p3 p1 : 作成されたモデル情報文字列が代入される変数名 p2 : オブジェクトID p3 : ノードID p4 : 設定モード %inst p2で指定されたオブジェクトIDが示すモデルの情報を文字列として p1で指定した変数に代入します。 必ずX形式のモデル持つオブジェクトIDを指定する必要があります。 p1の変数には、文字列の形で情報が代入されます。 p2でノードIDを指定することができます。 ノードIDは0から始まる数値で、ボーンやメッシュごとに複数のIDが割り振られています。 ノードIDに-1などマイナス値を指定した場合は、 改行コードで区切られた1行1要素の形ですべてのノード情報が返されます。 これによりノードIDの最大数を調べることができます。 (ノードIDの最大数は、同じモデルであればモードが違っていても共通です。) p4で取得する情報の種類を指定することができます。 p4で指定できる値は、以下の通りです。 ^p モード 内容 --------------------------------------------- 0 ノード名 1 ノードのワールド座標 16 ノードが持つマテリアル数 $1000+MatID マテリアルの色( Diffuse Color ) $2000+MatID テクスチャのCOMポインタ(テクスチャ未使用時は0) ^p $1000と$2000は、マテリアルIDと組み合わせて使用します。 マテリアルIDは、ノードごとに割り振られた0から始まる値で、 有効なマテリアルIDの数は、モード16で調べることができます。 ^ getxinfo命令は、ボーンを含むモデルが持つ個別の位置情報などを得るために 使用することができます。 多数のノードを持つモデルを処理する場合には、処理がかかることもあるので リアルタイムな動作を行なうアプリケーションでは注意して下さい。 %href setxinfo %index setxinfo Xモデル情報の詳細設定 %group 拡張画面制御命令 %prm p1,p2,p3,x,y,z p1 : オブジェクトID p2 : ノードID p3 : 設定モード (x,y,z) : 設定されるベクトル情報(実数値) %inst p1で指定されたオブジェクトIDが示すモデルの詳細情報を設定します。 必ずX形式のモデル持つオブジェクトIDを指定する必要があります。 モデルが複数のノード(ボーンやメッシュなど)を持っている場合には、 p2でノードIDを指定することができます。 ノードIDは0から始まる数値で、ボーンやメッシュごとに複数のIDが割り振られています。 (指定可能なノードIDの範囲は、getxinfo命令によってノード一覧を取得して調べることができます。) p3で取得する情報の種類を指定することができます。 p3で指定できる値は、以下の通りです。 ^p モード 内容 --------------------------------------------- 1 ノードのローカル座標(x,y,z) 2 ノードの回転角度(x,y,z) $1000+MatID マテリアルの色( xyz=RGB ) $2000+MatID 参照されるテクスチャ( x=テクスチャID ) ^p $1000と$2000は、マテリアルIDと組み合わせて使用します。 マテリアルIDは、ノードごとに割り振られた0から始まる値で、 有効なマテリアルIDの数は、getxinfo命令のモード16で調べることができます。 ^ setxinfo命令は、ボーンを含むモデルが持つ個別の状態を変更するために 使用することができます。 アニメーションが設定されているノードは設定することができません。 また、正しいノードIDを指定しないと表示が崩れることもあるので、 十分に注意して使用してください。 %href getxinfo