トップページgamedev
819コメント672KB

鉄道経営系ゲーム製作スレッド Ver.7

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2010/03/30(火) 22:05:34ID:62jSr8U0
鉄道および都市経営シミュレーションゲーム制作の
情報交換スレッドです。

[前スレ]
鉄道経営系ゲーム製作スレッド Ver.6
http://pc11.2ch.net/test/read.cgi/gamedev/1239023536/

[このスレッドで主に話題となるゲーム]
FreeTrain EX Another version
http://sourceforge.jp/projects/freetrain-exav/
FreeTrain EX Another version wiki
http://www19.atwiki.jp/freetrain-exav/
Tera Train
http://teratrain.la.coocan.jp/wiki/?FrontPage
FreeTrain
http://www.kohsuke.org/freetrain/
FreeTrainヘルプ
http://www.kohsuke.org/freetrain/wiki/pukiwiki.php  (IDとPASSはダイアログよく読んだら分かる)

[関連サイト]
アートディンク
http://www.artdink.co.jp/
0398名前は開発中のものです。2010/04/23(金) 09:41:59ID:CMSflQ2q
>>392
言語仕様の学習と同時に、IDEの使い方も覚えると良いよ。
使いこなせば、大幅に生産性向上する。

右クリックメニューや、「編集」、「リファクタ」メニューは、
一通りどんな機能があるか知っておくべき。出来たら実際使ってみる。

以下余談

自分は仕事ではeclipse+javaで開発してるんだけど、
言語仕様的な生産性のポテンシャルはC#>javaなんだが、
IDEの至れり尽くせり度がVS<<eclipseで、
トータルでの生産効率はeclipse+javaの方がまだ上。

eclipseを100点とすると、VS2008は40点くらい。
2005以前は10点未満だったから、多少マシにはなったとはいえ、
まだまだ格段の差がある。次のVerでは80点くらいになってほしいねぇ。
0399Umezawa2010/04/23(金) 09:55:28ID:d3sqGdQq
>>398
スレ違いだけど聞かせて。

C# と Java 両方理解している人から見て、C++/CLI ってどうですか?
個人的には将来はこれ1択だな、って感じているんですけど(分野にもよる)。

また、今回の一連のプラグイン作成は C++ で作成しちゃったけど、
C++/CLI なら C# との親和性も高そうだし、これで作ればよかったなと少々後悔。
.NET 事情をよく理解していなかったのが敗因ですな。


FreeTrain は今のところ .NET 2.0 ですけど、.NET は 4 で大幅に
変わるようですし、その際また EX -> EXAv に変えるときのような
苦労を避けるという観点でも、何か意見があれば聞かせて下さい。
0400名前は開発中のものです。2010/04/23(金) 10:15:49ID:CMSflQ2q
>>399
申し訳ない、C++/CLIの細かい仕様はよく知らない。
ただ、結局 .NETの共有言語基盤を使うのだから、
C#/VB.NETなどと機能面では同じはず。
あとは、個々人が馴染みやすい言語を選べばいい。
・・・というのがM$のスタンスだと思うけど、

個人的には、.NET Frameworkと同時に誕生したC#こそが、
もっともCLIのと親和性が高く、王道と言えるのではないかと・・・
一方、VBやC++など既存言語を拡張したものは、
どうしても無理矢理なところが出る可能性がある・・・と思っている。
なので、既にC#を使ってる自分としては、他を選ぶ理由が見あたらない。
0401riorio ◆rio2xMQlrQ 2010/04/23(金) 10:16:50ID:I0iPS/HY
フォーラムにバグほうこくがありまして。

http://sourceforge.jp/forum/message.php?msg_id=50222

>任意のマップ(例えばゲーム開始時の何も建設されていないマップ)に、任意の数の駅舎やホームを
>建設し、すぐに全て撤去する。
>撤去方法は「駅工事」の撤去でもブルドーザーでも可。
>
>本来であれば、そのようなマップに存在しない駅舎やホームの経費は、撤去した翌日以降はまったく
>かからないように処理されるべきと思われるが、実際には翌日以降も継続して経費として毎日資金から
>支出され続けている。

Station.csの301行目
public void clockHandlerDay() {
// called once a day. charge the operation cost
AccountManager.theInstance.spend( type.operationCost, AccountGenre.RAIL_SERVICE );
import.DailyReset();
export.DailyReset();
trains.DailyReset();
}
や、Platform.csの136行目
public void onClockPerDay() {
// charge the cost
AccountManager.theInstance.spend( 18*length, AccountGenre.RAIL_SERVICE );
}
などが費用を計上してるところで、これらはWorld.world.clock.registerRepeatedで実行されてるのだけど、
0402Umezawa2010/04/23(金) 10:31:51ID:d3sqGdQq
>>400
なるほど、既に C# を習得した人にとっては C# で満足、
特に何も問題は無いといった感じですかね。
私は UNIX 寄りの仕事をしてきたんで、どうしても C# は
異質なものに感じてしまって……。

今こうやって C# でプラグインを色々作成してますけど、
将来 J# のような状態になって、今の資産が引き継げなくなると
悲しいなぁ〜などと思ってたんですが、そうやって C# を
評価している人たちが居れば、とりあえずは安泰なんですかね。
0403riorio ◆rio2xMQlrQ 2010/04/23(金) 10:37:18ID:I0iPS/HY
撤去の時はどちらもちゃんと
public virtual void remove() {
World.world.clock.unregister( new ClockHandler(onClockPerDay) );
if(onEntityRemoved!=null) onEntityRemoved(this,null);
}

public override void remove() {

World.world.clock.unregister(new ClockHandler(clockHandlerHour));
World.world.clock.unregister(new ClockHandler(clockHandlerDay));
でunregisterされるようになってて。
タイマー解除→もう呼ばれないはずなのに。
なぜ実際はこういういつまでも呼ばれる動作になるのか分かりません。

0404名前は開発中のものです。2010/04/23(金) 19:20:31ID:/YLtdDhS
面倒、すごく面倒。原因は分かってはいるんだが今の案では直すのが面倒
さらに言えば直した所で互換性があるかどうか、あったとしても不具合は引き継がれるという
誰か良いアイデアがあったら教えてください

原因はregisterRepeatedで登録されるとunregisterでは解除されない事
内部でRepeatedTimerが使われ、ここからTimerに登録されている
これを解除するにはRepeatedTimerの"登録した"インスタンスが必要
そしてこいつはregisterRepeatedのローカル変数なわけで
でも戻り値にRepeatedTimerの登録したハンドラを返すからこれで解除できる
今の案は
1.全てのregisterRepeatedを使う場所を書きかえる
2..registerRepeated内で登録したものを保持する
3.queueを無理矢理…
0405名前は開発中のものです。2010/04/23(金) 19:38:07ID:/YLtdDhS
4.おそらく使い回されないと仮定するならばある変数(何でも良い)にマジックナンバー(null等)を代入する
 そしてタイマーから呼び出される関数で比較する
 根本的な解決にはならないが…
0406wikiから転載2010/04/23(金) 22:14:01ID:I0iPS/HY
>>404 少し前に出てきたDelegate.Equalsを真似てRepeatedTimerクラスで
Equalsをオーバーライドする。

public override bool Equals(object obj) { return handler.Equals(obj); }
0407名前は開発中のものです。2010/04/23(金) 23:06:16ID:/YLtdDhS
>406
サンクス
でもDelegateのインスタンス比較はobject同士での比較、つまり参照の比較となるため(reflectorで確認したところ[object] == [object]で比較していた)
オーバーロードしても同一とみなすようにできないと思う(operator==はどちらか一方に自己クラスを必要とする)

4改.RepeatedTimerからのみ呼び出せると仮定できるなら、比較して解放済なら例外を投げる
  呼び出し元が例外を揉み消しTimerに再登録されないようにすれば後はGCに
  これは上手く行けば元のデータでも不具合はなくなるかもしれない、ただし応急措置であることに注意する

以下蛇足
Populationは現在の仕様だと建物の「種類」と結び付けられている
PupukationStructureが初期化される際、StructureContributionからPopulationの参照をもらう
ここを動的生成か何かに変更できれば建物個別のPopulationができると思う
0408riorio ◆rio2xMQlrQ 2010/04/24(土) 03:38:39ID:eDeoj9yE
>>404
詳細に調べてくれてありがとう。

今、自分でもClock.csのタイマー関係をひととおり見てみたのだけど。
うーーん、正直言ってこの部分は今の自分の力量からは高度すぎてすぐはいじれない。

どれがいいのかもなんとも言えないんだけど。

>でも戻り値にRepeatedTimerの登録したハンドラを返すからこれで解除できる

というところからすると、

>1.全てのregisterRepeatedを使う場所を書きかえる

かなぁ?
使う場所の方で返ってきたClockhandlerを保持する変数を呼び出し1こにつき1つずつ
持って、unregisterをその変数で行うように書き換えればいいんだよね。


ただ既にあるセーブデータを読み込むとどうにもならないよね、たぶん。
そのぐらいはしょうがないか。
0409riorio ◆rio2xMQlrQ 2010/04/24(土) 09:23:24ID:eDeoj9yE
>>408方針で修正したβ2.0.2.7をリリースしました。
ソースもコミットしてあります。

これでいいかどうかご確認よろしくお願いします。

今回も>>404さんのアドバイスがなかったら解決できませんでした。
ありがとうございました。
0410nanashi2010/04/24(土) 10:36:35ID:G4M7JBZ/
>>140

(コピペプログラミングで)交互ポイントとミステリポイント作成しました。
どうぞよろしくお願いします。

交互・ミステリポイント 1.0用
http://freetrain.ps.land.to/upload/data/ftup0078.zip

交互・ミステリポイント 2.0用
http://freetrain.ps.land.to/upload/data/ftup0080.zip
0411名前は開発中のものです。2010/04/24(土) 21:56:17ID:eDeoj9yE
>>410
おつかれさまです
ありがとうございました

wikiに掲載して、要望のあがってきてたSourceForge.jpフォーラムにも
案内を書き込んでおきました。

お時間ある時に3.0にも移植しておいてください。
totalMinutesをtotalSecondsにして調整してもらったらいいかなと。
3.0ソースはSourceForge.jpにコミットしてありますので。
0412名前は開発中のものです。2010/04/25(日) 08:18:10ID:WBZLGOEU
ふいー
なんとか、サッカースタジアムの駅需要を試合開催と観客数に結びつけることに
成功したぜ
http://u4.getuploader.com/freetrain/download/62/%E3%82%B5%E3%83%83%E3%82%AB%E3%83%BC%E3%82%B9%E3%82%A2%E3%82%B8%E3%82%A2%E3%83%A0%E9%81%8B%E8%A1%8C.PNG

このサッカースタジアム結構大きいから、この配置だと基準ボクセルになる左下スミが
最寄り駅から10ボクセル以上離れてしまうせいで、駅に結びつかなくてさー
最初それに気付かずなんでだーなんでだーーって悩んでた。
サッカースタジアムだけ、特別に2倍の広さの駅に結びつけることにした。

ver2/1でも、10ボクセルってちょっと狭くないー?
空港みたいなデカい建物たてたらやっぱり範囲外になってしまいそうな気がする。


さて問題は。
この「SpecialStationListener」を組み込むと、既存セーブデータを読めなくなることで……
既存セーブデータを読み込んだときに適切な処置をするようせねばならん。
それがまた大変そう。
0413riorio ◆rio2xMQlrQ 2010/04/25(日) 09:47:31ID:WBZLGOEU
FreeTrain EX Av β2.0.2.8出しました。

【2.0.2.7 -> 2.0.2.8 変更箇所】
・SpecialStationListener実装
・サッカースタジアムで試合開催後3時間、最寄り駅を観客利用
・2.0.2.7以前に作成したセーブデータをロードすると、最初の何日間か列車が駅を出発するタイミングでガクガクしますが、
 発車が一巡すると収まるはずです。SpecialStationListenerの処理を行っているためです。

ソースはコミットしてあります。
Station.csのあっちこっちにダサいコードがありますが、もっとスマートな互換性維持の
方法があったらおしえてください。
0414riorio ◆rio2xMQlrQ 2010/04/25(日) 10:54:09ID:WBZLGOEU
β2.0.2.8だとスタジアムの観客数がソース決め打ちになってたので、
plugin.xmlに<base>40000</base>って書いて変更できないか試してみたのですが。

StadiumStructure.csでthis._population = new PopulationImpl( 40000 );しちゃう関係上、
結局ここで決め打ちするしかないみたいなのですが。

new PopulationImpl();で呼んで、PopulationImpl側でplugin.xmlの<base>読ませるには
どうしたらいいんでしょうねぇ。

PopulationImpl側に
public PopulationImpl( XmlElement e )
: this( int.Parse( XmlUtil.selectSingleNode(e,"base").InnerText) ) {}
public PopulationImpl( int p ) { _baseP = p; }
ってのは書いてみたんですが。

なんかこう、plugin.xmlからの初期化とStadiumStructureからの初期化がごっちゃに……
0415Umezawa2010/04/25(日) 11:43:23ID:Z6aS12KE
りおりおさんへ

度々申し訳ありません。
TrainCar のコントリビューションID を取得したいのですが、
クラスのメンバ変数「type」を public にして頂けないでしょうか?

public はけしからん! ということでしたら、type.id を取得する
メソッドを追加していただけると有難いです。


もちろん、今度のバージョンアップのついでで構いません。
内部仕様の変更だけでバージョンを上げるのもどうかと思うので。

以上、よろしくお願いします。
0416名前は開発中のものです。2010/04/25(日) 11:43:38ID:b1yOqBv6
plugin.xmlが読まれた時の初期化(※多少の想像が含まれます)
最上位のcontributionで関連付けられたクラスがおそらく一度だけ初期化される
Populationはここで初期化されcontributionメンバとして保持される
0417nanashi2010/04/25(日) 12:13:27ID:jSlFbmyz
>>411
>wikiに掲載して、要望のあがってきてたSourceForge.jpフォーラムにも
>案内を書き込んでおきました。
どうも大変ありがとうございます。



riorioさん、すみませんがALPHA3をビルドしようとすると以下のようなエラーがでました。
どうぞご確認をお願いします。

エラー 1 "src\StationAdvancedDialogNumeric.resx" にマニフェスト リソース名を作成できません。
ファイル 'F:\FTsrc\trunk\plugins\org.kohsuke.freetrain.tc.tat\src\StationAdvancedDialogNumeric.cs' が見つかりませんでした。
FreeTrain.TATTrainController.2008
0418riorio ◆rio2xMQlrQ 2010/04/25(日) 14:30:56ID:WBZLGOEU
>>417
うあー すみませんすみません。
追加したファイルがSVNに「追加」操作し忘れてて歯抜けになってました。
今追加してコミットしたので大丈夫だと思います。

もしほかにも抜けがあったらすぐ言ってください。


>>415
了解です。


>>416
従来のPopulationクラス、それを従来のStationListenerで使う分にはそういう
ことなのかなって分かるのだけど。
それだと今回サッカースタジアムでやってみたみたいな動的にオブジェクト側で
演算してその結果をPopulationに反映させるっていうのはどうしたらいいんだろう
っていうのと。
またplugin.xmlの<population><base>に書いたbase人口値をサッカースタジアムの
StadiumStructureクラスなどで読み出すにはどうしたらいいんだろうというのと。
0419riorio ◆rio2xMQlrQ 2010/04/25(日) 14:41:11ID:WBZLGOEU
はれ?

Train.csで
public readonly TrainContribution type;
だけど……

書き込みたいわけじゃないですよねぇ?
読めませんかね。
0420Umezawa2010/04/25(日) 15:07:20ID:Z6aS12KE
>>419
確かに Train クラスの type は public なんですけど、
何故か TrainCar クラスの type は internal なんですよ。
説明が不十分で申し訳ありませんでした。


Train.cs に定義されている TrainCar クラス
714行目: internal readonly TrainCarContribution type;
を public にしていただければ助かります。
0421名前は開発中のものです。2010/04/25(日) 15:32:04ID:WBZLGOEU
>>420
あーー、すいません、TrainCarのほうでしたのね。
今直しましたので次回ビルドに含まれます。

今、ここ何日かでβ2のほうにやった変更をα3にも反映させてます。
手作業です(汗
0422nanashi2010/04/25(日) 15:43:38ID:jSlFbmyz
>>418
ビルドできました。ありがとうございます。
0423名前は開発中のものです。2010/04/25(日) 16:20:41ID:b1yOqBv6
>418
無理ではないですけどちょっと面倒かもしれません
XMLによるPopurationの派生クラスの初期化時にbaseを保存
->ContributionのメンバであるPopulationを取得
->Populationを型変換し保存したbase値を取得
ただ確認はしていません

もしくはContribution作成時に直接base値を得る
これだとbaseという名前でなくても良く、またContribution直下に置くと読み込みやすい
structure作成時にこの値を渡す
こっちの方がいいかもしれません
0424riorio ◆rio2xMQlrQ 2010/04/25(日) 17:20:25ID:WBZLGOEU
FreeTrain EX AvのPrototype(α版)3.0.1.8をリリースしました。

○3.0.1.7からの変更点
・列車名の表示を可能にした
・サッカースタジアムのエラー修正
・repeatタイマー解除方法修正。駅&ホーム撤去時に経費徴収が止まるように。
・SpecialStationListener実装
・サッカースタジアムで試合開催後3時間、最寄り駅を観客利用
・3.0.1.6以前に作成したセーブデータをロードすると、最初の何日間か列車が駅を出発する
 タイミングでガクガクしますが、発車が一巡すると収まるはずです。
 SpecialStationListenerの処理を行っているためです。

よろしくお願いします。
0425riorio ◆rio2xMQlrQ 2010/04/25(日) 18:10:38ID:WBZLGOEU
>>423
ごめんー
例によって、よくわからないままイジっちゃってるんだけど……

plugin.xmlには今
<population>
<class name="freetrain.world.soccerstadium.PopulationImpl"
codebase="bin/FreeTrain.SoccerStadium.dll"/>
<base>40000</base>
</population>
って書いてあるわけね。
ここのclass name=とcodebase=で、PopulationImpl.csの
public PopulationImpl( XmlElement e )
が初期化されそうっていうのはばくぜんと分かるのだけど。
このままだと、このPopulationImplを、サッカースタジアム本体である
StadiumStructure.csのpublic StadiumStructure( StructureContributionImpl _type, WorldLocator wloc )
側で使えなくない??って思うわけで。なので、あえてStadiumStructureの先頭で
this._population = new PopulationImpl( 40000 ); ってnewしてるわけで……
とりあえず今、このnewした_populationはうまく使って駅の利用客を試合に連動させて
増減できてるのね。ただしスタジアム収容人数はこれだと40000人固定。
その40000をソースに書き込まずplugin.xmlの<base>から取ってくるには、がしたくて。
0426名前は開発中のものです。2010/04/25(日) 19:51:59ID:b1yOqBv6
>StadiumStructure側で使えなくない??
できないわけではないですが、コピーしてダウンキャストが必要ですね

423の上では
PopulationImpl( XmlElement e )でeからbaseを取得し、どこかに(ここでは仮にbase)保存
そしてStadiumStructureで((PopulationImpl)_type.population).baseとして取得
下では
xmlを書き変えpopulationを利用せず<contribution>直下に<base>として置き、
StructureContributionImpl( XmlElement e )でbaseを取得し保存
この後はnew StadiumStructure(this,wLoc,base)とするか、_type.baseとするか

[以下余分なもの]
古いソースの上独自仕様を入れ互換性のないsoccerstudium英語が変なのはご勘弁
ttp://u4.getuploader.com/freetrain/download/63/stadium.zip src
0427Umezawa2010/04/25(日) 20:07:03ID:Z6aS12KE
>>424
TrainCar の変更、ありがとうございました。

前面展望のようなもの、新バージョンをリリースしました。

http://www.free.netgamers.jp/freetrain/

やはり3系のほうが動きがイイですね。
ゲーム速度が「普通」以上であれば、ボクセル単位での移動もあまり
気になりません。今後はとりあえずは3系をターゲットにしたいと思います。

ところでモデルのサイズですが、リアルにするか、いわゆるプラレールに
するかという問題があったのですが、画像作者様を尊重するのであれば、
アスペクト比を変えてしまうという行為が良くないことだというのは
重々承知なのですが、個人的に車両に対しての思い入れというものが
全く無いためか、アスペクト比が変わっても特に違和感を感じません。

http://www.free.netgamers.jp/freetrain/E231_qv.png
http://www.free.netgamers.jp/freetrain/E231_3D.png

プロの方(笑)から見て、上記画像はやはり違和感があるのでしょうか?
そういった意見が多ければ考え直します。
0428riorio ◆rio2xMQlrQ 2010/04/25(日) 20:16:44ID:WBZLGOEU
>>426

「423の上では…」以降をやってみようとしてはたと気づいたんだけど、
それってStadiumStructureクラスはPopulatedStructureクラスを継承した
うえでの話になってるよね。
PopulatedStructure内で自動的にStationListenerに登録される。

自分、それだとどーもうまくないってことで、StationListenerに登録されず自前で
SpecialStationListenerに登録しに行くという前提で、継承するスーパークラスを
PThreeDimStructureに変更しちゃってるんだわー

この継承状態で((PopulationImpl)_type.population)って取れるかな。
かなっていうか、今ダメモトでやってみてビルド通るかどうかやってみようなかんじ
なんだけどね。


>[以下余分なもの]

おおっ
ソース中身のぞいてなくてファイル名見ただけだけど、なんかwkwkするファイル名
がついてるじゃないですかっ
0429riorio ◆rio2xMQlrQ 2010/04/25(日) 20:32:33ID:WBZLGOEU
やってみたらダメでしたー
ビルドはだまして通せても、スタジアム建てると

| 型 'freetrain.contributions.population.PersistentPopulation' のオブジェクトを
| 型 'freetrain.world.soccerstadium.PopulationImpl' にキャストできません。

になっちゃいましたわ。
this._population = ((PopulationImpl)_type.population);
のところで。

PersistentPopulationっつったら、core\contributions\populations\PersistenePopulations.cs
で定義されてるもので、
Population implementation that wraps another Population and
provides persistence support.
ってコメントがある………

むー
これってやっぱり、サッカースタジアム独自のPopulationImpl.csのPopulationImplクラス
を初期化して_type.populationに結びつけられてないってことになるよねぇ。
0430名前は開発中のものです。2010/04/25(日) 21:50:58ID:b1yOqBv6
>429
ごめんなさい、ソースを確認したらPersistentPopulationでラップされていました
この中からpopulationの実体をとり出すのは難しそうです
0431名前は開発中のものです。2010/04/25(日) 22:31:57ID:W3NL37wK
サッカーやら3Dやらで取り込んでるところ申し訳ないが

AB        CD          E
━━────━━──────━
このように駅を2つ並べた状態で
ホームはそれぞれ2両分ずつ同一線路に並べて設置
(ダイヤ設定用にABとCDそれぞれ別の駅・ホーム関連付けに)
これで見た目は4両ホームに
そこに車両を2両ずつ別個に購入配置して(高速車両で試した)
後方2両がA、Cに停車(Cで折り返し待機(Bは通過)
先頭2両がB、D、Eに停車(B折り返し、C通過)というダイヤにして
擬似連結分離できないかとやってみたが

1.ABをそれぞれ同時刻発車にすると後方がつっかえて
  緊急停止扱いになるせいか結局離れて走ってしまう
2.後方のA発車を先頭より1分早めに発車とすると
  行き止まりと勘違いするっぽい?のか立ち往生してしまう(うまく説明できんw)

1.の方でCで時間待機中のところに、戻ってきた車両がDに入って止まったときに
折り返すはずのC待機の車両がしばらく動かなくなった

まあこんな風に2駅のホームを同じ線路上にくっつけて並べて置くこと自体が
イレギュラーっぽい操作だからうまくいかなくても仕方ないとは思うけど
もしどっか調整してうまくいくようなら連結分離ができて気持ちよさそうなんでw
余裕あれば見てもらえれば
0432riorio ◆rio2xMQlrQ 2010/04/25(日) 22:53:21ID:WBZLGOEU
<population>内ではなく、<contribution>直下に<capacity>を書いてStructureContributionImpl
で取得・保存する方法でうまくできたーー!

これで1万人収容も5万人収容も作れるぜーー!!
じゃあ野球場もやっちゃいますか!!!
誰か絵かいて!!!!(ぉぃ


>>431
それ、β2までの時間軸だと、高速では「前方後方同時」、中速では「後方が30分早く」
出発するとうまくならんでごとごとと走っていってくれてた。
駅ホームだと緊急停止した時点で停車扱いになっちゃうので、10分or30分早くに出発した
あとはその時間ずっと、たとえば「10時*分*秒 通過」に設定して駅通過させとかないと
ダメ。
また進行方向を変えて折り返してきつつのときは、高速では20分・中速では50分早く
にズレが生じた気がする。

で、α3系統の時間軸になったときにこの0分・30分のうまく離れずくっついてってくれる
差がいくらになってるのかはまだ研究してないので。みつけてくれるとありがたいのだがw
同時はたぶん同時で変りないと思うので。
中速のときの30分は30秒かなぁ〜〜?

コロネ島動画で貨物列車が機回ししたり機関車つけかえたりしてるのは、これ使ってる。
0433riorio ◆rio2xMQlrQ 2010/04/26(月) 00:33:15ID:FQfe6F9n
β2.0.2.9とα3.0.1.9をあわせてリリースしましたよ、っと。
サッカースタジアムの試合終了時刻を調整しました。
なんかー、狙った時刻と1時間のズレが生じるんだよなー

あと、駅のプロパティを開いたとき、待ち客数を実数/需要値の2段階表示にしました。
需要値のほうが、従来「待ち客」表示されていた数字になります。
実数は、これから既に乗って行った分を差し引いてます。
実際に到着した列車に乗り込むのは、実数のさらに0.3倍です。


>>427
前面展望見ましたー
ふぁみりーまーとがw

駅位置の取得再現がまだ広すぎるマップに対応しきれてないのか、山手線を走行したら
目黒〜品川〜神田のあたりでホームがなかったです。

私はリアル縦横比=現状、が好きかな。
ただ、すべて強制的に2Dチップから吸い出したものしか表示できないのであればつまん
ないきがします。3Dの展開図をユーザ側で自作したものについては吸出しせず自作優先
になれば、3D展開図をしこしこ描くことでよりリアルな3D Viewが楽しめていいかなーと。
0434名前は開発中のものです。2010/04/26(月) 02:44:54ID:9ifvD3b6
>>427
全然OKだと思う。
すれ違い時の視点から見れば、むしろアスペクト比がちょうど良いのでは。
それにしても、たった数ピクセルの高さしかない車体でも
PS版の電車でGOみたいな感じが出せるんだな。
0435名前は開発中のものです。2010/04/26(月) 02:58:00ID:9ifvD3b6
>ただ、すべて強制的に2Dチップから吸い出したものしか表示できないのであればつまん
>ないきがします。3Dの展開図をユーザ側で自作したものについては吸出しせず自作優先
>になれば、3D展開図をしこしこ描くことでよりリアルな3D Viewが楽しめていいかなーと。

新たなコントリビューションを定義しないと無理では。
0436名前は開発中のものです。2010/04/26(月) 05:50:38ID:KGb5GA8v
いまは擬似的にやってるだけだけど、連結機能が出来たら某京急も真っ青なダイヤを作る奴
出てくるだろうな。
0437名前は開発中のものです。2010/04/26(月) 06:46:45ID:AY/8SnJr
>>436
分割併合を実装させるのは簡単だよ
一から作り直しかもしれんけど
0438名前は開発中のものです。2010/04/26(月) 07:11:08ID:AY/8SnJr
分割併合だけならだけどね
目的地の概念を加えたら
やたらとややこしくなるけど
0439riorio ◆rio2xMQlrQ 2010/04/26(月) 07:35:14ID:FQfe6F9n
一から作り直しは勘弁だが、今の構造を維持して簡単に実装できるのなら
実装したいなぁ。分割併合。

目的地の概念はいらないと思う。
あるにこしたことはなかろうが、自分の手には余る。
0440Umezawa2010/04/26(月) 07:52:04ID:TWV3V2od
前面展望のようなもの、下記2点を修正しました。

・駅数の上限を50→1000へ
・ファミ○ーマートの明かりが消えていたw

http://www.free.netgamers.jp/freetrain/
0441名前は開発中のものです。2010/04/26(月) 07:53:50ID:AY/8SnJr
>>439
HSP使いなんで協力はできないけどイメージとしてはトレインオントレイン
コンテナを作ってそこに編成群を格納する(一つの編成でも)
でそのコンテナごと動かしている
うちはトロピコ+シムシティにしようと思うので目的地設定するためにダイヤは簡略化する予定
0442Umezawa2010/04/26(月) 07:59:19ID:TWV3V2od
>>433
>>435
ポリゴンデータは、メモ帳とペイントさえあれば、
全ての項目をいじれるようにしたつもりです。
分かり易いかどうかは別ですが……。

もし興味があれば、プラグインの中の bin/plugin の
中身を見てみてください。このテのものに心得があれば
簡単にいじれると思います。


>>434
そうなんですよ、この程度のテクスチャ解像度でも、
意外と見られるものが出来て、私自身もビックリしました。

理想はこのデータで電車でGO!もどきをプレイできるようになることかなw
BVE は私には難しすぎるし……。
0443Umezawa2010/04/26(月) 08:20:31ID:TWV3V2od
>>441
>うちはトロピコ+シムシティにしようと思うので目的地設定するためにダイヤは簡略化する予定

トロピコ+シムシティのようなゲームを自作するということ?
0444名前は開発中のものです。2010/04/26(月) 08:28:24ID:XfndWtWS
>>427
そのシーンだけ見ると問題ないように思えるけど、
駅のホームの長さとの違いはどうするの?
駅の周りに建物ぎっしり建ってたら引き延ばす訳にいかないよね。
0445Umezawa2010/04/26(月) 08:48:53ID:TWV3V2od
>>444
ホームとの関係はこんな感じ

http://www.free.netgamers.jp/freetrain/image/100426_01.png

島式ホームのはずが、離れてしまっていますが、まあこれは
ホーム幅を(「スリムなホーム」でも)広くしてしまえば、
特に問題ないかなと。

建物はまだ再現してないので未定です。
0446名前は開発中のものです。2010/04/26(月) 09:31:37ID:AY/8SnJr
>>443
そうそう。戦闘は入れないけど
そのかわり朝夕の通勤ラッシュは再現しようと考えてる
0447Umezawa2010/04/26(月) 09:45:24ID:TWV3V2od
>>446
開発中のものでも何かあれば是非見せて!
0448名前は開発中のものです。2010/04/26(月) 12:28:43ID:XfndWtWS
>>445
んんん?正直どうやって辻褄合わせてるのかわからん。
列車は1両で2ボクセル分くらいの長さあるのに・・・。

ホームが列車の長さとぴったりに見えるけど、
実はゲーム中では列車の二倍くらいの長さにしてるとか?
0449Umezawa2010/04/26(月) 12:50:58ID:TWV3V2od
>>448
FreeTrainの単位で言うと、
・車両は1ボクセル
・ホームは半ボクセル
・(無関係に建っている)家は1/4ボクセル

なのでホームに関しては1ボクセル占有するようにすればOKかなと
0450名前は開発中のものです。2010/04/27(火) 10:43:34ID:SEvy4qao
>>449
なるほど
つまり家のサイズの方で辻褄合わせしてるんですね。

ということは、今後さらに再現度を高めるにしても、
鉄道以外の建物は元マップに忠実にというわけにはいかなくなる?
まあ、建物全部3D化するのは事実上困難だから、
似たような物で置き換えるのかな?
0451名前は開発中のものです。2010/04/27(火) 12:37:04ID:Nwzk7fhp
β2.0.2.10とα3.0.1.10とPluginSet20100427とMelodySet20100427と出しました。
0452Umezawa2010/04/27(火) 12:42:31ID:zAdRQydk
>>450
建物も、とりあえずは忠実に再現しようと試みてはみるつもりです。
ただ、建物は車両と違って個々にモデリングが異なるし、真横から見た
画像も無いからどうしようかなと。

モデリングはボクセルサイズと同一の立方体にして、そこに斜めの画像を
無理やりテクスチャとして貼り付けて、果たしてどこまでまともに見られるか。
イメージとしては透明な箱にシールを貼り付けるような感じなんですが、
そんなんじゃダメかなぁ。さっさと実験してみれば良いだけなんですが、
定義ファイル書くの面倒で作業止まってますw
0453Umezawa2010/04/27(火) 15:04:13ID:zAdRQydk
>>451
α3.0.1.10、起動できませんでした。
β2.0.2.10はOKでした。
ウチだけ? 環境依存かどうかなど何も調べてませんスミマセン。
とりあえずそういう事例があったというご報告まで。
0454名前は開発中のものです。2010/04/27(火) 16:14:00ID:Nwzk7fhp
報告たすかります。

DirectXWrapper.dllの同梱が抜けてたようです。
アーカイブ差し替えたので今は大丈夫だと思います。
0455Umezawa2010/04/27(火) 18:08:53ID:zAdRQydk
>>454
動きました。
0456名前は開発中のものです。2010/04/27(火) 20:07:08ID:wmbajRlj
建物を工場・マンション・雑居ビル・家
と大まかに分類して、その分類で表示すればいいんじゃね?

シムシティ2000の3Dみたいな
0457Umezawa2010/04/27(火) 20:57:32ID:zAdRQydk
>>456
そうだね、とりあえず大まかな分類と占有ボクセル数が分かれば、
それなりの雰囲気で表示できる気がする。

ボクセル数は<size>から取得するとして、問題は分類かな?
0458riorio ◆rio2xMQlrQ 2010/04/27(火) 21:17:12ID:Nwzk7fhp
列車の運賃<fare>と価格<price>を議論するために、既存列車pluginがどのような
運賃・価格設定をしているか調べました。

Excelにしてあります。
http://freetrain.ps.land.to/upload/data/ftup0081.zip

どうぞ見てください。
これまでのFreeTrainが「経営」面をないがしろにして箱庭にかたよってきていたことが
よく分かるデータになっていると思います。

「コストバランス」というタイトルで、川口さんがwikiにまとめられていたものを持ってきた
ので、参考に読んでください。
http://www19.atwiki.jp/freetrain-exav/pages/142.html

残念ながら、お手本になるA4で、列車の価格がどんなになってるのかは分からないようです。
だからといって、適当に「1」とか「100」とか放り込んでる現状ではダメだと思います。

また、運賃<fare>が抜けている列車が非常に多いので、これでは運転したらしただけ
赤字たれながしです。
適切な<fare>を書き加えたいと思います。
「適切な<fare>とは」という点についても、これから議論していきたいと思います。
ただ<fare>についてはA4のお手本が明確になっているので、ある程度簡単に指針は示せる
と思います。
0459riorio ◆rio2xMQlrQ 2010/04/27(火) 23:03:34ID:Nwzk7fhp
思いついたことぱんぱん書いてるだけで実現性とかは考慮してないんだけどねー

A列車式詳細ダイヤ設定で「乗車のみ」って欲しいと思う?
たとえば東海道新幹線が東京発車してー、すぐ品川停まるじゃない、今。
そこで全員降りちゃうのってどうなのよ??
普通は誰一人降りずに品川で新しい乗客を乗せるだけで出発だよねー

乗客が目的地を持ってくれてたらいいんだろうけど、持ってないし、それはお手本の
A4もそうだし後のA7,8にしたってそうだし。
ADSは持ったんだけどA9でまた戻ったんだっけ?やってないから知らないんだけど。

まぁー、いまさら目的地持たすのは無理。やりようがない。
なんで。
ダイヤで強制的に「乗車のみ」にしてしまう、ことでしか今のFreeTrain EX Avでは
実現性がないと思う。
さらにそれも、運賃計算上は一度全員降ろしちゃって精算してその全員が新たに
その駅で乗り込みなおすことにせざるをえないと思う。
それでもよければー、って感じで。
0460名前は開発中のものです。2010/04/27(火) 23:13:50ID:Ba/hOIiG
車両価格に付いて:
ざっとA4のデータ眺めながら考えてみたが、
 基礎運賃*70000 (1両あたり)
がそこそこいい近似になった。(速度/定員関係無し!)
しかしながらAR4だけちょっと外れた位置になってしまう。
0461名前は開発中のものです。2010/04/27(火) 23:56:46ID:yu/JBm/W
A4時代のAR4は特別扱いな様な気がする
0462名前は開発中のものです。2010/04/28(水) 00:52:27ID:87ki7EHV
>>460
有力な情報をありがとうございます!

早速、私の私案を入れてみた基礎運賃と、それx70000してみた列とを
並べてみました。
どうでしょう。
0463モガミ ◆1zbgmm1SzU 2010/04/28(水) 01:08:44ID:sORQDNyx
>>459
システムどうなってるかわからないから、とんでもない無茶ぶりかもしれないけど
品川で降りる人が全くいないわけではないし、
いっそ適当な乱数表作らせて、

付近の居住人口が乗る→次の駅で付近の居住人口が乗る→同時に付近の就労人口×n%降りる→次の駅へ

とか
それで駅周辺何ボクセルかの総人口内で、住宅人口より就労人口が多い場合は計算式逆にして

付近の就労人口が下りる→同時に付近の居住人口×n%乗せる→次の駅へ・・・

これをさらに時間(通勤時間帯と帰宅時間帯)ごとに交互させるっていう・・・
こんな複雑なのどう実装すればいいかもわからないし、
そもそも駅とその周辺の建物数だけ計算量多くなってそれこそスペック足りなくなりそうだけど
0464名前は開発中のものです。2010/04/28(水) 04:11:51ID:sNzpswvl
駅周辺の建物種類の比率から駅の属性が住宅街・商業街というように決まって
その属性と時間帯を元に乗降客の影響が変わるとかならどうだろう
これなら建物の建設・撤去時だけ属性変更の判定で抑えられるし
0465名前は開発中のものです。2010/04/28(水) 04:57:38ID:S8VJTA6a
ちょうどよい機会なので、列車の定員<capacity>についても併せて議論をお願いします。

同じ列車でもプラグイン作者さんによって定員数が違うものが多いので…。

個人的には、定員については実車の(座席数+立席数の2倍)で揃えてしまうのがよろしいかと。

なんで立席数を2倍にするのかというと、田園都市線や小田急線みたいにラッシュ時混雑率200%を再現するためww
0466名前は開発中のものです。2010/04/28(水) 06:01:42ID:S8VJTA6a
>>464

そうなってくると、建物の種類も再チェックの必要ありなんですが。
なにしろ、OfficePopulationの分譲マンションとか、
ResidentialPopulationのデパートなどがいっぱいあるので…。
0467名前は開発中のものです。2010/04/28(水) 06:57:56ID:9vupMjhR
そもそも今の運賃計上はどういう設計になってるんだろ。
A4は、駅間を直線で結んだ距離を基準にしていて
カーブが多いほど売上が低下したと思うが。

目的地は持たなくてもいいと思うが、
例えば、列車ごとに過去停車した駅のリストを持たせるのは難しいの?
どの座標で停車したか、それぞれの駅で何人乗ったのか、過去10駅分くらいあれば。

どの駅で何人乗ったのかがわかれば
464みたいな方法と併せれば目的地を選んでるっぽい見た目にもできるし
乗車のみ設定においても、運賃計上を自然な形にできそうだし。
0468riorio ◆rio2xMQlrQ 2010/04/28(水) 07:14:05ID:87ki7EHV
>>463
それは無理(笑)

>>464
乗車客にはpopulationの影響で、今のまま自然と人の流れはできます。
降車客はどうにもできません。乗ってきた人とにかく全員降りちゃうので。

>>465
そうですね。
> (座席数+立席数の2倍)
いいかと思います。
FreeTrainはA4にあったのと違って<capacity>以上載せようとしないので。

>>466
それは次回、Population属性増やそうと思ってるのでそのとき再チェックしませう。

>>467
wikiのコストバランスかどこかに計算式あったはずなので読んでみてください。
直線で結ぶのは同じはずです。
0469Umezawa2010/04/28(水) 08:28:05ID:FlmnWpw9
東京駅で乗車した乗客を品川駅で降ろさない案ですが、
愚作「最強都市計画4改」まで、ちょうど

>>464
>駅周辺の建物種類の比率から駅の属性が住宅街・商業街というように決まって
>その属性と時間帯を元に乗降客の影響が変わるとかならどうだろう



>>467
>目的地は持たなくてもいいと思うが、
>例えば、列車ごとに過去停車した駅のリストを持たせるのは難しいの?
>どの座標で停車したか、それぞれの駅で何人乗ったのか、過去10駅分くらいあれば。

の2つと似たようなことをやってました。

コーディング工数/難易度の点、実行速度の負荷の点からみても、
結構バランスの取れた案だと思いますよ。
欠点は終端駅で全員降りてくれないことくらいでした。

それにしても、みんな思いつくことは一緒なんだね。
同じ意見がスラスラ出てきててビックリしました。
0470名前は開発中のものです。2010/04/28(水) 09:00:43ID:GFWaqej2
>>468して
列車の定員は通勤電車は乗車率200%とかあるだろうけど、ボックスシートの急行電車で
200%はちょっと詰め込めないだろう。特急はお盆の自由席とか例外もあるが、100%まで
だろう。
で、電車の分類として通勤型、近郊型、急行型、特急型に分類してたんだし、そのパラメータを
追加できないか?通勤型は200%までOK、近郊型は少し少なめ(中の人間は結局苦しいわけ
だが)180まで特急は100%までとか。となると全プラグインをチェックする羽目になるが、まず
は未対応車は100%にセットしておけば、ひとまず。
それと関連あるが、結構定員数バラバラ。まあ解釈の相違なんだろうが、定員は諸元表から
持ってきて最大混雑率で実際の乗車人数を決めるほうが良いと思う。
0471名前は開発中のものです。2010/04/28(水) 09:02:45ID:yL1+0H83
>>465,>>468
> (座席数+立席数の2倍)
プラグインにその計算式で出した値を書くのはどうだろうか?
よくわからなくて、適切に設定できない人が出てきそう。
200%がやりたいなら、プログラム側で定員の二倍までは
乗せられるようにすればいいのでは?
0472名前は開発中のものです。2010/04/28(水) 17:03:23ID:9vupMjhR
>>469
製作者の実感として、それの効果は満足いくものだったでしょうか?

5リリースされたんですね、久々に遊ばさせてもらいます。
でもそろそろPC向けUI実装検討してもらえると助かるお・・・・
0473名前は開発中のものです。2010/04/28(水) 18:05:05ID:GFWaqej2
>>469
今思ったけど、折り返した時と回送になった時に全員降ろす処理を入れればだいたいは
大丈夫じゃ?終電で途中駅まで行って、次の日の朝始発で出て行くパターンがあるけど、
乗客が車内で夜を明かさないですむ方法は、誰か考えて。
0474代理投稿2010/04/28(水) 18:37:28ID:87ki7EHV
>>472
簡単な処理の割にはそれっぽい乗降をしてくれたので、気に入って前回まで同じ
ルーチンをいじらず使い続けてました。
たださすがに、経営ゲームに特化しようとすると目的地概念が無いのは無理があるので
今回ルーチンを一新してしまいましたけど。
経営ゲーム特化という決断をせず、箱庭路線で行こうとしていれば、ずっと使い続けた
ルーチンだったと思います。
箱庭は FreeTrain にかなわないと思ってやめてしまいましたけど。
5のPC向けUIは考慮したいと思います。
0475代理投稿2010/04/28(水) 18:42:28ID:87ki7EHV
>>473
「折り返し」の判定が難しいですね。到着した時点で判断する必要がありますから。
まあ「向きが反対になった」と同等でもいいような気もしますけど、西武線飯能とか
東武線柏とか悲しくなる駅が……。
0476名前は開発中のものです。2010/04/28(水) 19:14:23ID:sNzpswvl
いっそのこと詳細ダイヤに回送停車を作っちゃうとかw
発車−回送、折返発車−折返回送、反転折返−反転回送っていう対になるわけだし
「回送待機」の方がわかりやすいか
0477riorio ◆rio2xMQlrQ 2010/04/28(水) 21:34:17ID:87ki7EHV
>>476
ゴメン、ちょっと意味がわからない。

今の詳細ダイヤの行動選択は、全部「発車するときどうするか」のアクションなんだよね。

一方で乗せてきた客を降ろすというのは、「到着したとき」のアクションなわけよ。
これは今まではまったく無規定で、絶対降ろしてた。

で、そこにメスを初めて入れて、「降ろさない」という選択肢を入れてみるかどうかという
提案というか単なる思いつきが>>459なんだけどね。
0478名前は開発中のものです。2010/04/28(水) 23:13:48ID:sNzpswvl
ちょっと言葉足らずだったかな
現在の仕様に回送停車つけたらっていうわけじゃなくて
今後、停車で客を降ろさないケースがでてきた場合に
必ず降ろす停車(つまり現在の仕様の停車)を別個に用意すればいいんじゃないかなと

まあまだ実現もしてない話に尾ひれつけてもしょうがないので
あんま気にしないでw
0479riorio ◆rio2xMQlrQ 2010/04/28(水) 23:37:47ID:87ki7EHV
A列車式ダイヤ設定の詳細設定ダイアログをどうするかっていうのも
課題かもしれないけどねぇー

ずーっとあのままだったのを、Yzさんが「回送」追加して、つい先日
私が「反転」追加して、そのままラジオボタンを横に増やして8連に
なってしまったわけで。
あ、あとα3ではNumUpDown式のも別にかまえたけどラジオボタンは共通。

従来と互換性を保ちつつ、より設定しやすく、分かりやすく、多数の列車
をさばいても苦痛にならない入力はどんななのか。
難しいねー


あと現状、「停車」ってのはある。
対になってるのは「通過」だね。
「通過」を設定しておかなければ強制的に「停車」した上で客も降ろしてしまう
わけだけど、それはそれでそのままでいいんじゃないかなと思う。
デフォルト動作としては。
0480riorio ◆rio2xMQlrQ 2010/04/29(木) 00:15:10ID:YmZKOAnq
>>470 >>471
うーーん、なるほどねぇー
電車の分類を追加した方が簡単か。
定員は「定員」できっちり区切って。

そのほうがやりやすいかな?

分類するとしたら何とおりがいいかな。
特急型 100%
急行型 130%(新快速や阪急6300・京急2100などのオール転換クロスもこれになる)
近郊型 160%
通勤型 200%
の4とおり?

あとplugin.xmlに書くとすると英語にしなきゃなんだけど、
<type>ってのは形式名を書く項目として既に使われているのだよね。
英語でこの「急行型」みたいなのってなんて称するのだろう……
<seatstyle>とか?w
0481名前は開発中のものです。2010/04/29(木) 00:28:49ID:mMPlH1Fx
<trainclass>とかふと考えたんですがいかがでしょう?
0482名前は開発中のものです。2010/04/29(木) 01:15:48ID:LImOa61d
乗せる乗せない、とか降ろす降ろさない、とか乗り換え降車のあたりを新たに追加するとしたら、
(1):OpenTTD式Load/Unload/Transferオーダーをダイヤ詳細に追加+Unload/Transfer時のIncome計算処理を追加
(2):駅属性に「指定駅からの乗客を下車客として受け入れない」を追加

(3):(1)(2)の組み合わせ+α
あたりでそれなりのものが実現出来るかなぁ、と思った。
0483riorio ◆rio2xMQlrQ 2010/04/29(木) 01:36:21ID:YmZKOAnq
>>482
OpenTTD知らないので式といわれてもピンとこないなぁ。
なんというか、アルゴリズムで説明できませんか。

FreeTrainと、A3,4,7しかやったことがないと思ってください(苦笑)


> (2):駅属性に「指定駅からの乗客を下車客として受け入れない」を追加

今の乗客属性だと乗った駅は1つしか情報持てないから、そこをなんとかしないと
いけないねぇ。
ArrayListで管理してみたらいいのかなぁ……
処理速度がどうなるだろう。
0484名前は開発中のものです。2010/04/29(木) 02:16:04ID:ADw7QMYl
>>480

素直にプラグイン作成時に(座席数+立席数の2倍)の数字を
プラグイン作者さんが列車の定員<capacity>に書きこむだけにした方が
システム的にシンプルだと思うんですけど…。

また、E217とかE231みたいに近郊型なのか通勤型なのかはっきりしない車両もあるし。
中途半端にセミクロスを撤去してロングシートにした車両とかもあるので、
諸元表でハッキリ数字が記載されている(座席数+立席数の2倍)のほうが
混乱が少ないのでは。

それに(座席数+立席数の2倍)の場合、乗客が最大人数列車に乗った場合、
だいたい>>480のイメージに近い混雑率になります。

一応例をあげてみます。

近郊型 クハ111 座席63立席49 立席の2倍乗客が乗った場合の混雑率144%
通勤型 クハE231 座席43立席100 混雑率169%
通勤型 小田急デハ1000 座席38立席72 混雑率165%

6扉車 サハ208 座席使用時 座席30立席125 混雑率180%
(なお座席収納時には立席のみ157)

特急型 クハ481 座席のみ52 混雑率100%(立席が無いので詰め込みようがない)
急行型 クハ165 座席のみ76 混雑率100%(立席が無いことになっている)
新快速 クモハ223 座席44立席88 混雑率166%
快速特急 京急デハ2100 座席50立席61 混雑率145%
0485riorio ◆rio2xMQlrQ 2010/04/29(木) 02:59:43ID:YmZKOAnq
>>484
>素直にプラグイン作成時に(座席数+立席数の2倍)の数字を
>プラグイン作者さんが列車の定員<capacity>に書きこむだけにした方が
>システム的にシンプルだと思うんですけど…。

プラグイン作者さんが、おのおの正しく計算して、<capacity>値を入れてくれるなら、
そら「本体のプログラミング」としてはシンプルにできますよ。
シンプルというか、今から何一つ変える必要はないんですから。
なにもしなくていいですね、私。(笑)

ただFreeTrain EX Av全体から見たときのシステムとしては、本体だけでなく
プラグイン作成環境もシステムの一部と呼べるでしょう。
そこであまり複雑な作業をしてもらうわけにはいかないという問題があります。

>諸元表でハッキリ数字が記載されている(座席数+立席数の2倍)のほうが

みんながみんな諸元表持ってる鉄オタなわけじゃないことに気をつけないと。
私だって最新のものは持ってないです。
国鉄が終わるときに出たヤツ持ってるぐらいで。
JRや私鉄の車両はネットで検索するしかない。

今wikipediaで軽く車両を検索してみたら、総定員と座席定員とが分けて記載
するという方針で統一されているようではありますので。
諸元表の手持ちが無くてもplugin.xmlは書けそうですけど。

総定員から座席定員を引いて立席定員を求めてからそれを2倍して座席定員に
足したものを求めてやっとcapacityが書ける……ってめんどくさすぎませんか!?

人が計算しなきゃいけない、という時点でどーかとも思います。
0486名前は開発中のものです。2010/04/29(木) 03:03:43ID:tMEW/tAM
駅の乗客とか定員とか、どうでも良い方向に労力かけすぎだろ。
0487riorio ◆rio2xMQlrQ 2010/04/29(木) 03:06:44ID:YmZKOAnq
「なげーよ」って文句言われたので分割して書き込み……

(つづき)
それだったら、capacityのほかにseatedcapacityとか項目追加して、座席定員を
そこにそのまま書いてもらうとしたほうが、まだしも楽でしょう。
それでも、座席定員を(諸元表かネットかで)調べなきゃいけない、という手間は
今よりかかるのでどうかと思うところです。

「いや、定員はまさか暗記してないだろうからどっちにしても調べなきゃダメじゃん」
という指摘はごもっとも。

>近郊型なのか通勤型なのかはっきりしない車両もあるし。
>中途半端にセミクロスを撤去してロングシートにした車両とかもあるので

ありますなーー
今は上野に来なくなった415系なんかも、20m3扉ロングシートになったものも
多かったですね。東海道線の113系にもいたかな。
岡山のキハ40なんかだと、あの両端ドアの間全部ロングシートっていうすさまじい
のがいますよ。吉備線とか走ってるの。ローカルな風情も何もあったもんじゃないw

でもそんなのどうしようもないと思いますよ。
どこかで割り切らないと。
あなたご推薦のcapacity手計算式にするにしろ、その諸元表にロングシート改造後
が載ってなかったらどうしましょう。


あ、あと<amenity>って車両属性を付け加えて、この数値が高いほどよく客が乗る
っていうのはどうかってのも思いついたんだけど。
プラグイン作者が適切な数値を入れるのに悩んで放り出されるかなーと思ったので
やめとこうかとか考えてるとこだったりw
0488riorio ◆rio2xMQlrQ 2010/04/29(木) 03:13:36ID:YmZKOAnq
>>486
もっと大事なものがあるとおっしゃるなら、それをプログラミングしやすいよう
具体的な内容で提案していただけたら、その内容と実現の容易さ次第では
さくさくと実装してしまうこともありえるのですが。

そういうプラス思考&志向の書き込みが読みたいですね :-)

すくなくとも私は、FreeTrain EX Avが、「『A列車で行こう4』のクローンを目指そう」
という川口さんの意志を受け継いでいくからには、A4程度には会社経営もシミュ
レートしないといけないなーーって考えてます。

プレイヤーが経営するのは鉄道会社なんですから。
鉄道収入の根幹たる列車の定員とか駅の乗降にこだわっておかしくはないでしょう?

今のFT本体を何一ついじらなくても、出回ってる列車プラグインに<fare>と<price>を
適切に書き換えて回るだけでかなりA4ライクな経営シミュにはなれるはずです。
川口さんが初期状態でそういう実装をしてくれてるので。
0489名前は開発中のものです。2010/04/29(木) 03:25:07ID:tMEW/tAM
オープンソースなんだから、拘りたいならプレーヤー自身が
自分の好きなようにcapacityを変更すればいいだろ。
プラグイン作者は今までどおり、各々の基準で定員を決定すればいい。

ちなみに自分の定員決定方法は・・・
車両のサービス定員を調査した上で
その車両が実際に運用される両数で編成を組成したときに、車両諸元と定員が一致するように
各車両(両先頭車、中間車、その他)の乗車定員を振り分ける。

定員と言っても色々種類があるが・・・
http://www.mintetsu.or.jp/knowledge/term/157.html
そもそも乗車率100%以上載せたら法令違反だからね。有名無実な法律だが。
0490名前は開発中のものです。2010/04/29(木) 03:27:47ID:tMEW/tAM
>>488
>A4程度には会社経営もシミュ
>レートしないといけないなーーって考えてます。

なら乗客の動きは今のままで問題ないだろ。
0491riorio ◆rio2xMQlrQ 2010/04/29(木) 03:48:32ID:YmZKOAnq
ん?
ID:tMEW/tAM はNGIDだったかな??
まぁあと一回だけ。
妨害がしつこいようならNG行きで。

>オープンソースなんだから、拘りたいならプレーヤー自身が
>自分の好きなようにcapacityを変更すればいいだろ。

プロジェクトとして「こうあるべき」という指針を示したっていいですね。
むしろ、するべきですね。
今まであまりにもしなさすぎでした。
その、どうあるべきという指針を示すべきかという議論を今はしているのですから、
プレイヤーが変更すればいいと言い出すのは議論を理解していないか、議論を
じゃましたいかですね。
さて、どちらでしょう?

あなたの定員の決め方が特段悪いとは思いませんよ。
自分もおそらくほぼ同じようにplugin.xmlを書くでしょう。

>なら乗客の動きは今のままで問題ないだろ。

べつに、すべてA4の低いレベルにとどまろうとも思っていませんので。
FreeTrainという原型を踏まえて高みを目指せるなら、それがそこそこ容易であるなら、
高みを目指したいですね。
まったくのゼロから新規に組み直す技術と力があれば、FreeTrainに縛られず新規に
やったほうがずっと高いところには行けるでしょうけど。
私はFreeTrainのEX Avを預かった者としてFreeTrainの孫を高いところに連れてって
あげたい。
0492riorio ◆rio2xMQlrQ 2010/04/29(木) 05:42:41ID:YmZKOAnq
あ、直リンしてなかったな。
見落としてる人も多そう。
再掲します。

私がA4の記憶とwikiの記述をもとにてきとーぉに決めたfare値と、それを
>>460さん情報に基づいて車両価格ベースとすべく自動計算したものを列に
入れたExcelシートがこちらになります。

http://freetrain.ps.land.to/upload/data/ftup0083.zip

ここのfareおかしーよとかあったら、早めに言ってください。

基本的な指針は次のとおりです
http://riorio.asablo.jp/blog/2010/04/27/5047369

ここ重要なんで
>通勤型 400
>これが基準。
>山手線の今の車両E231系、その前の205系も103系もこれになる。
>ロングシートの通勤車両はすべてこれで統一したい。
>古いから安くするか、しない。
>新しいから高くするか、それもしない。
>63形でもE231系でも400。
この考え方で。
0493名前は開発中のものです。2010/04/29(木) 06:48:36ID:dXNDtGno
いくつか弄ったけど、プラグインの書き換えは意外に面倒だしね。直すのは数行だけど。

まず名が体を表してない大量のフォルダから、直すべきplugin.xmlを探し出し、
特急も通勤車も私鉄までごっちゃになってる、目的は同じだが、作者によって書き方は
全然バラバラで、似たような事がいくつも書いてあるテキストから直す箇所を探す。
で、数字を書き換える、これはテンキーがあるから簡単だね、運がよければ。
運悪く全部の車種一括で定員が設定されてると、直すには全部書き換えないとダメだから
アウト、やりゃいいんだけど面倒なのでうちの鉄道は103系が走っていないwww


いやなんか無性に藪を突っついて蛇が出てきちゃった、むしろ出てきたのがヤマタノオロチ
クラスな気がしないでもないが、結局運賃と同じで方針を示せなかったツケなんだろうが。




でも車種ごとにフォルダを切るとかは勘弁してください。そんなことしたら、これ以上横に
長いフォルダが今の数倍出来る事になるんで。サブフォルダ、漢字を認めればあるいは…。
やっぱいいや。
0494riorio ◆rio2xMQlrQ 2010/04/29(木) 07:01:48ID:YmZKOAnq
>>466

> >>464
>
>そうなってくると、建物の種類も再チェックの必要ありなんですが。
>なにしろ、OfficePopulationの分譲マンションとか、
>ResidentialPopulationのデパートなどがいっぱいあるので…。

ええっと、これ、どなたか手を上げてExcelにまとめてくださるかたいませんか。
おかしなものだけじゃなく、よいものも含め、既存建物プラグインすべてについてです。

非Generic Structureな建物は私がコンバートパッチ書いたはずなんで。
コンバートされてるものについてはコンバート前の古い方は入れなくていいです。
もしコンバート抜かりの建物があったら教えてください。コンバート書きます。

必要な項目は、作者・group・name・類別・現在のPopulationクラス・base・
(CombinationPopulationの場合はその要素全部)・価格・識別子です。
ほかにこの項目もいるんじゃね?ってあったら指摘よろ。

ひとりじゃなくて、3人ぐらいで、甲さん識別子a〜iまで、乙さん識別子j、丙さんk〜zって
手分けしてもらってもいいですし。Excelの雛形を統一してもらって、あとでくっつけられる
ようにさえなってれば。
識別子で手わけすると、たぶんjpだけが突出して多いと思うんで。jだけ1人もつぐらい
でいいんじゃないかなぁ。


あと、A4のゲームバランスで、建物価格がどのぐらいだったか分かる方いますか。
今の建物プラグイン数々の価格設定がどうなってるのか、私も分かってない。
ついでに言うと、建物建てても資金消費しない。資金消費が実装されてないw …はずw

そこも次の次ぐらいでなんとかしたいので。
建設に資金がかかるようにするのの手始めに、建物プラグインの価格を精査しといて、ね。
0495riorio ◆rio2xMQlrQ 2010/04/29(木) 07:08:50ID:YmZKOAnq
>>493
サブフォルダはいっちーさんが既にやってますよん。

コメント丁寧に書いてくださってるんで、あるもの見ればサブフォルダのやりかたは
理解できると思います。

自分が次プラグインなにか作るときそれをまねするかっていうと、たぶんしないと思うけど。
めんどくさすぎるし。
自分がしないものは推奨にはしないし、wikiにも正式の書き方として紹介はできません
が、作者さんが個人個人すきずきでサブフォルダ式を使うぶんには禁止するつもりは
ないので。
これから研究熱心な作者さんはサブフォルダに移行していくのかもしれません。
0496riorio ◆rio2xMQlrQ 2010/04/29(木) 07:23:25ID:YmZKOAnq
建物ネタもういっちょ。

先日もちらっと書きましたが。
1) 建物のPopulationに平日・土日の差をつけます
2) Populationのクラスを何種類か増やします

旧wikiから転記してきた、今のPopulationはこんなかんじ。
http://www19.atwiki.jp/freetrain-exav/pages/136.html
http://www19.atwiki.jp/freetrain-exav/pages/137.html

下の「乗客計算」の時間帯で表になってるほうのが、平日人口になりますので。
これをもとに、住宅・農業・オフィス・飲食店・買い物、の5種類について、土日人口は
どういう分布がいいか提案お待ちしてます。


クラスを増やす方ですが、どんなクラスが欲しいでしょう。
私がいるかな、と思ったのは、酒場(RPGみたいな言い方でスマン)・ホテル・遊園地で、
ほかに先日このスレで、学校もいるんじゃ、って言われた。
今あがってるのはこの4種類。
遊園地と買い物って分ける必要ないのかなーって後で思い始めなくもない感じなんだけど
どうなんだろう。(買い物=ShopperPopulationそのままで遊園地の流動になりうるか?)
欲しいクラスのある方は、クラスの英語名称と日本語名称、どういう人口流動をするのか
できれば具体的に17:00 60 / 18:00 80 / 19:00 70みたいに書いてもらって、なぜ
既存では表現できなくて新規に欲しいのか演説してください。

Populationクラスを増やしたことで、既存建物プラグインでその増やした方に入れるべき
ものがあれば、plugin.xml書き換え配布したいと思ってます。
0497riorio ◆rio2xMQlrQ 2010/04/29(木) 07:32:58ID:7q+kFwhN
あ、そーだ。
あとねぇ……

今のFreeTrain EX Avの駅の集客では、通常のPopulationで記述すると、駅ごとの
StationListenerで集計するとき、その駅の降車客から伝播した「地価」との大小判定が
ありまして、Populationがでっかくても地価が安いと地価の方で頭おさえられて駅の乗車
客が増えないようになってます。
なんつーのかな? 地価=その駅周辺の栄えっぷりで、栄えてない駅周辺の子会社は
利用率が悪くて客も来ないみたいな感じを「地価」というパラメータを介して表現したん
だと思うので。これはこれでいじれないと思うのだけど。

それだと、サッカースタジアムが表現できない、ということに先日気づいて。
地価を判定しないSpecialStationListenerを追加したわけなのですが……

新規追加Populationクラスの中で、「これは周辺地価に影響されず駅利用を生む」という
ものについては、SpecialStationListener利用希望と明記してください。
もちろんそれだけの巨大誘致施設であるということがわかるように。
問題はSpecialStationListener使うと、駅からの半径が20ボクセルに広がっちゃうことかな。
まぁそれも、サッカースタジアムなみの誘引施設であれば問題にならないはずだけど。


StationListenerの駅との距離測定が、左端ボクセルで行われるっていうのは、どう?
サッカースタジアムもそうだったんだけど、イトーヨーカドーあたりも、右側に駅を造ったら
駅に客こねーヨw この判定基準、今のままでいいかな??
04984602010/04/29(木) 09:40:43ID:pd2zRh6Z
あ、そうだ。書き忘れたけど460は単位は円でPS版のものね(PCでも変わらんと思うが)。念のため。
で、基礎運賃に付いてもA4(PS)を分析してみたところ、
 基礎運賃 = 一両当たり定員 * 速度 * 列車種別
が大体当てはまる模様。
速度の項は低速=1, 中速=2, 高速=3。
列車種別は1, 4/3, 3/2のいずれか。大雑把に特急が係数高く、通勤が低い傾向にあるが、パターンが今一つ見えない。
上記式に当てはまらないのはMTA、HGe4/4。
■ このスレッドは過去ログ倉庫に格納されています