OpenTTD 貨物収益計算機
OpenTTD の 1 配送が稼ぐ £ を正確に算出。貨物を選び、マンハッタン距離と輸送日数を入力すると、£/旅、£/タイル、£/日、そのルートで最も稼げる貨物を返します。
1 回の配送の収益を計算します。
貨物ドロップダウンに表示される貨物を決定します。プレイしている OpenTTD セーブの気候と一致させてください。
あなたの列車・船舶・航空機・トラックが配送している貨物。貨物ごとに支払い率と鮮度曲線が異なります。
人
タイル
日
この数字の計算過程
- 時間係数
- 255 − 24 − 2·0 → 231
- 距離を半分に
- 100 ÷ 2 → 50
- ステージ 1(>> 7)
- 50 × 231 × 100 ÷ 128 → 9,023
- 支払い率を掛ける
- × 3,185
- 8192 で割る(>> 13)
- ÷ 8192
- 収益
- £3,508
| 貨物 | 支払い率 | 最適距離 | 鮮度切れ |
|---|---|---|---|
| 貴重品 | 7,509 | ≤ 75 タイル | 33 周期 |
| 商品 | 6,144 | ≤ 375 タイル | 33 周期 |
| 石炭 | 5,916 | ≤ 525 タイル | — |
| 鋼鉄 | 5,688 | ≤ 525 タイル | — |
| 鉄鉱石 | 5,120 | ≤ 675 タイル | — |
| 原木 | 5,005 | ≤ 1,125 タイル | — |
| 穀物 | 4,778 | ≤ 300 タイル | 44 周期 |
| 郵便物 | 4,550 | ≤ 1,500 タイル | 110 周期 |
| 石油 | 4,437 | ≤ 1,875 タイル | — |
| 家畜 | 4,322 | ≤ 300 タイル | 22 周期 |
| 旅客 | 3,185 | 任意の距離 | 24 周期 |
バニラ OpenTTD 14.x と JGRPP に対応。NewGRF 貨物セットはデフォルトの支払い率を上書きするため未対応です。インフレは基準年(1950)の値で表示されており、セーブ側で比例的にスケールされます。
OpenTTD 貨物収益計算機。貨物・距離・輸送日数から £/旅を算出。
OpenTTD 貨物収益計算機とは?
OpenTTD 貨物収益の計算方法(および本ツールの内部処理)
貨物収益 — economy.cpp の整数公式
- = 1 配送あたりのゲーム内 £ 収益(計算機が返す整数)
- = 出荷駅と到着駅の間のマンハッタンタイル距離 — |x_{src} - x_{dst}| + |y_{src} - y_{dst}|
- = 時間係数(0–255)。255 = 完全に新鮮、下限 MIN_TIME_FACTOR = 31
- = 配送された貨物の量(旅客・トン・袋・リットル・個)
- = economy.cpp の _default_cargo テーブルから取得する基本支払い率 — 旅客 3185、石炭 5916、亜熱帯原木 7964(最高)、貴重品 7509(原木除く最高)
- = 運送周期 — 暦日数を 2.5 で割って切り捨て。1 運送周期 = ゲーム内 2.5 日
- = 貨物の days1 しきい値 — 早期鮮度減衰の境界(運送周期)。旅客と食品で 0、貴重品で 1、石炭で 7、石油で 25、プラスチックと炭酸飲料で 30
- = 貨物の days2 しきい値 — 後期鮮度減衰の境界。旅客 24、貴重品 32、穀物 40、石炭 255(実質無制限)
完全な計算過程付きの実例
wiki 参照例 — 旅客 27 名、100 タイル、60 日、温帯
石炭の長距離ルート — 200 トン、300 タイル、200 日、亜寒帯
貴重品の超短距離 — 貴重品 50 個、50 タイル、5 日、温帯
亜熱帯原木 — 100 トン、200 タイル、80 日
2 旅の比較 — 同じ 100 タイル路線での石炭 vs 貴重品
公式 wiki/ja 読者と Steam 新規プレイヤー向けの収益プランニング Tips
- 石炭は基本支払い率 £5,916 — ゲーム最高ではありません — ですが、days1/days2 のペア(7, 255)のおかげで、2,000 タイルの全マップ路線網でもほぼ満額を維持します。石炭はガタガタな線路を敷いても黒字が出る貨物です。一方、貴重品は £7,509 の基本支払い率を持ちながら、days1 = 1・days2 = 32 のため、暦日 85 日(34 運送周期)を超えた時点で時間係数が下限 31 へ向けて急降下します。50 タイル以内は貴重品、それ以外はすべて石炭、というのが定番。
- 距離はマンハッタンタイルであり、線路の長さではありません。収益公式は両駅間の |xsrc - xdst| + |ysrc - ydst| を計算し、線路の曲がり具合は無視します。山岳地帯を蛇行する路線も、駅座標が同じであれば直線路線とまったく同じ £ を稼ぎます。日本語コミュニティ(公式 wiki/ja の駅説明・wikiwiki.jp/openttd・openttd-onj.blog.jp の解説)で最も多い誤解が「100 タイルのマンハッタン距離の路線に 200 タイル分の線路を敷けば 200 タイル分の収益が出る」というものです。そんなことはありません。マンハッタン距離を最大化するため、駅は産業建物の最も離れた端に配置してください。
- wiki の貨物収益ページの 1「日」は、セーブ内の暦日換算で 2.5 日です。OpenTTD は輸送時間を 1 バイト(0–255)のカウンタに保存しており、2.5 日単位を採用することで長距離船舶ルートまでカバーします。上の計算機は暦日(ゲーム内の車両ウィンドウが表示する数字)を受け取り、内部で 2.5 で除算します — ただし wiki の文章版公式から値を直接引いて手計算するときは、自分で 2.5 を掛けたり割ったりするのを忘れずに。
- 時間係数の下限はゼロではなく 31 です。src/economy.cpp の MIN_TIME_FACTOR = 31 は、ゲーム年数年走り続けた貨物でも新鮮値の約 31/255 ≈ 12% を必ず支払うことを意味します。「古い貨物が何も稼がない」という不満を聞くことがありますが、たいてい £ の数字が小さいだけです — 旅客 1 名を 2,000 タイル × 4,000 日の船で運ぶと floor(2000 × 31 × 1 × 3185 / 2,097,152) = £94 — 距離か数量が 0 でなければ、文字通りの £0 にはなりません。
- 亜熱帯原木は基本支払い率 £7,964 — バニラ全貨物の最高値で、貴重品(£7,509)を上回り、短距離での £/タイルではおもちゃランドの炭酸飲料(£6,250)と並びます。温帯原木(£5,005)と同じ日本語名「原木」ですが、価格は 59% 高。亜熱帯セーブでは、製材所→建設地のすべての実用的なルートで原木を商品より優先してください。日本語 wiki/ja の産業ページでも亜熱帯気候で原木が高価値貨物として言及されています。
- JGR's Patch Pack は同じ公式を使います。JGRPP の貨物収益コードはバニラとバイト単位で同一 — 経済の違いは貨物老化率の設定だけです(バニラと JGRPP の両方でデフォルトは 100%、JGRPP では設定可能なパーセンテージとして公開)。economy.cargo_aging_rate を明示的に変更していない限り、本計算機の数字は JGRPP セーブにも 1 対 1 で適用されます。NewGRF 貨物セット(FIRS・ECS・YETI)は支払い率テーブルを上書きするため非対応です。NewGRF セーブでは本計算機の出力をバニラのベースラインとして扱い、各 NewGRF が README で公開する比率で調整してください。
- インフレは結果を比例的にスケールします。表示される £ は基準年(1950)の値で、ゲーム内の貨物支払い率グラフと同じキャリブレーションです。OpenTTD のデフォルトのインフレ係数は年約 1.5% で、コストと収益の両方を同時にスケールするため、運営コストに対する相対収益は変わりません — 計算機の £ は 2050 年のあなたの実銀行残高ではありませんが、2 つの旅の比率は完全に保たれます。
- 線路を敷く前に計算機の下のチートシートに目を通してください。バニラ全 33 行(31 種の貨物名 + 亜熱帯の原木と石油の独立行)を支払い率順にソートし、各貨物に「最適なのは ≤ N タイルの距離」というラベルを days1 × 75 のヒューリスティック(30 km/h × 2.5 日/周期 ≈ 1950 年代の典型的な列車速度で 1 周期あたり 75 タイル)で付けています。days2 = 255 の貨物は「実質無制限」とタグ付けされ — 陸上ルートでは深刻な鮮度低下ゾーンに入りません。
OpenTTD 貨物収益計算機 — よくある質問
OpenTTD の貨物収益の公式は?
貨物収益における距離はどう測りますか?
wiki の「1 日」がなぜゲーム内の 2.5 日なのですか?
OpenTTD で最も稼げる貨物は?
本計算機は JGR's Patch Pack セーブでも動きますか?
FIRS・ECS・YETI などの NewGRF 貨物セットには対応していますか?
長距離船舶ルートで貨物が「£0」と表示されるのはなぜ?
CityMania とゲーム内グラフで数字が微妙に違うのはなぜ?
インフレは結果を変えますか?
本計算機の精度はどの程度ですか?
days1 と days2 の違いは?
本計算機は無料ですか?
2 ルートを並べて比較するには?
速度は収益に影響しますか?それとも輸送日数だけ?
OpenTTD の貨物と経済の用語集
マンハッタン距離
タイルグリッド上の 2 駅間の直線距離、|xsrc - xdst| + |ysrc - ydst|。OpenTTD の貨物収益公式が使う距離で、車両が実際に走る線路の長さとは別物です。日本語コミュニティでは「タクシー幾何学」とも呼ばれます。
運送周期
OpenTTD が貨物の経年を数える内部時間単位。1 運送周期 = 暦日 2.5 日。1 バイトのカウンタに保存されるため最大値は 255 運送周期(≈ 暦日 637 日)で、その後は時間係数が下限 MIN_TIME_FACTOR = 31 に到達します。
時間係数
収益公式の鮮度乗数、範囲 0〜255(下限 31)。255 = 完全に新鮮、31 = 古くなった下限。days1 を超えた各周期で 1 ずつ減少、days1 + days2 を超えた各周期でさらに 1 減少(合計、緩減衰ゾーンでは周期あたり −2)。
days1
貨物の早期減衰しきい値(運送周期)。days1 未満なら、貨物は最大時間係数 255 で稼ぎます。例:旅客と食品で 0、貴重品で 1、石炭で 7、石油とおもちゃで 25。
days2
貨物の後期減衰しきい値、days1 の上に追加されます。days1 + days2 を超えると時間係数は 2 倍速で減少します。石炭・石油・鉄鉱石・鋼鉄・原木・銅鉱石・砂糖・おもちゃ・プラスチックの days2 はすべて 255(実質無制限)。
支払い率(paymentRate)
src/economy.cpp の _default_cargo テーブルにおける貨物ごとの基本支払い率。最高は亜熱帯原木(7964)、次いで貴重品(7509)・炭酸飲料(6250)・商品/お菓子(6144)・石炭(5916)。最低は旅客(3185)。旅客を除けば最低は果物(4209)。エンジン内では Q11.4 固定小数点の整数として保存されます。
GetTransportedGoodsIncome()
車両が貨物をアンロードしたときの £ 支払いを計算する src/economy.cpp の C++ 関数。本計算機が再現する整数公式そのものを実装し、最後の 21 ビット BigMulS シフトを含みます。
JGR's Patch Pack(JGRPP)
Jonathan Rennison による長期メンテナンスの OpenTTD コミュニティフォーク。数百の追加機能(リアルブレーキ・プログラム可能信号・都市ゾーン)を実装。貨物収益コードはバニラとバイト単位で同一 — 本計算機の数字は 1 対 1 で適用されます。
NewGRF
OpenTTD のユーザーコンテンツフォーマット。車両・産業・町の建物・貨物セットの追加に使われます。NewGRF 貨物セット(FIRS・ECS・YETI)はバニラの支払い率テーブル(33 行:31 種の貨物 + 亜熱帯の原木と石油の独立行)を上書きします。本計算機はバニラの支払い率のみを扱います。
気候
OpenTTD の 4 つのシナリオ設定の 1 つ:温帯(デフォルト)・亜寒帯・亜熱帯・おもちゃランド。どの貨物が利用可能かを決定します — 石炭は温帯と亜寒帯のみ、ダイヤモンドは亜熱帯のみ、おもちゃ・お菓子・コーラはおもちゃランドのみ。
貨物老化率
経済設定(economy.cargo_aging_rate)で、貨物が運送周期を蓄積する速さをスケールします。バニラと JGRPP の両方でデフォルト 100%。JGRPP では設定可能なパーセンテージとして公開、バニラではハードコードで 100。
インフレ
OpenTTD のコストと収益に適用される年次乗数(デフォルトで年約 1.5%)。本計算機は基準年(1950)の £ を返し、ゲーム内貨物支払い率グラフと同じキャリブレーション。相対比較はインフレで変化しません。
出典・参考文献
- OpenTTD Wiki(日本語)— ゲームメカニクス(運送報酬の相場・早着/遅延ペナルティ・簡易公式「貨物量 × 単価 × 0.4」を含む)
- OpenTTD Wiki(日本語)— 産業(気候別の貨物一覧と日本語名)
- OpenTTD Wiki(英語)— Cargo income(公式の式・days1/days2 テーブル・運送周期 2.5 日単位の説明)
- OpenTTD 言語ファイル — src/lang/japanese.txt(貨物名の公式日本語訳)
- OpenTTD ソースコード — src/economy.cpp(GetTransportedGoodsIncome() 関数と 31 種の貨物名をカバーする 33 行の _default_cargo テーブル)
- Wikidata Q725120 — OpenTTD エンティティ(ビデオゲーム・自由ソフトウェアのインスタンス。Transport Tycoon Deluxe をベース)
- JGR's Patch Pack — 同じ貨物収益公式を使うコミュニティフォーク