Phystam-S Studio

Simutransのことなど

つくってあそぼ ~Simutrans-Extendedの建物アドオンは世界を救う~

ご無沙汰しておりますふぃすたむです。本記事はSimutransアドベントカレンダー16日目の記事になります。

adventar.org

0. Simutrans-Extendedとは

Simutrans-Extended(以下Extended)はJamespetts氏らによって開発されている、Simutrans(以下Standard)の拡張版でございます。

ダイヤは組めるし信号はいっぱい種類があるし飛行機は高く飛ぶし、よりリアルにSimutransをやりたいという方は是非ともExtendedを体験してみてくれ!

といっても、現状ちゃんと遊べるのってpak128.Britain-Exだけなんですよね…

日本的な建物だったり車両ってないんですよね…

じゃあどうやってアドオンを作ればいいんでしょうかっ!?

1. 絵を描こう

http://gobanboshi.s25.xrea.com/simutrans/event/advent2018.html

五番星先生のアドカレ記事が参考になるかと^^

2. datを書こう

f:id:Phystam:20181214170743p:plain

ここで割愛されているdatの書き方についての解説だ!

なんか五番星先生にdatの書き方について丸投げされたのでここでしっかり回収しておきましょう!基本的にはStandardと書式は同じで、key=val形式で指定することになります。簡単簡単^^

執筆時間も限られているので、今回は建物アドオンのExtended特有のパラメータを紹介しましょうか。特に、必須で必要なパラメータは赤で、必須じゃないけどあると嬉しいパラメータは青で色分けしましょう。Standardにもあるパラメータはwikiにありますから、そちらを参照してください。

A. 建物 --- obj=building

 さくっと解説して行くぞー。まずは建物の種類から。

type=

Standardと同じパラメータですが、

  • res(住居),
  • com(商業),
  • ind(工場),
  • tow(役場),
  • mon(モニュメント),
  • cur(特殊建築物),
  • stop(駅/停留所),
  • harbour(斜面用港),
  • dock(平地用港),
  • extension(駅舎等),
  • depot(車庫),
  • hq(本社)

に加えて

  • signalbox(信号扱所)

が追加されています。信号扱所は信号を建てるときに必要な建物で、あとで信号のところで解説します。

population_and_visitor_demand_capacity=

Standardでのpassengers=に相当します。type=resの場合はその住居に住んでいる人口を表します。それ以外のtypeの場合は旅客需要を表します。
Standardと異なるのは、「旅行客はresから出てそれ以外の建物に向かい、また戻ってくる」という挙動をする点です。まあ、普段はあまり気にしなくていいですが、最初に旅客需要の高い特殊建築物と住居をつないだ場合、最初のうちは特殊建築物から旅客が湧くことはありません。

employment_capacity=

その建物の求人数(通勤需要)を表します。Extendedでは旅行客と通勤客が別に扱われていて、例えば旅行客と通勤客では許容される移動時間や快適度が異なったりします。

class_proportion[i]=

[i]で指定した旅客クラスについて、人口または旅行需要の人数比を指定します。必ずしも合計が100になる必要はないので、合計がpopulation_and_visitor_demand_capacityの値に一致するようにパラメータを記述すると良いでしょう。デフォルトは各クラスに対してすべて同じ割合に設定されています。

class_proportion_jobs[i]=

上と同様ですが、通勤需要(雇用者数)のクラス別人数比を指定します。デフォルト値も同様です。

a. プレイヤーが建設できる建物 (駅など)

cost=

maintenance=

建設費と月間の維持費です。なければStandardと同じくレベルから計算されます。

allow_underground=

0,1,2で指定します。0のときは地上のみ、1のときは地下のみ、2のときは両方用です。デフォルトはStandardと同じく地上・地下両方に建設できます。

capacity=

駅舎・停留所に入る収容人数です。指定しない場合はレベルから計算されます。

- type=signalbox

capacity=

信号扱所が扱える信号の本数です。

radius=

信号扱所と信号の間の最大距離(m)です。信号によってはこれより小さい値が設定(max_distance_to_signalbox=)されていることがあり、その場合はその信号の値が優先されます。

signal_groups=m,n,...

信号扱所が扱える信号の種類で、カンマ区切りの整数列で表します。信号アドオン側でも同様のsignal_groupsの数値リストを指定しておくことで、信号扱所が指定したグループに含まれる信号を扱うことができるようになります。なお、グループ0および1は信号扱所なしでも信号を建設できるようにするフラグであるため、信号扱所側では0,1は指定しない方が良いでしょう。

例えば信号aはsignal_groups=3で、信号bはsignal_groups=3,4だったとしましょう。signal_groups=3を指定した信号扱所Aは、信号aと信号bの両方を扱えます。一方で、signal_group=4を指定した信号扱所Bは信号bのみしか扱えないようになります。

基本的にはグループの値はソースコードにのみ書かれていて、pakからは分からないようになっています。そのため信号機アドオンの追加はやや難しい仕様になっています。

新規にpakを構成するときは何も考えなくていいですが、基本的には信号保安システムによってグループ分けするのが良いでしょう。

- type=depot

traction_type[i]=

車庫が扱える動力タイプ(bio, sail, steam, diesel, petrol, turbine, electric, hydrogene, fuel_cell, battery)を配列形式で指定します。なお、extendedではpetrol(ガソリン)とturbine(ジェットエンジン)が追加されています。

- type=extension

is_control_tower=

この建物が管制塔かどうかを指定します。paksetによっては管制塔を作らないと飛行場での発着ができないように設定されています。(allow_airports_without_control_tower=0をsimuconf.tab内で指定)

画像指定方法

画像指定方法は基本的にStandardとは同じですが、市内建築物にもマルチタイルを適用できるようになったという点が異なります。団地やマンションアドオンをリアルサイズで作れるようになりますね^^

3. pak化

参考までに、http://gobanboshi.s25.xrea.com/simutrans/event/advent2018.htmlで作っていた旅館アドオンのdatを公開です!

 

name=building_citybuilding_wooden_hotel_A
obj=building
type=com
copyright=Gobanboshi
level=5
population_and_visitor_demand_capacity=18
employment_capacity=8
class_proportion[0]=0
class_proportion[1]=0
class_proportion[2]=10
class_proportion[3]=4
class_proportion[4]=4
mail_demand=20
intro_year=1961
intro_month=1
dims=1,1,4
backimage[0][0][0][0][0][0]=../images/hotel_A.0.0
backimage[1][0][0][0][0][0]=../images/hotel_A.0.1
backimage[2][0][0][0][0][0]=../images/hotel_A.0.2
backimage[3][0][0][0][0][0]=../images/hotel_A.0.3

 

datとpngを揃え、makeobj-extendedでpakにまとめたならば、さっそく導入して味わってみましょう。
どうですか?
制作された建物は出現したでしょうか^^
品質的に満足のいく結果が得られましたでしょうか^^

アドオンが完成した日ぐらいは、ご自身のアドオンを肴に一杯やるのもいいと思います><
ゆっくり休んでくださいネ

(受け売り

4. 建物アドオンは世界を救う!!!  (受け売り

建物のデザイン、年代、地域 --- Simutransでは建物は脇役で車両が主体ですが、paksetの風味を決めるのは建物であるといっても過言ではありません^^

そしてその建物のパラメータを適切に設定することによってよりリアルな旅客流動を実現でき、Simutrans-Extendedにおいてより楽しんでいただけるようになるのです!

Simutransの世界を創るのは、建物!
建物は、世界を救うのです!

(受け売り