Smart Calculators SmartCalculators

Simutrans 運賃収入計算機

Simutrans-Standard のどの貨物でも、1便あたりと月あたりの収入を計算します。速度ボーナスの下限(bonus_basefactor=125)がいつ効いているかもはっきり示します。Pak128 と Pak64 に対応。

計算モード
パックセットの選択

編成が運んでいる貨物です。貨物ごとに運賃と speed_bonus がパックセットの goods.dat に書かれています。

編成が走る経路(線路、道路など)です。交通種別ごとに speedbonus.tab の基準曲線が別々にあります。

ゲーム内の年です。speedbonus.tab の基準速度がこの年で決まります——年が進むほど基準速度が上がるので、編成速度が同じままだとその分だけ収入が減ります。

km·h⁻¹

編成の実効速度です——ゲーム内の編成情報ウィンドウの「収益速度」または「ボーナス速度」を読んでください。機関車の最高速度ではなく、その行程での実効速度の平均です。

出発地と目的地の停留所のあいだのマンハッタン距離(マス数)です。実際の線路の長さではなく、マス目で数えた距離です。標準のマップは最大1024。

1便で運ぶ貨物の数量です。単位は貨物によって変わります——人、袋、トン、パレット、m³、個。

編成の月あたりの便数です——ゲーム内の路線情報ウィンドウを読んでください。小数も入れられます(2か月に1往復の長距離なら0.5など)。

1便あたりの収入

$46,667

旅客 · 100マス · 100単位 · Pak128

月間収入

$186,668

× 月4便

1マスあたりの収入

$466.67

速度ボーナス

0%

運用の早見表 · 最適速度

1950年・鉄道・100マスの旅客なら、1トンマスあたりの収入が最大になる編成速度は約156 km·h⁻¹ です。

この数字の求め方

手順
パックセット Pak128
貨物 旅客 · value=14 · speed_bonus=18% · catg=0
交通種別 / 年 鉄道, 年 1950
基準速度(speedbonus.tab) 100 km·h⁻¹
編成速度 100 km·h⁻¹
kmh_base (100 × 100 / 100) − 100 = 0
ボーナス係数 max(125, 1000 + 0 × 18) = 1000
貨物収入(1単位1マスあたり) 14 × 1000 = 14000 ($4.6667)
収入(整数演算そのまま) (14000 × 100 × 100 + 1500) / 3000 = $46,667

· 式を検証済み · 整数まで一致 ·

貨物別の収入表 — Pak128

貨物 運賃 速度ボーナス 最適速度 収入 / 単位 / マス 下限の危険
自動車 170 15% ≥ 100 $56.6667
コンクリート 80 10% ≥ 100 $26.6667
食品 60 18% ≥ 100 $20.0000
電化製品 55 15% ≥ 100 $18.3333
エタノール 53 6% ≥ 100 $17.6667
書籍 50 8% ≥ 100 $16.6667
家具 50 12% ≥ 100 $16.6667
ビール 50 8% ≥ 100 $16.6667
木材 50 0% ≥ 100 $16.6667
50 18% ≥ 100 $16.6667
ミルク 50 15% ≥ 100 $16.6667
雑貨 45 15% ≥ 100 $15.0000
織物 45 12% ≥ 100 $15.0000
ガラス 45 2% ≥ 100 $15.0000
鮮魚 45 15% ≥ 100 $15.0000
ウール 45 2% ≥ 100 $15.0000
缶詰 40 3% ≥ 100 $13.3333
小麦粉 40 3% ≥ 100 $13.3333
プラスチック 40 4% ≥ 100 $13.3333
板材 40 2% ≥ 100 $13.3333
ガソリン 40 4% ≥ 100 $13.3333
化学薬品 40 8% ≥ 100 $13.3333
セメント 40 5% ≥ 100 $13.3333
綿花 40 0% ≥ 100 $13.3333
トウモロコシ 40 3% ≥ 100 $13.3333
肥料 37 2% ≥ 100 $12.3333
原油 35 0% ≥ 100 $11.6667
穀物 35 5% ≥ 100 $11.6667
34 0% ≥ 100 $11.3333
34 0% ≥ 100 $11.3333
石炭 32 0% ≥ 100 $10.6667
鉄鉱石 32 0% ≥ 100 $10.6667
廃棄物 31 0% ≥ 100 $10.3333
30 5% ≥ 100 $10.0000
鉄鋼 25 2% ≥ 100 $8.3333
郵便 16 15% ≥ 100 $5.3333
旅客 14 18% ≥ 100 $4.6667

Simutrans-Extended は別の式を使うため対応していません。

2026-05-21更新(Simutrans-Standard 124.x/125.x)

共有

Simutrans運賃収入計算機。貨物・距離・車両速度・年から1便あたりの収入を出す

Simutrans-Standardで1回の輸送が生む収入を、速度ボーナスと下限の判定込みで整数のまま計算します。パックセット、貨物、交通種別、年、車両の実効速度、マス数、1便あたりの数量、月あたりの便数を入れると、1便あたり・月間・1マスあたりの収入と速度ボーナスの%が並びます。

この計算機が出す数字と、その数字が動く理由

Simutrans-Standardの運賃収入は、貨物の運賃 × 数量 × マス数に、パックセットが決めた速度ボーナスを掛けた整数です。同じ路線に同じ貨物を同じ距離だけ流しても、ゲーム内の年が違えば手取りは別物になります。エンジンは編成の速度を絶対値では見ておらず、その年とその交通種別についてパックセットが定めた基準速度と比べているからです。基準を上回れば収入は増え、下回れば減り、遅れが一定を超えると基本値の12.5%で頭打ちになります。この計算機はその1便を最後まで通します。パックセット、貨物、交通種別、年、車両の実効速度、マス数、1便あたりの数量、月あたりの便数を入れると、1便あたり・月間・1マスあたりの収入、速度ボーナスの%、1単位1マスあたりの実効額が出ます。
収録しているパックセットは3つです。既定のpak128(貨物37種)、pak64(22種)、Pak128.German(67種)。どれも自前の goods.dat と speedbonus.tab を持っているので、選択を切り替えると貨物の一覧と基準速度の曲線がまるごと入れ替わります。結果カードの下には計算過程の表があり、折りたたみを開くと、speedbonus.tab から読んだ基準速度、kmh_base、ボーナス係数、下限が効いたかどうか、最後の割り算までが1行ずつ並びます。2つの輸送を比較するモードに切り替えると、輸送Aと輸送Bが横に並び、1便あたりと月間それぞれで勝った側に印が付きます。
日本語でこの値を突き合わせられる資料は、japanese.simutrans.com の貨物一覧です。分類・貨物名・略号・運賃(Cr)・速度ボーナス・重量(kg)・単位という列で、pak64、pak128、pak128.Japan、pak128.Britain の値を並べています。そこに載る pak128 (2.0.0) の旅客は運賃14・速度ボーナス18、郵便は16・15、石炭は32・0、自動車は170・15。この計算機が使っている値と一致します。同じページの pak128.Japan (112.0) は表示額(生の値を300で割った額)で載っていて、旅客が運賃0.30・速度ボーナス10、郵便が0.90・15、石炭が1.50・1です。速度ボーナスの数字が pak128 とはっきり違うので、日本製パックセットで遊んでいる人にはこの差がそのまま効きます。
日本語で速度ボーナスに触れている資料は、どれも仕組みの説明で止まります。ゲーム内ヘルプの貨物一覧の項は「一覧に記載されている収益を得るために必要な、さまざまな輸送タイプの車両の平均最大速度が表示されます」と書き、「1ユニットを1タイル分の距離だけ輸送するのに受け取る収入」までは定義しますが、100マスを100人運んだときいくらになるかは出しません。Simutrans解説Wikiの貨物輸送チュートリアルは駅の置き方と編成の組み方が主題で、速度ボーナスにも基準速度にも触れていません。japanese.simutrans.com の財務画面の解説は運賃収入・運行費用・維持費・純利益という行の意味を説明しますが、1便の収入がどう決まるかは扱いません。同じ解説Wikiの初心者質問まとめは「速い乗り物を使うのに遅い制限速度の線路等を使えば乗り物のポテンシャルを生かすことはできず、スピードボーナスが得られません」と正しく警告しています。ただし、その遅さが1便あたりいくらの差になるのかは書かれていません。この計算機が埋めるのはその部分です。

速度ボーナスの中身 — 基準速度・kmh_base・下限

速度ボーナスの計算に必要な材料は4つあります。
基準速度。 パックセットは speedbonus.tab に、交通種別ごとの年と速度の組を書いています。pak128の鉄道なら1750年→5、1850年→30、1900年→60、1950年→100、2000年→160、2015年→210 km/h。道路は1750年→5、1850年→25、1900年→40、1950年→60、2000年→100、2050年→160 km/h。この計算機は入力した年以前で最も新しい点を読みます。
kmh_base。 基準速度に対する編成の速度差を%で表した整数で、(100 × 車両速度 ÷ 基準速度) − 100 を整数除算で求めます。1950年の鉄道を100 km/h で走る編成なら基準ちょうどで、kmh_base は 0 です。
貨物の speed_bonus。 goods.dat に書かれた%の値で、kmh_base がどれだけ効くかを決めます。pak128では旅客18、肉18、食品18、自動車15、郵便15、コンクリート10、書籍8。石炭・鉄鉱石・砂・石・原油・綿花・廃棄物・木材は0です。
下限。 ボーナス係数は max(125, 1000 + kmh_base × speed_bonus) で、この125は simuconf.tab の bonus_basefactor です。1000の8分の1、つまり基本値の12.5%より下には落ちません。この状態になると計算機は警告の行を出し、下限を抜けるのに必要な速度を示します。
ここから結論が2つ出ます。speed_bonus が0の貨物では kmh_base に0を掛けるので係数は1000のまま動かず、石炭を速く運んでも収入は1クレジットも増えません。逆に speed_bonus が大きい貨物では遅れがそのまま効きます。pak128の旅客・鉄道・1950年なら、下限を抜けるのが52 km/h、ボーナスが+100%(基本値の2倍)に届くのが156 km/h。1900年なら32 km/h と94 km/h、2000年なら84 km/h と250 km/h。郵便の1950年は42 km/h と167 km/h です。この2つの速度は結果カードの目安として出ます。
そして基準速度の曲線は年とともに上がり、あなたの路線は上がりません。1950年に100 km/h で敷いた鉄道の旅客路線は基準ちょうどで、1便46,667。同じ編成が1900年なら基準60 km/h に対して+118.8%で102,107、2000年なら基準160 km/h に対して−68.4%で14,747まで落ちます。線路も編成も貨物も同じで、変わったのは年号だけです。

収入を決める整数式(simware.cc の calc_revenue)

R=Vdamax ⁣(125, 1000+bs)+15003000,b=100vconvvref100R = \left\lfloor \dfrac{V \cdot d \cdot a \cdot \max\!\left(125,\ 1000 + b \cdot s\right) + 1500}{3000} \right\rfloor, \quad b = \left\lfloor \dfrac{100 \cdot v_\text{conv}}{v_\text{ref}} \right\rfloor - 100
  • RR = 1便あたりの収入。計算機が最初のカードに出す整数です。
  • VV = goods.dat に書かれた貨物の運賃(value)。pak128では旅客14、郵便16、石炭32、コンクリート80、自動車170。
  • dd = 発駅と着駅のマス数。x座標の差の絶対値とy座標の差の絶対値の和で、線路の長さではありません。
  • aa = 1便で運ぶ数量。単位は貨物ごとに旅客・トン・パレット・立方メートル・袋などに変わります。
  • ss = goods.dat の speed_bonus(%)。pak128では旅客18、肉18、自動車15、コンクリート10、石炭0。
  • bb = kmh_base。基準速度に対する速度差を%で表した整数で、基準より速ければ正、遅ければ負になります。
  • vconvv_\text{conv} = 編成の実効速度(km/h)。Simutrans が速度ボーナスの判定に使う速度で、車庫のカタログに載る最高速度ではありません。
  • vrefv_\text{ref} = パックセットの speedbonus.tab が交通種別と年に対して与える基準速度。
この式には定数が3つ埋め込まれています。
125 は simuconf.tab の bonus_basefactor で、1000の8分の1です。どれだけ遅くても基本値の12.5%は入るという床で、pak128 と pak64 はこの既定値をそのまま使います。Pak128.German はこれを1000に上書きしたうえで全貨物の speed_bonus を0にしているので、あちらでは速度ボーナスの仕組み自体が働きません。
+1500÷3000 は vehicle.cc の calc_revenue にある丸めで、結果を整数にします。1便あたりの収入に小数が出ないのはこのためです。小数が出るのは1マスあたりの収入と、1単位1マスあたりの実効額だけです。
距離の上限は1,024マスで、数量が4桁程度までなら途中の積が JavaScript の安全整数の範囲に収まるため、この計算機は BigInt を使わずにエンジンと同じ整数を返します。ボーナス係数を1000で割ると、そのまま速度ボーナスの倍率になります。1000なら±0%、1900なら+90%、125なら−87.5%です。

使い方 — 8つの入力を、ゲーム内のどこから読むか

1. パックセットを選ぶ。 pak128 が既定で、simutrans.com や Steam 版の初期状態はこれです。pak64 と Pak128.German はそれぞれ別の貨物表と別の基準速度曲線を持つので、金額をパックセットをまたいで比べても意味がありません。
2. 貨物を選ぶ。 選択肢はパックセットごとに入れ替わり、pak128 は37種類。日本語名と運賃・速度ボーナスの対応は下の一覧表にまとめました。ゲーム内でも [G] キーの貨物一覧に同じ2列が出ますが、運賃の列はここの数字を300で割った表示額です(pak128の旅客なら 14 ÷ 300 ≈ 0.05)。速度ボーナスの%は同じ数字です。
3. 交通種別と年を決める。 鉄道・道路・水路・航空・モノレール・リニア・路面電車・狭軌から選び、年は1750年から2999年まで入ります。この2つで speedbonus.tab の基準速度が決まります。年が後になるほど基準は上がり、同じ速度の編成の取り分は減ります。
4. 車両の実効速度を入れる。 全区間を通した平均の速度であって、車庫のカタログに載っている最高速度ではありません。160 km/h の機関車でも、100 km/h 制限の線路を満載で走り、待避線で列車待ちをすれば90前後まで落ちます。ここを最高速度で埋めると、結果は必ず甘い方にずれます。
5. 距離をマス数で入れる。 発駅と着駅のグリッド上の距離で、x座標の差とy座標の差を足した値です。線路の長さではありません。山を迂回して300マス分の線路を敷いても、駅どうしが100マス離れているなら収入は100マス分しか出ません。0から1,024マスまで入ります。
6. 数量と月あたりの便数を入れる。 数量は1便で運ぶ量、便数は路線管理ウィンドウで数えられます。月に1便に満たない長距離路線なら0.5のような小数でもかまいません。
7. 結果を読む。 上段に1便あたりと月間の収入、続いて1マスあたりの収入と速度ボーナスの%、そして速度の目安が出ます。下限が効いていれば警告の行が出て、抜けるのに必要な速度が示されます。速度が効かない貨物を選んだときも、その旨の行が出ます。
8. 2案を比べる。 上部のモードを切り替えると輸送Aと輸送Bに別々の入力が並び、1便あたりと月間それぞれで勝った側に印が付きます。機関車を替えるか、貨物を替えるか、距離を伸ばすかを決めるときはこちらが速いです。

日本製パックセットで使うには(pak128.Japan・pak.nippon)

選べるパックセットは pak128、pak64、Pak128.German の3つで、pak128.Japan も pak.nippon も pak128.EDO も選択肢にありません。日本語圏で配布されているパックセットはこの3つの外側にあるので、そこは先に書いておきます。
ただし、この8ステップの式は Simutrans-Standard のどのパックセットでも同じです。パックセットによって変わるのは3つだけ、goods.dat の運賃と speed_bonus、speedbonus.tab の基準速度、simuconf.tab の bonus_basefactor です。この3つを自分のパックセットから読めば、この計算機を自分の環境の計算機として使えます。手順は次の通りです。
1. 自分の貨物の2つの数字を読む。 パックセットの goods.dat に value と speed_bonus が書かれています。japanese.simutrans.com の貨物一覧にも pak128.Japan (112.0) の値が載っていて、旅客は運賃0.30・速度ボーナス10、郵便は0.90・15、石炭は1.50・1です。ただしこの表の pak128.Japan の欄は表示額で、goods.dat の生の値ではありません。Simutrans Tikiwiki の貨物パラメータの項は、貨物一覧に出る価格を value ÷ 300 と定義しています(0.30 は生の値90にあたります)。手順4に入れるのは、必ず自分の goods.dat の生の値です。pak128 の旅客が18、石炭が0なのと比べると、日本製パックセットでは旅客が速度に鈍く、石炭がわずかに速度に反応する設計だと読み取れます。
2. 速度ボーナスが同じ貨物を pak128 側で選ぶ。 ボーナス係数も下限を抜ける速度も、speed_bonus と速度比だけで決まります。同じ値の貨物を選べば、%も閾値もそのまま自分のパックセットの答えになります。旅客の速度ボーナスが10なら、pak128 側ではコンクリート(Concrete、運賃80・速度ボーナス10)が同じ値です。同じ値がなければ最も近いものを選びます。
3. 速度は比に直して入れる。 自分のパックセットの config/speedbonus.tab を開き、該当する交通種別の行を読みます。書式は track=1750,5,1850,30,1900,60, … のように年と速度の組を並べたものです。自分の年の基準速度が120 km/h で編成が90 km/h なら比は75%。pak128 の鉄道1950年は基準100 km/h なので、年を1950年にして車両速度に75と入れれば、kmh_base もボーナス係数も完全に一致します。比に小数が出たときは切り捨ててください。基準110 km/h で編成90 km/h なら81.8%ですが、入れるのは81です。ゲームの式も同じところで切り捨てているので、82に丸めると kmh_base が1つずれて、ボーナス係数が speed_bonus の分だけ動きます。
4. 金額は掛け算で直す。 収入は運賃に対して一次なので、出た数字に「自分の運賃 ÷ pak128の運賃」を掛ければ自分のパックセットの金額になります。割り算に入れる2つの運賃は、どちらも goods.dat の生の値です。pak128.Japan の旅客なら 0.30 × 300 = 90 で、コンクリート(80)との比は 90 ÷ 80 = 1.125。表示額の0.30をそのまま80で割ると、答えが300分の1になります。ずれるのは最後の整数丸めの分、1クレジット未満だけです。
5. 下限を確認する。 自分のパックセットの config/simuconf.tab に bonus_basefactor の行があれば、その値が下限です。行がなければ既定の125、つまり12.5%。pak.nippon は README で config/simuconf.tab を pak64 から引き継いだと書いています。
このほかに扱えない範囲が3つあります。Simutrans-Extended は所要時間・快適さ・等級で収入を決める別の式なので、ここの数字は当てはまりません。Bridgewater-Brunel のサーバーや pak128.britain-extended のセーブでは基準にならないということです。基準速度の補間は、この計算機が入力年以前で最も新しい点をそのまま使う階段状の読み方で、C++のエンジンは隣り合う2点の間を直線で補間します。1900年・1950年・2000年のように曲線上の年では差はゼロ、その間の年ではわずかにずれます。運行費用・維持費・車両価格は入りません。ここに出るのは収入だけなので、純利益はゲーム内の財務画面で運行費用と維持費を引いて確かめてください。
この計算機は Simutrans とも Markus Pristovsek 氏とも無関係の、コミュニティが作った独立したツールです。Simutrans 本体は Artistic License のフリーソフトウェアで、式は aburch/simutrans の src/simutrans/simware.cc から、貨物表と基準速度曲線は各パックセットの上流リポジトリから2026年5月21日時点で書き写しました。対応バージョンは Simutrans-Standard 124.x と 125.x です。

実際に計算した6つのケース

既定の状態 — pak128の旅客、鉄道1950年、100 km/h、100マス、100人

pak128の旅客は運賃14・速度ボーナス18。鉄道の1950年は speedbonus.tab の基準速度が100 km/h なので、100 km/h の編成は基準ちょうどです。kmh_base = (100 × 100 ÷ 100) − 100 = 0、ボーナス係数 = max(125, 1000 + 0 × 18) = 1000、速度ボーナスは±0%。1単位1マスあたりの運賃は 14 × 1000 = 14,000 になり、収入は (14,000 × 100 × 100 + 1500) ÷ 3000 の整数部で 1便あたり46,667。月4便なら 月間186,668、1マスあたり466.67です。ページを開いた直後に出ているのがこの状態なので、自分の路線と突き合わせる出発点にちょうど使えます。

速度を上げる — 同じ路線を150 km/hで走らせる

変えるのは車両速度だけです。150 km/h では kmh_base = 150 − 100 = +50、ボーナス係数 = 1000 + 50 × 18 = 1900、速度ボーナスは +90%。1便あたり88,667、月間354,668、1マスあたり886.67になります。46,667との差は42,000で、速度を1.5倍にした見返りとしては大きい方です。ただしこれは speed_bonus が18の旅客だからで、同じ1.5倍を石炭でやっても金額は1クレジットも動きません。速度に投資する前に、その貨物の速度ボーナスが0かどうかを見てください。

下限が効く — 同じ路線を50 km/hで走らせる

50 km/h では kmh_base = 50 − 100 = −50。素の係数は 1000 + (−50) × 18 = 100 ですが、max(125, 100) が125で止めます。速度ボーナスは −87.5%、1便あたり 5,833、月間23,332、1マスあたり58.33。基準ちょうどの46,667のほぼ8分の1です。速度が半分になって収入が半分ではなく8分の1になるのは、下限に噛んでいるからです。この路線が下限を抜けるのは52 km/h からで、そこから先は速度に応じて増えていきます。計算機はこの状態のとき警告の行を出し、必要な速度を示します。

年だけを動かす — 100 km/hの編成が1900年と2000年で受け取る額

編成も貨物も距離も数量も既定のまま、年だけを動かします。基準速度が変わるので、同じ100 km/h の取り分がここまで動きます。
基準速度kmh_baseボーナス係数速度ボーナス1便あたり月間
1900年60 km/h+662,188+118.8%102,107408,428
1950年100 km/h01,000±0%46,667186,668
2000年160 km/h−38316−68.4%14,74758,988
1900年に1便102,107を運んでいた路線が、何も触らないまま2000年には14,747、およそ7分の1になります。2000年に1900年並みの取り分へ戻すには250 km/h が必要で、そこで kmh_base は +56、係数2,008、速度ボーナス +100.8%、1便あたり93,707、月間374,828。基準が160 km/h に上がった時代に100 km/h の編成を走らせ続けることの代金が、この差です。

ばら積み貨物は速度を無視する — 石炭・郵便・雑貨を並べる

pak128の石炭は運賃32・速度ボーナス0。1950年の鉄道を100マス、100トン、月4便で運ぶと、ボーナス係数は速度に関係なく1000のままで、1便あたり106,667、月間426,668。50 km/h でも200 km/h でも同じ数字が出ます。旅客の46,667に対して2.3倍です。石炭・鉄鉱石・砂・石・原油・綿花・廃棄物・木材はすべて speed_bonus が0なので、この路線に高速線を敷いても収入は動きません。同じ条件の郵便(運賃16・速度ボーナス15)は1便あたり53,333、月間213,332。雑貨(Goods、運賃45・速度ボーナス15)は1便あたり150,000、月間600,000です。ばら積みには安くて遅い線路を、速い線路は旅客・郵便・食品・肉・自動車に回す。pak128の貨物表はその配分をそのまま示しています。

パックセットを替えると桁が変わる — pak64の旅客

入力を一切変えずにパックセットだけ pak64 にすると、旅客の運賃は45、速度ボーナスは15、鉄道1950年の基準速度は90 km/h になります。kmh_base = (100 × 100 ÷ 90) の整数部111から100を引いて +11、ボーナス係数 = 1000 + 11 × 15 = 1,165、速度ボーナス +16.5%。1便あたり 174,750、月間699,000です。pak128の46,667のおよそ3.7倍になりますが、これは pak64 の goods.dat が貨物の基本値を別の縮尺で書いているためで、pak64 の経済が3.7倍豊かなわけではありません。絶対額を2つのパックセットで比べても意味はありません。比べていいのは、同じパックセットの中での貨物どうしの順位だけです。

pak128の主な貨物 — 運賃と速度ボーナス

貨物運賃 (value)速度ボーナス
自動車 (Cars)17015%
コンクリート (Concrete)8010%
食品 (Food)6018%
電化製品 (Electronics)5515%
エタノール (Ethanol)536%
肉 (Meat)5018%
ミルク (Milk)5015%
家具 (Furniture)5012%
ビール (Beer)508%
書籍 (Books)508%
木材 (Wood)500%
雑貨 (Goods)4515%
鮮魚 (Fish)4515%
織物 (Textile)4512%
ガラス (Glass)452%
ウール (Wool)452%
化学薬品 (Chemicals)408%
セメント (Cement)405%
プラスチック (Plastic)404%
小麦粉 (Flour)403%
板材 (Planks)402%
綿花 (Cotton)400%
肥料 (Fertilizer)372%
原油 (Oil)350%
穀物 (Grain)355%
石 (Stone)340%
砂 (Sand)340%
石炭 (Coal)320%
鉄鉱石 (Iron ore)320%
廃棄物 (Waste)310%
紙 (Paper)305%
鉄鋼 (Steel)252%
郵便 (Mail)1615%
旅客 (Passengers)1418%

結果がゲーム内と食い違う5つの原因

  • 最高速度を入れてしまう。 式が読むのは車庫のカタログに載っている数字ではなく、全区間を通して実際に出た平均の速度です。線路の制限速度、勾配、積載、待避線での列車待ちが全部これを下げます。160 km/h の機関車で90しか出ていない路線に160と入れると、結果は現実より大きく出ます。ゲーム内の収入と合わないときは、まずここを疑ってください。
  • 線路の長さをマス数の欄に入れてしまう。 Simutrans-Standard が金を払うのは駅どうしのグリッド距離で、走った距離ではありません。山を迂回した300マスの線路も、駅が100マス離れているなら収入は100マス分です。遠回りは運行費用だけを増やして収入を1マス分も増やしません。
  • ばら積み路線に速度を投資する。 pak128の石炭・鉄鉱石・砂・石・原油・綿花・廃棄物・木材は speed_bonus が0で、kmh_base に0を掛けるので係数は1000から動きません。鉱石線を電化しても月あたりの便数は増えますが、1便の収入は変わりません。投資の前に、その貨物の速度ボーナスの列を見てください。
  • パックセットをまたいで金額を比べる。 pak64の旅客の運賃は45、pak128では14。Pak128.German に至っては bonus_basefactor が1000で全貨物の speed_bonus が0なので、速度ボーナスの警告そのものが出ません。フォーラムで拾った金額を自分のセーブに当てはめる前に、上のパックセット選択を合わせてください。
  • Simutrans-Extended のセーブで使う。 Extended は所要時間・快適さ・等級で収入を決める別の式です。pak128.britain-extended や Bridgewater-Brunel のサーバーでは、ここの数字は出発点にもなりません。

次の路線を引く前に効く6つの手

  • 数量と距離が先、速度は後。 運賃・マス数・数量は式に一次で入りますが、ボーナスは1000前後の係数として入るだけです。石炭を300マス・200トンで運ぶ1便は640,000。旅客を100マス・100人で運ぶ便は、+360%のボーナスを付けても届きません。速度の最適化は、量と距離を出し切ってからの仕事です。
  • 便数はもう一つのレバー。 この計算機は1便の収入に便数を掛けるだけですが、ゲーム内ではそこが黒字と赤字の境目です。1便の利益が小さくても月に9便走る路線が、1便の利益が大きくて月5便の路線を上回ることは普通に起きます。速度は、ボーナスより先に運行間隔として効きます。
  • 旅客路線は基準速度の上昇分の余裕を見て敷く。 speedbonus.tab の点は数十年おきに上がりますが、すでに走らせている編成は自動では速くなりません。下限をぎりぎり抜けたところで路線を作ると、20年から30年で勝手に下限へ落ちます。年の欄を先に進めて、いつ警告が出るかを見てから機関車を決めてください。
  • 貨物選びはチートシートに任せる。 結果の下の折りたたみを開くと出る一覧は、いま入力している速度・交通種別・年での1単位1マスあたりの収入で、そのパックセットの全貨物を並べ替えます。「この路線に何を流すのが一番いいか」に、貨物を1つずつ選び直さずに答えが出ます。
  • 下限の警告が出たときの出口は2つ。 一つは速度で、警告の行が抜けるのに必要な km/h を出します。もう一つは貨物で、speed_bonus が0のものに替えれば速度は無関係になり基本値が丸ごと入ります。遅い支線なら、たいてい後者の方が安く済みます。
  • 収入と利益は別物として読む。 ここに出るのは運賃収入だけです。ゲーム内の財務画面には運賃収入・運行費用・維持費・純利益の行が並び、差し引いて初めて手元に残る額が分かります。下限に張り付いた便は、運行費用すら回収できていないことがよくあります。

用語 — ゲーム内・フォーラム・この計算機で呼び方が違うもの

速度ボーナス/スピードボーナス

同じ仕組みの2つの呼び方です。ゲーム内ヘルプの日本語版は速度ボーナスと書き、Simutrans解説Wikiの初心者質問まとめは「スピードボーナスが得られません」とカタカナで書いています。指しているのは max(125, 1000 + kmh_base × speed_bonus) という係数で、貨物の基本値を上にも下にも動かします。

基準速度

交通種別と年に対してパックセットが定める比較用の速度で、speedbonus.tab に年と速度の組として書かれています。ゲーム内ヘルプの貨物一覧の項では「一覧に記載されている収益を得るために必要な、さまざまな輸送タイプの車両の平均最大速度」と説明されている値です。

kmh_base

基準速度に対する編成の速度差を%で表した整数で、(100 × 車両速度 ÷ 基準速度) − 100 を整数除算した値です。基準を上回れば正、下回れば負。1950年の鉄道で基準100 km/h に対して100 km/h なら 0 になります。

bonus_basefactor

simuconf.tab に書かれたボーナス係数の下限で、既定値は125、つまり1000の8分の1です。pak128 と pak64 は既定値のまま、Pak128.German は1000に上書きしています。日本製パックセットを使う場合は自分の config/simuconf.tab にこの行があるかを確認してください。

運賃 (value)

goods.dat に書かれた貨物の基本値で、ボーナスを掛ける前の元になる数字です。japanese.simutrans.com の貨物一覧では運賃(Cr)という列名で、pak128の旅客は14、郵便は16、石炭は32、自動車は170と載っています。

speed_bonus (貨物)

その貨物が速度にどれだけ反応するかを%で表した値で、これも goods.dat にあります。pak128では旅客・肉・食品の18が最大、石炭・鉄鉱石・砂・石・原油・綿花・廃棄物・木材が0。0の貨物は速度をいくら上げても収入が変わりません。

マス/タイル

マップ上の1区画のことで、日本語圏では両方の呼び方が使われます。Simutrans解説Wikiは「1単位1マスごとの運賃」と書き、ゲーム内ヘルプの日本語版は「1ユニットを1タイル分の距離だけ輸送するのに受け取る収入」と書きます。収入に効くのはグリッド上の駅間距離で、線路の長さではありません。

パックセット

タイルの大きさ、貨物表、車両カタログ、基準速度曲線をまとめて決めるデータ一式です。この計算機は pak128(貨物37種)、pak64(22種)、Pak128.German(67種)を収録しています。pak128.Japan は pak128 の派生で、japanese.simutrans.com の貨物一覧では別表として値が公開されています。

運賃収入

ゲーム内の財務画面に並ぶ行のひとつで、輸送そのものが生んだ売上です。同じ画面の運行費用・維持費を差し引いた残りが純利益になります。この計算機が出すのは運賃収入の側だけです。

Simutrans-Standard

simutrans.com と Steam で配布されている本流のバージョンで、Markus Pristovsek 氏が保守しています。この計算機が対象にしているのは 124.x と 125.x です。

Simutrans-Extended

James Petts 氏による派生版で、所要時間・快適さ・給仕・等級を収入に織り込む別の経済モデルを持ちます。この計算機の対象外です。


Simutransの運賃収入についてよくある質問

Simutransの運賃収入はどう計算されますか?

1便あたりの収入 = (運賃 × max(125, 1000 + kmh_base × speed_bonus) × マス数 × 数量 + 1500) ÷ 3000 の整数部です。kmh_base は (100 × 車両速度 ÷ 基準速度) − 100 を整数除算した値、基準速度はパックセットの speedbonus.tab が交通種別と年に対して与える値になります。運賃と speed_bonus は goods.dat にあり、貨物ごと・パックセットごとに違います。125 は simuconf.tab の bonus_basefactor、+1500 と ÷3000 は vehicle.cc の丸めです。

速い列車に替えても収入が増えないのはなぜですか?

その貨物の speed_bonus が0だからです。pak128 の石炭・鉄鉱石・砂・石・原油・綿花・廃棄物・木材は0で、kmh_base に0を掛けるので係数は1000のまま動きません。石炭を100マス・100トン運ぶ便は、50 km/h でも200 km/h でも106,667で同じです。

速度ボーナスの下限12.5%はいつ効きますか?

1000 + kmh_base × speed_bonus が125を下回るときです。pak128の旅客なら基準速度のおよそ52%より遅いときで、1950年の鉄道では52 km/h が境目になります。

車両速度の欄には最高速度を入れるのですか?

いいえ。全区間を通して実際に出た平均の速度を入れます。線路の制限速度、積載、勾配、待避線での列車待ちが全部これを下げるので、車庫のカタログの数字をそのまま入れると、収入は実際より大きく出ます。ゲーム内の金額と計算機の金額が合わない原因として、これが一番多いものです。

距離は線路の長さですか、それともマス数ですか?

駅どうしのマス数です。x座標の差とy座標の差を足したグリッド距離で、走った線路の長さではありません。遠回りは運行費用だけを増やします。

pak128.Japan や pak.nippon でも使えますか?

選択肢としては入っていませんが、式は Simutrans-Standard のどのパックセットでも同じなので、値を読み替えれば使えます。自分の goods.dat から貨物の運賃と speed_bonus を、config/speedbonus.tab から年ごとの基準速度を読み、速度ボーナスが同じ pak128 の貨物を選んだうえで、自分の基準速度に対する速度比を pak128 の基準速度に当てはめ直して車両速度に入れてください。%と閾値はそのまま一致します。金額は「自分の運賃 ÷ pak128の運賃」を掛ければ換算できます。この割り算に入れるのは、どちらも goods.dat の生の値です。japanese.simutrans.com の貨物一覧に載る pak128.Japan (112.0) の旅客0.30は表示額で、Simutrans Tikiwiki の定義では生の値を300で割った数字なので、そのままでは掛け算に使えません。

表示される金額は円ですか、ドルですか?

どちらでもありません。Simutrans のゲーム内通貨で、pak128 の英語テキストでは credits、japanese.simutrans.com の貨物一覧では運賃(Cr)と書かれている単位です。現実の通貨とは関係がなく、数字はエンジンが返す整数そのものです。

Simutrans-Extended でも使えますか?

使えません。Extended は所要時間・快適さ・等級で収入を決める別の式です。この計算機が対象にしているのは Simutrans-Standard の 124.x と 125.x だけです。

下限の警告が出たら何をすればいいですか?

出口は2つあります。速度を上げるか、貨物を替えるかです。警告の行には下限を抜けるのに必要な km/h が出るので、機関車の更新、線路の改良、待避線の待ち時間の削減でそこまで持っていけば下限から外れます。もう一つは speed_bonus が0の貨物へ切り替える手で、そうすれば速度は収入に無関係になり基本値が丸ごと入ります。遅い支線なら後者の方が安く済むことがほとんどです。どちらも取れないなら、その路線は運行費用の側で見直す対象になります。

ゲーム内の貨物一覧([G]キー)と何が違いますか?

ゲーム内の貨物一覧は貨物ごとの収入(運賃を300で割った1単位1マスあたりの額)・速度ボーナス・分類・重量を見せ、仮の距離と速度を動かして1単位あたりの収入を試せます。1便分の具体的な金額、月間の合計、計算過程の内訳までは出ません。開くにはセーブデータを読み込む必要もあります。この計算機はブラウザだけで動き、100マスを100人といった具体的な1便の金額と、基準速度から最後の割り算までの各行を出します。

ゲーム内の収入と数字が合わないのはなぜですか?

多いのは3つです。1つめは車両速度の欄に最高速度を入れてしまうこと。2つめはマス数の欄に線路の長さを入れてしまうこと。3つめは Simutrans-Extended のセーブで使っていることです。加えて、曲線上にない年(たとえば1975年)では基準速度の読み方が階段状なので、エンジンの直線補間とわずかにずれます。1900年・1950年・2000年のような曲線上の年では差はゼロです。

精度はどのくらいで、何を計算に入れていませんか?

整数除算、max(125, …) の頭打ち、+1500 と ÷3000 の丸めまで Simutrans-Standard と同じ順序で処理しているので、入力が正しければクレジット単位まで一致します。入っていないのは、運行費用・線路や駅の維持費・車両価格、1つの編成に複数の貨物を積んだ場合(貨物ごとに計算して足してください)、そして曲線上にない年での基準速度の補間差です。

出典・参考文献

  1. Simutrans ソースコード — src/simutrans/simware.cc(calc_revenue 関数。速度ボーナスの式と、bonus_basefactor による下限の頭打ち)
  2. Simutrans ソースコード — src/simutrans/vehicle/vehicle.cc(calc_revenue。+1500 と ÷3000 の丸めで、結果を整数に直す処理)
  3. Simutrans 設定ファイル — simuconf.tab(bonus_basefactor の既定値125、つまり基本値の12.5%という下限)
  4. Simutrans Tikiwiki — 貨物パラメータ(goods.dat の value、speed_bonus、catg、metric、weight_per_unit の各項目の意味)。貨物一覧に表示される価格は value を300で割った額です。
  5. Simutrans ゲーム内ヘルプ — 貨物一覧ウィンドウ([G]キー。速度ボーナスの列と、1ユニットを1タイル分だけ輸送して受け取る収入の定義。日本語版は同じサイトの /help/ja/goods_filter.html にあります)
  6. Wikidata Q931056 — Simutrans(Hansjörg Malthaner 氏と Markus Pristovsek 氏が開発したクロスプラットフォームの輸送シミュレーションゲーム)

Smart Calculators チームによる検証済みコンテンツ