2015/12/02 更新
Go to RIGOHN3のホームページ

文法リファレンス

文法は VBScript が基本になっていますので、CStr Sin Cos If then などいろいろ利用可能です。

アプリケーション自身をさすオブジェクトは Excel の VBA にならって、'Application' と記述されます。

オブジェクトにはプロパティとメソッドがあります。
プロパティは色や密度など、主に物性を記述します。
メソッドは連結や変更など、主に操作を記述します。

スクリプトは先頭から順番に実行されます。

コメントは ' (シングルクォーテーション)で始め、1行のスクリプトが2行以上にまたがる時は末端に _ (アンダースコア)を 記述します。2行以上にまたがった途中にコメントをはさむことはできません。

変数は型宣言などあらかじめ定義する必要がありませんので、自由に記述できますが、 値を格納し忘れた変数名をうっかり使うとゼロとみなされて予期しない動作をすることがあります。

その他、VBScriptの一般的な文法については一般の書籍などをご覧ください。

以下、本ソフトで取り扱うオブジェクトについてのリファレンスです。


引数やプロパティ型と字の色は以下のとおり対応しています。

青:小数(double)
橙:文字列(string)
赤:整数(long)
灰:オブジェクト名

記号は以下のとおりです。

[,...] 省略可能
A→B→C AはBを継承し、BはCを継承する


------------------------------------------------------------------------------------
アプリケーション オブジェクト
アプリケーションで唯一のルートオブジェクト。他のオブジェクトを生成したり、全体の設定を 保持する役目を持つ。また、オブジェクト同士を結びつけるJoinメソッドを持つ。 プロパティ CurTime 現在のシーン時間を設定する。省略すると0。この値は自動的に更新される。 この値がPreCalcTimeより小さいときは組み立て時間と解釈される。 GrabForce マウスでオブジェクトをつかんだりひっぱったりする時の強さ。省略すると1000。 PreCalcTime 組み立て時間の長さを指定する。省略すると0。この時間の間は、 物体の接続情報のみから新しい位置と向きを計算する。 外力を受けない。 衝突判定は行われない。 GravityX シーンの重力加速度のX成分を指定する。省略すると 0 GravityY シーンの重力加速度のY成分を指定する。省略すると 0 GravityZ シーンの重力加速度のZ成分を指定する。省略すると -9.8 メソッド CheckVersion (バージョン) スクリプトのバージョンをアプリケーションに通知する。 バージョン3.00では、一致しない時は警告を出す。 AddObj (オブジェクトのタイプ名) , (名前) (タイプ名)で示される新しいオブジェクトをシーンに追加する。 (名前)はタイプ名によらず全体で一意なものでなければならない。 (オブジェクトのタイプ名)には次のものがある。 "VIEW" ビューを示す。複数作成可能。ビューオブジェクトを参照。 "BOX" 箱形状の物体を示す。複数作成可能。箱オブジェクトを参照。 "TIRE" 円柱形状の物体を示す。複数作成可能。円柱オブジェクトを参照。 "CPU" CPU コアの使用状況を表示する。CPUメーターオブジェクトを参照。 "MUSIC" BGMを鳴らすパネルを表示する。BGMオブジェクトを参照。 "METER" メーターを表示する。メーターオブジェクトを参照。 "SPRING" バネをモデル化した円柱を示す。バネオブジェクトを参照。 Join1 (物体A),(物体Aの接続点座標X),(物体Aの接続点座標Y),(物体Aの接続点座標Z),_ (物体B),(物体Bの接続点座標X),(物体Bの接続点座標Y),(物体Bの接続点座標Z)[,_ (バネ定数),(減衰係数),(回転抵抗)] 物体Aと物体Bを1点で連結する。 バネ定数は接続点同士の伸びに比例する力の係数。正の時は係数そのもの。負の時は符号を無視し基準バネ定数からの相対値。省略すると-1.0。 減衰係数は接続点同士の相対速度に比例する力の係数。正の時は係数そのもの。負の時は符号を無視し基準減衰係数からの相対値。省略すると-1.0。 回転抵抗は接続点同士の回転速度に比例する力の係数。省略すると0.0。 Join2 (物体A),(物体Aの接続中心点座標X),(物体Aの接続中心点座標Y),(物体Aの接続中心点座標Z),_ (図参照dxA),(図参照dyA),(図参照dzA),_ (物体B),(物体Bの接続中心点座標X),(物体Bの接続中心点座標Y),(物体Bの接続中心点座標Z)[,_ (図参照dxB),(図参照dyB),(図参照dzB)[,_ (バネ定数),(減衰係数),(回転抵抗)] 物体Aと物体Bを2点で連結する。係数についてはJoin1と同様。ただし1点当たりの係数は0.5倍される。 Join4 (物体A),(物体Aの接続中心点座標X),(物体Aの接続中心点座標Y),(物体Aの接続中心点座標Z),_ (図参照dx1A),(図参照dy1A),(図参照dz1A),_ (図参照dx2A),(図参照dy2A),(図参照dz2A),_ (物体B),(物体Bの接続中心点座標X),(物体Bの接続中心点座標Y),(物体Bの接続中心点座標Z)[,_ (図参照dx1B),(図参照dy1B),(図参照dz1B),_ (図参照dx2B),(図参照dy2B),(図参照dz2B)[,_ (バネ定数),(減衰係数),(回転抵抗)] 物体Aと物体Bを4点で連結する。係数についてはJoin1と同様。ただし1点当たりの係数は0.25倍される。 Set3DmouseParam (縦方向移動係数),(横方向移動係数),(ズームの係数),_ (回転X軸係数),(回転Y軸係数),(回転Z軸係数) 3Dconnexion 3Dマウスの各種係数を指定する。デフォルトは全て1。負を指定すると逆の移動または回転になる。 ------------------------------------------------------------------------------------
ウィンドウ オブジェクト
ビューやメーターなど、アプリケーションのウィンドウに共通する親オブジェクト。 配置やサイズに関するプロパティを持つ。 プロパティ left ビューのウィンドウ左端の位置を、0.0から1.0の値で指定します。 アプリケーションウィンドウの左上が原点です。 right ビューのウィンドウ右端の位置を、0.0から1.0の値で指定します。 アプリケーションウィンドウの左上が原点です。 top ビューのウィンドウ上端の位置を、0.0から1.0の値で指定します。 アプリケーションウィンドウの左上が原点です。 bottom ビューのウィンドウ下端の位置を、0.0から1.0の値で指定します。 アプリケーションウィンドウの左上が原点です。 ------------------------------------------------------------------------------------
メーターオブジェクト → ウィンドウ オブジェクト
物体に取り付けた計測器による計測結果をメーターで表示する。 プロパティ まだありません メソッド まだありません ------------------------------------------------------------------------------------
BGMオブジェクト → ウィンドウ オブジェクト
アプリケーションにBGMを付加する。あらかじめメディアプレーヤーがインストールされて いて、URLの指定のみで再生する音楽ファイルが適切にデコードされる環境が必要。 ローカルにファイルを置いて再生する方法と、作者の実弟のサイトの音楽をストリーミング 再生する2通りの方法がある。 プロパティ まだありません メソッド AddFile (音楽ファイル名) BGMに使用する音楽ファイル名を指定します。 利用できる音楽ファイルの形式は mp3 または wav です。 フルパスや相対パスでの指定はできません。ファイルは 読み込んだtxtファイルと同じフォルダまたはResourceフォルダに置く必要があります。 AddFileは複数回指定した場合は、指定した順序で検索を行い、 利用可能なものからBGMとして利用します。 SetTitle (音楽ファイル名) このメソッドはVersion2で削除されました。 ------------------------------------------------------------------------------------
ビュー オブジェクト → ウィンドウ オブジェクト
デフォルトでは鳥瞰図のように物体を眺める複数作成可能なビューポートとして振舞うが、 設定によっては物体の一部を常に眺めるカメラ出力としても振舞う。 プロパティ projection ビューの投影方法を0.0から1.0の値で指定します。 0.0を指定すると平行投影、1.0を指定するときつめの透視投影になります。 mirror このプロパティが0以外の時は、ビューの左右が反転します。 メソッド SetViewpoint (視点X座標),(視点Y座標),(視点Z座標),_ (注目点X座標),(注目点Y座標),(注目点Z座標) [,_ (上方向Xベクトル),(上方向Yベクトル),(上方向Zベクトル)] ビューの視点と注目点と上方向を設定する。上方向は省略すると,0,0,1とみなされZ軸が上になる。 GetViewpoint (視点X座標),(視点Y座標),(視点Z座標),_ (注目点X座標),(注目点Y座標),(注目点Z座標) ,_ (上方向Xベクトル),(上方向Yベクトル),(上方向Zベクトル) ビューの視点と注目点と上方向を取得する。 SetPicture (画像ファイル名) , (透明度ファイル名) , (モード) , (左位置), (下位置), (右位置), (上位置) ビューに固定される画像を貼り付けます。 透明度ファイル名で示される画像において明るさをアルファ値とみなして、画像ファイル名で示される画像を表示します。 この二つの画像ファイルの縦横サイズは一致している必要があります。 モードが0の時はビューのリサイズで画像の大きさは変化しません。 指定する位置は左下のみ有効で、単位はピクセルです。また、マイナスの値を指定 すると、反対側の端からの位置になります。 モードが1の時はビューのリサイズで画像の大きさが連動して変化します。 位置の指定はビューの左下を原点として0.0から1.0までの値で指定します。 ------------------------------------------------------------------------------------
一般物体 オブジェクト
プロパティ ShadeReceive 他のオブジェクトの影をこのオブジェクトの表面に投影することを示し、 影の濃さを0.0から1.0までのdouble値で示す。 負の値の時は影を扱わない。省略すると-1.0。 ShadeThrow このオブジェクトの影を他のオブジェクトの表面に投影することを示し、 影の濃さを0.0から1.0までのdouble値で示す。 負の値の時は影を扱わない。省略すると-1.0。 RHO このオブジェクトの密度 kg/m^3 を示す。 正の時は密度そのものを示し、力学的挙動計算の対象になる。 負の時は質量をもたない障害物とみなし、力学的挙動計算の対象外になる。 省略すると1000.0。 Transparent このオブジェクトの透明度を0.0から1.0の値で示す。 0.0の時非透明、1.0の時完全な透明。 省略すると0.5。 colorR このオブジェクトの色の赤成分を0.0から1.0の値で示す。 省略すると0.5。 colorG このオブジェクトの色の緑成分を0.0から1.0の値で示す。 省略すると0.5。 colorB このオブジェクトの色の青成分を0.0から1.0の値で示す。 省略すると0.5。 メソッド SetPosition (重心のX座標),(重心のY座標),(重心のZ座標) このオブジェクトの重心の位置を指定する。 SetVelocity (重心の速度X成分),(重心の速度Y成分),(重心の速度Z成分) このオブジェクトの重心の速度を指定する。 SetAngularVelocity (角速度ベクトルのX成分),(角速度ベクトルのY成分),(角速度ベクトルのZ成分) このオブジェクトの角速度ベクトルを指定する。 SetAngle (回転軸のX成分),(回転軸のY成分),(回転軸のZ成分) このオブジェクトの向きを回転軸で指定する。回転角は指定するベクトルの大きさで示される。 AddCrash (衝突対象オブジェクト)[,(衝突面),(静止摩擦係数),(動摩擦係数),(スリップ限界速度),(衝突バネ定数),(衝突減衰係数)] このオブジェクトが衝突する相手オブジェクトを指定する。 衝突面は相手オブジェクトのタイプ毎に決まる定数で、-1の時は全ての面とみなす。省略すると-1。 静止摩擦係数は静止している時の摩擦係数、動摩擦係数はスリップしている時の摩擦係数。省略すると 0.5 , 0.4 。 スリップ限界速度はスリップ状態から非スリップ状態に復帰する相対速度。省略すると 0.01 。 衝突バネ定数と衝突減衰係数は衝突物体同士が衝突点で接続されていると仮定した時のバネ定数と減衰係数。省略すると -1.0 , -1.0 。 KeepOriginalDirectionWhileCreating (力の大きさ) 組み立て時間中に、物体の初期位置の向きを保つための架空の力を与える。 AddSkin (ファイル名),(名前指定モード),(名前の集合),(オプション),_ (MQO座標系回転中心X座標),(MQO座標系回転中心Y座標),(MQO座標系回転中心Z座標),_ (モデル座標系移動先X座標),(モデル座標系移動先Y座標),(モデル座標系移動先Z座標),_ (スケールファクター),_ (回転軸ベクトルX成分),(回転軸ベクトルY成分),(回転軸ベクトルZ成分),_ (回転角度) MQOファイルをオブジェクトにスキンとして合成するよう指定する。 名前指定モードが1の時は名前の集合で指定したもの以外が読み込まれる。 名前指定モードが0の時は名前の集合で指定したもののみが読み込まれる。 MQO座標系回転中心座標で指定した位置を中心にスケールファクター倍した後、 回転軸ベクトル周りに回転角度だけ回転させ、中心位置がモデル座標系移動先座標 に移るように平行移動する。回転角度の単位は度。回転軸ベクトルの大きさは任意。 オプションが1の時はmqoファイル内でコピー指定されている時その設定を無視して読み込む。 AddView (ビューオブジェクト) , (視点X座標),(視点Y座標),(視点Z座標),_ (注目点X座標),(注目点Y座標),(注目点Z座標),_ (上方向ベクトルX成分),(上方向ベクトルY成分),(上方向ベクトルZ成分) このオブジェクトの座標系において、視点座標で示される位置から、 注目点座標を常に眺めるようにビューを設定する。この設定をされたビューでは SetViewpointの設定が無効になり、またマウスによる視界の変更はできなくなる。 AddMeter (メーターオブジェクト) , (計測タイプ),(補正係数) このオブジェクトにメーターを取り付け、計測タイプで指定される 計測を行い、結果に補正係数を掛けて表示する。 計測タイプが0の時は、重心の移動速度を測定する。 計測タイプが1の時は、角速度の大きさを測定する。 SetSpeedSoundMode (モード) 速度に関する効果音のモードを設定する。1にすると、角速度に比例する音を鳴らす SetSpeedSoundMode1param (係数) , (最小値) 速度に関する効果音のモードが1の時の詳細。 SetCrashSoundMode (モード) 衝突音に関する効果音のモードを設定する。1のみ有効。 SetSlipSoundMode (モード) スリップ音に関する効果音のモードを設定する。1のみ有効。 AddRotateByKey (キーコード),(トルクX成分),(トルクY成分),(トルクZ成分) キーコードで指定したキーを押している間はこのオブジェクトに指定したトルクを与える。 AddMoveByKey (キーコード),(外力X成分),(外力Y成分),(外力Z成分) キーコードで指定したキーを押している間はこのオブジェクトに指定した外力を与える。 AddBrakeByKey (キーコード),(トルクX成分),(トルクY成分),(トルクZ成分) キーコードで指定したキーを押している間は、指定のベクトルを回転軸として、 現在の回転方向と反対方向に、指定のベクトルの大きさのトルクを与える。 ( 車輪のブレーキとして近似的に利用できます。) AddRotateByGameCtrl (デバイス名),(トルクX成分),(トルクY成分),(トルクZ成分),(割り当て軸),(増減モード) デバイス名で指定したゲームコントローラーで回転トルクを与える。 割り当て軸にはデバイスごとに定義される自由度のうち使用したい軸に対応する整数を指定する。 増減モードは 0 の時 -1 から 1 , 1 の時 0 から 1 、2 の時 1 から 0 。 AddMoveByGameCtrl (デバイス名),(外力X成分),(外力Y成分),(外力Z成分),(割り当て軸),(増減モード) デバイス名で指定したゲームコントローラーで並進の外力を与える。 割り当て軸と増減モードは AddRotateByGameCtrl に同じ。 AddBrakeByGameCtrl (デバイス名),(トルクX成分),(トルクY成分),(トルクZ成分),(割り当て軸),(増減モード) デバイス名で指定したゲームコントローラーで並進の外力を与える。 割り当て軸と増減モードは AddRotateByGameCtrl に同じ。 SetMoveObj (作動対象接続オブジェクト),(作動タイプ),(キーコード1),(キーコード2),_ (移動速度),(変位最大値),(変位最小値),_ (移動中心X座標),(移動中心Y座標),(移動中心Z座標),_ (パラメタX),(パラメタY),(パラメタZ),_ (外力依存),(現在の変位) キーコードで指定したキーを押している間は、作動対象接続オブジェクトとの 接続点座標を作動タイプごとの方法にしたがって動かす。 作動タイプの種類とパラメタの意味は下記のとおり。 "SLIDE"の時、1次元的伸縮。パラメタは移動方向。中心座標を通りパラメタベクトルを法線に持つ平面内の座標は不変。 "MOVE"の時、移動。パラメタは移動方向。中心座標は無視される。不変な座標は無い。 "ROTATE"の時、回転。パラメタは回転軸。中心座標を通りパラメタベクトルを向きとする直線上の座標は不変。 MoveJointByKey (作動対象接続オブジェクト),(キーコード1),(キーコード2),_ (移動速度) ,(変位最大値),(変位最小値),_ (移動中心X座標),(移動中心Y座標),(移動中心Z座標),_ (向きX成分),(向きY成分),(向きZ成分),_ (外力依存),(現在の変位) SetMoveObj の、(作動タイプ)="MOVE" に同じ RotateJointByKey (作動対象接続オブジェクト),(キーコード1),(キーコード2),_ (移動速度) ,(変位最大値),(変位最小値),_ (移動中心X座標),(移動中心Y座標),(移動中心Z座標),_ (軸X成分),(軸Y成分),(軸Z成分),_ (外力依存),(現在の変位) SetMoveObj の、(作動タイプ)="ROTATE" に同じ SlideJointByKey (作動対象接続オブジェクト),(キーコード1),(キーコード2),_ (移動速度) ,(変位最大値),(変位最小値),_ (移動中心X座標),(移動中心Y座標),(移動中心Z座標),_ (向きX成分),(向きY成分),(向きZ成分),_ (外力依存),(現在の変位) SetMoveObj の、(作動タイプ)="SLIDE" に同じ MoveJointByGameCtrl (作動対象接続オブジェクト), (デバイス名),(割り当て軸),(増減モード),(位置/速度),_ (FFBの平滑化),(移動速度) ,(変位最大値),(変位最小値),_ (移動中心X座標),(移動中心Y座標),(移動中心Z座標),_ (向きX成分),(向きY成分),(向きZ成分),_ (外力依存),(現在の変位) 作動の「移動」を、指定のデバイス名のゲームコントローラーで制御する。各種パラメーターはダイアログに同じ。 RotateJointByGameCtrl (作動対象接続オブジェクト), (デバイス名),(割り当て軸),(増減モード),(位置/速度),_ (FFBの平滑化),(移動速度) ,(変位最大値),(変位最小値),_ (移動中心X座標),(移動中心Y座標),(移動中心Z座標),_ (軸X成分),(軸Y成分),(軸Z成分),_ (外力依存),(現在の変位) 作動の「回転」を、指定のデバイス名のゲームコントローラーで制御する。各種パラメーターはダイアログに同じ。 SlideJointByGameCtrl (作動対象接続オブジェクト), (デバイス名),(割り当て軸),(増減モード),(位置/速度),_ (FFBの平滑化),(移動速度) ,(変位最大値),(変位最小値),_ (移動中心X座標),(移動中心Y座標),(移動中心Z座標),_ (向きX成分),(向きY成分),(向きZ成分),_ (外力依存),(現在の変位) 作動の「伸縮」を、指定のデバイス名のゲームコントローラーで制御する。各種パラメーターはダイアログに同じ。 AddMoveForceX (P),(A),(Q),(B) 物体位置のX成分に下の式に従った変位を加える。 dX = P + A * sin( B * CurTime + Q ) ) AddMoveForceY (P),(A),(Q),(B) 物体位置のX成分に下の式に従った変位を加える。 dY = P + A * sin( B * CurTime + Q ) ) AddMoveForceZ (P),(A),(Q),(B) 物体位置のX成分に下の式に従った変位を加える。 dZ = P + A * sin( B * CurTime + Q ) ) ------------------------------------------------------------------------------------
箱 オブジェクト
プロパティ widthX 箱のX軸方向の長さを示す widthY 箱のY軸方向の長さを示す widthZ 箱のZ軸方向の長さを示す crashPointX 箱のX軸方向の衝突定義点の数を示す。デフォルトは2。 crashPointY 箱のY軸方向の衝突定義点の数を示す。デフォルトは2。 crashPointZ 箱のZ軸方向の衝突定義点の数を示す。デフォルトは2。 メソッド まだありません ------------------------------------------------------------------------------------
円柱 オブジェクト
プロパティ widthW 円柱の軸方向の長さを示す widthR 円柱の半径を示す crashPointW 円柱の軸方向の衝突定義点の数を示す。デフォルトは2。 crashPointR 円柱の回転方向の衝突定義点と円形状分割数を示す。デフォルトは20。 メソッド まだありません ------------------------------------------------------------------------------------
地面 オブジェクト → 箱 オブジェクト → 一般物体 オブジェクト
プロパティ メソッド SetHeightBmp (ファイル名) 画像の明るさで高さを指定するファイル名を指定します。 明るさゼロがZ軸方向の最小値、明るさ1がZ軸方向の最大値、に対応します。 ここで言う明るさとは、RGB成分をそれぞれ0から255の整数で表現したとき、(B+R*2+G*4)/7/255 です。 (!注意!)高さの変化が激しいデータの場合、急激に処理速度が遅くなります。 SetColorBmp (ファイル名) 地面に貼り付けるテクスチャ画像を指定します。 ------------------------------------------------------------------------------------
バネ オブジェクト → 円柱 オブジェクト → 一般物体 オブジェクト
バネをモデル化したオブジェクトで、物体自体が伸縮する。 プロパティ メソッド SetSpringObj (バネの1端に接続されるオブジェクト名),_ (バネのもう1端に接続されるオブジェクト名),_ (このバネ自身のバネ定数),(このバネ自身の減衰係数)[,_ (現在の変位),(現在の速度)] バネに接続される二つの別のオブジェクトの名前と、バネ定数減衰係数を 指定する。現在の速度と変位は省略すると、ともに0。 ------------------------------------------------------------------------------------
デファレンシャルギヤ オブジェクト → 円柱 オブジェクト → 一般物体 オブジェクト
デファレンシャルギヤをモデル化したオブジェクトで、接続したオブジェクトによる差動回転を行う。 プロパティ GearNUM ギヤの出力側の歯の数。 widthR : widthW * 0.5 = GearNUM : A とした時に A が整数になり、 かつ、GearNUM と A が共に偶数になる必要がある。 GearDEPTH ギヤの歯高。GearWIDTH に対する、歯の高さ。 GearSLOPE ギヤの歯角。0で垂直、0.5でギザギザ。 GearWIDTH ギヤの歯幅。 メソッド SetDefObj (デファレンシャルギヤの1端に接続されるオブジェクト名),_ (デファレンシャルギヤのもう1端に接続されるオブジェクト名)[,_ (バネ定数),(減衰係数),_ (現在の変位),(現在の速度)] デファレンシャルギヤとして利用するには、バネ定数と減衰係数をゼロにする。 これらがゼロで無い場合は、初期の位置からの変位をバネの振幅とみなして、 初期状態への復元力が働くようになる。(バネ定数)以降の数値は省略すると全てゼロ。