VRM入道

VRM侍は出家しますた(w    カリカリ

 
投稿者
メール

 
コメント
URL
コメントは新しいものから表示されます。
コメント本文中とURL欄にURLを記入すると、自動的にリンクされます。
投稿者:ghost
把握しました。

残念ながら出発信号はそれでは処理できません。
次々回から2回に分けて詳しく解説しますが、待避線側の出発信号を緑にしても良い条件は、本質的には編成に割り当てたポイント切替用の番号(スクリプト中のifで評価しようとしている部分、ただし、if 250 だったら常に成立ですけど、変数名を忘れてるw)とは無関係です。

待避線出発信号は“追越線を列車が通り過ぎた”場合に限り、緑にすることが出来ます。と言うか、そうしないと“退避”じゃないですから。

これを実現するために、一見、退避/追越列車とは無関係に思われる閉塞の仕組みを作ったワケです。詳しくは後日の記事を見ていただくとして・・・

(1) 退避線に退避列車が入った時点で、[閉B]が緑である(追越線を列車が通過する可能性がある)こと

(2) (1)が成立した後に[閉B]が赤になる(まさに追越列車が[閉B]を通過した)こと

(3) (2)が成立した後に[閉B]が緑になる(追越列車がさらに前方へ走り去った)こと

をチェックしてから、待避線側の出発信号を緑にすることになります。

明日から、この流れを実現する細かい部分の解説をやるので、昨日〜今日の部分をもう一度精読しておさらいしておいてください。
投稿者:ゆゆぽん☆
また変な事言ってしまってすみません。
この図の4〜6番目にあることをやろうと思い、ピンときたのでスクリプトを書いてみたのです。
West=入ポにあたる、以前編成別にポイントを動かすスクリプトをEast=出ポにコピーして信号制御のスクリプトを加えました。下に書いたのは出ポ=Eastと連動するセンサーです。

if 250
call this MtdSignal2G
else
call this MtdSignal2R
endif
EndFunc


BeginFunc MtdSignal2G
call ObjSignal1 MtdSignalR
call ObjSignal2 MtdSignalG
EndFunc

BeginFunc MtdSignal2R
call ObjSignal1 MtdSignalG
call ObjSignal2 MtdSignalR
EndFunc
※Signal1=閉A
※Signal2=出

で、本線用の列車が感知したときに上から4番目の図のようになるのですが、退避用の列車が感知したときに最後の図のようにならず、出の信号が青に切り替わってしまいます。この前の場内信号機(閉@部分)の件と同様に、この件についても解説を待ったほうがよろしいでしょうか?
投稿者:ghost
えーっと。

繰り返し申し上げますが、ボクからは(おそらく他の読者諸兄からも)ゆゆぽん☆殿の言う・・・

 Signal1
 Signal2
 West
 East

が、少なくともこのコメントを読むだけでは、どこの何であるかがわかりません。

この結果、何が起きるかと言うと、本来教えを乞うているゆゆぽん☆殿が、ご自身の困っていることを伝えるコストを払うのではなく、教える側のボクがあーでもないこーでもない、とゆゆぽん☆殿の脳内を推測するコストを負うことになります。

これは、ぶっちゃけ、教える側のボクにとっては一方的に損な話で、何でそこまでして教えてやらにゃならんねん、という気分になります。まぁ、面白がってやっているので止めませんが。

何が言いたいかと言いますと、自分の問題を解決するために他人の能力を必要とするケースというのは、本件に限らずいろいろあるワケです。勉強にせよ、仕事にせよ。

それも踏まえて、もう少し質問の仕方を考えましょう、工夫しましょう、せめてボクの使っている語に合わせるとか・・・という話です。



お尋ねの件は、この部分だけを見ても判断がつきません。ゆゆぽん☆殿が他の部品にどんなスクリプトを書いておいでかさっぱりわからないので。

と言うか、一通りの解説を待つんじゃなかったの?
投稿者:ゆゆぽん☆
[センサー]

VarSignal ObjSignal1
get ObjSignal1 Signal1

VarSignal ObjSignal2
get ObjSignal2 Signal2

Var TmpType
Var VarTrainType
set TmpType 250

//センサーイベントを設定
Var EvtSensor
SetEventSensor MtdSenseTrain EvtSensor
/
/このセンサーが担当するポイント
VarPoint ObjPoint
get ObjPoint East

//編成検知時に実行されるメソッド
BeginFunc MtdSenseTrain
VarTrain TmpTrain
Var TmpType

//検知した編成オブジェクトを取得
GetSenseTrain TmpTrain
//変数TmpTypeに検知した編成のVarTypeの値を取得

mov TmpType TmpTrain.VarType

//[d']ポイントのグローバル変数にTmpTypeの値を代入
mov ObjPoint.VarTrainType TmpType
DrawVar TmpType

//[e]ポイントの編成判別メソッドを実行
call ObjPoint MtdCheckType

if 250
call this MtdSignal2G
else
call this MtdSignal2R
endif
EndFunc


BeginFunc MtdSignal2G
call ObjSignal1 MtdSignalR
call ObjSignal2 MtdSignalG
EndFunc

BeginFunc MtdSignal2R
call ObjSignal1 MtdSignalG
call ObjSignal2 MtdSignalR
EndFunc

Westポイントのを改造して使っています。
本線用の編成を感知したときはきちんと動作するのですが、待避用の編成を感知したときは、本線出発
(閉Aの部分)は青のままでも、待避出発まで青になってしまいます。

実験的代物

CSS無効化 ここで知った方法を使ってます

真・世界征服新着情報

今月のお勤め

2008年
← July →
Sun Mon Tue Wed Thu Fri Sat
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
Copyright (C) GMO Tea Cup Communication, Inc. All Rights Reserved.