オブジェクト参照

バージョン5.0.5.43よりオブジェクトの指定は、次の記述が使用できます。ID参照は、部品につけられている一意の番号をもとにして部品を特定します。部品名を設定できない一般的なストラクチャーなどを参照することができます。

■自己参照の”this”
スクリプトを実行しているオブジェクト自身を参照する場合は、thisを使います。
GetObjectPos vec this
※thisは、ダブルクォーテーションで囲まないでください。

■レイアウトをあらわす”LAYOUT”
レイアウトを参照する場合は、LAYOUTを使います。
※LAYOUTは、ダブルクォーテーションで囲まないでください。

■オブジェクト変数で参照
GetObjectPos vec objtrain

■数値変数でID指定
変数に整数値でIDを代入して指定します。IDは、レイアウターでそれぞれの部品につけられている一意の番号です。
set objid 4
GetObjectPos vec objid

■ID参照
オブジェクト指定にIDを数値で記述します。
※数字以外の文字が単語中に含まれる場合は名前参照扱い
GetObjectPos vec 4

■名前参照
オブジェクトに設定した名前で参照します。レイアウターのそれぞれの部品設定ダイアログで名前をつけられる場合、名前参照が利用できます。(一般的なストラクチャーは名前をつけられません。ID参照を利用してください。)
※数字のみの名前はID参照になります。
GetObjectPos vec “Train4”

注意:部品名を数字のみにしている場合は、数値と区別できないため、数字以外の文字を含めてください。
名前参照.変数アクセスの場合は、オブジェクトの名前を「””」でくくらないでください。

編成を連結したときの自動クリアー機構

編成は、連結によって2つの編成が1つの編成に結合されます。このとき、連結する側の編成は消滅します。編成をオブジェクト変数に記録していた場合、連結後に消滅した編成をオブジェクト変数でアクセスするとエラーになります。
5.0.5.48から、オブジェクト変数に消滅した編成が記録されていた場合は、該当するオブジェクト変数にNULLをセットします。スクリプトのコードの枠外で変数の内容を書き換える、禁じ手ですが、変数がNULL以外であれば、その編成は存在していることが保証されます。
消滅した編成にオブジェクト変数を介して参照するとエラーの原因になります。オブジェクト変数が、NULLか条件判断を行ってからオブジェクトを参照するように実装してください。

カテゴリー: ScriptOverview | オブジェクト参照 はコメントを受け付けていません

オブジェクトの種類

レイアウトオブジェクト
レイアウトに1つだけ存在するオブジェクトです。レイアウトそのものをあらわしています。レイアウト全体で使用するグローバル変数は、レイアウトオブジェクトのメンバーとして設定してください。レイアウトオブジェクトに含まれる「命令」は、特別にオブジェクトの種類による拘束がありません。レイアウトオブジェクトのスクリプト以外に記述しても動作します。
レイアウターのレイアウトメニューから編集します。

編成オブジェクト
車両編成です。編成の運行は、このオブジェクトのスクリプトに記述します。編成ダイアログのスクリプトボタンで編集します。

車両オブジェクト
編成に含まれる車両1両です。ヘッドライト、パンタグラフなどの各種車両操作は、車両オブジェクトのスクリプトに記述します。編成ダイアログで編成した車両のポップアップメニューから編集します。

ポイントオブジェクト
分岐状態を操作できます。ポイントダイアログのスクリプトボタンで編集します。

ターンテーブルオブジェクト
ターンテーブルを操作できます。ターンテーブルダイアログのスクリプトボタンで編集します。

踏切オブジェクト
踏切警報機の動作を操作できます。踏切ダイアログのスクリプトボタンで編集します。

信号機オブジェクト
信号機の表示状態を操作できます。信号機ダイアログのスクリプトボタンで編集します。

音源オブジェクト
プラットホームの出発ベルなどに利用します。音源ダイアログのスクリプトボタンで編集します。

センサーオブジェクト
列車を検出するセンサーです。列車とほかのオブジェクトを連動させるときに使用します。センサーダイアログのスクリプトボタンで編集します。

カメラオブジェクト
地上カメラを操作します。カメラダイアログのスクリプトボタンで編集します。

モーションパスオブジェクト
パスに沿ってオブジェクトを移動します。主に地上カメラを移動します。

カテゴリー: ScriptOverview | オブジェクトの種類 はコメントを受け付けていません

変数

 

変数は、定義した場所でグローバル変数とローカル変数の2種類になります。

グローバル変数
BeginFunc – EndFuncの外側で定義した場合は、グローバル変数です。オブジェクトのプロパティーとして外部に公開されます。特にレイアウトのスクリプトで定義した変数は、レイアウト全体からアクセスできる特別なグローバル変数になります。

ローカル変数
BeginFunc – EndFuncの内側で定義した場合は、ローカル変数です。BeginFunc – EndFuncの間でのみ有効です。外部には非公開です。

変数は取り扱うデータによって、数種類に分類されます。

一般変数
一般変数は、整数、小数、文字列などを保持する変数です。鉄道模型シミュレーターでは、ほかの言語にみられるような明確なデータ型がありません。命令の実行時にデータ型が適切に評価されます。ただし、内部では動的に変数のデータ型が設定されています。たとえば文字列をあつかった変数を、整数として使い続けることはデータ型の評価に多大な時間をとられるため適切ではありません。変換命令を使うことで特定のデータ型に変換することができます。文字列は、UNICODEで保持されています。

オブジェクト変数
オブジェクト変数は、オブジェクトを指し示す変数です。オブジェクト変数の内容を一般変数に、またはその逆はいずれもできません。

カテゴリー: ScriptOverview | 変数 はコメントを受け付けていません

起動

スタートメニューから鉄道模型シミュレーター5または、鉄道模型シミュレーターオンラインを起動してください。
鉄道模型レイアウターも同様な方法で起動します。

※Windows 8/8.1は、すべてのアプリ一覧にアプリのアイコンがあります。
※鉄道模型シミュレーターオンラインをインストールしたパソコンで、VRM4で作成したファイルをダブルクリックした場合は、VRM ONLINEまたは、VRM4のいずれかを起動するように選択できます。鉄道模型シミュレーターオンラインを起動して、VRM COREの設定を変更してください。

カテゴリー: StartUp | 起動 はコメントを受け付けていません

構文

プレーンテキスト(=文字を大きくしたり、色を変えたりできない純粋なテキスト情報)でスクリプトを記述します。1行に1つの実行命令を記述します。文字コードは、UNICODEです。
命令、パラメータは、単語として認識されます。単語は、スペース、タブまたは”,”で区切りが認識されます。(全角スペースは区切りとして扱われません。)
※スクリプトでは、符号化をのぞくUTF16文字が使用できます。

1行には、「命令」のあとに「パラメータ」を記述します。リアルタイムでの高速動作を目的とすることから、アセンブラに近い構造を持っています。
“//”で開始される行は、リマーク(注釈)としてコンパイルの対象外になります。

 

例:車両オブジェクトのヘッドライトを点灯する


//SetHeadlightという命令のあとに、1を指定するとライトを点灯します。
//このスクリプトは、レイアウターの編成ダイアログから車両ポップアップで
//車両のスクリプトを選び、入力します。
SetHeadlight	1

 

変数、メソッドの名前は、アルファベット、日本語の各文字(内部では半角、全角ともに1文字2バイトで処理されます。)が使用できます。文字列は、ダブルクォーテーションで囲むようにしてください。(スペースなど区切り文字が含まれる場合も正しく認識できます。ただしダブルクォーテーションは、文字列に含むことはできません。)

命令は、オブジェクトの種類ごとに分類されています。オブジェクトの種類がことなる命令をそのまま実行することはできません。(たとえば地上カメラで車両の操作命令を実行することはできません。)

※唯一の例外が、レイアウトオブジェクトの命令です。レイアウトオブジェクトの命令は、オブジェクトの種類に関係なく動作します。

カテゴリー: ScriptOverview | 構文 はコメントを受け付けていません