投稿者 トピック: 標準の鉄道車両の長さについて  (参照数 14196 回)

ラス

  • 各駅停車
  • *
  • 投稿: 41
  • HNの英字綴りはLusです。外国語圏ではLus若しくはLus1531と名乗ります。
    • @Lus1531
標準の鉄道車両の長さについて
« on: 2012/02/24 07:14 »
アドオンを作成していて気付いたのですが、公式のソースの鉄道車両の画像の長さが統一されていません。
斜め方向はちゃんとlengthに従った長さになっているのですが、縦方向と横方向が貨車とそれ以外で違っているようです。
lengthに従った長さになっているのは貨車の方で、電車や機関車は横と縦に長くなっています。
このせいで電車や機関車は実際に表示されたとき、デフォルトのdiagonal_multiplierの設定だと横方向と縦方向では車両が重なって表示されてしまいます。
これは意図してそうなっているのでしょうか。統一した方がいいのではと思うのですが…。

yoshi

  • 快速
  • **
  • 投稿: 80
Re:標準の鉄道車両の長さについて
« 返信 #1 on: 2012/11/23 21:09 »
Pak128.Japan を作り始めた時点では diagonal_multiplier の設定が無く、
斜めの線路を走行中に車輌間に大きく隙間が開くのを防ぐため、あえて長めに作っていました。
そのうち直そうと思っていますが、いつになるかはわかりません。

ラス

  • 各駅停車
  • *
  • 投稿: 41
  • HNの英字綴りはLusです。外国語圏ではLus若しくはLus1531と名乗ります。
    • @Lus1531
Re:標準の鉄道車両の長さについて
« 返信 #2 on: 2013/01/02 10:19 »
回答有難うございます。
本体バージョン更新に伴う変化でしたか。やはり重ならない方に合わせるのが正常なようですね。もうpak128.japanも公開から6年近くですね。
私製のアドオンも余裕があったらpak128.japanデフォルトのdiagon al_multiplier準拠に修正して公開していこうと思います。

公式配布のソースの電車が横方向の表示で重なるものばかりだったため、もし新たにアドオンを作る人がいたら参考になればと思い現在のpak128.japanデフォルトのdiagonal_multiplier準拠のアドオンを試作してみました。
横の車間は、コンテナ貨車の3ピクセルだとやや間延びした感があり縮め、外幌を描くことも考慮して2ピクセルとなるようにしました。
ただし下の画像の中央部の様に、本体の描画方法のため1ピクセル上下する場合があるので(上下どちらになるかはlengthとdiagonal_multiplierの値で 決まる)、個々のアドオンによる調整は必要ですが。
« 最終編集: 2013/01/02 10:30 by Lus1531 »

yoshi

  • 快速
  • **
  • 投稿: 80
Re:標準の鉄道車両の長さについて
« 返信 #3 on: 2013/01/03 09:20 »
実は既に国鉄~JRの車輌はほとんど修正済みです(京成車製作の参考になりそうな京急車はまだです)。
偶然ですが、私も車体間が基本的に2~3ピクセルになるように調整しました。
参考になるかわかりませんが、103系(length=12)と485系(length=13)のソースを添付します。
まだ十分にデバッグが出来ていないので使用の際はご注意ください。

京成車(length=11)の場合、計算上の横方向の長さは31.1なので、車体長を29とすればゲーム内で描画される連結面間隔は多くの場合2ピクセルとなります。
しかし20m級車(length=12)の場合、計算上の横方向の長さは33.9なので、車体長を31とするとゲーム内で描画される連結面間隔は多くの場合が3ピクセルとなり、
若干間延びした感じになります。
通勤・近郊型車輌のの場合、車体中央にドアや窓の桟が来るため、車体長が奇数ピクセルのほうが都合が良いこともあり、車体長を31としましたが、
連結面間隔を重視するのであれば32のほうが良いかもしれません。
なお新幹線は計算上の長さ84.9に対し、車体長を83としていますので、連結面間隔は多くの場合2ピクセルとなります。


従来の横方向の長さ(diagonal_multiplier=1024 相当)の時は、本来の位置(length=8を基準に後ろ側に車体を延長する)で描画すると
横方向の車体が長すぎてpak128の大きさに収まらなかったため、length の値によって描画位置もずらしていました。
diagonal_multiplier=724 の場合、そこまでの対策は必要ないため、
描画位置はlength=12を基準に後ろ方向に伸ばす形になっています。
length=12 の場合、描画位置の変化従来から0-1ピクセル変化しています。
新幹線の場合、横方向の描画位置がかなり変化しています。
« 最終編集: 2013/01/03 09:29 by yoshi »

ラス

  • 各駅停車
  • *
  • 投稿: 41
  • HNの英字綴りはLusです。外国語圏ではLus若しくはLus1531と名乗ります。
    • @Lus1531
Re:標準の鉄道車両の長さについて
« 返信 #4 on: 2013/01/06 08:40 »
既に修正に手を付けられていらっしゃったとは。新バージョンがますます楽しみです。

横/縦方向の長さは算出式があったのですがつい最近まで、いまいち理解できず本体の表示で実測しておりました。
英語フォーラムや本体のソースコードを読んだ限りでは、
コード: [選択]
横:(pakのスケール/16)×(diagonal_multiplier/1024)×length
縦:横/2
と認識しました。

先のアドオンの京成車は計算上の長さは62.21875のため横60ピクセルとしま したが、やはり理想は奇数ピクセルです。(先の投稿の31.1は縦方向の長さですよね?)
18メートル級車は多くが3ドアであり、中央部にドアが来るため描き易くなります。
そのため先のアドオンでは側面の左右のバランスが上手くいってません。
61ピクセルとすれば、連結面間ピクセルは多くは1たまに2となるため、車体が繋がって見えてしまうこともなくこちらの方がいいやもしれません。

描画位置の変更があったのですか、ということは一部の車両が横方向で上手く繋がらなかったことがあるのはこのせいでしたか。
現在デフォルトのセットに入っているコキ104とワム80000が横方向の連結が上 手くいかないことに気づいたので。
これからはlength=12の車両(上の103系)を基準に後ろに伸ばすor縮めれば大丈夫なんですね。
修正版のソース是非活用させていただきます。
« 最終編集: 2013/01/06 09:46 by ラス »

yoshi

  • 快速
  • **
  • 投稿: 80
Re:標準の鉄道車両の長さについて
« 返信 #5 on: 2013/01/06 10:32 »
すみません、上の書き込みは横方向と縦方向の長さがごっちゃになっていました。
横方向の長さはlength=11 の時は62.2ピクセル、length=12の時は67.9ピクセルです。
したがって連結面間隔を重視したときの車体長はそれぞれ60ピクセル、66ピクセルとなります。
が、奇数ピクセルのほうが描きやすいので私は59ピクセル・65ピクセルで描くことになると思います。
1ピクセル違っても実用上大きな問題ありませんので、各作者さんが決めればよいことだとは思いますが。

ラス

  • 各駅停車
  • *
  • 投稿: 41
  • HNの英字綴りはLusです。外国語圏ではLus若しくはLus1531と名乗ります。
    • @Lus1531
Re:標準の鉄道車両の長さについて
« 返信 #6 on: 2013/01/06 12:33 »
横方向の長さ了解です。

スクショを見直してみると、幌を描くと連結面間3ピクセルでもあまり間延びは目立たずなかなか見栄えは良くなるようですね。
車体超を直接変える以外にも幌の長さを2ピクセルに増量したりするのもいいかもしれ ません。他作者のアドオンと連結する際の互換性は下がりますが、他のアドオンとの連結を考慮しなくて良い車両なら問題ないです。

今は石炭車のアドオンを作成中です。石炭車は幌は無いですがハンドル部が車体から飛び出しているので、それを考慮し連結面間ピクセル3で作成してみます。