ペルリ的な何かなブログ

Simutransとかいろいろ自由気ままに書き散らす

【Simutrans】続locality_factorの挙動について

先月の記事に続いての記事となります。

pm1965.hatenadiary.jp

前回の検証はいろいろと手間がかかるのでマップを巨大化させるのに手間がかかったので高レベルの市内建築を用意して検証を楽にする目的が先日の記事で作ったアドオン群の一番の目的です。その検証はオマケ程度だったりします。

 

それで先月の記事では長さ400マス程度のマップを使ってデータ採取をしましたが、今回は1000マスを超えるサイズのマップを用意して都市も40個以上設置してみました。

今回用意したマップ

やってることは前回の検証と同じですが、高レベル市内建築のおかげでこの見た目でも1都市の人口は12万人となっており、旅客が短時間に大量に発生するため検証時間の短縮が見込めます。

今回も列車を出庫させてルートなしの状態としてその時に液に溜まった旅客の数で旅客発生を観察していきます。

で、その結果が以下の表となります。

locality_factorが小さければ標準偏差が大きく(ばらつきが多い)中央値は低くなります。(これは先月の記事でも言えることですが)

これを駅ごとの比率に換算してグラフにしたのが以下のグラフです。

先月のグラフと大差ないと思いました。気になってた500マス以上の範囲もlocality_factorの値が低くてもある程度の旅客が発生しており大きい場合は距離関係なしに旅客が発生していることがわかると思います。

ただ500マス以上の距離だとlocality_factorの値が大きいほど近距離よりも長距離客が多い傾向にも思えますが、単に市内建築の数が少なく高レベルの建物1つだけという状況が作り出してるようにも感じます。いずれにせよ、locality_factorの値がマップサイズと同等程度になってくると都市間を移動する旅客はその距離にかかわらず、同数程度発生するということがわかると思います。

 

さて、ここまで都市間に発生する旅客にのみ注目してきましたが、ここに同一市内を移動する旅客が混ざってきた場合にどうなるかというのを見ていきたいと思います。

 

そんなわけで端の1都市を削除して同レベルの市内建築を建てて、その旅客発生を観察しました。

あくまでも各駅の旅客発生度を揃えるため、同一市内の別駅であっても旅客度が同じになるようにしたほうがいいと考え、片端の都市は他都市に比べて人口が2倍になっています。

また手を抜いてマップ拡張をしてないので最長の都市間距離は24マス短くなっていますが、上のグラフを見る限りそれほどの影響はなさそうでしょうということにしておきます。

その結果が以下の表となります。(画像がでかくなって見にくいため途中省略してます)

locality_factorが小さい(1桁くらい)と市内移動の客のほうが多いですが、50を超えてくると市内客よりも同レベルの旅客発生度でも別の都市に移動する客が多くなり、マップサイズの半分くらい(もしかしたら絶対値で500?)になってくると最も遠い都市と同じくらいの数しか旅客発生しないということがわかります。

参考程度に市内移動客の偏差値も算出しています。

この結果も同様に比率に換算してグラフ化しました。

こうしてグラフ化すると可視化されてよく見えると思います。

基本的にlocality_factorと都市間距離の関係はそれほど変化がなさそうです。

このグラフだと近距離の関係がわかりにくいので400マス程度程度に範囲を絞ったグラフも貼り付けておきます。

こうしてみると、旅客は対ランドマーク、産業、市内建築と発生しますが、市内建築相互移動の旅客の中でも市内移動と市外移動に分かれているんじゃないかとも思えます。

実用上の環境となるとこの状況に加えて産業やランドマークも混ざってくるので実態とは異なってる部分も少なくないです。

最初に掲載した先月の記事でも触れましたが、市内建築対ランドマークはlocality_factor関係なしに各旅客度だけで旅客が発生しますし、産業に関しても決まった都市の市内建築としか旅客が発生しないので。

そんな感じの記事でした。

【Simutrans】市内建築のレベルと人口について+

今月はそんな感じで行きたいと思います。

最終的には別の目的があって始めた実験用の環境構築ですが、ちょっと気になったんで先にこっちの検証をやっていきたいと思います。

で、Simutransの市内建築ですが、それぞれの建物にres(住宅)、com(商業)、ind(工業)の3種類があり、それにプラスして役場、本社、モニュメントが市内建築の一種みたいな挙動をしています。ランドマーク等は特殊建築という扱いで、旅客発生のメカニズムは別となっており、都市の人口にも無関係です。

そして今回は市内建築が人口に及ぼす影響について調べていきたいと思います。

まぁ基本的にはアドオン作者向けの記事っぽくなるんでしょうか。

 

兎にも角にも最小構成の都市を用意します。当然ながら専用のアドオンを用意していますが、役場のレベルも0にしています。

最小構成の都市

役場だけの都市ですが人口が141人もいます。

ここからレベル0の市内建築を建てていきます。

市内建築もわかりやすくしています

レベル0のres属性の市内建築を建てた時にどれだけ人口が増えるでしょうかというところから今回の検証は始まっていきます。

レベル0のresを建てると人口が6人増加しました

もとの人口が141だったので6人の人口増加です。

続いてレベル1のresを建てていきます。

また人口が6人増えました。なお、レベル0もレベル1も旅客度郵便度ともに1となっています。

一旦これらの建物を撤去して今度はレベル2のresを建てていきます。

こんどは人口が12人増えました

建てた結果、12人増えました。この調子で5、10と建てていきます。

5で30人、10で60人増えました。

この調子でどんどん建てていくと、レベル×6人(最低値は6人)人口が増えることがわかりました。

今度はcomとindで検証していきたいと思います。

comのレベル1

indのレベル1

それぞれ同じく6人ずつ増えました。

ということで市内建築のレベルと人口の関係は…
・レベル×6人(0の場合も1で計算)で市内建築の総和で決まる
・最低人口が存在する

・住宅、商業、工業での違いはない
ということがわかりました。

 

続いて、旅客の発生具合を見ていきたいと思います。

レベル50000の建物(人口30万)のpassenger_factorと旅客度の関係は以下のグラフのようになりました

 

続いてどういう風に旅客が沸くかを観察していきます。

こんなマップを用意しました

列車は運行開始していますが、ルートなしの状態で、この状態だと各駅に客が溜まってくばかりの状態となります。

 

この状態で都市の発展を止めて数年間放置して各駅の旅客の溜まり具合を観察します。

結果

その結果、両端の駅から中央の駅へはおよそ1:3の比率となりましたが、中央の駅から両端の駅への流動は1:7くらいになりました。

旅客度的には1:3の比率なのですが、どういうからくりがあるんでしょうか?

ちょっと疑問ですが、中央の駅の旅客度の総和が大きすぎる影響はあるのかもしれません。

ざっくりひとまずそんな感じでした。

【Simutrans】locality_factorの挙動について

先月末くらいから頻繁に更新している弊ブログですが、今回のネタは何かと謎の多いlocality_factorについてです。

概要として年代によって旅客の発生する距離が変わるみたいなことは認識しててもなかなかその全容が見えない設定だったので、検証してみました。

 

なかなか検証方法が思いつかなかったのですが、結局このようなマップを用意しました。

20×384の細長いマップ

20×384の細長いマップを生成し、中央に複々線の線路を用意。役場を1つ設置してあとは同じ建物を敷き詰めたマップです。

この状態だと役場のある駅以外はすべて集客範囲内の旅客発生が均一となり、距離によって旅客発生が変わらないのならば1つの駅からすべての駅に向かう客が同じくらい発生し、距離によって変わるのならば近い駅から順番に多くなると考えました。

 

これですべての駅に停車する列車を出してルートなしの状態にすれば各駅に旅客が溜まっていき、その溜まった旅客の数を見れば距離に応じた旅客発生がわかるという事です。

で、やりましたが、locality_factor=1の場合でも偏りが発生しませんでした。

距離に応じて偏りが発生してない

結論として同一都市内においてはlocality_factorの関係なしに旅客が発生するという事がわかりました。

 

そこで今度は各駅ごとに都市を分けてそれぞれの駅で同じ市街地を作り、検証しました。

locality_factor検証用マップバージョン2

すべての駅にこのような市街地を生成しました

これで先ほどと同じことをした結果、待機客の行先に偏りが生じました。

距離に応じて待機旅客の行先に偏りが発生しました

これを3回繰り返し、locality_factorを変えて記録した結果が以下のグラフです。

locality_factorが都市間の距離に与える影響のグラフ

locality_factor=1のときは近距離都市間の客が露骨に増えて、100マス程度で平均値を下回り、200マス程度以上の場合は同じくらいの旅客発生となりました。

小さめのマップでやっているので実用的な部分は何とも言えないところがありますし、都市間の距離も直線距離なのかマンハッタン距離なのか(根拠はないけどおそらく後者)も検証していませんが、ひとまずこのような結果となりました。

 

ついでに市内建築対特殊建築も検証してみましたが、locality_factor=1でも距離に応じての偏りがありませんでした。

市内対産業はその性質上、近隣都市のみに流動が発生し、距離に応じての影響が検証しにくいので除外しています。

 

結論

・locality_factorの距離は都市間の旅客のみが対象で同一都市内での移動には影響しない
・locality_factorが低い状態だと距離に応じて旅客の発生数が変わる
・locality_factorは特殊建築に向かう旅客の発生には影響しない

という感じでしょうか

ちなみに、なぜ都市間なのかというところですが、大昔のSimutrans(2006年のバージョン88.03以前)は市域のすべてから旅客が発生する仕様だったためその仕様の名残があるのだと思われます。

【Simutrans】集客範囲が重複した場合の旅客発生とルートコストについて

なんかいいタイトルが思いつかなかったのでこんなタイトルになっています。

某所で話に上がったのでサクッと検証方法を思いついたのでサクッと検証をしてみました。

昔から駅の集客範囲が重なったら半々になるなんて未検証の話があったりしましたが、実際どうなってるの?ってこともあるので。

 

過去にこんな記事がありました。

slehal.blog.shinobi.jp2010年なのでルートコスト実装前という事で随分と古い記事ですが、昔はこういう仕様だったようです。(ルートコストの実装バージョンが不明ですが、)

当時の旅客は乗換え回数だけで経路が決定される仕様だったため、こういう挙動をしていたようですが、2010年頃に現行のルートコストによる旅客流動が実装(具体的なバージョンについては不明)され、今に至るという事です。

して、今回集客範囲が重複した場合の旅客発生がどのようになるのかというのを現行のバージョン(123.0.1)で検証してみました。おそらくOTRPも同じ挙動をすると思われます。

検証用のマップ

検証用にこのようなマップを用意しました。市街地に見立てた1停、2停と産業に隣接させた3停4停のバス停があります。

今回は市街地内の輸送を前提とした1停2停エリアと市街地から産業への輸送を行うことを想定しています。

各建物の旅客発生の条件は過去記事がありますのでそちらを参照してください。

pm1965.hatenadiary.jp

なお、今回は旅客輸送だけを前提としているため旅客発生の多い工場のなかで一番旅客発生の多い建物を建設しています。また前述の記事にもありましたが、現行のSimutransでは役場がないと市内建築からの旅客が発生せず、役場そのものも旅客の目的地となりえるためその影響を低くする意図もあります。

 

まず最初の検証ですが、ここに置いたバス停の旅客がどうなってるかを観察しました。

①バス停を建設した状態

市街地側はバス停経由での徒歩移動が発生するのでそれと経路なしを観察しましたが、徒歩移動は先に建設したほうが1.5倍程度多く経路なしは先に建設したほうが2倍程度多くなりました。

また産業側は先に建設したほうだけが経路なしの数値が出てあとから建設したほうは経路なしが0になっています。

このことからも最初に貼った記事の通り、何も輸送機関が運行されてない状態であれば先に建設された駅やバス停が優先されて経路選択されることがわかります。

続いて、あとから建設された産業側から市街地内各バス停にバスを運行してみます。

②4停のみで旅客輸送を行った場合

産業側ですが、先に建設したバス停を使った場合に優先されるのは明白なので後に建設された4停を使って検証を行います。わかりにくいですが、路線1が2停⇔4停、路線2が1停⇔4停の運行系統となってます。

この場合、4停で産業側が集客され、1停2停のそれぞれ市街地側のバス停に旅客が発生するのがわかると思います。このことから集客範囲が重複していてもどちらからでも集客できることがわかります。

また(1)路線のほうが(2)路線よりも多く旅客輸送をしていることから路線番号が若い経路を優先して使用することがわかります。(市街地側でバス停が重複している市内建築は路線番号が若いほうを使う)

 

最後に(1)路線のルートコストを変えてみるために途中にバス停を追加します。

③(1)路線のルートコストを変えた結果

(1)路線の途中にバス停を追加した場合、(1)路線よりも(2)路線の利用者が多くなりました。

このことから集客範囲が重複してる駅などからの集客はルートコストが少ないほうを優先して利用することがわかりました。

 

最後にそれぞれの路線を別のバス停に停車させます。

④それぞれ独立した路線ネットワークを構築した場合

(1)路線を1停~4停、(2)路線を2停~3停間で運行させた場合、案の定(1)路線の利用者が多くなりました。このことからも集客範囲が重複する複数のバス停の場合でもそれぞれ集客できることがわかります。

 

まとめ

・駅の集客範囲が重複した場合もルートコストが低い経路を使用して移動する
・ルートコストが同じ場合は先に開設した路線を使う(路線番号が若い順)

・徒歩移動は先に設置されたバス停を使う

このような感じでしょうか

また、集客範囲が重複した場合、旅客発生がそれぞれ半分になるのは間違いであることも証明されました。

【Simutrans】折り返し構造と線路容量について

Misskeyを始めたりDiscordなんかで今まで絡みのなかった人の発言を見てると今まで気が付かなかったことが結構多く出てきますね。

なお、しばらく今月の記事が始まらないので余計な話を飛ばしたい場合には画像が見えてくるあたりまで飛ばしちゃって構いません。

OTRPの遊び方とかそういうのもまだまだ知れ渡ってないというかなんというか。

解説してる記事はありますがなかなか到達できてないんでしょうか。

弊ブログも毎月400~600程度のアクセス数を安定して記録してますが、アクセス解析を見ると半数以上が検索によるアクセスとなっています。

この状態になるまでに2~3年くらいかかりましたが、アクセス数もこのくらいで安定してるあたり、ブログも続けていかないとなかなか難しいんだなみたいなことを考えていました。

動画のほうもやっぱりYouTubeなんかは定期的な動画投稿しないと再生数が伸びませんし、ニコ動に比べてYouTubeは再生数がだらだらと伸びていく印象があるのでこのあたりは使い分けもある程度重要になってくるかもしれませんね。

そんなこんなでこのブログで書きたい記事がまた増えていくわけですが、ひとまず今月の記事に入っていきたいと思います。

 

折り返し駅の例

線路容量と折り返し駅の容量の話をしていきたいと思います。

今回の検証は駅の折り返しと線路容量の関係に関して検証してみました。

 

最初は列車の長さと速度による月間の運行本数の違いを単純に検証するつもりでしたが、前述のとおり、折り返し駅の容量による影響が大きすぎたのでついでに折り返し能力についての検証も追加することとしました。

 

まずはこの表を見てもらえればわかると思います

4線構造の駅の折り返し駅の場合の複線1対あたりの交通量と通過車両数

まぁ、この表のままだとわかりにくいのでグラフにしてみたいと思います。

この表は4線構造の折り返し駅における月間の通行量と車両数の表です。

簡略化のために編成長は3,5,8マス、最高速度も表のとおりとなっています。

編成長が短いと速度が上がればそれだけ輸送力が増えることがわかりますし、編成長も長くすれば輸送能力が上がることがわかると思います。

しかしながら長編成の場合に限ると

編成長が伸びると折り返し能力が足りず通行量が頭打ちになってるのがわかると思います。

ここでこの表をグラフ化したものを出します。

4線構造駅の通行車両数

編成長8マスだと速度を上げても輸送力が頭打ちになってることがわかります。

それ未満の編成長でも頭打ちに近い状態となっていることがグラフから見えてくると思います。

実際にはbits_per_month=19でやってるのでもっと値を大きくすれば誤差も減るのですが、検証に時間がかかるので。

あと在来線を想定して検証してるので速度や編成長もこの値の範囲内で行いました。

続いて折り返し駅を2線にした場合のグラフです。

折り返し駅が2線の場合

全体的に輸送力が4線よりも低いことがわかります。また速度を上げても輸送力が増えないことが顕著にわかると思います。

4線×3の折り返し駅の場合

続いて4線駅を3層重ねた場合の輸送力ですが、このようになりました。

70km/hの場合には編成長を伸ばしても頭打ちになっていることがわかります。

また100km/hの場合も編成長を伸ばした際の輸送力に頭打ちが近いように見えます。

また高速化よりも編成長を伸ばしたほうが輸送力に伸びしろがあるようにも思えます。

 

今回の検証はここまでですが、結論としては…
・速度を上げたり編成長を伸ばせば基本的に輸送力は上がる

・複線あたりの輸送力を追求するならば折り返し能力の追求に直結してる
・実用上の検証は別途考慮する必要がある
そんな感じでしょうか
今回は折り返し能力を増やすために多層構造の折り返し駅を作りましたが、実用的なのは折り返しを分散させたほうがよさそうです。

また発車待ちを行う場合などはさらにホーム数を増やさなければなりません。
実用上の検証を行うのならば途中駅を設置したり新幹線級の速度でも検証すべきでしょうしまだまだ検証の余地があると思いますがひとまずこれで終わりとします。

【Simutrans】マップって意外と高機能なんだなぁと思ったので

Simutransも日々進歩してるようで、マップなんかもいつの間にか実装されてる割に知らなかったなんて機能が随分と増えているようで、こんなのいつからあったの?みたいな機能が結構追加されてたので記事に起こしてみました。

普段から見慣れてるマップウィンドウ

自分が普段からよく使う機能なんかも交えて色々便利そうな機能を紹介していきます。

①[市街地]

マップ内の市内建築の建物レベルがカラースケールで見れます。これを使えば高密度な建物が建つエリアがわかりやすいですね。(ただそれだけ)

市街地を選んだ時のマップ

②[貨物]

貨物ってなんやねんって思う人も少なくないと思いますが、この[貨物]は道路や線路を通過する貨物だけではなく旅客や郵便なんかもカラースケールで可視化されます。

これで各線路の輸送量が可視化される…と言いたいのですが、旅客輸送はたいてい真っ赤になってることが多いので高密度に輸送してる線路とか輸送密度が意外と低い線路なんかがわかったりします。あと市道の多くが紫色なので…

[貨物]は輸送密度が可視化されます

③[待機状態]

これは使ってる人も結構多いのではないでしょうか。俗にいう「赤棒」の状態が一目でわかります。

[待機状態]で赤棒地帯が丸わかり

④[待機の増減]

これも赤棒関連ですが、待機数が増えているのか減っているのかが可視化されます。

[待機の増減]

⑤[乗降数]

マップ内で利用の多い駅が可視化されます。

[乗降数]

⑥[出発地]

需要の高い駅がわかります。

[出発地]

⑦路線図関連

なにかと評判のよくない路線図ですが、これも意外と高機能なところがあります。

昔から微妙と言われ続けてる路線図

このままだとあまり使う機会が少ない路線図ですが、会社別だったり乗り物別だったり輸送する貨物のフィルターがあります。

旅客輸送をやってる鉄道路線の路線図

ここのフィルター群の横に[空席/空荷]のチェックボックスがあるのですが、これにチェックを入れると…

[空席/空荷]のチェックを入れると

路線単位での空席/空荷率がカラースケールで可視化されます。これを使うと路線図での輸送実態が可視化されて便利ですね。

⑧産業関連

複雑な産業チェーンですが、どことどこが繋がっているのかわかりにくいなんてことも少なくないと思いますが、調べたい産業を調査ツールで調べてマップを開くと…

産業チェーンも可視化されます

マップ上で産業の位置にカーソルを合わせると輸送先のつながりは確認できます(設定でOFFにできた気がするけど)が、このように産業チェーンのつながりも可視化できます。需要先と供給元が確認できるので割と便利かなぁと思いました。

 

そんな感じでマップ機能って結構高機能なんだなぁと思いました。

【Simutrans】アンケートの結果を踏まえてのアドオン作者の動向について

先日は2022年度アンケートの集計結果を出しました。

結果が気になる方は下記のリンクから確認してください。

pm1965.hatenadiary.jp

今回の記事はこの続きでちょっといろいろ調べたくなったものがあるのでExcelと格闘しながらいくつかのグラフ化を行いました。

今年はアドオン作者の動向について調べてみました。

2022年アンケートにおけるアドオン作者のシムトラ開始時期

まずはpak別のアドオン作者のプレイ開始時です。

絶対数の多い128jpについては2011年~2016年に始めた人が多くそれ以外はほかのpakと変わってないように見えます。今主力級の活躍をしている128jpのアドオン作者の多くもこの世代なのではないかと考えています。

64作者に関しては各年代に少しずついるような感じになっており、128は日本語化対応以降からの生き残りがいるほか、数人が満遍なく分布している感じですかね。

どちらにしろここ4年くらいは一時期のシムトラブームも落ち着き始めており、特にその時期に急速にアドオン作者が増えた128jp勢もほかのpak同様、減少していく可能性も考えられます。

そのほか、意外と少ないと思われがちな64や少しずつアドオンを発表している128の作者も開始時別で考えた場合にそれほど偏りがないので細々と続いていくのではないかと思われます。

 

もう一つグラフを作りました。

アンケートごとの各pakのアドオン作者数

回答数が少なかった前回は顕著に減少していましたが、今回のアンケートは各wikiにリンクを貼らせてもらったこともあり、より正確なデータが採れたように思えます。128はまだアドオンを発表していますが、64系(nippon含む)も意外と少なくないことがわかりますね。少なくとも128と同じくらいはいるとみていいでしょう。

次回アンケートも各wiki等にリンクを貼って広くアンケートを採ってみたいと思います。