[HOME] [INDEX] [J3Cの言語仕様] [J3Cプログラミング入門] [J3CとJ3Wの命令対応表]

J3C 組み込み関数の解説

2008/11/01 Jun Mizutani
組み込み関数概要
組み込み関数詳説

J3C組込み関数の概要

●インスタンスに関する操作

J3Wの中心的な存在であるインスタンスの生成と削除,インスタンス間の通信に関する 組込み関数には以下の10種類があります.

new インスタンスの生成,レジスタをコピー
delete インスタンスの削除
Pause 指定時間の間何もしない メッセージを受けると次の組込み関数へ進む
Throw 制御を別のインスタンスに渡す
Wait インスタンスの一時停止 時間無制限のNOP
Stop 全インスタンスの停止と消滅
Send 指定インスタンスIDにメッセージ送出
Receive メッセージを取得
SendTo 指定インスタンスNoにメッセージ送出
child 子とインスタンスの生成

●「物体」に対する操作

1つのインスタンスは1つの「物体」を持つことができます.以下の組込み関数を使用 して「物体」の形状を設定したり,位置や角度の設定と取得を行います. 「物体」を持っていないインスタンスが以下の組込み関数を実行するとエラーとなります.

NewObject 「物体」の生成
DefPoint 「物体」の頂点の定義
DefPlane 「物体」の面の定義
DeleteObject 「物体」の削除
See この組込み関数を実行した「物体」が視点(目)を持つ
Point 「物体」頂点の定義 座標は(RX,RY,RZ)
CountVertex 頂点番号の取得
Plane 面の定義(データメモリ使用)
Transpose 頂点座標全体の平行移動
Specular スペキュラー強度の設定
Ambient 環境光強度の設定
VertexRelative 頂点番号の相対指定
VertexAbsolute 頂点番号の絶対指定
SetOffset 頂点登録時のオフセットを設定
ClearOffset 頂点登録時のオフセットを解除
GetPosition 「物体」の位置と姿勢を取得
SetPosition 「物体」の位置と姿勢を設定
Where 指定インスタンスの位置と姿勢を得る
Distance 指定インスタンスIDまでの距離を得る
Priority ポリゴンの表示優先順位を指定
Relative0 「物体」間の相対位置と角度を返す
Relative ワールド座標と「物体」との相対位置と角度を返す
Look 指定インスタンスへの角度を返す
FindVertex 「物体」の頂点番号を取得
SetVertex 「物体」頂点位置の更新
GetVertex 「物体」頂点位置の取得
SetPlane ポリゴンデータの設定
GetPlane ポリゴンデータの読み出し
SetScale 「物体」が属する座標系の縮尺の設定
GetScale 「物体」が属する座標系の縮尺の取得
Emit 光源となる「物体」が設定

●「物体」の運動に関する操作

「物体」を持っているインスタンスが以下の組込み関数を実行すると,「物体」は空間 内で運動します.「物体」を持っていないインスタンスが以下の組込み関数を実行する とエラーとなります.

Forward 前進 X座標の増加
Back 後退 X座標の減少
Left 左移動 Y座標の減少
Right 右移動 Y座標の増加
Up 上移動 Z座標の減少
Down 下移動 Z座標の増加
RotHead ヘッド回転 横を向く
RotPitch ピッチ回転 見上げる
RotBank バンク回転 首をかしげる
Move0 RX,RY,RZ,RH,RP,RBの値で同時に移動と回転を行う
Move RX,RY,RZ,RH,RP,RBの値で同時に移動と回転を行う
SetGravity 重力加速度の設定 初期値はゼロ
GetGravity 重力加速度の取得
SetAcceleration 加速度の設定 初期値はゼロ
GetAcceleration 加速度の取得
SetVelocity 速度,角速度の設定 初期値はゼロ
GetVelocity 速度,角速度の取得
SetWVelocity 「物体」の速度を世界座標系で設定 初期値はゼロ
GetWVelocity 「物体」の速度を世界座標系で取得
Scale 指定した時間で「物体」の縮尺を変化

●テクスチャに関する操作

面にテクスチャを貼ることができます。

PointUV 「物体」頂点の定義(UV座標付き)
DefPointUV 「物体」の頂点の定義(UV座標付き)
TextureFile テクスチャビットマップファイル読み込み
TextureSet テクスチャ指定
TextureAxis テクスチャ貼り付け軸の指定
TextureAlpha テクスチャの透明度の指定
TextureScale テクスチャの拡大率の指定
TextureChange テクスチャの変更
TextureMap テクスチャのマッピング方法の指定
TextureBias テクスチャ座標のオフセットの設定

●演算

レジスタを用いて演算を行います.結果は指定したレジスタに返ります.

not レジスタをビット反転
sqrt レジスタの平方根
sin サイン 角度8倍,結果10000倍
cos コサイン 角度8倍,結果10000倍
atan アークタンジェント
Random レジスタに乱数を取得

●レジスタに関する操作

レジスタの設定,メモリへの格納,スタックへの退避とスタックからの復帰 等に関する組込み関数です.

ClearRegisters 位置姿勢レジスタの一括クリア
PushRegisters 位置姿勢レジスタのスタックへの一括プッシュ
PopRegisters 位置姿勢レジスタのスタックから一括ポップ

●共有メモリ

GetCommon 共有メモリからレジスタに値を取得
SetCommon レジスタを共有メモリに格納
CommonData 共有メモリに書き込む数値列を指定
Write 共有メモリをファイルに書出し RX:位置, RY:サイズ
Read 共有メモリにファイルから読み込み RX:位置

●入出力

テキスト画面とグラフィック画面への文字出力,線分の描画,音の出力とキーボード, マウスからの入力に関する組込み関数です.これらの組込み関数はインスタンス毎に 独立していません.どのインスタンスも同じデバイスに対して操作することになります.

GraphMode グラフィックモードに設定
TextMode テキストモードに設定
BackgroundColor グラフィックウインドウの背景色の設定 (0-255)
Zoom グラフィックウインドウの視野角の設定 (0:90度,1:53度)
InKey キーコードをレジスタに入力
RawKey キーチェック
Mouse マウス座標の取得
Number レジスタ1の示す値をテキストウインドウへ出力
Char テキストウインドウへ1文字の出力
Stringm データメモリの文字列をテキストウインドウへ出力
String 文字列をテキストウインドウへ出力
gNumber レジスタの示す値をグラフィックウインドウへ出力
gChar グラフィックウインドウへ1文字の出力
gStringm データメモリ文字列をグラフィックウインドウへ出力
gString 文字列をグラフィックウインドウへ出力
gColor グラフィックウインドウの文字色を設定
gClear グラフィックウインドウの文字列クリア
gCursor グラフィックウインドウ文字カーソルの設定(0-1999)
gPosition グラフィックウインドウの文字書き込み位置取得
gLine グラフィックウインドウのラインの描画設定
gLineClear グラフィックウインドウのラインの消去
Note Midi 音階出力
Midi Midiメッセージ(0..127, 0..127)の出力

●システム関連組込み関数

J3Wシステム(インスタンスに依存しない)に関する状態の取得と設定,共有メモリ のファイル入出力に関する組込み関数です.

SystemTime システム時間の取得
SystemCount ジョブ実行ループ回数の取得
SystemProcess 現在のインスタンス数の取得
Light 光源の強度,方向の設定
Near 近クリップ面の位置
Far 遠クリップ面の位置
Parallel 点光源,平行光源の指定
NumColors シェイディング可能な色数を取得
NumShading シェイディング段数を取得
VertexCount 総頂点数を取得
PolygonCount 総ポリゴン数を取得
SetColor 色の再設定
ResetColor 色をデフォルトに戻す
Version J3Wのバージョン番号を返す

組み込み関数

J3Cの組み込み関数は,仮想マシンであるJ3Wの命令1つ1つに対応しています.



Forward( 式1,式2 )
Back( 式1,式2 )
Left( 式1,式2 )
Right( 式1,式2 )
Up( 式1,式2 )
Down( 式1,式2 )
[top]


RotHead( 式1,式2 )
RotPitch( 式1,式2 )
RotBank( 式1,式2 )
[top]


Move0( 式 ) [top]


Move( 式 ) [top]


Scale( 式 ) [top]


SetGravity( 式 ) [top]


GetGravity() [top]


SetAcceleration() [top]


GetAcceleration() [top]


SetVelocity() [top]


GetVelocity() [top]


SetWVelocity() [top]


GetWVelocity() [top]


Pause( 式 ) [top]


Throw() [top]


Near(近面クリップ位置) [top]


Far(遠面クリップ位置) [top]


PointUV() [top]


DefPointUV(x, y, z, u, v) [top]


TextureFile(テクスチャファイル番号, "ファイル名") [top]


TextureSet(テクスチャ番号") [top]


TextureAxis(軸指定数値) [top]


TextureAlpha(透明度%) [top]


TextureScale(横の拡大率, 縦の拡大率) [top]


TextureChange(テクスチャ番号, テクスチャファイル番号) [top]


TextureMap(マッピング方法) [top]


TextureBias(U座標, V座標) [top]


new( クラス, メモリサイズ ) [top]


delete() [top]


Wait() [top]


Stop() [top]


Send( 式1, 式2 ) [top]


Receive() [top]


SendTo(式1, 式2) [top]


child(クラス名, メモリサイズ, 最大頂点数, 最大ポリゴン数) [top]


GraphMode() [top]


TextMode() [top]


BackgroundColor( 式 ) [top]


Zoom( 式 ) [top]


Wire( 式 ) [top]


Emit( 式 ) [top]


Parallel( 式 ) [top]


InKey() [top]


RawKey( 式 ) [top]


Mouse() [top]


Number( 式 ) [top]


Char( 式 ) [top]


Stringm( 式,定数) [top]


String( "abc" ) [top]


gNumber( 式 ) [top]


gChar(定数) [top]


gStringm( 式,定数) [top]


gString( "abc" ) [top]


gColor( 式 ) [top]


gClear() [top]


gCursor( 式 ) [top]


gPosition() [top]


gLine() [top]


gLineClear( 式 ) [top]


Note( 定数, 定数, 定数 ) [top]


Midi( 定数, 定数, 定数 ) [top]


NewObject( 定数1, 定数2 ) [top]


DefPoint( 定数, 定数, 定数 ) [top]


DefPlane( 式, 頂点数, 1, 2, 3, 4, 5 ) [top]


DeleteObject() [top]


See() [top]


Point() [top]


Specular( 式 ) [top]


Ambient( 式 ) [top]


CountVertex() [top]


Plane( 式 ) [top]


Transpose() [top]


VertexRelative() [top]


VertexAbsolute() [top]


SetOffset() [top]


ClearOffset() [top]


GetPosition() [top]


SetPosition() [top]


Where( 式 ) [top]


Distance( 式 ) [top]


Priority( 式 ) [top]


Relative0( 式 ) [top]


Look( 式 ) [top]


Relative() [top]


FindVertex() [top]


SetVertex() [top]


GetVertex() [top]


SetPlane() [top]


GetPlane() [top]


SetScale() [top]


GetScale() [top]


SystemTime() [top]


SystemCount() [top]


SystemProcess() [top]


CommonData( 式, データ数, 2, 3, 4, 5 ) [top]


Write( "abc" ) [top]


Read( "abc" ) [top]


Light( 式 ) [top]


NumColors() [top]


NumShading() [top]


VertexCount() [top]


PolygonCount() [top]


SetColor( 式 ) [top]


ResetColor() [top]


Version() [top]


not( 式 ) [top]


sqrt( 式 ) [top]


sin( 式 ) [top]


cos( 式 ) [top]


atan( 式1,式2 ) [top]


Random( 式 ) [top]


ClearRegisters() [top]


PushRegisters() [top]


PopRegisters() [top]


GetCommon( 式 ) [top]


SetCommon( 式1,式2 ) [top]



[J3Cの言語仕様] [J3Cプログラミング入門] [J3CとJ3Wの命令対応表] [INDEX]
ご意見・ご感想は,mizutani.jun@nifty.ne.jp まで.