Skip to content

OBAQ

対応:

  • Win

グループ:

拡張入出力制御命令

qreset

OBAQ初期化

説明:

OBAQが持つ、すべての情報が初期化されます。 qreset命令により初期化を行なうと、画面全体を囲む壁(枠)が自動的に設定されます。 壁のサイズや位置を変更したい場合は、qborder命令により再設定を行なってください。 qreset実行時に、HSPの描画対象として設定されていたウィンドウが、OBAQでも描画の対象となります。 描画の対象となるウィンドウを変更する場合には、qview命令を使用してください。

参照:

qview qborder qterm

qterm

OBAQ終了処理

説明:

OBAQが持つ、すべての情報を破棄します。 プログラム終了時などに内部で呼び出されます。 通常は呼び出す必要はありません。

参照:

qreset

qexec

OBAQフレーム処理

説明:

フレームごとの物理演算を実行します。 これにより、すべてのオブジェクト座標が更新されます。 メインループでは、必ずqexec命令によりオブジェクトの移動更新を行なう必要があります。 また、内部の描画を利用する場合は、qdraw命令による画面の更新も必要になります。

参照:

qdraw

qdraw

OBAQ描画処理

パラメーター:

mode mode(0) : デバッグ表示モード設定(0=ON/1=OFF)

説明:

OBAQによるオブジェクトの描画処理を行ないます。 それぞれのオブジェクトに設定されたマテリアル情報をもとに、適切な表示を行ないます。 modeの設定により、デバッグ表示のON/OFFを設定することができます。 デバッグ表示時は、ワイヤーフレームによるオブジェクトの形状や中心位置、グループなどを確認することができます。 表示先ウインドゥの変更や、表示倍率、表示位置オフセットの設定はqview命令を使用してください。 qdraw命令による描画は、WindowsのシステムAPI(GDI)を利用していますので、 画面クリアと、redraw命令による更新も行なう必要があります。 他のシステムによる描画(DirectX等)を行なう場合は、qexec命令による更新だけを行なってから、 各オブジェクトの表示位置を自前で取得して描画を行なう必要があります。 (表示座標の変換用にqcnvaxis命令やqgetaxis命令が用意されています。)

参照:

qview qexec qcnvaxis qgetaxis

qview

ビュー設定

パラメーター:

zoomx,zoomy,ofsx,ofsy zoomx(4.0) : X方向のズーム倍率(実数) zoomy(4.0) : Y方向のズーム倍率(実数) ofsx(0.0) : X方向の表示オフセット(実数) ofsy(0.0) : Y方向の表示オフセット(実数)

説明:

qdraw命令により描画される際の表示設定を行ないます。 zoomx,zoomyにより表示倍率(OBAQの内部座標を画面に反映させる際の倍率)を設定します。 ofsx,ofsyにより、表示位置のオフセットを設定することができます。 また、qview実行時に、HSPの描画対象として設定されていたウィンドウが、描画の対象として再設定されます。

参照:

qdraw qreset

qsetreq

システムリクエスト設定

パラメーター:

reqid,val reqid(0) : リクエストID val(0.0) : 設定値(実数)

説明:

OBAQに対して様々なシステム設定を行ないます。 reqid値で指定できるのは以下のシンボルです。


	シンボル名        	内容
------------------------------------------------------------------------
	REQ_PHYSICS_RATE	1フレームあたりの物理計算回数
	REQ_MAXOBJ		オブジェクト最大数(512以内)(*)
	REQ_MAXLOG		コリジョンログ最大数(*)
	REQ_DEFAULT_WEIGHT	デフォルトの重さ
	REQ_DEFAULT_MOMENT	デフォルトのモーメント
	REQ_DEFAULT_FRICTION	デフォルトの摩擦

(*)のシンボルは、qreset命令実行まで内容が反映されません。

参照:

qgetreq

qgetreq

システムリクエスト取得

パラメーター:

var,reqid var : 内容を取得する変数 reqid(0) : リクエストID

説明:

OBAQのシステム設定値を取得します。 varで指定された変数に内容を読み出します。 varの変数は、自動的に実数型に設定されます。 reqid値で指定できるのは以下のシンボルです。


	シンボル名            初期値	内容
------------------------------------------------------------------------------
	REQ_PHYSICS_RATE	4	1フレームあたりの物理計算回数
	REQ_MAXOBJ		512	オブジェクト最大数(512以内)(*)
	REQ_MAXLOG		256	コリジョンログ最大数(*)
	REQ_DEFAULT_WEIGHT	6.0	デフォルトの重さ
	REQ_DEFAULT_MOMENT	1200.0	デフォルトのモーメント
	REQ_DEFAULT_FRICTION	1.0	デフォルトの摩擦

(*)のシンボルは、qreset命令実行まで内容が反映されません。

参照:

qsetreq

qborder

外壁を設定

パラメーター:

x1,y1,x2,y2 x1(-100) : 左上X座標(実数) y1(-100) : 左上Y座標(実数) x2(100) : 右下X座標(実数) y2(100) : 右下Y座標(実数)

説明:

標準的に設定されている外壁のサイズを再設定します。 画面の中央を(0,0)として、左上と右下の座標(OBAQの内部座標)を指定してください。 外壁は、何も壁のない状態で画面内にオブジェクトを配置した際に、 画面外まで落下するのを防ぐためのものです。

参照:

qreset

qgravity

重力を設定

パラメーター:

gx,gy gx(0.0) : X方向の重力(実数) gy(0.005) : Y方向の重力(実数)

説明:

空間の重力を設定します。 初期値は、(0,0.005)が設定されています。

参照:

qreset

qcnvaxis

X,Y座標値を変換

パラメーター:

var_x,var_y,x,y,opt var_x : Xを取得する変数 var_y : Yを取得する変数 x(0.0) : 変換元のX座標(実数) y(0.0) : 変換元のY座標(実数) opt(0) : 変換モード

説明:

X,Y座標値を指定された方法に従って変換します。 変換元の座標を(x,y)で指定すると、var_x,var_yにそれぞれ変換済みのX,Y座標値が代入されます。 optで指定する変換モードは、以下の値を選ぶことができます。


	変換モード        	内容
------------------------------------------------------------------------
	0                       内部座標を画面上の座標に変換
	1                       画面上の座標を内部座標に変換

変換モード0(または省略時)は、内部座標をqdraw命令で表示される画面上の座標に変換します。(var_x,var_yは整数型に設定されます。) 変換モード1は、qdraw命令で表示される画面上の座標を内部座標に変換します。(var_x,var_yは実数型に設定されます。)

参照:

qgetaxis

qgetaxis

内部座標を取得

パラメーター:

num,var_x,var_y,type num(0) : オブジェクトID var_x : Xを取得する変数 var_y : Yを取得する変数 type(0): 取得タイプ

説明:

OBAQのオブジェクトが持つ内部座標及び表示パラメーターを変数に読み出します。 var_x,var_yは整数型として自動的に設定されます。 typeで指定できる内容は以下の通りです。


	取得タイプ        	内容
------------------------------------------------------------------------
	0                       オブジェクトの左上座標
	1                       オブジェクトの右下座標
	2			オブジェクトのX,Yサイズ(*)

(*)のシンボルは、表示画面上でのサイズ(ドット数)が返されます

参照:

qcnvaxis

qdel

オブジェクト削除

パラメーター:

num num(0) : オブジェクトID

説明:

指定されたオブジェクトを削除します。 実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qaddpoly qaddmodel

qaddpoly

多角形オブジェクト追加

パラメーター:

var,shape,x,y,r,sx,sy,colsw,mygroup,exgroup,loggroup var : オブジェクトIDを取得する変数 shape(3) : 頂点数 x(0.0) : 配置X座標(実数) y(0.0) : 配置Y座標(実数) r(0.0) : 配置角度(実数)(単位はラジアン) sx(10.0) : 配置Xサイズ(実数) sy(10.0) : 配置Yサイズ(実数) colsw(1) : 配置チェックのモード mygroup(1) : 自分が属するコリジョングループ exgroup(0) : 衝突を除外するグループ loggroup(0) : コリジョンログを作成するグループ

説明:

OBAQに多角形オブジェクトを追加します。 shapeで指定された頂点を持つオブジェクトが生成されます。 (shapeの頂点数は3以上でなければなりません。) (x,y)で配置の座標を指定します。(OBAQの内部座標を設定します。) rで配置角度(+方向が時計周りになります)を指定します。単位はラジアンとなります。 (sx,sy)で、配置時の大きさを指定します。デフォルトでは、(10,10)のサイズが使用されます。 mygroup,exgroup,loggroupはコリジョン(衝突)の検出のために設定されるグループ値になります。 グループ値は、32bitいずれかのビットが1の値(1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768…)によって示されます。 colswで配置チェックのモードを選択することができます。


	モード        値	内容
------------------------------------------------------------------------
	colsw_none     0        出現時コリジョンチェック無し
	colsw_active   1        出現時active状態の岩との接触を避ける
	colsw_all      2        出現時reserve状態以外の岩との接触を避ける

オブジェクトが正常に追加された時には、varで指定された変数にオブジェクトID値が代入されます。(変数は自動的に整数型となります。) 登録数の限界でオブジェクトの追加が行なわれなかった場合は、varで指定された変数に-1が代入されます。 コリジョン(衝突)検出のためオブジェクトの追加が行なわれなかった場合は、varで指定された変数に-2が代入されます。

参照:

qaddmodel

qaddmodel

自由設定オブジェクト追加

パラメーター:

var,shape_var,nvertex,x,y,r,sx,sy,colsw,mygroup,exgroup,loggroup var : オブジェクトIDを取得する変数 shape_var: 形状データを代入した配列変数 nvertex(-1) : 形状データの個数 x(0.0) : 配置X座標(実数) y(0.0) : 配置Y座標(実数) r(0.0) : 配置角度(実数)(単位はラジアン) sx(10.0) : 配置Xサイズ(実数) sy(10.0) : 配置Yサイズ(実数) colsw(1) : 配置チェックのモード mygroup(1) : 自分が属するコリジョングループ exgroup(0) : 衝突を除外するグループ loggroup(0) : コリジョンログを作成するグループ

説明:

OBAQに自由設定された形状のオブジェクトを追加します。 一般的な多角形は、qaddpoly命令によって生成することができます。 qaddmodel命令では、頂点を個別に指定することでより自由な形を登録することができます。 shape_varに、形状データを代入した配列変数を指定する必要があります。 配列変数には、x1,y1,x2,y2…の順番に座標を格納しておいてください。 座標は、必ず左回り(反時計回り)で指定し、凸面体でなければなりません。 1つのオブジェクトに複数の凸面体を内包させることも可能です。 その場合は、左回りで指定する座標の最後を、最初の座標と同一にして閉じた形にした後で、 新しい別な形の座標を指定するようにしてください。

nvertexでデータの個数(頂点の個数ではありません)を指定します。 nvertexがマイナス値か省略された場合は、配列に設定された要素数が使用されます。 形状データを格納した配列変数には、実数型、整数型のどちらかを使用できます。 規定の頂点数を超えるデータを扱うことはできませんので注意してください。詳しくは、OBAQ.DLLのマニュアルを参照してください。


	;	自由な形状のモデルを追加
	;
	model=-1.0,-1.0, -1.0,2.0, 2.0,1.0, 1.0,-1.0
	qaddmodel i,model,-1, 30,64,0

(x,y)で配置の座標を指定します。(OBAQの内部座標を設定します。) rで配置角度(+方向が時計周りになります)を指定します。単位はラジアンとなります。 (sx,sy)で、配置時の大きさを指定します。デフォルトでは、(10,10)のサイズが使用されます。 mygroup,exgroup,loggroupはコリジョン(衝突)の検出のために設定されるグループ値になります。 グループ値は、32bitいずれかのビットが1の値(1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768…)によって示されます。 colswで配置チェックのモードを選択することができます。


	モード        値	内容
------------------------------------------------------------------------
	colsw_none     0        出現時コリジョンチェック無し
	colsw_active   1        出現時active状態の岩との接触を避ける
	colsw_all      2        出現時reserve状態以外の岩との接触を避ける

オブジェクトが正常に追加された時には、varで指定された変数にオブジェクトID値が代入されます。(変数は自動的に整数型となります。) 登録数の限界でオブジェクトの追加が行なわれなかった場合は、varで指定された変数に-1が代入されます。 コリジョン(衝突)検出のためオブジェクトの追加が行なわれなかった場合は、varで指定された変数に-2が代入されます。

参照:

qaddpoly

qtype

typeパラメーターを設定

パラメーター:

num,type,option num(0) : オブジェクトID type(0) : 設定値 option(0) : 設定オプション

説明:

指定したオブジェクトのtypeパラメーターを設定します。 typeパラメーターには、以下の内容を指定することができます。


	マクロ名        値	内容
-----------------------------------------------------------
	type_normal	0	通常のオブジェクト
	type_inner	1	接触判定を反転したオブジェクト
	type_bindX	0x40	X軸を背景に固定
	type_bindY	0x80	Y軸を背景に固定
	type_bindR	0x100	回転を固定
	type_bind	0x1c0	背景に完全固定(物理挙動なし)
	type_autowipe	0x100000  ボーダー範囲を越えたら自動的に消去

type_innerは、外壁を作成する際に使用します。 デフォルトの壁(qborder命令で作成される形状)に使用されていますが、 この用途以外では使用しないよう注意してください。 type_autowipeは、qborder命令で設定したボーダー領域(枠)の範囲を出たオブジェクトを自動的に消去するためのフラグです。

optionで、type値の設定方法を指定することができます。


	option       	内容
------------------------------------------------------------------------
	0               type値をセット(set)
	1               type値を追加(or)
	2               type値を除外(not)

実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qgettype qborder

qstat

statパラメーターを設定

パラメーター:

num,stat,sleepcount num(0) : オブジェクトID stat(0) : 設定値 sleepcount(0) : スリープカウント値

説明:

指定したオブジェクトのstatパラメーター、及びスリープカウント値を設定します。 statパラメーターには、以下の内容を指定することができます。


	マクロ名        値	内容
-------------------------------------------------------------------
	stat_reserve 	0	未使用オブジェクト
	stat_sleep 	1	出現待ちオブジェクト
	stat_active 	2	出現しているオブジェクト

optionで、type値の設定方法を指定することができます。 スリープカウント値は、statにstat_sleepを指定している際に参照される値です。 stat_sleepになっているオブジェクトは、スリープカウント値の回数だけ点滅して 出現します。(スリープカウント値が0の場合は、出現せず準備状態を維持します。)

実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qgetstat

qpos

位置、角度パラメーターを設定

パラメーター:

num,x,y,angle num(0) : オブジェクトID x(0.0) : X座標設定値(実数) y(0.0) : Y座標設定値(実数) angle(0.0) : 角度設定値(実数)(ラジアン)

説明:

指定したオブジェクトの位置、角度パラメーターを設定します。 (x,y)でオブジェクトの基準となる位置(中心座標)を指定します。 angleでオブジェクト回転角度(+方向が時計周り)を指定します。単位はラジアンとなります。 OBAQでは、基本的に物体を動かす場合でも、直接物体の座標を 変更するのではなく動かしたい方向に力を加えたり、qgetspeed命令により 加速度を設定することで実現してください。 強制的に座標を変更した場合には、正しい物理挙動にならない可能性があります。

実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qgetpos

qspeed

速度パラメーターを設定

パラメーター:

num,px,py,pr,option num(0) : オブジェクトID px(0.0) : X方向設定値(実数) py(0.0) : Y方向設定値(実数) pr(0.0) : 回転速度パラメーター(実数) option(0) : 設定オプション

説明:

指定したオブジェクトの速度パラメーターを設定します。 (px,py)でオブジェクトのX,Y方向に対する移動速度を指定します。 prで回転に対する速度を指定します。 optionで、設定方法を指定することができます。


	option       	内容
------------------------------------------------------------------------
	0               速度値を加算(add)
	1               速度値×2を上書き(set)
	2               速度値を上書き(set)

実行に失敗した場合は、システム変数statに0以外の値が代入されます。 option(設定オプション)値が2の場合は、指定された値が設定されます。 option(設定オプション)値が1の場合は、指定された値の2倍が設定されますので注意してください。

参照:

qgetspeed

qweight

重さなどのパラメーターを設定

パラメーター:

num,weight,moment num(0) : オブジェクトID weight(6.0) : 重さの値(実数) moment(1200.0) : モーメント値(実数)

説明:

指定したオブジェクトの重さ、モーメント、摩擦などのパラメーターを設定します。 weight(重さ)は、半径rの円に標準的な比重の場合、


	(r ^ 2) / 32.0

くらいを目安に設定してください。 moment(モーメント)は、回転のしやすさに関わるパラメーターだと考えて下さい。


	半径rの円盤: weight * (r ^ 2) / 2.0
	辺の長さがa, bの長方形 : weight * ((a ^ 2) + (b ^ 2)) / 12.0

のような値を目安に設定してください。

実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qgetweight

qdamper

吸振などのパラメーターを設定

パラメーター:

num,damper,friction num(0) : オブジェクトID damper(0.7) : 吸振パラメーター値(実数) friction(1.0) : 摩擦抵抗値(実数)

説明:

指定したオブジェクトの吸振、惰性、重力係数などのパラメーターを設定します。 damper(吸振)は、接触した際のゆれを抑える力を示しています。 0.0から1.0までの値を設定するようにしてください。(範囲チェックは行なわれません) friction(摩擦)は、物体同士が接触した時に減衰する力の係数になります。 接触する物体のfrictionと乗算した値が参照され計算されます。 0.0から1.0までの値を設定するようにしてください。(範囲チェックは行なわれません)

実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qgetdamper

qinertia

惰性などのパラメーターを設定

パラメーター:

num,inertia,gravity num(0) : オブジェクトID inertia(0.999) : 惰性パラメーター値(実数) gravity(1.0) : オブジェクトの重力値(実数)

説明:

指定したオブジェクトの惰性、重力係数などのパラメーターを設定します。 inertia(惰性)は、0.0に近づくほど抵抗が発生してねっとりした動きに なります。0.0から1.0までの値を設定するようにしてください。(範囲チェックは行なわれません) gravity(オブジェクトの重力)は、空間に設定されている重力に乗算される形で オブジェクトのみに反映されます。 特定のオブジェクトだけに、異なる重力を与える場合に使用します。 現実にはありえない形で、特定のオブジェクトだけに無重力や反重力を与えるため、ゲームなどのキャラクター制御に有効です。

実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qgetinertia

qgroup

グループパラメーターを設定

パラメーター:

num,mygroup,exgroup,loggroup num(0) : オブジェクトID mygroup(1) : 自分が属するコリジョングループ値 exgroup(0) : 衝突を除外するグループ値 loggroup(0) : コリジョンログを作成するグループ値

説明:

指定したオブジェクトのグループパラメーターを設定します。 グループパラメーターは、衝突する相手オブジェクトを特定する場合などの識別に使用されます。 グループ値は、32bitいずれかのビットが1の値(1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768…)によって示されます。

実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qgetgroup qfind qcollision

qmat

マテリアルパラメーターを設定

パラメーター:

num,type,id,subid num(0) : オブジェクトID type(0) : マテリアルタイプ値 id(0) : 参照id値 subid(0) : 参照subid値

説明:

指定したオブジェクトのマテリアルパラメーターを設定します。 マテリアルパラメーターは、qdraw命令による描画時に反映されます。 マテリアルタイプ値により、表示方法を選択することができます。


	タイプ          値	内容
-------------------------------------------------------------------
	mat_none	0	何もしない(非表示)
	mat_spr		1	スプライト
	mat_spr2	2	スプライト(サイズ設定付き)
	mat_wire	3	ワイヤーフレーム
	mat_wire2	4	ワイヤーフレーム(輪郭付き)
	mat_delay	0x1000	後から描画

スプライトは、形状全体をカバーする形で矩形が貼り付けられます。 ワイヤーフレームの場合は、それぞれの頂点を線で繋ぎます。 mat_spr、mat_spr2を選択した場合は、idにスプライトとして表示する 画像のウィンドウID、subidに分割画像No.を指定します。 ウィンドウIDと分割画像No.は、celput命令で使用されるパラメーターと 同様で、素材となる画像をceldiv命令によって分割したものを参照することができます。 mat_wireまたは、mat_wire2を選択した場合は、idでワイヤーの色コード (RGBをパックした24bit値)、subidで輪郭の色コードを設定します。 マテリアルタイプ値に、mat_delay(0x1000)を加算したオブジェクトは、 後から描画されるようになります。 これは、半透明を使った表示などで利用することができます。

実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qgetmat qmat2 qmat3

qmat2

マテリアル詳細パラメーターを設定

パラメーター:

num,offsetx,offsety,zoomx,zoomy num(0) : オブジェクトID offsetx(0) : X方向表示オフセット offsety(0) : Y方向表示オフセット zoomx(1.0) : X方向表示倍率(実数) zoomy(1.0) : Y方向表示倍率(実数)

説明:

指定したオブジェクトのマテリアル詳細パラメーターを設定します。 マテリアル詳細パラメーターは、qdraw命令による描画時に反映されます。

実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qgetmat2 qmat qmat3

qmat3

マテリアル表示パラメーターを設定

パラメーター:

num,gmode,rate num(0) : オブジェクトID gmode(0) : コピーモード rate(256): 半透明レート

説明:

指定したオブジェクトのマテリアル表示パラメーターを設定します。 マテリアル表示パラメーターは、qdraw命令による描画時に反映されます。 gmodeは、スプライトを描画する際のコピーモードを指定します。 これは、HSPのgmode命令で指定されるモード値と同じです。 また、rate(半透明レート)も同様にgmode命令で指定された場合と同じ結果になります。

実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

gmode qgetmat3 qmat qmat2

quser

ユーザー定義データを設定

パラメーター:

num,user1,user2,user3 num(0) : オブジェクトID user1(0) : ユーザー定義データ1 user2(0) : ユーザー定義データ2 user3(0) : ユーザー定義データ3

説明:

指定したオブジェクトのユーザー定義データを設定します。 ユーザー定義データは、オブジェクトごとに保存可能な値で、何に使用するかはユーザーが自由に決めることができます。 ユーザー定義データ1〜3は、整数型の値を格納することができます。

実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qgetuser quser2

quser2

ユーザー定義データを設定2

パラメーター:

num,user4,user5,user6 num(0) : オブジェクトID user4(0.0) : ユーザー定義データ4(実数) user5(0.0) : ユーザー定義データ5(実数) user6(0.0) : ユーザー定義データ6(実数)

説明:

指定したオブジェクトのユーザー定義データを設定します。 ユーザー定義データは、オブジェクトごとに保存可能な値で、何に使用するかはユーザーが自由に決めることができます。 ユーザー定義データ4〜6は、実数型の値を格納することができます。

実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qgetuser2 quser

qfind

オブジェクト検索

パラメーター:

group,stat group(-1) : 検索するグループ値 stat(0) : stat値指定

説明:

登録されているオブジェクトを任意の条件で検索します。 最初に、qfind命令で条件を指定した後、qnext命令で結果を受け取る必要があります。 groupで検索するコリジョングループ値を指定します。 groupの指定を省略するか-1の場合は、すべてのグループが対象となります。 (ただしグループ値が0のオブジェクトは除外されます) 複数のグループを指定する場合は、それぞれのグループ値を足した値を指定してください。 statを指定することで、特定の状態だけを検索することが可能です。 statが0の場合は、すべての状態が対象となります。 statにstat_sleep(1)またはstat_active(2)を指定した場合は、同じ値を持つオブジェクトのみが対象となります。

実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qnext

qnext

オブジェクト検索結果取得

パラメーター:

var var : 検索結果を取得する変数

説明:

qfind命令による検索の結果を取得します。 最初に、qfind命令で条件を指定した後、qnext命令で結果を受け取る必要があります。 varで指定された変数にオブジェクトID値が代入されます。(変数は自動的に整数型となります。) qnext命令を実行するごとに、検索結果を取り出すことができます。 検索結果がなくなった場合は、-1が代入されます。

実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qfind

qcollision

コリジョン取得開始

パラメーター:

num, target num(0) : オブジェクトID target(-1) : コリジョンを取得する対象のオブジェクトID

説明:

オブジェクト同士のコリジョン(衝突)に関する情報の取得を開始します。 最初に、qcollision命令でオブジェクトを指定した後、qgetcol命令で結果を受け取る必要があります。 targetで、コリジョンを取得する対象のオブジェクトIDします。 targetが-1か、省略された場合は、numで指定されたオブジェクトに関わるすべての情報が取得されます。 コリジョンの取得を行なう際には、必ずコリジョングループの設定を行なっておく必要があります。 numで指定されたオブジェクトのパラメーターで、コリジョンログ作成グループとなっているものだけが取得されるので注意してください。

実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qgroup qgetcol qgetcol2 qgetcol3

qgetcol

コリジョン取得

パラメーター:

var_id,var_x,var_y var_id : オブジェクトIDを取得する変数 var_x : X座標を取得する変数 var_y : Y座標を取得する変数

説明:

qcollision命令による検索の結果を取得します。 最初に、qcollision命令で条件を指定した後、qgetcol命令で結果を受け取る必要があります。 さらに必要に応じて、qgetcol2命令、qgetcol3命令で追加の情報を取得することが可能です。 var_idで指定された変数に、コリジョンが検出されたオブジェクトのID値が代入されます。(変数は自動的に整数型となります。) var_xで指定された変数に、コリジョンが検出されたX座標が代入されます。(変数は自動的に実数型となります。) var_yで指定された変数に、コリジョンが検出されたY座標が代入されます。(変数は自動的に実数型となります。) qgetcol命令を実行するごとに、検索結果を取り出すことができます。 検索結果がなくなった場合は、オブジェクトIDとして-1が代入されます。

実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qfind qgetcol2 qgetcol3

qgetcol2

コリジョン詳細情報取得

パラメーター:

var_depth,var_nx,var_ny var_depth : 衝突の深さを取得する変数 var_nx : 衝突のX法線を取得する変数 var_ny : 衝突のY法線を取得する変数

説明:

qcollision命令による検索の結果を取得します。 必ず、qgetcol命令で結果を受け取った後で、情報を取得するようにしてください。 var_depthで指定された変数に、衝突の深さ(接触面にめりこんだ距離)が代入されます。(変数は自動的に実数型となります。) var_nx,var_nyで指定された変数に、衝突時の法線(x,y)が代入されます。(変数は自動的に実数型となります。)

実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qfind qgetcol qgetcol3

qgetcol3

コリジョン詳細情報取得2

パラメーター:

var_bound,var_slide var_bound : 垂直速度を取得する変数 var_slide : 水平速度を取得する変数

説明:

qcollision命令による検索の結果を取得します。 必ず、qgetcol命令で結果を受け取った後で、情報を取得するようにしてください。 var_boundで指定された変数に、接触面と垂直(はねる)方向の速度(プラス側がめりこみ方向)が代入されます。(変数は自動的に実数型となります。) var_slideで指定された変数に、接触面と水平(ひきずる)方向の速度が代入されます。(変数は自動的に実数型となります。)

実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qfind qgetcol qgetcol2

qgettype

typeパラメーターを取得

パラメーター:

num,var_type num(0) : オブジェクトID var_type : typeパラメーターを取得する変数

説明:

指定したオブジェクトのパラメーターを変数に取得します。 var_typeで指定された変数に、typeパラメーター値が代入されます。(変数は自動的に整数型となります。) 実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qtype

qgetstat

statパラメーターを取得

パラメーター:

num,var_stat,var_sleepcount num(0) : オブジェクトID var_stat : stat設定値を取得する変数 var_sleepcount: スリープカウント値を取得する変数

説明:

指定したオブジェクトのパラメーターを変数に取得します。 var_statで指定された変数に、statパラメーター値が代入されます。(変数は自動的に整数型となります。) var_sleepcountで指定された変数に、スリープカウント値が代入されます。(変数は自動的に整数型となります。) スリープカウント値は、qstatで設定した値ではなく、内部の物理計算実行回数に応じた値になっているので注意してください。 実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qstat

qgetpos

位置、角度パラメーターを取得

パラメーター:

num,var_x,var_y,var_angle num(0) : オブジェクトID var_x : X座標設定値を取得する変数 var_y : Y座標設定値を取得する変数 var_angle : 角度設定値を取得する変数

説明:

指定したオブジェクトのパラメーターを変数に取得します。 var_xで指定された変数に、X座標設定値が代入されます。(変数は自動的に実数型となります。) var_yで指定された変数に、Y座標設定値が代入されます。(変数は自動的に実数型となります。) var_angleで指定された変数に、角度設定値が代入されます。(変数は自動的に実数型となります。) 取得されるX,Y座標は、画面上の座標ではなくOBAQが使用する内部座標値なので注意してください。 内部座標値を画面上の座標に変換する場合は、qcnvaxis命令を使用してください。 実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qpos qcnvaxis

qgetspeed

速度パラメーターを取得

パラメーター:

num,var_px,var_py,var_pr num(0) : オブジェクトID var_px : X方向速度値を取得する変数 var_py : Y方向速度値を取得する変数 var_pr : 回転速度値を取得する変数

説明:

指定したオブジェクトのパラメーターを変数に取得します。 var_pxで指定された変数に、X方向速度値が代入されます。(変数は自動的に実数型となります。) var_pyで指定された変数に、Y方向速度値が代入されます。(変数は自動的に実数型となります。) var_prで指定された変数に、回転速度値が代入されます。(変数は自動的に実数型となります。) 実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qspeed

qgetweight

重さなどのパラメーターを取得

パラメーター:

num,var_weight,var_moment num(0) : オブジェクトID var_weight : 重さの値を取得する変数 var_moment : モーメント値を取得する変数

説明:

指定したオブジェクトのパラメーターを変数に取得します。 var_weightで指定された変数に、重さの値が代入されます。(変数は自動的に実数型となります。) var_momentで指定された変数に、モーメント値が代入されます。(変数は自動的に実数型となります。) 実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qweight

qgetdamper

吸振などのパラメーターを取得

パラメーター:

num,var_damper,var_friction num(0) : オブジェクトID var_damper : 吸振パラメーター値を取得する変数 var_friction : 摩擦抵抗値を取得する変数

説明:

指定したオブジェクトのパラメーターを変数に取得します。 var_damperで指定された変数に、吸振パラメーター値が代入されます。(変数は自動的に実数型となります。) var_frictionで指定された変数に、摩擦抵抗値が代入されます。(変数は自動的に実数型となります。) 実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qdamper

qgetinertia

惰性などのパラメーターを取得

パラメーター:

num,var_inertia,var_gravity num(0) : オブジェクトID var_inertia : 惰性パラメーター値を取得する変数 var_gravity : オブジェクトの重力値を取得する変数

説明:

指定したオブジェクトのパラメーターを変数に取得します。 var_inertiaで指定された変数に、惰性パラメーター値が代入されます。(変数は自動的に実数型となります。) var_gravityで指定された変数に、オブジェクトの重力値が代入されます。(変数は自動的に実数型となります。) 実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qinertia

qgetgroup

グループパラメーターを取得

パラメーター:

num,var_mygroup,var_exgroup,var_loggroup num(0) : オブジェクトID var_mygroup : 自分が属するコリジョングループ値を取得する変数 var_exgroup : 衝突を除外するグループ値を取得する変数 var_loggroup: コリジョンログを作成するグループ値を取得する変数

説明:

指定したオブジェクトのパラメーターを変数に取得します。 var_mygroupで指定された変数に、自分が属するコリジョングループ値が代入されます。(変数は自動的に整数型となります。) var_exgroupで指定された変数に、衝突を除外するグループ値が代入されます。(変数は自動的に整数型となります。) var_loggroupで指定された変数に、コリジョンログを作成するグループ値が代入されます。(変数は自動的に整数型となります。) 実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qgroup qfind qcollision

qgetmat

マテリアルパラメーターを取得

パラメーター:

num,var_type,var_id,var_subid num(0) : オブジェクトID var_type : マテリアルタイプ値を取得する変数 var_id : 参照id値を取得する変数 var_subid : 参照subid値を取得する変数

説明:

指定したオブジェクトのパラメーターを変数に取得します。 var_typeで指定された変数に、マテリアルタイプ値が代入されます。(変数は自動的に整数型となります。) var_idで指定された変数に、参照id値が代入されます。(変数は自動的に整数型となります。) var_subidで指定された変数に、参照subid値が代入されます。(変数は自動的に整数型となります。) 実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qmat qgetmat2 qgetmat3

qgetmat2

マテリアル詳細パラメーターを取得

パラメーター:

num,var_offsetx,var_offsety,var_zoomx,var_zoomy num(0) : オブジェクトID var_offsetx : X方向表示オフセット値を取得する変数 var_offsety : Y方向表示オフセット値を取得する変数 var_zoomx : X方向表示倍率値を取得する変数 var_zoomy : Y方向表示倍率値を取得する変数

説明:

指定したオブジェクトのパラメーターを変数に取得します。 var_offsetxで指定された変数に、X方向表示オフセット値が代入されます。(変数は自動的に整数型となります。) 指定したオブジェクトのパラメーターを変数に取得します。 var_offsetyで指定された変数に、Y方向表示オフセット値が代入されます。(変数は自動的に整数型となります。) 指定したオブジェクトのパラメーターを変数に取得します。 var_zoomxで指定された変数に、X方向表示倍率値が代入されます。(変数は自動的に実数型となります。) 指定したオブジェクトのパラメーターを変数に取得します。 var_zoomyで指定された変数に、Y方向表示倍率値が代入されます。(変数は自動的に実数型となります。) 実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qmat2 qgetmat qgetmat3

qgetmat3

マテリアル表示パラメーターを取得

パラメーター:

num,var_gmode,var_rate num(0) : オブジェクトID var_gmode : コピーモード値を取得する変数 var_rate : 半透明レート値を取得する変数

説明:

指定したオブジェクトのパラメーターを変数に取得します。 var_gmodeで指定された変数に、コピーモード値が代入されます。(変数は自動的に整数型となります。) var_rateで指定された変数に、半透明レート値が代入されます。(変数は自動的に整数型となります。) 実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qmat3 qgetmat qgetmat2

qgetuser

ユーザー定義データを取得

パラメーター:

num,var_user1,var_user2,var_user3 num(0) : オブジェクトID var_user1 : ユーザー定義データ1の値を取得する変数 var_user2 : ユーザー定義データ2の値を取得する変数 var_user3 : ユーザー定義データ3の値を取得する変数

説明:

指定したオブジェクトのパラメーターを変数に取得します。 var_user1で指定された変数に、ユーザー定義データ1の値が代入されます。(変数は自動的に整数型となります。) var_user2で指定された変数に、ユーザー定義データ2の値が代入されます。(変数は自動的に整数型となります。) var_user3で指定された変数に、ユーザー定義データ3の値が代入されます。(変数は自動的に整数型となります。) 実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

quser qgetuser2

qgetuser2

ユーザー定義データを取得2

パラメーター:

num,var_user4,var_user5,var_user6 num(0) : オブジェクトID var_user4 : ユーザー定義データ4の値を取得する変数 var_user5 : ユーザー定義データ5の値を取得する変数 var_user6 : ユーザー定義データ6の値を取得する変数

説明:

指定したオブジェクトのパラメーターを変数に取得します。 var_user4で指定された変数に、ユーザー定義データ4の値が代入されます。(変数は自動的に実数型となります。) var_user5で指定された変数に、ユーザー定義データ5の値が代入されます。(変数は自動的に実数型となります。) var_user6で指定された変数に、ユーザー定義データ6の値が代入されます。(変数は自動的に実数型となります。) 実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

quser2 qgetuser

qpush

任意の場所に力を与える

パラメーター:

num,xw,yw,ax,ay,sw num(0) : オブジェクトID xw(0.0) : X座標(実数) yw(0.0) : Y座標(実数) ax(0.0) : X方向の力(実数) ay(0.0) : Y方向の力(実数) sw(1) : 設定オプション

説明:

指定したオブジェクトに対して、(xw,yw)の位置から、(ax,ay)の強さで力を与えます。 与えられた力に応じて、オブジェクトの姿勢や速度が変化します。 swで、設定方法を指定することができます。


	sw     	内容
--------------------------------------------------
	0       オブジェクトの速度に反映させない
	1       オブジェクトの速度に反映させる

実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qblast

qblast

任意の場所から放射状に力を与える

パラメーター:

xw,yw,power,near,far xw(0.0) : X座標(実数) yw(0.0) : Y座標(実数) power(1.0) : 力の大きさ(実数) near(1.0) : 一番近い距離(実数) far(9999.0): 一番遠い距離(実数)

説明:

すべてのオブジェクトに対して任意の場所から放射状に力を与えます。 (xw, yw)を中心として、距離に反比例する力が加えられます。 powerは距離1.0の際に加わる力の大きさになります。 nearより近い位置は、反比例せずnearと同じ力の大きさとなります。 farより遠くにある場合は力は加わりません。

実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

qpush

qgetversion

バージョン情報を取得

パラメーター:

var var : バージョン情報を取得する変数

説明:

OBAQのバージョン情報を取得します。 varで指定された変数に文字列としてバージョン情報が代入されます。

参照:

qinner

座標がオブジェクト内にあるかを取得

パラメーター:

var,x,y,num var : 結果を取得する変数 x(0.0) : X座標(実数) y(0.0) : Y座標(実数) num(-1) : オブジェクトID

説明:

(x,y)で指定された座標がオブジェクト形状の内側にあるかを調べます。 numで調べたいオブジェクトのIDを指定します。 numがマイナス値か、または省略された場合は、すべての有効なオブジェクトに渡って 座標が内側にあるかどうかをチェックします。 内側にある場合は、varで指定された変数にオブジェクトID値が代入されます。 内側にない場合は、varで指定された変数に-1が代入されます。 varで指定された変数は、自動的に整数型となります。 (x,y)で指定する座標は、画面上の座標ではなくOBAQが使用する内部座標値になります。 画面上の座標から結果を取得する場合は、cnvaxis命令などで内部座標値に変換を 行なう必要があるので注意してください。

実行に失敗した場合は、システム変数statに0以外の値が代入されます。

参照:

cnvaxis

qgetptr

システムポインタ値取得

パラメーター:

var,option var : 内容を取得する変数 option(0) : オプション値

説明:

OBAQのシステムポインタ値を取得します。 このシステムポインタ値は、外部のアプリケーションやプラグイン等からOBAQの内部データにアクセスするために使用されます。 通常の使用では、システムポインタ値は必要ありません。 optionパラメーターでオプション値を設定することができます。 現在、optionパラメーターは0以外の値は無効になります。

参照:

hgobaq