VRM4スクリプト講座 第6回 ~踏切の動作~

踏切は号によって制御方法が異なりますが、基本的には同じです。
2号に含まれている踏切は、遮断機と警報機がセットになっています。が、4号に含まれている踏切は警報機と遮断機が別々になっています。が、制御方法は変わりません。

どちらも、SetCrossingStatusを使います。

SetCrossingStatus 0 初期状態にする
SetCrossingStatus 1 で遮断機を上げる or 警報機を止める・・・つまり、列車が通過した後の状態です。
SetCrossingStatus 2 で遮断機を下げる or 警報機を鳴らす・・・つまり、列車が接近した状態です。

ちなみに、初期状態は通常、遮断機が上がっている/警報機が鳴っていない ・・・SetCrossingStatus 0の状態です。

あとは、信号の時のようにセンサーを設置して動かしてみましょう。


・・・え?いちいち遮断機を上げるためのセンサーの位置を列車の長さに合わせるのが面倒くさい?はい。面倒だし大変です。
そもそもセンサー一つならまだいいかも知れませんが、何個も配置した大レイアウトになるとその労力は果てしないです。

初期状態ではセンサーは列車の先頭を検知するとイベントを発生させるようになっていました。これでは遮断機を上げるときに、列車の長さだけ距離を取らないと列車の通過中に遮断機が上がってしまい、とても危険です。
そのためには、センサーの列車検知位置を列車の後部にすればいい・・・。

そのために、次の文を使用します。
SetSensorMode 0 で列車の先頭を検知するようにする
SetSensorMode 1 で列車の最後部を検知するようにする

これで簡単な踏切は作れますね。早速作ってみましょう。

ちなみに、複線踏切や両側から列車が来る可能性がある場合、かなり複雑な記述をしなければいけません。
ただ、先程説明した文と、「カウント」を考えれば構造上は簡単になるかもしれません。

今回は画像もない簡単かつ分かり難い説明ですが、頑張ってください。


2012/12/01 追記
SetCrossingStatusの初期状態は「0」と説明しましたが、文章の説明では「1」が初期状態のようにも思えます。
完全なる説明不足ですね・・・(汗
しかし、実際に設定してみると分かるのですが、SetCrossing 1を初期状態に設定すると、ビュワーの起動と同時に遮断機が上がり始めます。
つまり、考えとしては、
SetCrossingStatus 0 :何もしない
SetCrossingStatus 1 :この値に変更された瞬間に遮断機を上げ始める/警報機を止める
SetCrossingStatus 2 :この値に変更された瞬間に遮断機を下げ始める/警報機を鳴らす

のほうが適切かも知れません(詳しく調べた訳ではないので確証はありませんが)。

Next→
←Prev
TOP

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック