Rosso Laboratory

多機能ポイントの使い方

自動運転において、編成の動作を司る「ASCセンサー」と並んで重要なファクターは、走行路線を決定する「ポイント制御」です。

cVss」では、ポイントのスクリプトは全て共通の「多機能ポイント」とし、ポイント手前に配置されるセンサーによって、それぞれの機能を呼び出す仕組みになっています。

---*---*---*---

<自動合流センサー>

水色の「直進方向」と青色の「分岐方向」の2つがあります。2車線側の「直進側」と「分岐側」にそれぞれ配置して、自動的に合流するためのセンサーです。

---*---*---*---

これに、折り返しの状況も踏まえて、考えてみると、

編成が2車線側の「直進側」から進入すると、まずセンサーでポイントは直進方向になります。この後通過した編成が折り返してくると、他編成が新たに通過していないという条件では、直進方向のままですから、元の「直進側」へ出て行くことになります。しかし、折り返し時にはポイント手前にセンサーがないので、確実に「直進側」へ出て行くとは限りません。他編成が「分岐側」から進入している可能性もあるからです。


同様のことが、「分岐側」からの進入にも言えます。

そこで、この折り返し時の動作を明確にしてみます。

<分岐時に「直進方向」を使う>

1車線側に「直進方向」のセンサーを置きます。2車線側の「直進側」から入って折り返し再び「直進側」に出る。これはあまり使いそうにないですね。


2車線側の「分岐側」から入って折り返し「直進側」に出る。これは一方通行としては使えそうです。この場合、右側の「直進方向」のセンサーは意味がないので削除することが出来ます。パーツレイアウトではVSEや機回しのポイント部分で使っているパターンです。

<分岐時に「分岐方向」を使う>

1車線側に「分岐方向」のセンサーを置きます。2車線側の「直進側」から入って折り返し「分岐側」に出る。これも一方通行としては使えそうです。この場合、右側の「分岐方向」のセンサーは意味がないので削除することが出来ます。パーツレイアウトでは機回しや待避駅のポイント部分で使っているパターンです。


2車線側の「分岐側」から入って折り返し再び「分岐側」に出る。これもあまり使いそうにないですね。

---*---*---*---

ということで、「直進方向」や「分岐方向」を1車線側に配置しても使えるパターンがあることがわかりました。しかし、これは一方通行という条件で成立するものです。上り下りのある単線スイッチバックでは使えません。

そこで使うのが、「トグル分岐センサー」です。「トグル分岐センサー」は2タイプありますが、使うのはタイプ1の単純動作のものです。タイプ2のフラグ動作のものは合流側の影響を受けませんが、作った本人もどう使うべきか、うまく説明できないので省略します。タイプ2は何か動作に変化をつけたい時に使えばイイんじゃないでしょうか(笑)。

---*---*---*---

<分岐時に「トグル分岐(タイプ1)」を使う>



1車線側に「トグル分岐(タイプ1)」のセンサーを置きます。編成が2車線側の「直進側」から進入すると、まずセンサーでポイントは直進方向になります。この後通過した編成が直ちに折り返すと「トグル分岐(タイプ1)」は
ポイントの状態を逆転させるので、「分岐側」へ出て行くことになります。



また、「分岐側」から進入する場合も同様です。

これで、山を登るためのスイッチバック用のポイントが出来上がりです。

---*---*---*---

さて、「自動合流センサー」では一方通行、「トグル分岐センサー」では通過した編成が直ちに折り返す、等の条件が付きました。これでは使える部分は限定的です。そこで、編成毎にどちらに進むのかを指定したセンサーを準備しました。それが「支線分岐センサー」です。

---*---*---*---

<分岐時に「支線分岐」を使う>


「支線分岐」を使うと編成毎に動作が決められますので、この絵の意味はあまり無いですね(笑)。

なので、使い方を中心に説明します。

編成毎に動作が違うのですから、当然編成に動作パターンを教えておく必要がありますし、どのポイントが対象なのかを指定しておく必要があります。しかし、「cVss」は部品名を使いません。なので、数値で指定します。

<多機能ポイント>
//----------------------------------------------------------------------
//ユーザー設定項目
//支線分岐用途:第1列~第3列
set VarBranchLineNo 1
//----------------------------------------------------------------------


ポイントには1~3の値を指定します。これは列であって番号ではありません。なので、ポイントが最大3個使用できるというのではなく、最大2の3乗(=8)に分かれられるということです。つまり、

ということです。そして、編成には動作パターンを記載します。

<編成>
//----------------------------------------------------------------------
//ユーザー設定項目2(動作設定)
//支線分岐指示(000、001、010、011、100、101、110、111の8パターン)
set VarBranchLinePointOrder 000
//----------------------------------------------------------------------


一の桁が第1列、十の桁が第2列、百の桁が第3列のポイントの動作(0か1か)になります。

ちょいと面倒な感じですが、これには拡張性という面で幾つか利点があります。デフォルトでは第3列までですが、第4、5・・・と増やすことが比較的容易です。それと少し複雑な話になりますが、編成の支線分岐指示はグローバル変数に保管されているので、ある路線を走行したら、一時的にこの値を変更して動作させるということも可能です。そのためには新たなセンサーを準備する必要がありますが、「ターミナル駅出場指令センサー」というのが実際にこれと同じようなことをしているので改造も簡単です。ただ、そこまで使う人が果たしているか?ということで未だ準備していないというだけのことです。

---*---*---*---

未だターミナル駅のポイントの説明はしてませんが、大体「支線分岐」と似たようなものです。駅用センサーの使い方の説明を書く時があれば一緒に書こうと思います。

とりあえずは、これだけのポイントが扱えれば、大体使えるんじゃないだろうか?と思っていますので。

ランキングに参加中。クリックして応援お願いします!

コメント一覧

漆黒
只今、意図した動きとなり大満足です。本日はお仕事のお邪魔になる書込み等多々ご勘弁を(礼)。矢張り、cVssは自ら悩まないと習得出来ません本日はとても良い勉強をさせて頂きました。直走るレイアウトから脱するにはもう少し修行が必要です(ボリボリ…)本日は有難う御座いました。
zio
まずは先のコメントに対して、

迷惑だなんてことは全くありません。色々と要望を出して貰えると、こちらでは気が付かなかったことを知ることが出来るので助かります。

さて、私も先程「貨車入換え」をcVss-PartsLayout-v114のDF50+14系でテストしてみました。VRM4ですが。

その結果、動きましたし、車両テクスチャも反転配置させれば問題なかったです。ただ、この動作は不可解です。管理されていないVRM4と管理されているVRM5の違いがココにあるかもしれません。VRM5でもテストしてみなくてはわかりませんが、今は仕事に追われているので暫くは結論が出ないだろうと思います。


次に自動発車の件ですが、先にも書いた通り、機関車のスクリプトは一応消えることになりますので、ASCセンサーから機関車に命令しても無意味のハズです。更に連結専用ASCは機関車のスクリプトにトドメをさすこと(イベントハンドラの無効化)が目的なので、ユーザー設定項目外のAutoSpeedCtrl後の動作設定を幾ら変えても動きが変わることはありません。

連結後、自動的に発車させるのであれば、編成スクリプトに「call this MethodStart」を追加してください。

//連結時メソッド
 BeginFunc MethodCouple
//貨車・客車側と一体になってイベント再設定
 KillAllEvent
 call this MethodEventStart
//入換表示標識オフ
 call this MethodTrainIndicatorOff

call this MethodStart

 EndFunc
漆黒
先程、cVssテンプレート(cVss-PartsLayout-v114)の機廻し、EF210でセンサー(ASCセンサー(両方向・単機型・連結専用)のAutoSpeedCtrl後の動作設定を3~5にしても自動的に発車しませんでした。ONLINEだと駄目なのかなぁ?
漆黒
度々、ご迷惑をお掛けしまた。

素人発想はやはり簡単には行かないようですね?(反省)試しに機関車牽引列車を入れて見ましたが矢張り動きません。以前、ホッキホキで滞留していた貨車を入れ替えて牽引された事を思い出して真似したのですが(笑)
お忙しい中、ご返答下さり感謝しております。是非、ご検討して頂ければ幸いです。
zio
なるほど貨車の入換えですか。現時点では想定していなかったです。

まず動かない理由ですが、「別線路にある貨車」にcVss編成のスクリプトが書き込まれていないからではないでしょうか?

機関車はぶつかる側になるので連結すると機関車編成は消滅します。そして、動作するスクリプトは貨車側のものになるのです。これはVRMスクリプトの連結時の仕様で変更できません。

実は機関車側のスクリプトはメモリ内に残っているようですが、消えた機関車のスクリプトを呼び出すのはNGで、強制終了が発生する場合があります。

さて「別線路にある貨車」に書き込むスクリプトですが、「機関車牽引列車」のものを使い、機関車が連結している状態の車両数に設定してやれば動くだろうと思うのですが、初期状態で機関車が付いていない状態は未だ想定していませんでしたので、車両テクスチャを使っているとおかしくなるかもしれません。テストしていないので細かいことは未だ分りませんが、今後の検討項目に入れておきます。
漆黒
お手数をお掛けしました。本日は休みで午前中から格闘中です(汗)。スクリプトを全て「cVss」規格に変更しテスト!最初、列車が動かないので汗していたら「キー操作」で出発するんですね(笑)無事可動して大喜び!ちょっと欲を出して…。

牽引してきた貨車を切離し、別線路にある貨車を牽引しようと考え「ASC単機・連結」(動きがリアルで最高!!)で試したのですが連結したが「出発」出来ない状況です。AutoSpeedCtrl後の動作を全て試して見ましたが…う~~ん頭が痛くなって来ました。
zio
こんばんは、漆黒さん。

私も「cVss」のスクリプトを改造して使うのは、かなり難易度が高いだろうと思っています。複数のオブジェクトに跨って動作していますので。・・・しかし、ただ配置して使うだけなら、そんなに難しくはないだろうと思っているのですがどうでしょう? 難しさのレベルは人によって違うので自分だけでは判断できません。それが一番難しいところです。


さて、最高速度は「SetTopSpeed」命令を使えば設定できるはずです。「VRM4CV標準化編成(機関車牽引列車)用スクリプト 機能限定版」ならば、下記のように「GetTopSpeed」の前に入れてください。

//スタート
//編成最高速度取得

SetTopSpeed 120.0

GetTopSpeed VarTopSpeed

こうすると、速度の変更は多分「cVss」の「STV速度設定センサー」や「STV速度制限解除設定センサー」がそのまま使えるはずです。「ASC速度設定センサー」は、あの時点から変わっているので元に戻さないと使えないはずですが。
漆黒
今晩はzioさん。cVssはちょっと小生にはハードルが高いか(笑)ここ毎日、「機廻し改造版(New レイアウト作成)」で遊んでおります。少々お尋ねしたい件が御座いまして…

「編成の最高速度」を変更出来ないものか?又「途中でセンサーにて速度を減速」その後「設定速度に復帰」など出来たらなぁ~と思いお尋ねする次第で御座います。又御手隙にでもお付き合い下され。
名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

※ブログ作成者から承認されるまでコメントは反映されません。

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最新の画像もっと見る

最近の「cVss」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事