ルギア君の戯言

雑多な記事。

OpenTTD の遊び方 - その2

0.7.0-beta が配信されています。

2回目の今日は信号機の使い方の続きから。


前回は→d:id:lugia:20090213:1234498207

信号機(つづき)

15パズルの限界

さて、ある駅A と別の駅B はちょっと遠いので、すれ違いのできる信号場を2つ作ってたくさんの車両を走らせたいと思います。この時、信号は普通に
f:id:lugia:20090307135953p:image
のように作ると思いますが、実はこれには不都合があります。3編成までなら良いのですが、4編成走らせると、
f:id:lugia:20090307140220p:image
となって詰まってしまうことがあります。詰まってしまったら、逆転させてあげましょう。この問題を解消するにはどうすればよいでしょうか。


答えは、
f:id:lugia:20090307141606p:image
ですね。炭鉱から発電所に向かう方向は速く輸送したいので、通常信号のみで、どんどん前に詰めてしまいます。一方、発電所から炭鉱に戻る方向は前方の信号場にすでに列車がいる場合にはその信号場で待機して単線区間を空けておき、対向車を先に通してあげます。
ちなみに発電所方面が混んでいる時は発電所に向かう列車が発電所に近い信号場にいるときには後から来た列車はその前の信号場で待ち、炭鉱方面が混んでいる時は炭鉱に向かう列車が炭鉱に近い信号場にいる時は後から着た列車がその前の信号場で待つということは OpenTTD 0.6.3 ではできません。そのうちできるようになるかもしれませんが。
この場合、何編成まで走らせられるのでしょうか?
f:id:lugia:20090307143008p:image
このスナップショットでは、4 編成しか走っていませんが、この状態でもし 南Londinghall 駅の入口信号でもう 1 編成が止まっていたら詰まってしまいますね。したがって 5 編成まで運行できますね。次にこれ以降走らせる編成数を増やすにはホームを増設するか、信号場で待てる列車数を増やすか環状線にするか、完全に複線化するなどすればいいのではないでしょうか。

複線化しても・・・

f:id:lugia:20090307172142p:image
上のスナップショットを見てください。Sadingstone Bay空港駅(上の駅) と Brudston山駅 を結ぶ路線はさらに先に続いていて、Sehill前駅 という駅まで続いています。Brudstone山駅 と Sehill前駅 の間はたくさん信号を設置してたくさんの閉塞区間に分割してありますから、たくさんの列車が走れそうですが、Brudstone山駅 から Sadingstone Bay空港駅 の間は駅構内もあわせて 6 個の閉塞区間しかないので、15パズルの原理から、この区間を走る列車は 5 編成までしか増発できません。


ただし、問題になるのは端の場合だけで、4 駅のうち真ん中とか、環状線になっている場合は先に追いやってしまえば良いので、問題になりません。

直角に曲がれると・・・

f:id:lugia:20090307192819p:image
さて詰まっていますね。OpenTTD の世界ではグリッドの境目で直角に曲がることができます(グリッドの中央で交差している場合は不可)ので、車両が15パズルに基づく数より少なくてもこのように詰まってしまうことがあります。2駅の路線では起こることはありませんが、3駅以上の路線で発生する可能性*1があります。これを防ぐには線路を増やすかホームを増やして処理を速くするか、パッチの設定を変更して直角には曲がれないように変更することで回避できます。後者は確実ですが、自分が他の箇所で直角に曲がれることに依存していないか確認しておく必要があるので注意しましょう。ちなみに直覚に曲がれるようになっているとコンピューターは平気で直角カーブを作っていくので、あとで設定を変更するとコンピューターは涙目になりますよ。マルチプレイの場合はみんなに確認を取りましょう。


直角に曲がれるかどうかは「設定(スパナのアイコン)」→「パッチの設定」→「車両」にあります。直角には曲がれないようにする場合、同時に車両の経路処理アルゴリズムを NPF に変更する必要があります(YAPF でも直角に曲がれないようにすれば車両は直角には曲がれなくなります)。YAPF のままだと、直角を曲がれないのに無理に曲がろうとする症状が発生するのかもしれません(未確認)。ちなみに、NPF に設定するとコンピューターは直角カーブを作らなくなります。

コンボ信号を使う

あまり使われない信号、コンボ信号を使ってみましょう。コンボ信号は入口信号と出口信号の両方の効果を持つ信号です。
f:id:lugia:20090307195719p:image
このようにコンボ信号を連続で並べると、連鎖的に信号が変わります。面白いですね。どうしても必要と言うシチュエーションはあまり無いように感じます。上の例では間のコンボ信号を全部撤去しても同じですからね。

パス信号を使う

0.6.3 にはありません。0.7.0 に追加されるかどうかも定かではありません。Nightly Build で使うことができます。


パス信号は列車によって変わるカメレオン信号です。パス信号は列車の行く先が他の列車にぶつからないのならば、蒼を現示し、ぶつかるのであれば赤を現示します(グラフィックはかわらないようです)。これにより、大きく複雑な線路構成の閉塞区間に2編成以上の車両をいれることができるようになります。
http://wiki.openttd.org/wiki/images/0/0b/Yapp_basicjunction.png
(OpenTTD の本家 wiki より転載)
黒いエリアは列車が行こうとしているエリアで、予約されていることになります。閉塞区間に入った時に自分の黒いエリア(影とでも呼ぼうか)と、他の列車の影が重なるなら、閉塞区間に入る前に赤を現示して止めます。重ならないのならば蒼を現示します。


また、パス信号には、自分の列車が進行した場合に、他の列車の進行を妨げる場合には赤にするという素晴らしい効果もあります。具体的には将来に渡って列車が来る可能性のあるポイントを踏まずに停車させるということみたいです。そのため、経路処理アルゴリズムが NPF か YAPF である必要があるようです。


木の板(?)のあるものとないものの違いは逆走が可能かどうか。
実は木の板の無い物は信号に対して逆走が可能らしいです。例え、片側にしか設置されていなくても。
そのため、
http://wiki.openttd.org/wiki/images/7/7f/Yapp_basicstation.png
(OpenTTD の本家 wiki より転載)
のような配置しても入れないなどと言うことはありません。


木の板のあるものは逆走が不可能だということらしいです。

終わりに

これで君も信号マスターだ!


え? 入口信号とか出口信号ってどうやって作るの? って? ああ、デフォルトではオンじゃなかったね。


入口信号とかを作る GUI を表示させるようにするには「設定(スパナのアイコン)」→「パッチの設定」→「建設」の「信号のインターフェースを使用」を ON にしてやれば出てくるようになるよ。

事故

鉄道 道路車両 航空機 UFO 船舶
鉄道 互いに大破 鉄道勝利 起きない 起きない
道路車両 鉄道勝利 起きない 起きない 起きない
航空機 起きない 起きない 着陸時のみ UFO勝利?
UFO 起きない 起きない UFO勝利?
船舶 起きない

注目すべきところは、鉄道同士がぶつかった場合には事故が発生してしまうことです。普通に運行している場合には起きませんが、信号無視とか使っちゃうと事故につながる可能性があります。


航空機の着陸失敗と UFO との衝突事故は運でしかないので、置いておいて、鉄道と鉄道の事故をできる限り防ぐ為にはどうすれば良いでしょう? 信号無視は使わないというのはごもっともな意見ではありますが、使っても事故が起きにくい線路作りというのも大事なのではないでしょうか?

ジャンクション

ところで、高速道路にはジャンクションがありますね。三郷とか、練馬とか、いわきとか、郡山とか、日本全国至ることに高速道路が交差するところは普通の交差点ではなくジャンクションになっています。なぜでしょう? 信号を作れないというのと、安全に行き来ができるということです。


この高速道路のジャンクションを真似て線路を組めば安全に列車が行き来できるようになります。

基本3方向ジャンクション
  • 組み方: http://wiki.openttd.org/wiki/index.php/Basic_3-Way
  • 利点
    • 費用が安い
    • 坂道がない(ので減速せずに通過できる)
  • 欠点
    • 1度に1編成しか通過できない(パス信号を使った場合は2編成)
    • 渋滞が発生しやすい
ラインマージ
  • 組み方: http://wiki.openttd.org/wiki/index.php/Line_Merge
  • 利点
    • 費用が安く、建設が簡単
    • 1度に2編成通過できる
    • クロスオーバーがない(方向の異なる線が分離されている)
  • 欠点
    • 急カーブがあるため減速する必要がある
    • 一方向にしか行けない
    • 右に行くのに左に曲がらなければならない
ハーフクローバー

日本の高速道路のインターチェンジではスペースがある時はこの形が多い。

  • 組み方: http://wiki.openttd.org/wiki/index.php/Half_Cloverleaf
  • 利点
    • 一度にたくさんの車両が通行できる
    • 渋滞が起きにくい(高速道路の渋滞はその先の料金所のせいで起こる)
  • 欠点
    • 坂道で減速する
    • 左へ行くのに右へカーブしている(右側通行のため)

ループを大きくすればカーブによる減速を減らすことができます。スペースを浪費するのでちょっぴり厄介。

ハーフスパゲッティ

複雑だと単に芸術に過ぎないのが悲しい。

コンパクト3方向ジャンクション

一新してシンプル。

コンパクト3方向ブランチマージジャンクション

本線がわからない。

究極の3方向ジャンクション

本当に究極なのか?

半-完成形ジャンクション

半って未完成っていう意味じゃないよ。都心の高速道路のジャンクションや、鉄道のジャンクションに多い形。
新松戸駅付近 (地図) (実際のもの・拡大して上下関係を確認してみてください)

ブライデッドジャンクション
基本4方向ジャンクション
ラウンドアバウト

ロータリーっていうやつ。

クローバー

かなりのスペースが必要だが、日本にもある。(Uターンできてしまう為、高速道路では使われていない)

スパゲッティ

どう考えても芸術でしかない。

スタージャンクション

これも芸術が入っている。

コンプレックススタージャンクション

コンプレックスとか言っているわりには大きいので分かりやすい? 図は2面4線に見えるけど3線は同じ方向なので注意。

ブランチマージジャンクション

デッドロックが起こらないというのを強調するものだけど、コンプレックススタージャンクションの方が確実にシンプル・・・

アンダーオーバー

ふう。シンプルになった!

テトラソープジャンクション

覚え易いというのは以外に重要かもしれませんね。
橋ではなくトンネルにすれば、橋の制限速度は気にしないで済む。

入口信号付ラウンドアバウト

信号によって流れをコントロールするというのはなかなか素晴らしいかもしれない。

これじゃ普通のラウンドアバウトと比べてあまりメリットは感じないんだけど・・・

拡張ラウンドアバウト

左(左側通行の場合は右)へ曲がるときだけループを利用するようにして、渋滞になりにくくしたもの。

ライトオブウェイラウンドアバウト

意味があるのかどうかはよくわからないが、左折(左側通行の場合は右折)する場合に、必ず左側からループに入って右側に抜けるというもの。

完成形(?)

半-完成形の4方向バージョン。複雑化するので注意。

・・・

まだあるよ!

*1:3駅の場合は中央の駅の構内で起こる