編成反転機能 連結親子関係反転機能 reverse convoy reverse convoy coupling - teamhimeh/simutrans GitHub Wiki

編成反転機能/連結親子関係反転機能 reverse convoy / reverse convoy coupling

はじめに

OTRP v41より実装された編成反転機能、および編成連結順序反転機能について説明します。
※この2つの機能はそれぞれ独立した機能となっております。設定し忘れ、設定する項目の間違い等にご注意ください。

編成反転機能 reverse convoy

本機能は鉄道(列車track、トラムtram_track、モノレールmonorail_track等)の編成内の車両の向き、および順序を反転させる機能です。
スケジュール内、および編成の車両情報画面から車両の向きを反転させることができます。
※本機能は、Extendedに実装されている車両反転機能と似ていますが、反転の条件が異なります。

スケジュールで設定する場合

使い方

使い方は以下の通りです。

  1. 編成情報ウィンドウまたは路線一覧からスケジュール編集ウィンドウをひらき、編成のスケジュールを指定します。

  2. 編成を反転させる駅を選択し、詳細タブを開きます。

  3. reverse convoy (日本語訳:編成を反転する(R))のチェックボックスを有効にします。スケジュールウィンドウ上の駅名の先頭に[R]が付与されます。

  4. スケジュール編集ウィンドウを閉じます。

  5. 編成がその駅に到着すると、編成内の各車両の向き、および車両同士の連結順序を逆転して発車します。

動作についてと使用例

  1. 発車する方向が違うとき
    車両は後尾側を先頭にして発車します。現実における列車の折り返しと同じかたちです。

  2. 発車する方向が同じとき
    車両は向きを変えて発車します。転車台に乗ったSLが方向を変えるイメージです。

主に使用する場面としては、1.列車の方向が変わるとき 2.転車台などで車両の向きだけを変えたいときです。

ボタンで動作させるとき

車両情報画面からも車両の向きを反転させることができます。
車両情報画面には、現在反転中か否かが表示されています。反転中の場合はreverse(日本語訳:向きを反転)ボタンの色が濃くなり、反転していない(通常走行時)の場合はreverseボタンの色が薄くなります。
このreverse(向きを反転)ボタンを押すと、反転かどうかを切り替えることができます。

※ただし、次の場合は起動しません(連結失敗バグ防止のため)

  • 次の駅で連結待ちを行うとき

本機能の注意点

本機能は、1編成ごとに編成内部で車両の向き、および車両の順序を反転させる機能です。 そのため、本機能を他の編成と連結運転中の1つの編成のみに使用したとしても、他の編成内の車両順序、または編成同士の車両順序を反転させることはありません。連結中の他の編成の車両の向きについては他の編成のスケジュールを編集、またはreverseボタンを押してください。編成同士の連結順序を変更する場合は次の編成連結順序反転機能をご利用ください。

反転編成の車両の位置関係について

本機能を使用した場合、反転編成(reverseボタンが押下状態の編成)については画像が通常の向きの反対向きの画像に入れ替えられています。そのため、アドオンの画像位置の都合により通常編成とずれることがあります。これは停車位置や通常向き編成との連結運転の際に描画の乱れを引き起こします。

simuconf.tabによって、連結反転時の画像位置オフセットを設定可能です。以下のpak128.japan向けの記述事項を参考に、使用している各pak/configフォルダ内にあるsimuconf.tabに加筆してください(v44以降)。

# For PAK128.JAPAN
# The below settings give an offset in pixels per direction for each vehicle 
# when it is in a reversed state. This allows paksets whose vehicle alignments are
# not fully centered to have vehicles reversing algorithmically and allowing them
# to be properly aligned in game when they are reversed. 
# parameters: holizontal offset, vertical offset, length offset (offset length x 16).
# By default, all of these values are 0.
#
reverse_base_offset_south = 0, 0, 32
reverse_base_offset_west = 0, 0, 32
reverse_base_offset_southwest = -12, 0, 0
reverse_base_offset_southeast = 0, 0, 0
reverse_base_offset_north = 0, 0, 32
reverse_base_offset_east = 0, 0, 32
reverse_base_offset_northeast = 12, 0, 0
reverse_base_offset_northwest = 0, 0, 0

最後の8行が記載内容で、各成分は左から順に水平方向offset、垂直方向offset、編成長に対するoffsetとなります。編成長に対するoffsetは車両長方向に自動的にオフセットがかかるもので、修正したいlength値(length=16で1マス分)に対して16倍の値を入れてください。

※編成反転時、車両は以下の規則で描画位置が補正されます。offset計算の際の参考にしてください。

#システム内では1マス256(16*16)で取り扱う
#length:車両長
#dir:向き
#基本のoffset:
offset[dir]=8*16-length*16+reverse_base_offset[dir][2]
#斜めタイルの場合:
offset[dir]*diagonal_multiplier/1024
#diagonal_multiplier=724#simuconf.tab内で定義
#最後にx,y方向の微小オフセットを掛ける
offset_x=offset[dir]*dx+reverse_base_offset[dir][0]
offset_y=offset[dir]*dy+reverse_base_offset[dir][1]

本機能のその他のトピック

  • 反転した編成を編成ウィンドウからボタンを押して車庫に送った場合、ボタンを押した時点で車両の向きと車両連結順序が通常の方向に戻ります。

  • 反転した編成をコピーして車庫に貼り付けた場合も、通常の位置関係で貼り付けられます(v44以降)

  • 編成反転時の前照灯/尾灯の切り替えについては、pakファイルに画像指定を追加することで実現できるようになりました(v44_5以降)。編成反転時用画像について

編成連結順序反転機能 reverse convoy coupling

この機能は、連結中の編成について、編成同士の連結順序を入れ替える機能です。 本機能はスケジュールウィンドウを通して設定が可能です。

使い方

  1. 路線一覧からスケジュール編集ウィンドウをひらき、連結している編成達のうち先頭の編成の路線のスケジュールを指定します。(連結中は編成単体のスケジュールを変更できません。連結を予定している編成のスケジュールは路線登録しておくことをおすすめします。)

  2. 編成同士の連結の順序(親子)関係を反転させる駅を選択し、詳細タブを開きます。

  3. reverse convoy couping (日本語訳:連結を反転する(T))のチェックボックスを有効にします。スケジュール上の駅名の先頭に[T]が付与されます。

  4. スケジュール編集ウィンドウを閉じます。

  5. 編成がその駅に到着すると、次の条件を満たしたときに編成同士の向きを逆転して発車します。

※本機能はスケジュール上において連結待ち(wait for coupling)および連結試行(try coupling)とは併用できません!

発動する条件

以下の条件を全て満たした場合のみ、編成同士の順序が反転します

  • 編成が駅に着いたとき
  • 先頭編成のスケジュールにおいてその駅でreverse_convoy_couplingのチェックが有効なとき(先頭以外の編成で設定されていても発動条件には加味されません。ただし最後尾編成に設定されていた場合は次の行参照)
  • 最後尾編成のスケジュールにおいてその駅でreverse_convoy_couplingのチェックが無効なとき(先頭と最後尾の折り返しの無限ループを防止するため、v44以降)
  • その駅で連結待ち(wait for coupling)/連結試行(try coupling)が予定されていないとき

使用例

本機能は、連結している編成同士を折り返し時に現実と同じように折り返す際に使用できます。

注意点

  • 本機能は、連結を行う駅では使用できません。
    本機能は連結時の位置関係によって動作するかどうかが決まります。スケジュール設定の際には計画的に設定してください。
  • 本機能では編成内の車両順序は変更されません。編成内の車両順序を変更する場合は編成反転機能reverse convoyをご利用ください(併用できます)。

本機能に関する補足

本機能開発時に実装した関数を利用して、連結済みの編成がさらに他の編成と連結する多重連結を行う際にも 編成同士の位置関係を保ちながら連結できるようになりました。

使用例

両方の機能を使用すると、折り返し駅において、車両の位置関係が変わることなく折り返すことができます。