最終更新日時: 2010年05月18日 (火) 11時21分46秒

TrainContrib


列車コントリビューションとは

列車コントリビューションは、車両コントリビューション(TrainCarContrib)を組み合わせて列車の「編成」を定義するコントリビューションです。編成の定義方法は色々ありますが、次の形が基本になります。
<contribution type="train" id="コントリビューションID">
  <company>会社名</company>
  <type>系・型名</type>
  <name>名称など</name>
  <author>作者名</author>
  <description>
    説明。個人的な思い入れなど
  </description>
  <fare>基礎運賃</fare>
  <price>一両あたりの値段</price>
  <amenity>魅力</amenity>
  <triprange>乗客の移動距離</triprange>
  <speed>速度</speed>
  
  .... 編成定義パラメータ ....
</contribution>
  • company JR東日本などの会社名
  • type 201系などといった型番
  • name 愛称などがあれば(例:成田エクスプレス)。もしくは塗装パターン(例:湘南色)
  • author 作者の名前
  • description 思い入れを語ったり、列車の説明を入れてください。長くても可。
  • fare 基礎運賃。詳細後述
  • price 一両あたりの購入時の値段
  • amenity E231系500番台通勤車を100として、この列車に乗車したい魅力(80~130で記入)
  • triprange short/middle/longのいずれかを記入
  • speed 速度。詳細後述

基礎運賃はA4のものを参考にしたうえで、下記の通りに記入することに決まっています。
会社 形式 名称 基礎運賃
旧日本国有鉄道 EF 65 20系ブルートレイン 1100
JR北海道 183系 HET 800
JR東日本 651系 スーパーひたち 800
東武鉄道 200系 りょうもう 750
JR東海 373系 ワイドビュー 700
旧日本国有鉄道 153系 サハシつき 600
旧日本国有鉄道 165系 サロサハシなし 550
旧日本国有鉄道 113系 横須賀線サロ入 550
JR東日本 E531系 2階建てグリーン車入 550
旧日本国有鉄道 DD 51 旧型客車普通列車 500
JR西日本 223系 新快速 500
JR東日本 209系500番台 総武線 400
小田急電鉄 3000系 1次車 400
東京メトロ 01 銀座線 400
どのような列車がいくらかほぼ厳密に決まっていますので、ご不明な点があればスレにて質問してください。

価格は、「基礎運賃×70000」を基本に若干上下させます。分からない時は「基礎運賃×70000」の数字を入れておけば間違いがないです。
過去のプラグインには価格を真面目に指定していない(1とか)プラグインが非常に多く見られますが、これはFreeTrain EX Avが経営要素を真面目に実装しようとしたとき障害となります。
収入と車両の性格に見合った値段を記入しましょう。

魅力は、分からなければ100を入れておけば問題ありません。
E231系500番台通勤車(山手線)を100として、この列車に乗車したい魅力となります。
たとえば山手線を過去走った車両であれば、205系は乗り心地も快適さもほぼ変わらないので100、103系は汚くて揺れるので90、といったふうです。
クロスシートのある近郊型電車で110、特急電車一般で120、特に魅力的な特急電車で130、逆に旧型客車はクロスシートだけど古く非冷房なので90、といった感じです。

triprangeは、山手線などの通勤列車はshort、湘南新宿ラインのような中距離電車はmiddle、有料特急や国鉄時代の急行・長距離鈍行などはlongになります。

速度は、
speed 日本語 ver1~2 ver3
superb 超高速 1分1ボクセル 1秒1ボクセル
fast 高速 1分2ボクセル 1秒2ボクセル
medium 中速 1分3ボクセル 1秒3ボクセル
slow 低速 1分4ボクセル 1秒4ボクセル

編成定義パラメータ

先頭/中間/末尾指定型

先頭車両、中間車両、末尾車両を別々に指定できるタイプです。ほとんどの列車はこれで大丈夫でしょう。「編成定義パラメータ」のところに以下のように書きます。
<class name="freetrain.contributions.train.ParamTrainImpl"/>
<composition>
  <head carRef="trainCarコントリビューションのID"/>
  <body carRef="trainCarコントリビューションのID"/>
  <tail carRef="trainCarコントリビューションのID"/>
</composition>
head,tailは省略可能で、省略すると中間車両が使われます。ユーザーが購入した長さにあわせて、中間車両が増結されて利用されます。

個別指定型

列車の編成をコントリビューション側で完全に決め打ちします。現実の編成を完全に再現するにはこれを使います。
「編成定義パラメータ」のところに以下のように書きます。
<class name="freetrain.contributions.train.PatternTrainImpl"/>
<config>
  <car char="先" ref="{27397861-4908-4C61-A5B6-749B7D6F1BF9}"/>
  <car char="中" ref="{F9427702-D023-431D-BD3C-9E0A4C654D84}"/>
  <car char="後" ref="{CC80D97A-461B-4E87-9B0A-52D12228C7E8}"/>
  
  <composition>先</composition>
  <composition>先後</composition>
  <composition>先中後</composition>
  <composition>先中中後</composition>
  <composition>先中中中後</composition>
  <composition>先先中中中後</composition>
</config>
まず、<car>要素を使って、trainCarを文字に割り当てます。全角でも半角でもOKですが、1つの車両コントリビューションにつき一文字です。

次に、composition要素を使って、各車両がどのように組み合わさるかを指定します。長さ毎に設定してやる必要があるのでちょっと面倒です。上の例では、1~6両編成が可能で、6両の時は先頭車が2つ付くようになってます。

長さ毎に別に書かないといけないので面倒ですが、ユーザーは結構長い編成を購入する場合があるので、様々な長さに対応できるように書いておいてください。