HGIMG3/HGIMG4共通
Version 3.7
Date 2022/06/07
Author onitama
拡張画面制御命令
addang
angグループ情報を加算
オブジェクトの持つパラメーターを設定します。
angグループ(表示角度)に(x,y,z)で指定された値を加算します。
(x,y,z)には、実数または整数値を指定することができます。
角度の単位はラジアンになります。
整数で角度を設定するためのsetangr命令も用意されています。
addangr
angグループ情報を加算
オブジェクトの持つパラメーターを設定します。
angグループ(表示角度)に(x,y,z)で指定された値を加算します。
(x,y,z)には、実数または整数値を指定することができます。
角度の単位は整数で0~255で一周する値を使用します。
adddir
dirグループ情報を加算
オブジェクトの持つパラメーターを設定します。
dirグループ(移動ベクトル)に(x,y,z)で指定された値を加算します。
(x,y,z)には、実数または整数値を指定することができます。
addpos
posグループ情報を加算
オブジェクトの持つパラメーターを設定します。
posグループ(表示座標)に(x,y,z)で指定された値を設定します。
(x,y,z)には、実数または整数値を指定することができます。
addscale
scaleグループ情報を加算
オブジェクトの持つパラメーターを設定します。
scaleグループ(表示倍率)に(x,y,z)で指定された値を加算します。
(x,y,z)には、実数または整数値を指定することができます。
addwork
workグループ情報を加算
オブジェクトの持つパラメーターを設定します。
workグループ(ワーク値)に(x,y,z)で指定された値を加算します。
(x,y,z)には、実数または整数値を指定することができます。
delevent
イベントリストを削除
p1で指定したイベントリストを削除します。
delobj
オブジェクトの削除
指定されたオブジェクトを削除します。
event_addang
angグループ加算イベントを追加
idで指定しているイベントIDに、グループ加算イベントを追加します。
グループ加算イベントは、オブジェクトが持っているパラメーターに(x,y,z)の値を加算します。
event_addangr
angグループ加算イベントを追加
idで指定しているイベントIDに、グループ加算イベントを追加します。
グループ加算イベントは、オブジェクトが持っているパラメーターに(x,y,z)の値を加算します。
event_adddir
dirグループ加算イベントを追加
idで指定しているイベントIDに、グループ加算イベントを追加します。
グループ加算イベントは、オブジェクトが持っているパラメーターに(x,y,z)の値を加算します。
event_addpos
posグループ加算イベントを追加
idで指定しているイベントIDに、グループ加算イベントを追加します。
グループ加算イベントは、オブジェクトが持っているパラメーターに(x,y,z)の値を加算します。
event_addscale
scaleグループ加算イベントを追加
idで指定しているイベントIDに、グループ加算イベントを追加します。
グループ加算イベントは、オブジェクトが持っているパラメーターに(x,y,z)の値を加算します。
event_addwork
workグループ加算イベントを追加
idで指定しているイベントIDに、グループ加算イベントを追加します。
グループ加算イベントは、オブジェクトが持っているパラメーターに(x,y,z)の値を加算します。
event_ang
angグループ変化イベントを追加
idで指定しているイベントIDに、グループ変化イベントを追加します。
グループ変化イベントは、オブジェクトが持っているパラメーターの時間による変化を設定します。
frameで指定したフレーム数が経過した時に(x1,y1,z1)の値になります。
event_angr
angグループ変化イベントを追加
idで指定しているイベントIDに、グループ変化イベントを追加します。
グループ変化イベントは、オブジェクトが持っているパラメーターの時間による変化を設定します。
frameで指定したフレーム数が経過した時に(x1,y1,z1)の値になります。
event_delobj
オブジェクト削除イベントを追加
idで指定しているイベントIDに、オブジェクト削除イベントを追加します。
オブジェクト削除イベントは、現在イベントを実行しているオブジェクトそのものを削除する命令です。
event_dir
dirグループ変化イベントを追加
idで指定しているイベントIDに、グループ変化イベントを追加します。
グループ変化イベントは、オブジェクトが持っているパラメーターの時間による変化を設定します。
frameで指定したフレーム数が経過した時に(x1,y1,z1)の値になります。
event_jump
ジャンプイベントを追加
idで指定しているイベントIDに、ジャンプイベントを追加します。
ジャンプイベントは、指定されたイベント番号から実行を続けることを指示します。
イベントリストの中でのgoto命令にあたります。
p1で指定するイベント番号は、イベントに追加された順番に0,1,2…と数えたものになります。
event_pos
posグループ変化イベントを追加
idで指定しているイベントIDに、グループ変化イベントを追加します。
グループ変化イベントは、オブジェクトが持っているパラメーターの時間による変化を設定します。
frameで指定したフレーム数が経過した時に(x1,y1,z1)の値になります。
event_prmoff
パラメータービット消去イベントを追加
idで指定しているイベントIDに、パラメータービット消去イベントを追加します。
パラメータービット消去イベントは、p1で指定されたパラメーターIDから、
p2のビットだけを消去します。
パラメーターIDの詳細については、event_prmset命令を参照してください。
event_prmon
パラメータービット設定イベントを追加
idで指定しているイベントIDに、パラメータービット設定イベントを追加します。
パラメータービット設定イベントは、p1で指定されたパラメーターIDにp2のビットを設定します。
event_prmset
パラメーター設定イベントを追加
idで指定しているイベントIDに、パラメーター設定イベントを追加します。
パラメーター設定イベントは、p1で指定されたパラメーターIDにp2の値を設定します。
(それまでに設定されていた内容は消去されます)
パラメーターIDには、以下の名前を使用することができます。
event_scale
scaleグループ変化イベントを追加
idで指定しているイベントIDに、グループ変化イベントを追加します。
グループ変化イベントは、オブジェクトが持っているパラメーターの時間による変化を設定します。
frameで指定したフレーム数が経過した時に(x1,y1,z1)の値になります。
event_setang
angグループ設定イベントを追加
idで指定しているイベントIDに、グループ設定イベントを追加します。
グループ設定イベントは、オブジェクトが持っているパラメーターを設定します。
(x1,y1,z1)と(x2,y2,z2)を指定すると、それぞれの範囲内にある値を乱数で作成します。
event_setangr
angグループ設定イベントを追加
idで指定しているイベントIDに、グループ設定イベントを追加します。
グループ設定イベントは、オブジェクトが持っているパラメーターを設定します。
(x1,y1,z1)と(x2,y2,z2)を指定すると、それぞれの範囲内にある値を乱数で作成します。
event_setdir
dirグループ設定イベントを追加
idで指定しているイベントIDに、グループ設定イベントを追加します。
グループ設定イベントは、オブジェクトが持っているパラメーターを設定します。
(x1,y1,z1)と(x2,y2,z2)を指定すると、それぞれの範囲内にある値を乱数で作成します。
event_setpos
posグループ設定イベントを追加
idで指定しているイベントIDに、グループ設定イベントを追加します。
グループ設定イベントは、オブジェクトが持っているパラメーターを設定します。
(x1,y1,z1)と(x2,y2,z2)を指定すると、それぞれの範囲内にある値を乱数で作成します。
event_setscale
scaleグループ設定イベントを追加
idで指定しているイベントIDに、グループ設定イベントを追加します。
グループ設定イベントは、オブジェクトが持っているパラメーターを設定します。
(x1,y1,z1)と(x2,y2,z2)を指定すると、それぞれの範囲内にある値を乱数で作成します。
event_setwork
workグループ設定イベントを追加
idで指定しているイベントIDに、グループ設定イベントを追加します。
グループ設定イベントは、オブジェクトが持っているパラメーターを設定します。
(x1,y1,z1)と(x2,y2,z2)を指定すると、それぞれの範囲内にある値を乱数で作成します。
event_uv
UV設定イベントを追加
idで指定しているイベントIDに、UV設定イベントを追加します。この命令は、HGIMG3とHGIMG4で仕様が異なります。
HGIMG3では、2D及び3D(x形式モデルを除く)の単一ポリゴンが持つUVを動的に変更します。
event_wait
待ち時間イベントを追加
idで指定しているイベントIDに、待ち時間イベントを追加します。
待ち時間イベントは、p1で指定されたフレーム数だけ次のイベントに進むことを保留します。
event_work
workグループ変化イベントを追加
idで指定しているイベントIDに、グループ変化イベントを追加します。
グループ変化イベントは、オブジェクトが持っているパラメーターの時間による変化を設定します。
frameで指定したフレーム数が経過した時に(x1,y1,z1)の値になります。
f2str
小数値を文字列に変換
fvalで指定された小数値を文字列に変換して、valで指定された文字列型の変数に結果を返します。
fcos
コサインを求める
frotで指定された角度のコサイン値をfvalで指定した変数に代入します。
角度の単位はラジアン(2π=360度)になります。
findobj
オブジェクト検索
有効なオブジェクトを列挙します。
コリジョングループ値を指定した場合は、特定のコリジョングループに属するオブジェクトだけを検索します。
コリジョングループ値が0の場合は、すべてのオブジェクトが検索対象となります。
froti
整数値角度を小数値に変換
prmで指定された整数値(0~1023)を角度を示す値として、fvalに-π~+πのラジアン角度値に変換して代入します。
fsin
サインを求める
frotで指定された角度のサイン値をfvalで指定した変数に代入します。
角度の単位はラジアン(2π=360度)になります。
fsqr
平方根を求める
fprmで指定された値の平方根をfvalで指定した変数に代入します。
fv2str
ベクトルを文字列に変換
fvで指定された変数に格納されているベクトル(FV値)を文字列に変換してシステム変数refstrに結果を返します。
fvadd
ベクトル加算
(x,y,z)で指定された小数値(X,Y,Z)をFV値に加算する。
fvdir
計算が適用されたベクトルを取得する
fvで指定された変数に格納されているFV値(X,Y,Z)をもとに、実数値で指定されたベクトル(X,Y,Z)に対して計算を行ったものを、FV値として変数fvに代入します。
typeパラメーターで指定する値は、以下のものになります。
fvdiv
ベクトル除算
(x,y,z)で指定された小数値(X,Y,Z)をFV値に並列で除算する。
fvface
座標から角度を得る
fvで指定された変数に格納されているベクトル(FV値)を基点とするX,Y,Z座標から、指定されたX,Y,Z座標を直線で見るためのX,Y,Z回転角度を求めて変数fvに代入します。
fvinner
ベクトル内積
fvで指定された変数に格納されているFV値と、小数値(X,Y,Z)で指定するベクトルの内積を求めてfv.0に代入します。
fvmax
ベクトルの要素を最大値で切り詰める
fvで指定された変数に格納されているFV値の各要素を、パラメーターで指定された値(X,Y,Z)が最大値になるように切り詰めます。
FV値の各要素に対して最大値を適用する場合に使用します。
fvmin
ベクトルの要素を最小値で切り詰める
fvで指定された変数に格納されているFV値の各要素を、パラメーターで指定された値(X,Y,Z)が最小値になるように切り詰めます。
FV値の各要素に対して最小値を適用する場合に使用します。
fvmul
ベクトル乗算
(x,y,z)で指定された小数値(X,Y,Z)をFV値に並列で乗算する。
fvouter
ベクトル外積
fvで指定された変数に格納されているFV値と、小数値(X,Y,Z)で指定するベクトルの外積を求めて代入します。
fvset
ベクトル設定
(x,y,z)で指定された小数値(X,Y,Z)をベクトルとしてFV値に代入する。
fvseti
整数値からベクトル設定
(x,y,z)で指定された整数値をベクトルとしてFV値に代入する。
fvsub
ベクトル減算
(x,y,z)で指定された小数値(X,Y,Z)をFV値から減算する。
fvunit
ベクトル正規化
fvで指定された変数に格納されているベクトル(FV値)を正規化します。
getang
angグループ情報を取得
オブジェクトの持つパラメーターを取得します。
angグループ(表示角度)の内容が(x,y,z)で指定された変数に代入されます。
(x,y,z)は、実数型の変数として設定されます。
命令の最後に「i」を付加することで、整数値として値を取得することができます。
getangr
angグループ情報を取得
オブジェクトの持つパラメーターを取得します。
angグループ(表示角度)の内容が(x,y,z)で指定された変数に代入されます。
(x,y,z)は、整数型の変数として設定されます。
角度の単位は整数で0~255で一周する値を使用します。
getcoli
オブジェクトのコリジョン判定
指定したオブジェクトが持つコリジョン情報をもとに、そのオブジェクトが衝突している別なオブジェクトのIDを調べます。
distanceは、衝突する範囲(半径)を実数値で指定します。
衝突が検出された場合は、変数にオブジェクトIDが代入されます。
getdir
dirグループ情報を取得
オブジェクトの持つパラメーターを取得します。
dirグループ(移動ベクトル)の内容が(x,y,z)で指定された変数に代入されます。
(x,y,z)は、実数型の変数として設定されます。
命令の最後に「i」を付加することで、整数値として値を取得することができます。
getdiri
dirグループ情報を整数で取得
オブジェクトの持つパラメーターを取得します。
dirグループ(移動ベクトル)の内容が(x,y,z)で指定された変数に代入されます。
(x,y,z)は、整数型の変数として設定されます。
getnearobj
最も近くにあるオブジェクトを検索
検索元のオブジェクトIDから最も近い場所にある別なオブジェクトを検索します。
idで指定したオブジェクトの周囲で、最も近い位置にあるオブジェクトを検索して、varで指定された変数にオブジェクトIDを代入します。
getobjcoli
オブジェクトのグループ取得
指定したオブジェクトが所属するグループ値(コリジョングループなど)を取得し、varで指定された変数に代入します。
グループ値は、以下のものになります。
getpos
posグループ情報を取得
オブジェクトの持つパラメーターを取得します。
posグループ(表示座標)の内容が(x,y,z)で指定された変数に代入されます。
(x,y,z)は、実数型の変数として設定されます。
命令の最後に「i」を付加することで、整数値として値を取得することができます。
getposi
posグループ情報を整数で取得
オブジェクトの持つパラメーターを取得します。
posグループ(表示座標)の内容が(x,y,z)で指定された変数に代入されます。
(x,y,z)は、整数型の変数として設定されます。
getscale
scaleグループ情報を取得
オブジェクトの持つパラメーターを取得します。
scaleグループ(表示倍率)の内容が(x,y,z)で指定された変数に代入されますます。
(x,y,z)は、実数型の変数として設定されます。
命令の最後に「i」を付加することで、整数値として値を取得することができます。
getscalei
scaleグループ情報を整数で取得
オブジェクトの持つパラメーターを取得します。
scaleグループ(表示倍率)の内容が(x,y,z)で指定された変数に代入されますます。
(x,y,z)は、整数型の変数として設定されます。
getwork
workグループ情報を取得
オブジェクトの持つパラメーターを取得します。
workグループ(ワーク値)の内容が(x,y,z)で指定された変数に代入されます。
(x,y,z)は、実数型の変数として設定されます。
命令の最後に「i」を付加することで、整数値として値を取得することができます。
getworki
workグループ情報を整数で取得
オブジェクトの持つパラメーターを取得します。
workグループ(ワーク値)の内容が(x,y,z)で指定された変数に代入されます。
(x,y,z)は、整数型の変数として設定されます。
newevent
イベントリストを作成
新しいイベントIDを取得し、p1で指定した変数に代入します。
新しくイベントを作成する場合には、必ずnewevent命令でイベントIDを取得しておく必要があります。
次に、「event_」で始まるイベントリスト追加命令によって多彩な動作を登録しておくことができます。
nextobj
次のオブジェクト検索
findobj命令で指定された条件をもとにオブジェクトを検索します。
検索されると、変数にオブジェクトIDが代入されます。
検索対象がなくなった時には-1が代入されます。
objadd3
MOC情報を加算
MOC情報に設定されている値にx,y,zを加算します。
オフセット番号0から3つのパラメータが対象になります。
objadd3r
MOC情報を加算
MOC情報に設定されている値にfx,fy,fzを加算します。
ただし整数値(256で1回転)をラジアン単位に変換したパラメーターを加算します。
角度を指定するパラメーター以外では正常な値にならないので注意してください。
objaddf3
MOC情報を加算
MOC情報に設定されている値にfx,fy,fzを加算します。
オフセット番号0から3つのパラメータが対象になります。
objexist
オブジェクトIDが有効か調べる
p1で指定されたオブジェクトIDが有効であるか調べます。
オブジェクトIDが有効(登録済み)の場合は、システム変数statに0が代入されます。
オブジェクトIDが無効(未登録)の場合は、システム変数statに-1が代入されます。
objgetfv
MOC情報を取得
MOCに設定されている値を変数fvに代入します。
objset3
MOC情報を設定
MOC情報を設定します。
オフセット番号0から3つのパラメータが対象になります。
objset3r
MOC情報を設定
MOC情報に角度情報を設定します。
オフセット番号0から3つのパラメータが対象になります。
整数値(256で1回転)をラジアン単位に変換してパラメーターを書き込みます。
角度を指定するパラメーター以外では正常な値にならないので注意してください。
objsetf3
MOC情報を設定
MOC情報を設定します。
オフセット番号0から3つのパラメータが対象になります。
selang
回転角度をMOC情報に設定
MOC設定命令の対象となるMOCグループをang(回転角度)に設定します
idは、オブジェクトIDとなります。
seldir
移動量をMOC情報に設定
MOC設定命令の対象となるMOCグループをdir(移動量)に設定します
idは、オブジェクトIDとなります。
selmoc
MOC情報を設定
MOC設定命令の対象となるMOCグループを指定します。
idは、オブジェクトIDとなります。
通常は、selpos,selang,selscale,seldir命令をお使いください。
selpos
移動座標をMOC情報に設定
MOC設定命令の対象となるMOCグループをpos(座標)に設定します
idは、オブジェクトIDとなります。
selscale
スケールをMOC情報に設定
MOC設定命令の対象となるMOCグループをscale(スケール)に設定します
idは、オブジェクトIDとなります。
selwork
オブジェクトワークをMOC情報に設定
MOC設定命令の対象となるMOCグループをwork(ワーク)に設定します
idは、オブジェクトIDとなります。
setang
angグループ情報を設定
オブジェクトの持つパラメーターを設定します。
angグループ(表示角度)に(x,y,z)で指定された値を設定します。
(x,y,z)には、実数または整数値を指定することができます。
角度の単位はラジアンになります。
(回転する順番はX->Y->Zとなります。
setangr
angグループ情報を設定
オブジェクトの持つパラメーターを設定します。
angグループ(表示角度)に(x,y,z)で指定された値を設定します。
(x,y,z)には、実数または整数値を指定することができます。
角度の単位は整数で0~255で一周する値を使用します。
setborder
オブジェクト有効範囲設定
ボーダー領域(オブジェクト有効範囲)を設定します。
optionパラメーターにより、( fx,fy,fz )に設定する内容が変わります。
optionパラメーターを省略するか、または0の場合は、
( 0,0,0 )を中心にした、( fx,fy,fz )サイズの立方体がボーダー領域となります。
setcoli
オブジェクトのコリジョン設定
オブジェクトに対してコリジョングループ情報を設定します。
コリジョングループ値は、1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768の中から1つだけを選択可能です。
setdir
dirグループ情報を設定
オブジェクトの持つパラメーターを設定します。
dirグループ(移動ベクトル)に(x,y,z)で指定された値を設定します。
(x,y,z)には、実数または整数値を指定することができます。
移動ベクトルに登録された値は、オブジェクトの自動移動モード(OBJ_MOVE)時に参照されます。
setevent
オブジェクトにイベントを設定
p1で指定したオブジェクトにp2のイベントを適用します。
あらかじめ、決まった流れの処理(イベント)を登録したイベントリストを用意しておく必要があります。
setevent命令によって設定されるイベントは、オブジェクト1つあたり4つまで同時に適用することが可能です。
setobjmode
オブジェクトのモード設定
指定されたオブジェクトのモードを変更します。
オブジェクトのモードは、あらかじめデフォルトのモードがモデルの種類に応じて設定されているので、通常は特に設定する必要はありません。
モードは以下の中から選択します。
setobjrender
オブジェクトのレンダリンググループ設定
オブジェクトに対してレンダリンググループ、ライティンググループ情報を設定します。
レンダリンググループ値は、カメラからレンダリングした際に表示のON/OFFを設定するための値です。カメラが持つレンダリンググループ値と同一である場合は、表示が有効となります。
setpos
posグループ情報を設定
オブジェクトの持つパラメーターを設定します。
posグループ(表示座標)に(x,y,z)で指定された値を設定します。
(x,y,z)には、実数または整数値を指定することができます。
setscale
scaleグループ情報を設定
オブジェクトの持つパラメーターを設定します。
scaleグループ(表示倍率)に(x,y,z)で指定された値を設定します。
(x,y,z)には、実数または整数値を指定することができます。
setwork
workグループ情報を設定
オブジェクトの持つパラメーターを設定します。
workグループ(ワーク値)に(x,y,z)で指定された値を設定します。
(x,y,z)には、実数または整数値を指定することができます。
str2f
文字列を小数値に変換
"fval"で指定された文字列情報を小数値として読み出し、fvalで指定された変数に格納します。
str2fv
文字列をベクトルに変換
"x,y,z"で指定された文字列情報を「,」で区切られたX,Y,Z小数値として読み出し、fvで指定された変数に格納します。
それぞれの項目が正しく数値として認識できない(不正な)文字列があった場合には、それ以降の項目も含めて0.0が代入されます。