;
;	HSP help manager用 HELPソースファイル
;	(先頭が「;」の行はコメントとして処理されます)
;

%type
拡張命令
%ver
3.4
%note
obaq.asをインクルードすること。

%date
2014/04/24
%author
onitama
%dll
obaq
%url
http://hsp.tv/
%port
Win
%group
拡張入出力制御命令


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


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


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


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

%href
qview
qexec
qcnvaxis
qgetaxis


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

%href
qdraw
qreset


%index
qsetreq
システムリクエスト設定
%prm
reqid,val
reqid(0) : リクエストID
val(0.0) : 設定値(実数)
%inst
OBAQに対して様々なシステム設定を行ないます。
reqid値で指定できるのは以下のシンボルです。
^p
	シンボル名        	内容
------------------------------------------------------------------------
	REQ_PHYSICS_RATE	1フレームあたりの物理計算回数
	REQ_MAXOBJ		オブジェクト最大数(512以内)(*)
	REQ_MAXLOG		コリジョンログ最大数(*)
	REQ_DEFAULT_WEIGHT	デフォルトの重さ
	REQ_DEFAULT_MOMENT	デフォルトのモーメント
	REQ_DEFAULT_FRICTION	デフォルトの摩擦

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

%href
qgetreq


%index
qgetreq
システムリクエスト取得
%prm
var,reqid
var      : 内容を取得する変数
reqid(0) : リクエストID
%inst
OBAQのシステム設定値を取得します。
varで指定された変数に内容を読み出します。
varの変数は、自動的に実数型に設定されます。
reqid値で指定できるのは以下のシンボルです。
^p
	シンボル名            初期値	内容
------------------------------------------------------------------------------
	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命令実行まで内容が反映されません。
^p

%href
qsetreq


%index
qborder
外壁を設定
%prm
x1,y1,x2,y2
x1(-100) : 左上X座標(実数)
y1(-100) : 左上Y座標(実数)
x2(100)  : 右下X座標(実数)
y2(100)  : 右下Y座標(実数)
%inst
標準的に設定されている外壁のサイズを再設定します。
画面の中央を(0,0)として、左上と右下の座標(OBAQの内部座標)を指定してください。
外壁は、何も壁のない状態で画面内にオブジェクトを配置した際に、
画面外まで落下するのを防ぐためのものです。
%href
qreset


%index
qgravity
重力を設定
%prm
gx,gy
gx(0.0)   : X方向の重力(実数)
gy(0.005) : Y方向の重力(実数)
%inst
空間の重力を設定します。
初期値は、(0,0.005)が設定されています。

%href
qreset


%index
qcnvaxis
X,Y座標値を変換
%prm
var_x,var_y,x,y,opt
var_x  : Xを取得する変数
var_y  : Yを取得する変数
x(0.0) : 変換元のX座標(実数)
y(0.0) : 変換元のY座標(実数)
opt(0) : 変換モード
%inst
X,Y座標値を指定された方法に従って変換します。
変換元の座標を(x,y)で指定すると、var_x,var_yにそれぞれ変換済みのX,Y座標値が代入されます。
optで指定する変換モードは、以下の値を選ぶことができます。
^p
	変換モード        	内容
------------------------------------------------------------------------
	0                       内部座標を画面上の座標に変換
	1                       画面上の座標を内部座標に変換
^p
変換モード0(または省略時)は、内部座標をqdraw命令で表示される画面上の座標に変換します。(var_x,var_yは整数型に設定されます。)
変換モード1は、qdraw命令で表示される画面上の座標を内部座標に変換します。(var_x,var_yは実数型に設定されます。)

%href
qgetaxis


%index
qgetaxis
内部座標を取得
%prm
num,var_x,var_y,type
num(0) : オブジェクトID
var_x  : Xを取得する変数
var_y  : Yを取得する変数
type(0): 取得タイプ
%inst
OBAQのオブジェクトが持つ内部座標及び表示パラメーターを変数に読み出します。
var_x,var_yは整数型として自動的に設定されます。
typeで指定できる内容は以下の通りです。
^p
	取得タイプ        	内容
------------------------------------------------------------------------
	0                       オブジェクトの左上座標
	1                       オブジェクトの右下座標
	2			オブジェクトのX,Yサイズ(*)

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

%href
qcnvaxis


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

%href
qaddpoly
qaddmodel


%index
qaddpoly
多角形オブジェクト追加
%prm
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) : コリジョンログを作成するグループ
%inst
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で配置チェックのモードを選択することができます。
^p
	モード        値	内容
------------------------------------------------------------------------
	colsw_none     0        出現時コリジョンチェック無し
	colsw_active   1        出現時active状態の岩との接触を避ける
	colsw_all      2        出現時reserve状態以外の岩との接触を避ける
^p
オブジェクトが正常に追加された時には、varで指定された変数にオブジェクトID値が代入されます。(変数は自動的に整数型となります。)
登録数の限界でオブジェクトの追加が行なわれなかった場合は、varで指定された変数に-1が代入されます。
コリジョン(衝突)検出のためオブジェクトの追加が行なわれなかった場合は、varで指定された変数に-2が代入されます。

%href
qaddmodel


%index
qaddmodel
自由設定オブジェクト追加
%prm
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) : コリジョンログを作成するグループ
%inst
OBAQに自由設定された形状のオブジェクトを追加します。
一般的な多角形は、qaddpoly命令によって生成することができます。
qaddmodel命令では、頂点を個別に指定することでより自由な形を登録することができます。
shape_varに、形状データを代入した配列変数を指定する必要があります。
配列変数には、x1,y1,x2,y2…の順番に座標を格納しておいてください。
座標は、必ず左回り(反時計回り)で指定し、凸面体でなければなりません。
1つのオブジェクトに複数の凸面体を内包させることも可能です。
その場合は、左回りで指定する座標の最後を、最初の座標と同一にして閉じた形にした後で、
新しい別な形の座標を指定するようにしてください。
^
nvertexでデータの個数(頂点の個数ではありません)を指定します。
nvertexがマイナス値か省略された場合は、配列に設定された要素数が使用されます。
形状データを格納した配列変数には、実数型、整数型のどちらかを使用できます。
規定の頂点数を超えるデータを扱うことはできませんので注意してください。詳しくは、OBAQ.DLLのマニュアルを参照してください。
^p
	;	自由な形状のモデルを追加
	;
	model=-1.0,-1.0, -1.0,2.0, 2.0,1.0, 1.0,-1.0
	qaddmodel i,model,-1, 30,64,0
^p
(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で配置チェックのモードを選択することができます。
^p
	モード        値	内容
------------------------------------------------------------------------
	colsw_none     0        出現時コリジョンチェック無し
	colsw_active   1        出現時active状態の岩との接触を避ける
	colsw_all      2        出現時reserve状態以外の岩との接触を避ける
^p
オブジェクトが正常に追加された時には、varで指定された変数にオブジェクトID値が代入されます。(変数は自動的に整数型となります。)
登録数の限界でオブジェクトの追加が行なわれなかった場合は、varで指定された変数に-1が代入されます。
コリジョン(衝突)検出のためオブジェクトの追加が行なわれなかった場合は、varで指定された変数に-2が代入されます。

%href
qaddpoly


%index
qtype
typeパラメーターを設定
%prm
num,type,option
num(0)    : オブジェクトID
type(0)   : 設定値
option(0) : 設定オプション
%inst
指定したオブジェクトのtypeパラメーターを設定します。
typeパラメーターには、以下の内容を指定することができます。
^p
	マクロ名        値	内容
-----------------------------------------------------------
	type_normal	0	通常のオブジェクト
	type_inner	1	接触判定を反転したオブジェクト
	type_bindX	0x40	X軸を背景に固定
	type_bindY	0x80	Y軸を背景に固定
	type_bindR	0x100	回転を固定
	type_bind	0x1c0	背景に完全固定(物理挙動なし)
	type_autowipe	0x100000  ボーダー範囲を越えたら自動的に消去
^p
type_innerは、外壁を作成する際に使用します。
デフォルトの壁(qborder命令で作成される形状)に使用されていますが、
この用途以外では使用しないよう注意してください。
type_autowipeは、qborder命令で設定したボーダー領域(枠)の範囲を出たオブジェクトを自動的に消去するためのフラグです。
^
optionで、type値の設定方法を指定することができます。
^p
	option       	内容
------------------------------------------------------------------------
	0               type値をセット(set)
	1               type値を追加(or)
	2               type値を除外(not)
^p
実行に失敗した場合は、システム変数statに0以外の値が代入されます。

%href
qgettype
qborder


%index
qstat
statパラメーターを設定
%prm
num,stat,sleepcount
num(0)        : オブジェクトID
stat(0)       : 設定値
sleepcount(0) : スリープカウント値
%inst
指定したオブジェクトのstatパラメーター、及びスリープカウント値を設定します。
statパラメーターには、以下の内容を指定することができます。
^p
	マクロ名        値	内容
-------------------------------------------------------------------
	stat_reserve 	0	未使用オブジェクト
	stat_sleep 	1	出現待ちオブジェクト
	stat_active 	2	出現しているオブジェクト
^p
optionで、type値の設定方法を指定することができます。
スリープカウント値は、statにstat_sleepを指定している際に参照される値です。
stat_sleepになっているオブジェクトは、スリープカウント値の回数だけ点滅して
出現します。(スリープカウント値が0の場合は、出現せず準備状態を維持します。)
^
実行に失敗した場合は、システム変数statに0以外の値が代入されます。

%href
qgetstat


%index
qpos
位置、角度パラメーターを設定
%prm
num,x,y,angle
num(0)     : オブジェクトID
x(0.0)     : X座標設定値(実数)
y(0.0)     : Y座標設定値(実数)
angle(0.0) : 角度設定値(実数)(ラジアン)
%inst
指定したオブジェクトの位置、角度パラメーターを設定します。
(x,y)でオブジェクトの基準となる位置(中心座標)を指定します。
angleでオブジェクト回転角度(+方向が時計周り)を指定します。単位はラジアンとなります。
OBAQでは、基本的に物体を動かす場合でも、直接物体の座標を
変更するのではなく動かしたい方向に力を加えたり、qgetspeed命令により
加速度を設定することで実現してください。
強制的に座標を変更した場合には、正しい物理挙動にならない可能性があります。
^
実行に失敗した場合は、システム変数statに0以外の値が代入されます。

%href
qgetpos


%index
qspeed
速度パラメーターを設定
%prm
num,px,py,pr,option
num(0)     : オブジェクトID
px(0.0) : X方向設定値(実数)
py(0.0) : Y方向設定値(実数)
pr(0.0) : 回転速度パラメーター(実数)
option(0) : 設定オプション
%inst
指定したオブジェクトの速度パラメーターを設定します。
(px,py)でオブジェクトのX,Y方向に対する移動速度を指定します。
prで回転に対する速度を指定します。
optionで、設定方法を指定することができます。
^p
	option       	内容
------------------------------------------------------------------------
	0               速度値を加算(add)
	1               速度値×２を上書き(set)
	2               速度値を上書き(set)
^p
実行に失敗した場合は、システム変数statに0以外の値が代入されます。
option(設定オプション)値が2の場合は、指定された値が設定されます。
option(設定オプション)値が1の場合は、指定された値の２倍が設定されますので注意してください。

%href
qgetspeed


%index
qweight
重さなどのパラメーターを設定
%prm
num,weight,moment
num(0) : オブジェクトID
weight(6.0)    : 重さの値(実数)
moment(1200.0) : モーメント値(実数)
%inst
指定したオブジェクトの重さ、モーメント、摩擦などのパラメーターを設定します。
weight(重さ)は、半径rの円に標準的な比重の場合、
^p
	(r ^ 2) / 32.0
^p
くらいを目安に設定してください。
moment(モーメント)は、回転のしやすさに関わるパラメーターだと考えて下さい。
^p
	半径rの円盤： weight * (r ^ 2) / 2.0
	辺の長さがa, bの長方形 : weight * ((a ^ 2) + (b ^ 2)) / 12.0
^p
のような値を目安に設定してください。
^
実行に失敗した場合は、システム変数statに0以外の値が代入されます。

%href
qgetweight


%index
qdamper
吸振などのパラメーターを設定
%prm
num,damper,friction
num(0) : オブジェクトID
damper(0.7)    : 吸振パラメーター値(実数)
friction(1.0)  : 摩擦抵抗値(実数)
%inst
指定したオブジェクトの吸振、惰性、重力係数などのパラメーターを設定します。
damper(吸振)は、接触した際のゆれを抑える力を示しています。
0.0から1.0までの値を設定するようにしてください。(範囲チェックは行なわれません)
friction(摩擦)は、物体同士が接触した時に減衰する力の係数になります。
接触する物体のfrictionと乗算した値が参照され計算されます。
0.0から1.0までの値を設定するようにしてください。(範囲チェックは行なわれません)
^
実行に失敗した場合は、システム変数statに0以外の値が代入されます。

%href
qgetdamper


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

%href
qgetinertia


%index
qgroup
グループパラメーターを設定
%prm
num,mygroup,exgroup,loggroup
num(0)      : オブジェクトID
mygroup(1)  : 自分が属するコリジョングループ値
exgroup(0)  : 衝突を除外するグループ値
loggroup(0) : コリジョンログを作成するグループ値
%inst
指定したオブジェクトのグループパラメーターを設定します。
グループパラメーターは、衝突する相手オブジェクトを特定する場合などの識別に使用されます。
グループ値は、32bitいずれかのビットが1の値(1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768…)によって示されます。
^
実行に失敗した場合は、システム変数statに0以外の値が代入されます。

%href
qgetgroup
qfind
qcollision


%index
qmat
マテリアルパラメーターを設定
%prm
num,type,id,subid
num(0)   : オブジェクトID
type(0)  : マテリアルタイプ値
id(0)    : 参照id値
subid(0) : 参照subid値
%inst
指定したオブジェクトのマテリアルパラメーターを設定します。
マテリアルパラメーターは、qdraw命令による描画時に反映されます。
マテリアルタイプ値により、表示方法を選択することができます。
^p
	タイプ          値	内容
-------------------------------------------------------------------
	mat_none	0	何もしない(非表示)
	mat_spr		1	スプライト
	mat_spr2	2	スプライト(サイズ設定付き)
	mat_wire	3	ワイヤーフレーム
	mat_wire2	4	ワイヤーフレーム(輪郭付き)
	mat_delay	0x1000	後から描画
^p
スプライトは、形状全体をカバーする形で矩形が貼り付けられます。
ワイヤーフレームの場合は、それぞれの頂点を線で繋ぎます。
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以外の値が代入されます。

%href
qgetmat
qmat2
qmat3


%index
qmat2
マテリアル詳細パラメーターを設定
%prm
num,offsetx,offsety,zoomx,zoomy
num(0)   : オブジェクトID
offsetx(0) : X方向表示オフセット
offsety(0) : Y方向表示オフセット
zoomx(1.0) : X方向表示倍率(実数)
zoomy(1.0) : Y方向表示倍率(実数)
%inst
指定したオブジェクトのマテリアル詳細パラメーターを設定します。
マテリアル詳細パラメーターは、qdraw命令による描画時に反映されます。
^
実行に失敗した場合は、システム変数statに0以外の値が代入されます。

%href
qgetmat2
qmat
qmat3


%index
qmat3
マテリアル表示パラメーターを設定
%prm
num,gmode,rate
num(0)   : オブジェクトID
gmode(0) : コピーモード
rate(256): 半透明レート
%inst
指定したオブジェクトのマテリアル表示パラメーターを設定します。
マテリアル表示パラメーターは、qdraw命令による描画時に反映されます。
gmodeは、スプライトを描画する際のコピーモードを指定します。
これは、HSPのgmode命令で指定されるモード値と同じです。
また、rate(半透明レート)も同様にgmode命令で指定された場合と同じ結果になります。
^
実行に失敗した場合は、システム変数statに0以外の値が代入されます。

%href
gmode
qgetmat3
qmat
qmat2


%index
quser
ユーザー定義データを設定
%prm
num,user1,user2,user3
num(0)   : オブジェクトID
user1(0) : ユーザー定義データ1
user2(0) : ユーザー定義データ2
user3(0) : ユーザー定義データ3
%inst
指定したオブジェクトのユーザー定義データを設定します。
ユーザー定義データは、オブジェクトごとに保存可能な値で、何に使用するかはユーザーが自由に決めることができます。
ユーザー定義データ1〜3は、整数型の値を格納することができます。
^
実行に失敗した場合は、システム変数statに0以外の値が代入されます。

%href
qgetuser
quser2


%index
quser2
ユーザー定義データを設定2
%prm
num,user4,user5,user6
num(0)     : オブジェクトID
user4(0.0) : ユーザー定義データ4(実数)
user5(0.0) : ユーザー定義データ5(実数)
user6(0.0) : ユーザー定義データ6(実数)
%inst
指定したオブジェクトのユーザー定義データを設定します。
ユーザー定義データは、オブジェクトごとに保存可能な値で、何に使用するかはユーザーが自由に決めることができます。
ユーザー定義データ4〜6は、実数型の値を格納することができます。
^
実行に失敗した場合は、システム変数statに0以外の値が代入されます。

%href
qgetuser2
quser


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

%href
qnext


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

%href
qfind


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

%href
qgroup
qgetcol
qgetcol2
qgetcol3


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

%href
qfind
qgetcol2
qgetcol3


%index
qgetcol2
コリジョン詳細情報取得
%prm
var_depth,var_nx,var_ny
var_depth : 衝突の深さを取得する変数
var_nx    : 衝突のX法線を取得する変数
var_ny    : 衝突のY法線を取得する変数
%inst
qcollision命令による検索の結果を取得します。
必ず、qgetcol命令で結果を受け取った後で、情報を取得するようにしてください。
var_depthで指定された変数に、衝突の深さ(接触面にめりこんだ距離)が代入されます。(変数は自動的に実数型となります。)
var_nx,var_nyで指定された変数に、衝突時の法線(x,y)が代入されます。(変数は自動的に実数型となります。)
^
実行に失敗した場合は、システム変数statに0以外の値が代入されます。

%href
qfind
qgetcol
qgetcol3


%index
qgetcol3
コリジョン詳細情報取得2
%prm
var_bound,var_slide
var_bound : 垂直速度を取得する変数
var_slide : 水平速度を取得する変数
%inst
qcollision命令による検索の結果を取得します。
必ず、qgetcol命令で結果を受け取った後で、情報を取得するようにしてください。
var_boundで指定された変数に、接触面と垂直（はねる）方向の速度(プラス側がめりこみ方向)が代入されます。(変数は自動的に実数型となります。)
var_slideで指定された変数に、接触面と水平（ひきずる）方向の速度が代入されます。(変数は自動的に実数型となります。)
^
実行に失敗した場合は、システム変数statに0以外の値が代入されます。

%href
qfind
qgetcol
qgetcol2


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

%href
qtype


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

%href
qstat


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

%href
qpos
qcnvaxis


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

%href
qspeed


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

%href
qweight


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

%href
qdamper


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

%href
qinertia


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

%href
qgroup
qfind
qcollision


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

%href
qmat
qgetmat2
qgetmat3


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

%href
qmat2
qgetmat
qgetmat3


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

%href
qmat3
qgetmat
qgetmat2


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

%href
quser
qgetuser2


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

%href
quser2
qgetuser


%index
qpush
任意の場所に力を与える
%prm
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)   : 設定オプション
%inst
指定したオブジェクトに対して、(xw,yw)の位置から、(ax,ay)の強さで力を与えます。
与えられた力に応じて、オブジェクトの姿勢や速度が変化します。
swで、設定方法を指定することができます。
^p
	sw     	内容
--------------------------------------------------
	0       オブジェクトの速度に反映させない
	1       オブジェクトの速度に反映させる
^p
実行に失敗した場合は、システム変数statに0以外の値が代入されます。

%href
qblast


%index
qblast
任意の場所から放射状に力を与える
%prm
xw,yw,power,near,far
xw(0.0)    : X座標(実数)
yw(0.0)    : Y座標(実数)
power(1.0) : 力の大きさ(実数)
near(1.0)  : 一番近い距離(実数)
far(9999.0): 一番遠い距離(実数)
%inst
すべてのオブジェクトに対して任意の場所から放射状に力を与えます。
(xw, yw)を中心として、距離に反比例する力が加えられます。
powerは距離1.0の際に加わる力の大きさになります。
nearより近い位置は、反比例せずnearと同じ力の大きさとなります。
farより遠くにある場合は力は加わりません。
^
実行に失敗した場合は、システム変数statに0以外の値が代入されます。

%href
qpush


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

%href


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

%href
cnvaxis


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

%href
hgobaq


