content: ;
  ;	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
  
  
  