Rosso Laboratory

クラスJ

定例文:データのダウンロードは「VRM4-comVignette」へ。
(VRM4-comVignetteに関する略称等についてはコチラで)

さて、先日VRM4-comVignetteにおいて唐突に投入したクラスJですが、「ビネットを繋げて走らせよう」というCVに折り返しループが無いというのは可笑しな話だなということに気付き、速攻で作ってアップしました。これでCVを1個作っただけでも一応走らせることが出来るということで、めでたしめでたし。なのですが、あれはジャンクション用のテストに必要なので作ったという側面もあります。


<製作中のジャンクションCVB>

鉄道でジャンクションというと、どうも乗換駅のことを指すようなのですが、鉄道の分岐点の呼び名をよく知らないのでジャンクションのJをとってクラスJとしました。別にジョイントのJでもイイんですが、兎に角今まで単純なエンドレスループしかなかったCVに少し変化のある接続を与えることが出来るようになるのが、このクラスJのCVです。

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

さて、分岐があれば合流があるということで、ポイント操作がすべて手動というのは操作上面倒臭いはずです。そんな訳で、このジャンクションCVBにはスクリプトが必要となってくる訳ですが、現段階では分岐は手動、合流は自動という形をとるべくスクリプトを作りました。

ここからは、「CVで使える名前参照無しのスプリングポイントを作ろう」という話。スプリングポイントという呼称はmoko氏の日向車両mini「リニューアルしました」で知ったばかりですが(笑:moko氏に感謝)。VRM3ならこんなこと気にする必要ないのにね。

CVは複製されて使われる可能性がある → スクリプトにおいて同じ部品名の操作対象が存在するかもしれない → 名前参照では指定したい部品を特定できない

という問題が発生する恐れがあるので、CVにおいてはスクリプトの使用を一応禁止している(単独動作のものは可)のですが、名前参照ではなくオブジェクト参照を使えば、この問題を解決できることを示してくれたのが、ghost氏のVRM入道「SearchPoint暴走列車」な訳であります(ghost氏に多謝)

この記事内にあるスクリプトを使えば良いという話もありますが、まぁそこは私の性格、アレンジして使おうとまたゴチャゴチャやっていた訳であります。VRM入道「SearchPoint命令にやっぱり使い道がない件」でSearchPoint命令に制約があって使いづらいという話もありましたし。


<テスト用レイアウト:何時の間にか下が黒いよ>

で、結局、2つのスクリプトを作りました。

1つは、センサーから編成に次動作の指示を与えてはいますが、ghost氏のスクリプトと根本的には同様である1/30秒間隔でSearchPointをループさせてポイントを探る手法。

もう1つは、センサーが編成を見つけた時にSearchPointも使って一気に解決する方法。


スクリプトでポイント操作をしたことがある人が下図の配置を見れば、「センサー踏んだら直接ポイントに指示を送っているのだろう」という最もオーソドックスな方法を思い浮かべるでしょうが、それだと名前参照になりますのでCVでは使えません。今回の要点は、センサーを編成が踏んだら、センサーから編成を経由してポイントに指示を送っているという点で、具体的なコマンドのことを書けば、「GetSenseTrain」と「SearchPoint」というオブジェクト変数を扱えるものを使っているということです(何のことだかよくわからないという方はコチラにサンプルレイアウトやスクリプトのテキストデータがありますので御覧下さい。全行解説入りなので多少はわかりやすくなっていると思いますし、部品名がどこにも使われていないことがわかると思います。これが重要ということです、CV限定の話ですが)


<白いポイントがスクリプトによる操作対象>

前者(上図では内側の8の字ループ)はVRM入道「SearchPoint命令の使い道がない件」に書かれていた内容のものと多分同じようなものです。これの場合のメリットはセンサーがポイントに接するレール上だけでなく、離れた位置にも配置できるということ。デメリットはスクリプト内でずっとループしているので処理が重くなること。

後者(上図では外側の8の字ループ)のメリットはループ無しなので処理が軽いこと。デメリットはセンサーをポイントに接するレール上にしか配置できないということ。

で、現段階では後者をCVに採用しようと思っています。CVLは処理が重くなることが想定されるのでなるべく軽い処理の方が良いという点。そして、センサーが離れた位置にも配置できるかどうかというのは分岐の自動化の時に関係してくるのですが、後者でももう1個センサーを置けば良いだけのことだろうと予想されるので、とりあえず。

今回のスクリプトは、3分岐のポイントには対応していないですし、編成が止まったら再発車もしません。恐らくCVではTOMIXの3分岐のポイントは使わないでしょうし、再発車の件は駅との絡みもあるのでこれはまだ先の話です。

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

クラスJのCVBはどうしても巨大化します。よって、一応CVのように情景を作ってから公開する予定にしていますので、このジャンクションの公開はまだ先になるでしょう。あまりにも時間がかかるようなら、一応ベースとなる部分は出来ているので試作版公開という可能性はありますが。

という訳で次回の更新は、複々線ループぐらいになるでしょう。


<複々線ループ使用例>
最近複々線を投入しているのは、京浜東北線と山手線に追いかけっこをさせたいだけだったりする(笑)。


<複々線用トンネルポータル>

仕掛かりばかり増えていく~。

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

名前:
コメント:

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

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

 

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

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

最新の画像もっと見る

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

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