タイトル通り
実在路線の再現はわかりません。
(仮)(独自解釈)
私が公開した作品「西陽本線」は、第一作ということもあって制作の省力化に重点を置いており、経路も途中の小さな駅で副本線に入るパターンしか用意していませんでした。ターミナル駅で副本線が使えれば飛躍的に面白くなると思っていましたが、ターミナル駅を自線化するような勇気はありませんでした。
そこで導入したツールが粉山葵さま制作のTsutsuji track computerです。界隈の方にはもうおなじみですね。端的に言うと他軌道と自軌道を同等に扱って配線できるツールです。
本来Tsutsujiは写真や線形データを元に配線を作るツールのようですが、自線化が簡単にできることや正確な配線ができることから架空の配線でも非常に有用であると思われます。
製作者の粉山葵様からもガイドが公開されていますので適宜ご覧ください。
項目ごとに該当するページがあればリンクを付しますのでご活用ください。
Tsutsujiの動作にはPython3が必要です。丁寧なガイドがありますのでこちらを参考にインストールしてください。
(情報系のお話には詳しくないのでこちらのガイドでは触れない方針です。)
制作したい駅の規模に合わせて適当な駅(できるだけ真っ直ぐな駅が望ましい)を選び、国土地理院地図で調べます。ここでは黒崎駅を選びました。
地図を最も詳細な表示にします。こうすると線路一つ一つが表示されるようになりますので、ウインドウを大きくするなどして解像度をできるだけ高くしたあと画像を取得してください。保存先は将来CFGファイルを置いたり作業したりするフォルダがおすすめです。あと画面下にあるスケールバー(縮尺)の部分を含めるようにしておきましょう。 *画像で取っているのは、のちのちTsutsuji側で処理する回数を減らすため
スケールバー部分を拡大し、画像上1ピクセルが何メートルに相当するか確認します。
Tsutsujiの[オプション]メニューから[Backimg…]→[Add]を選び先程保存した画像を選択したら、同じメニューの設定ウィンドウから、画像の調節をしましょう。先程計算したピクセルあたりの距離をScaleに入力します。項目を変更したら[Refresh]を押すことで反映されます。縮尺の調整ができたら同メニュー[Save Backimg]から保存しましょう(拡張子はなしでOK)。この際、画像の透過度なども選択できますので、作業中に気になったら都度上書き保存しましょう。
*公式のガイドもご確認ください。
紙やペイントアプリを使って配線原案を作ります。有効長やポイントの位置関係がずれにくくなります。
また、将来自線化をしたい場合は予め自線候補の経路を整理しておきましょう。
自線化する経路は行き止まりや分岐の駅でない限り自線から分岐し自線に戻る必要があります。
さらに余裕があれば配線を経路ごとに分解して軌道に名前をつけましょう。
おすすめな軌道の名付け方:
駅を通り抜ける線路は10〜,西/東側の側線は30/50~,他社の線路はA0~...など、自分なりに整理しておく
それらの前に駅特有の記号などを付けて自然数だけの名前は避ける
色々あると困るので英数字以外の名前は避ける
Paint.netなどでベジェ曲線を使うのもあり
Tsutsujiに戻り、いよいよ配線の設定を始めます。まずはVScodeやサクラエディタ・メモ帳などテキストエディタを開き、中に何も書かずに拡張子を.cfgに変更して[名前をつけて保存]します。ここで作成したものが編集するファイルになるので、次回以降作業を再開するときはこのファイルを選んで[開く]を実行しましょう。
この先は具体的な軌道の情報を書いていく部分ですが、公式のガイドが充実していますのでまずはそちらを御覧ください。
*ガイドの読み方
string : 文字列(基本的に任意の名前を入れられます)
float : 数
bool : TrueかFalse
filepath : ¥や../を用いたファイル場所の記述(ファイルパス)
先頭は[@TSUTSUJI_GENERAL]の設定項目です。
●owntrack
自軌道の指定です。自線化の際には変更しますが、はじめは基準となる軌道にしておきましょう。下で書く[trackkey]の名前を一つ選びます。
●unit_length
ここは1のままで大丈夫です。PCやソフトの動作が重くなったら一時的に2や3にしてもいいとは思いますが、1以下にする必要性はほぼないと思います。
●offset_variable
●origin_distance
駅ごとに距離程変数を置いている方はここで名前をつけてください。(駅やマップの前後で長さを調節するのに使えます。)
●output_path
ファイルパスを用いて出力場所を変更できます。変更する必要はあまりないと思います。
●backimg
省略して構いません。
ここから下は軌道の情報を書いていく場所です。一本の軌道ごとにそれぞれこれらの情報を書いていきます。
●[trackkey]
[]で挟んだ中に軌道の名前を入れます。
設計図で決めたのと同じ名前を入れておきましょう。
●file
この軌道の情報を書くファイル名・場所を書きます。
ファイル名はtrackkeyと違っても構いません。(似た名前だとわかりやすい)
●absolute_coordinate
軌道の始点をどう設定するかの項目です。一切自線化を想定していない場合はFalseを使って側線などを設定することもできますが、Trueにするのをおすすめします。
(未だにTsutsujiにおける絶対座標と相対座標の仕組みがわかっていないのがバレバレ)
●parent_track,●origin_kilopost
上の項目をFalseにしたときだけ使用
●x,●y,●z,●angle
例)複線の隣の線路の場合は x,y,zにそれぞれ3.8,0,0
例)自線から分岐する線路の場合はx,y,zに0,0,0 など
基本的にはXだけ変えて使用します。Zを変えると後々面倒(なことが多い気がします)。
●isowntrack
先頭のowntrackで代用可
●endpoint
軌道の演算を終える場所を指定します。
Repeater.ENDをおく場所や、マップ区分の切れ目と同じ場所に置きます。
●supplemental_cp
軌道情報を出力する際に補正が必要になったら、計算させたい距離程を加筆します。出力でトラブルがあったら試してみましょう。
●color
Tsutsujiの表示エリアで軌道につける色を選べます。軌道数が多い場所にある分岐などには積極的に使用しましょう。
仮設定の軌道などを区別するためにも使えます。 16進RGBのほかに特定の色の名前も使えます。(公式ガイド参照)
●calc_rerlrad
こちらで案内する方法では使用しません
また、軌道ファイルが一つ以上必要になりますので以下を参考にファイルを作成してください。
テキストファイルを作成し、好きな名前で保存(ファイルパスを簡単にしたい人はcfgファイルと同じ場所に保存)
先頭に
BveTs Map 2.02
Curve.SetGauge(1.067);
Curve.SetFunction(1);
0;
Curve.Begin(0);
と記述(軌間やカント情報が違うときは各自変更・0;の部分は仮置き)
保存した場所とcfgファイルの位置関係をcfgファイルのfile = の場所に転記(拡張子まで) ファイルパスについての知識が必要です。
TsutsujiでF5キーを押し、cfgファイルをリロード
ここまでうまく行っていれば表示エリアに一本線が描画されるはずです。
軌道は一本道ですので、分岐するなど軌道が増えるごとにこれと同じようにcfgファイルの中身と軌道ファイルを繰り返し書き足していきましょう。
また、途中から分岐したり、途中から記述を始めたい軌道については上記のCurve.Begin(0);構文の距離程を任意に動かすことで調整できます。
おすすめするポイント:
自線化する軌道はすべてabsolute_coordinate=Trueにする(共通の経路は二重記述)
同じく前後で曲線が多い箇所でもFalseを避ける
Falseにした軌道のorigine_kilopostと軌道ファイルで記述する最初の距離は同じにする(仮置きで0にしていますが任意の数字に変えてOKです。)
Z=0からできるだけ動かさない
側線が多い場所では側線の軌道にcolorを指定する(軌道が増減するたびに色が変わって混同しやすいため)
軌道の終端にはCurve.Begin(0);を置く(出力の項目を参照)
前回の最後に記述したBveTs Mapのファイルは、BVEに読み込ませるマップ形式とほぼ同じファイルです。
このファイルでは自軌道・他軌道ともに自軌道構文の形式で書いていくことができます。
ただし自軌道に関する構文以外は一切無視されます。Curve.構文やGradient.構文を使いましょう。
(細かいですが一部のコメントアウトは末尾にまとめて書く必要がありそうです。出力の項目を参照してください。)
入力した内容を画面で確認するときはエディタからマップを上書き保存し、TsutsujiでF5か[reload]を押して読み込む情報を更新しましょう。
軌道同士を合流させる際に間隔を揃えたくなったら、ダミー軌道を使うと便利です。
右図は、黒い軌道の隣に青い軌道を間隔4mで揃えようとしている状況です。
まず基準となる軌道として黒い軌道のcfgデータをコピーし、軌道名を変えて記述し、区別のために赤色にしておきます。
この軌道を向かって4m右にずらすと、青い軌道の合流先の部分も黒い軌道から4m離れた場所になります。ここに青い軌道の先を曲げてあげればいいわけです。
こうした目標を決めて合流を作りたいときにはMeasure機能が役に立ちます。
簡単に言えば、曲線を正確に引きたい場所で使うと計算に基づいた数値を指定してくれる機能です。以下の記述が正確である保証はできかねますので、正確な情報は公式のガイドを御覧ください。位置を調べる、カーソル座標の手入力、NearestTrack、CurveTrackSolverの項目はよく使います。
計算モード概要
1,2: 交わる2つの直線の間に、始点/終点を決めてカーブを生成
3: 交わる2つの直線の間に、半径を決めてカーブを生成
4,5: 始点/終点、曲線の長さを決めてカーブを生成
6,7: 交わる2つの直線の間に、始点/終点を決めて緩和曲線入りのカーブを生成(経由点をγ点で指定)
[Do It]を押すとPowershellの画面に構文が出力されるので、軌道データの中にコピペすれば計算したカーブを使うことができます。
数字の代わりに”NaN”という文字が出力されてしまうことが稀にありますが、各点や半径を指定したあと本体の[Replot]を押してから[Do It]を押すとうまくいくことが多いです。
先程の例では赤い補助線に沿うように青い軌道を曲げたかったので、
AとBそれぞれの[Pos]を押して青い軌道の先の方の点をAに、赤い線の先の方にBを登録し、1,2,3,6,7のいずれかのモードを使ってくっつけてやればいいでしょう。
今回は曲線の半径を気にしなくて良さそうなので2モードで接続してみました。
説明が難しいので動画をご覧ください。
(加筆予定)
必要があれば、(1)の記事で用意した画像を利用して制作する配線がちょうどよいスケールで描かれているか確認しましょう。特にZ軸方向の大きさが大きくずれることがあるので、画像に含まれている分岐器や曲線の長さなどから確認することをおすすめします。私はこういうスケール合わせをやらなかったので配線を13本分全部組み直しました
[Load backimg…]から保存した画像(Tsutsujiで編集したBackImgのファイルは拡張子なしの”ファイル”になっています)を選択し、使いたい場所に応じて設定ウインドウから移動させてください。画像が表示されない場合は[show]にチェックを入れて[Refresh]ボタンを押しましょう。
続き執筆中…