hgimg4
Version 3.6
Date 2021/01/18
Author onitama
Version 3.6
Date 2021/01/06
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)には、実数または整数値を指定することができます。
addwork2
work2グループ情報を加算
オブジェクトの持つパラメーターを設定します。
work2グループ(ワーク2値)に(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_angy
angグループ変化イベントを追加
event_ang命令と同様の機能を持っていますが、回転の順番がY->X->Zとなります。
event_angz
angグループ変化イベントを追加
event_ang命令と同様の機能を持っていますが、回転の順番がZ->Y->Xとなります。
event_delobj
オブジェクト削除イベントを追加
idで指定しているイベントIDに、オブジェクト削除イベントを追加します。
オブジェクト削除イベントは、現在イベントを実行しているオブジェクトそのものを削除する命令です。
event_dir
dirグループ変化イベントを追加
idで指定しているイベントIDに、グループ変化イベントを追加します。
グループ変化イベントは、オブジェクトが持っているパラメーターの時間による変化を設定します。
frameで指定したフレーム数が経過した時に(x1,y1,z1)の値になります。
event_fade
フェード設定イベントを追加
オブジェクトのフェード値を設定するイベントを追加します。
フェードにマイナス値を指定することでα値を0に向けてフェードアウト、プラス値を指定することでα値を255に向けてフェードインさせることができます。
event_prmset命令でPRMSET_FADEパラメーターに設定することと等価です。
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_setangy
angグループ設定イベントを追加
event_setang命令と同様の機能を持っていますが、回転の順番がY->X->Zとなります。
event_setangz
angグループ設定イベントを追加
event_setang命令と同様の機能を持っていますが、回転の順番がZ->Y->Xとなります。
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_suicide
オブジェクト破棄イベントを追加
idで指定しているイベントIDに、オブジェクト破棄イベントを追加します。
この命令は、event_delobjと同等に使用することができます。
event_wait
待ち時間イベントを追加
idで指定しているイベントIDに、待ち時間イベントを追加します。
待ち時間イベントは、p1で指定されたフレーム数だけ次のイベントに進むことを保留します。
event_work
workグループ変化イベントを追加
idで指定しているイベントIDに、グループ変化イベントを追加します。
グループ変化イベントは、オブジェクトが持っているパラメーターの時間による変化を設定します。
frameで指定したフレーム数が経過した時に(x1,y1,z1)の値になります。
f2str
小数値を文字列に変換
fvalで指定された小数値を文字列に変換して、valで指定された文字列型の変数に結果を返します。
fcos
コサインを求める
frotで指定された角度のコサイン値をfvalで指定した変数に代入します。
角度の単位はラジアン(2π=360度)になります。
findobj
オブジェクト検索
有効なオブジェクトを列挙します。
コリジョングループ値を指定した場合は、特定のコリジョングループに属するオブジェクトだけを検索します。
コリジョングループ値が0の場合は、すべてのオブジェクトが検索対象となります。
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に代入します。
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)は、整数型の変数として設定されます。
getobjcoli
オブジェクトのグループ取得
指定したオブジェクトが所属するグループ値(コリジョングループなど)を取得し、varで指定された変数に代入します。
グループ値は、以下のものになります。
getobjname
オブジェクトのノード名を取得する
ノードオブジェクトに指定された名称を取得します。
varで指定された変数に名称が文字列型として代入されます。
すべてのノードオブジェクトは、任意に指定した名称が設定されています。
getpos
posグループ情報を取得
オブジェクトの持つパラメーターを取得します。
posグループ(表示座標)の内容が(x,y,z)で指定された変数に代入されます。
(x,y,z)は、実数型の変数として設定されます。
命令の最後に「i」を付加することで、整数値として値を取得することができます。
getposi
posグループ情報を整数で取得
オブジェクトの持つパラメーターを取得します。
posグループ(表示座標)の内容が(x,y,z)で指定された変数に代入されます。
(x,y,z)は、整数型の変数として設定されます。
getquat
quatグループ情報を取得
オブジェクトの持つ回転パラメーターを取得します。
quatグループ(クォータニオン)の内容が(x,y,z,w)で指定された変数に代入されます。
(x,y,z,w)は、実数型の変数として設定されます。
HGIMG4内部では、すべての回転情報は、クォータニオンにより保持されています。
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」を付加することで、整数値として値を取得することができます。
getwork2
ノードワーク値2を取得
オブジェクトの持つwork2パラメーターを取得します。
(x,y,z)は、実数型の変数として設定されます。
命令の最後に「i」を付加することで、整数値として値を取得することができます。
getwork2i
ノードワーク値2を取得(整数値)
オブジェクトの持つwork2パラメーターを取得します。
(x,y,z)は、整数型の変数として設定されます。
getwork2命令を使用することで、実数値として値を取得することができます。
getworki
workグループ情報を整数で取得
オブジェクトの持つパラメーターを取得します。
workグループ(ワーク値)の内容が(x,y,z)で指定された変数に代入されます。
(x,y,z)は、整数型の変数として設定されます。
gpact
アニメーションクリップを再生/停止
指定された名前のアニメーションクリップの再生/停止などをコントロールします。
アニメーションが設定されているモデルのオブジェクトIDを指定し、"name"でアニメーションクリップを選択します。
アニメーションクリップはあらかじめgpaddanim命令で設定しておくことができます。
gpaddanim
アニメーションクリップを追加
読み込まれた3Dモデルが持つアニメーションデータをもとに、新規のアニメーションクリップを追加します。
アニメーションクリップは、3Dモデルのアニメーションデータから一部のフレームを切り出したものに名前を付けて管理するものです。
gpbox
箱ノードを生成
指定サイズの立方体を3Dモデルデータとしてノードを生成します。
varで指定された変数に、生成されたオブジェクトのIDが代入されます。
生成されたノードは3D空間の中で自由に操作することが可能になります。
モデルのX,Yサイズをsizex,sizeyパラメーターで指定することができます。
gpcamera
カメラノードを設定
生成済みのノードにカメラとしての機能を追加します。
idパラメーターで、ノードのオブジェクトIDを指定します。
fovパラメーターで視野(FOV)を設定します。45を指定した場合は、45度の視野となります。
aspectパラメーターでアスペクト比(縦横比)を指定します。
gpclone
ノードを複製
既に存在するオブジェクトと同じ設定で、新しいオブジェクトを生成します。
varで指定された変数に、複製されたオブジェクトのIDが代入されます。
同一の形状、パラメーター設定(物理設定を除く)を持ちますが座標や角度などを新しく設定することができます。
gpcnvaxis
3D座標の変換を行なう
決められたモードに従って、(x,y,z)の3D座標を変換します。
結果は、var_x,var_y,var_zで指定された変数に実数型で代入されます。(変数型は自動的に設定されます)
モード値による変換の内容は以下の通りです。
gpcolormat
カラーマテリアルの生成
指定された色を持つカラーマテリアルの生成を行ないます。
colorパラメーターは、24bitRGB値(0xRRGGBBで示される値)を指定します。省略した場合は、白色(0xffffff)が設定されます。
マテリアルを独自に生成することにより、詳細な質感の設定が可能になります。
gpdraw
シーン内の全オブジェクトを描画する
シーン内のオブジェクトをすべて描画します。
optionパラメーターを指定することで、限られた項目の描画だけを行なうことができます。
gpfloor
床ノードを生成
1枚の床(四角形)を3Dモデルデータとしてノードを生成します。
varで指定された変数に、生成されたオブジェクトのIDが代入されます。
生成されたノードは3D空間の中で自由に操作することが可能になります。
モデルのX,Yサイズをsizex,sizeyパラメーターで指定することができます。
gpgetanim
アニメーションクリップ設定を取得
指定されたアニメーションクリップの設定を取得してvarで指定された変数に代入します。
objidで設定を取得するオブジェクトIDを、indexにアニメーションクリップのインデックスを指定します。
gpgetlog
HGIMG4エラーログを取得
HGIMG4のエラーログを取得して変数に代入します。変数は文字列型として初期化されます。
エラーログは、gpreset、gpload命令などの実行時に発生したエラーの詳細を記録するもので、原因の調査などに利用することができます。
gpgetmat
マテリアルIDの取得
指定されたオブジェクト、及び画面バッファで使用されているカスタムマテリアルのIDを取得します。
optパラメーターで取得オプションを指定します。optで指定できる値は以下の通りです。
gpgetprm
オブジェクトのコアパラメーター取得
オブジェクトごとに保持されているコアパラメーターに値を取得します。
コアパラメーターは、32bit整数値で、様々な情報を管理しています。
コアパラメーターIDとして指定可能な項目は以下の通りです。
gplight
ライトノードを設定
生成済みのノードにライトとしての機能を追加します。
idパラメーターで、ノードのオブジェクトIDを指定します。
optパラメーターでライト生成オプション値を指定することができます。
gpload
3Dモデルノードを生成
ファイル化された3Dモデルデータ(.gpbファイル)をノードとして生成します。
varで指定された変数に、生成されたオブジェクトのIDが代入されます。
生成されたノードは3D空間の中で自由に操作することが可能になります。
"file"でフォルダ及びファイル名を指定します。
gplookat
指定座標に向けてノードを回転
3Dノードを、指定した座標に向けて回転させます。
カメラに適用した場合は、指定座標を注視する角度に設定されます。
gpmatprm
マテリアルのパラメーター設定
生成されたマテリアルのシェーダーパラメーターを設定します。
gpmatprm1
マテリアルのパラメーター設定(2)
生成されたマテリアルのシェーダーパラメーターを設定します。
gpmatprm命令と基本的に同じ機能です。
gpmatprm1命令は、1項目のみの実数パラメーターを指定します。
gpmatprm16
マテリアルのパラメーター設定(マトリクス)
生成されたマテリアルのシェーダーパラメーターを設定します。
gpmatprm命令と基本的に同じ機能ですが、gpmatprm16命令は、varで指定された実数型の配列変数に格納された数値を4×4のマトリクス行列として設定します。
gpmatprm4
マテリアルのパラメーター設定(3)
生成されたマテリアルのシェーダーパラメーターを設定します。
gpmatprm命令と基本的に同じ機能です。
gpmatprm4命令は、4項目(x,y,z,w)の実数パラメーターを指定します。
gpmatprmt
マテリアルのパラメーター設定(テクスチャ)
生成されたマテリアルのシェーダーパラメーターを設定します。
gpmatprm命令と基本的に同じ機能ですが、gpmatprmt命令は、"filename"で指定されたファイルをテクスチャ画像として設定します。
sampler2D型のパラメーターをシェーダーに渡す場合に使用することができます。
gpmatstate
マテリアルのステート設定
生成されたマテリアルの表示ステート設定を変更します。
文字列としてnameで指定された項目に対して、valueで指定された内容を設定します。
項目名と設定内容はすべて文字列で行なうので注意してください。
項目名と設定内容はすべて文字列で行なうので注意してください。
gpmesh
3Dメッシューノードを生成
自由な形状を3Dモデルとして定義したものをノードオブジェクトとして生成します。
あらかじめ、gpmeshclear、gpmeshadd、gpmeshpolygon等の命令を使用して、カスタム3Dメッシュと呼ばれるモデル情報を構築する必要があります。
gpmeshadd
カスタム3Dメッシュに頂点情報を追加
カスタム3Dメッシュに頂点情報を追加登録します。
頂点情報は、X,Y,Z座標、法線ベクトル、テクスチャUV座標を1つのセットとして登録します。
varで指定された変数に、登録されたメッシュ頂点IDが代入されます。メッシュ頂点IDは、面(3角形,4角形)を構成する際に使用します。
gpmeshclear
カスタム3Dメッシュを初期化
カスタム3Dメッシュの登録情報を初期化します。
カスタム3Dメッシュは、自由な3D形状を定義するためのデータを構築する仕組みです。
実際のデータ登録は、gpmeshadd、gpmeshpolygon命令を使用します。
gpmeshpolygon
カスタム3Dメッシュに面情報を追加
カスタム3Dメッシュに面(ポリゴン)情報を追加登録します。
あらかじめ、gpmeshadd命令により必要な頂点情報を登録しておく必要があります。
頂点情報のインデックスを示すメッシュ頂点IDを組み合わせて、面(3角形,4角形)を構成します。
gpnodeinfo
3Dモデルの階層情報を取得する
gpload命令で読み込まれた3Dモデルの階層情報を取得して、varで指定された変数に結果を代入します。
objidで指定した3Dモデルが持つ階層を名前によって指定することで個別のノードを特定します。
(階層の名前(ノード名)は、3Dモデル作成時にあらかじめ付けられています。
gpnull
ヌルノードを生成
空のノードオブジェクト(ヌルノード)を生成します。
varで指定された変数に、複製されたオブジェクトのIDが代入されます。
ヌルノードは、カメラやライトなどモデルを持つ必要のないノードを作成する場合などに使用します。
gpobjpool
オブジェクトID生成の設定
オブジェクトIDの割り当て方法を変更します。
オブジェクトIDは、あらかじめ決められた最大数の中で、使用されていないID番号が割り当てられます。
オブジェクト最大数は、デフォルトで1024個となっており、sysreq命令によって拡張することが可能です。
gppapply
ノードに物理的な力を適用する
ノードに対して(x,y,z)で指定したベクトルの物理的な力を適用します。
actionパラメーターで設定できるタイプは、以下の通りです。
gppbind
ノードに標準的な物理特性を設定
ノードオブジェクトに対して、基本的な物理設定を行ないます。
massパラメーターは物体の重さ。frictionパラメーターは摩擦係数です。値を省略した場合は、デフォルト値が使用されます。
重さ(mass)を0にすることで静的剛体(衝突はするが、動かない)として設定されます。
gppcontact
オブジェクトの物理衝突情報を作成する
物理設定を行なった3Dオブジェクトの正確な衝突の情報を作成します。
objidで指定された3Dオブジェクトが他のオブジェクトに衝突した際の情報をすべて作成します。
objidで指定された3Dオブジェクトは、必ずgppbind命令により物理設定を行っておく必要があります。
gppinfo
オブジェクトの物理衝突情報を取得する
gppcontact命令によって作成されたオブジェクトの物理衝突情報を取得します。必ず、gppcontact命令を先に実行しておく必要があります。
objidにより指定された3Dオブジェクトの物理衝突情報をvarとfvで指定した変数に代入します。変数には以下の内容が格納されます。
gpplate
板ノードを生成
垂直に立った1枚の板(四角形)を3Dモデルデータとしてノードを生成します。
varで指定された変数に、生成されたオブジェクトのIDが代入されます。
生成されたノードは3D空間の中で自由に操作することが可能になります。
gppostefx
ポストエフェクト生成
(今後のバージョンでサポートするための予約キーワードです。機能は現在まだ実装されていません。
gppraytest
ベクトル上の物理衝突情報を取得する
物理設定を行なった3Dオブジェクトの中で、指定した線分に衝突するオブジェクトの情報を取得します。
objidで指定した3Dノードを持つオブジェクトを基点として、オブジェクトの向いている方向からdistanceで指定された距離の間で最初に衝突する3DオブジェクトのオブジェクトIDを調査します。
gppset
ノードの物理パラメーターを設定
objidで指定されたノードの詳細な物理パラメーターを設定します。
prmidパラメーターで、設定する項目を指定し、X,Y,Zに指定された値が、それぞれの項目に対応した値として適用されます。
gpreset
HGIMG4の初期化
HGIMG4の初期化を行ないます。
シーンを再構築する場合に使用してください。
optionで設定した内容によって初期化の内容が変わります。
gpresetlight
カレントライトの初期化
使用するライトの種別とともにカレントライトを初期化します。
カレントライトを設定しておくことで、以降に生成されたモデルやマテリアルが受けるライトの詳細を決めることができます。
シーンが初期化された状態では、ディレクショナルライト1個だけを設定できる状態になっています。
gpscrmat
オフスクリーンテクスチャマテリアルの生成
オフスクリーンテクスチャバッファを参照するマテリアルを生成します。
マテリアルを独自に生成することにより、オフスクリーンにレンダリングされた画像イメージをテクスチャとして再利用することが可能になります。
gpsetanim
アニメーションクリップ設定を更新
指定されたアニメーションクリップの設定をvalueで指定される新しい値で更新します。
objidで設定を取得するオブジェクトIDを、indexにアニメーションクリップのインデックスを指定します。
gpsetprm
オブジェクトのコアパラメーター設定
オブジェクトごとに保持されているコアパラメーターにvalueで指定された値を上書き設定します。
値を上書きではなく、ビット単位にON,OFFを行ないたい場合は、gpsetprmon/gpsetprmoff命令を使用してください。
gpsetprmoff
オブジェクトのコアパラメーター設定(ビット削除)
オブジェクトごとに保持されているコアパラメーターの値を、valueで設定されているビットのみOFFに設定します。
gpsetprmon
オブジェクトのコアパラメーター設定(ビット追加)
オブジェクトごとに保持されているコアパラメーターの値を、valueで設定されているビットのみONに設定します。
gpspr
2Dスプライトノード生成
2Dスプライトを表示するためのノードを生成します。
varで指定された変数に、生成されたオブジェクトのIDが代入されます。
生成されたノードは2Dスクリーンの中で自由に操作することが可能になります。
gptexmat
テクスチャマテリアルの生成
テクスチャ(画像)マテリアルの生成を行ないます。
マテリアルを独自に生成することにより、詳細な質感の設定が可能になります。
gpusecamera
カメラオブジェクトの切り替え
指定したノードオブジェクトを有効なカメラオブジェクトとして選択します。
必ず、カメラとして初期化されているノードオブジェクトを指定する必要があります。
以降は、切り替えられたカメラを視点としてシーンの描画が行なわれます。
gpuselight
ライトオブジェクトの登録
指定したライトオブジェクトをカレントライトに登録します。
必ず、ライトとして初期化されているライトオブジェクトを指定する必要があります。
ライトオブジェクトは、gplight命令によって初期化することができます。
gpusermat
カスタムマテリアルの生成
カスタムマテリアルを生成します。
カスタムマテリアルは、バーテックスシェーダー及びフラグメントシェーダーを指定した独自の描画を行ないます。
OpenGLのシェーダー言語(GLSL)で記述されたシェーダーファイル名を、"vsh"、"fsh"パラメーターに指定します。
gpusershader
ユーザーシェーダーの指定
ユーザーが独自に設定するためのシェーダーを指定します。
バーテックスシェーダー、フラグメントシェーダー及び追加のラベル定義を記述して、使用することができます。
gpusescene
シーンの切り替え
(今後のバージョンでサポートするための予約キーワードです。機能は現在まだ実装されていません。
gpviewport
ビューポート設定
HGIMG4が描画を行なう領域(ビューポート)を設定します。
スクリーン座標の(x,y)から(sx,sy)で指定したサイズの領域に対して描画が行なわれます。
sx,syを省略すると、現在の表示X,Yサイズがデフォルトとして指定されます。
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となります。
selquat
オブジェク回転情報をMOC情報に設定
MOC設定命令の対象となるMOCグループをquat(クォータニオン回転情報)に設定します
idは、オブジェクトIDとなります。
selscale
スケールをMOC情報に設定
MOC設定命令の対象となるMOCグループをscale(スケール)に設定します
idは、オブジェクトIDとなります。
selwork
オブジェクトワークをMOC情報に設定
MOC設定命令の対象となるMOCグループをwork(ワーク)に設定します
idは、オブジェクトIDとなります。
selwork2
オブジェクトワーク2をMOC情報に設定
MOC設定命令の対象となるMOCグループをwork2(ワーク2)に設定します
idは、オブジェクトIDとなります。
setalpha
オブジェクトの透明度(α値)設定
オブジェクトの透明度(α値)を設定します。
valueパラメーターで指定された値を、objidパラメーターのオブジェクトに設定します。
valueパラメーターで指定する値は、透明度を示す0~255の整数値(α値)となります。
0は完全な透明、255は不透明が適用されます。
setang
angグループ情報を設定
オブジェクトの持つパラメーターを設定します。
angグループ(表示角度)に(x,y,z)で指定された値を設定します。
(x,y,z)には、実数または整数値を指定することができます。
角度の単位はラジアンになります。
(回転する順番はX->Y->Zとなります。
setangr
angグループ情報を設定
オブジェクトの持つパラメーターを設定します。
angグループ(表示角度)に(x,y,z)で指定された値を設定します。
(x,y,z)には、実数または整数値を指定することができます。
角度の単位は整数で0~255で一周する値を使用します。
setangy
angグループ情報を設定
setang命令と同様の機能を持っていますが、回転の順番がY->X->Zとなります。
setangz
angグループ情報を設定
setang命令と同様の機能を持っていますが、回転の順番がZ->Y->Xとなります。
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つまで同時に適用することが可能です。
setobjlight
オブジェクトにカレントライトを設定
idで指定したオブジェクトにカレントライトの設定を行います。
idで指定したオブジェクトは、光源計算を行う3Dモデルである必要があります。
それまでオブジェクトに設定されていたライトの設定は破棄され、新しくカレントライトの設定が上書きされます。
setobjmode
オブジェクトのモード設定
指定されたオブジェクトのモードを変更します。
モード値は、regobj命令で指定するものと同様です。
swは、以下のように動作します。
setobjname
オブジェクトのノード名を設定する
ノードオブジェクトに指定された名称を設定します。
すべてのノードオブジェクトは、任意に指定した名称を設定することが可能です。
setobjrender
オブジェクトのレンダリンググループ設定
オブジェクトに対してレンダリンググループ、ライティンググループ情報を設定します。
レンダリンググループ値は、カメラからレンダリングした際に表示のON/OFFを設定するための値です。カメラが持つレンダリンググループ値と同一である場合は、表示が有効となります。
setpos
posグループ情報を設定
オブジェクトの持つパラメーターを設定します。
posグループ(表示座標)に(x,y,z)で指定された値を設定します。
(x,y,z)には、実数または整数値を指定することができます。
setquat
quatグループ情報を設定
オブジェクトの持つ回転パラメーターを設定します。
quatグループ(クォータニオン)に(x,y,z,w)で指定された値を設定します。
(x,y,z,w)は、クォータニオン(四元数)による設定を行ないます。HGIMG4内部では、すべての回転情報は、クォータニオンにより保持されています。
setscale
scaleグループ情報を設定
オブジェクトの持つパラメーターを設定します。
scaleグループ(表示倍率)に(x,y,z)で指定された値を設定します。
(x,y,z)には、実数または整数値を指定することができます。
setwork
workグループ情報を設定
オブジェクトの持つパラメーターを設定します。
workグループ(ワーク値)に(x,y,z)で指定された値を設定します。
(x,y,z)には、実数または整数値を指定することができます。
setwork2
work2グループ情報を設定
オブジェクトの持つパラメーターを設定します。
work2グループ(ワーク2値)に(x,y,z)で指定された値を設定します。
(x,y,z)には、実数または整数値を指定することができます。
str2f
文字列を小数値に変換
"fval"で指定された文字列情報を小数値として読み出し、fvalで指定された変数に格納します。
str2fv
文字列をベクトルに変換
"x,y,z"で指定された文字列情報を「,」で区切られたX,Y,Z小数値として読み出し、fvで指定された変数に格納します。
それぞれの項目が正しく数値として認識できない(不正な)文字列があった場合には、それ以降の項目も含めて0.0が代入されます。