« 185系谷川・草津・あかぎ'95 | トップページ | "イベントの発生タイミング"がどうなるのか »

[ポータブル編成]185系200番代(大宮車)2011

twitterでチラッと予告していた、185系200番代(大宮車)のポータブル編成が出来上がりました。2011年くらいの状態を適当に再現しています。
ポータブル編成についてはこちらを参照

前回の記事も冒頭に似たようなことを描いた覚えがあります(笑)。

185d
画像は使いまわしですがほぼ一緒です

編成ファイルの公開は、VRM Terminalで行っています。

付属ドキュメントが未整備なので、「暫定」です。

「PT185-200_2011シリーズ」として次の3種類の編成ファイルを収録しました。

  • 14両編成(基本+増結)
  • 7両編成(基本1~7号車)
  • 7両編成(増結8~14号車)

方向幕は次の3パターンで切り替わります。
[1~7号車の表示][8~14号車の表示]で並べて示してあります。

  1. [特急水上/水上][特急草津/長野原草津口]
  2. [特急草津/上野][特急草津/上野]
  3. [特急あかぎ/上野][特急あかぎ/上野]

ちなみにテクスチャーは256*256pxベースの、ちょっぴり高精細度です。ただし、高精細度なテクスチャーはヘッドマークと方向幕と、列番表示器にしか当てておらず、その他のテクスチャーはただ拡大しただけです(汗。ナンバープレートに至っては切り貼りです(爆。

今回の「PT185-200_2011シリーズ」のポータブル編成は、新しくスクリプトを書き起こし、このシリーズの3種類の編成どうしはお互いに分割・併合しても方向幕が正しく切り替わるようになっています。基本編成は7両単独時も14両併結時も、基本編成用のテクスチャーを順繰りに表示します。付属編成も同様です。
もちろん、ポータブル編成オリジナルの、電源オン・オフの機能も実装してあります。

...。oо○**○оo。...。oо○**○оo。...。oо○**○оo。...

以下、スクリプトを書きなおしたことに関する事項になります。
ふつうに遊ぶかたは特にお読みいただかなくても大丈夫です。

■スクリプトの全面書き起こし

今回、185系のポータブル編成の開発にあたって、VRM4ベースでghost氏により開発されて以来そのままになっていたスクリプトを全面的に書き直しました。理由は次のとおりです。

  1. VRMの仕様変更に適応させる
  2. 新規追加命令を使用してコードをスリム化する
  3. 編成の連結・解放ギミックの見直し

特に、バージョン5になってから、曖昧だった連結・解放周辺の内部処理がマニュアルで明文化され、また関連命令が追加されたため、より正確で柔軟なコードが書けるようになったことは特筆できます。

バージョン番号は、他と重複しないように次のように定めました。

A5.0.0 β

一応、色々なところをあたってポータブル編成の派生版がないか探しましたが、万が一重複の無いよう、先頭のメジャーバージョン5に"AKAGI"のAを付加しています。やっぱりやめました(2014/4/3)

■現在の仕様

ghost氏のオリジナルのポータブル編成の基本機能は、「一応」踏襲してありますが、今回リリースした185系のポータブル編成に不必要なもの(e.g. 2パンタ搭載車の両パン・片パン切り替えや、LED交互表示機能など)の実装は見送っています。
また、連結・解放機能も暫定的な実装で、同じ両数の編成の連結(7両+7両)という特別な条件でのみ正しく機能します。ですから、機関車1両+客車12両とか、基本10両+増結5両のような連結の仕方だと、キー操作時の編成進行方向によっては変なところで切り離されたりします。この問題については、現在回避方法を探しています。

なお、現在の見込みでは、やはり連結・解放機能はオマケ的な扱いとなりそうです。連結・解放後のリソース切り替えを正しく行うために、正確な「号車番号」を車両に記録する必要があり、スクロールで組み込めるような汎用的な設計が難しいためです。
逆に、人の手でスクリプトに若干編集を加えることで、機関車+客車の場合などで効果を表すこともできそうです。(例えば、機関車を付け替えても正しいリソースを表示するなど)

連結すると、中間となった車両のヘッドライト・テールライトは消灯します。切り離して戦闘になれば点灯します。

細かい点では、変数名やメソッド名にポータブル編成用のものであることを示す接頭辞"pt"を付与しています。

■リソースの登録パターンについて

例えば、3種類のリソースの表示パターンがあるとします。これらには、0番から0,1,2とコードを振ることにします。すると、各車両が参照するリソースNo.は、パターン番号をx、号車番号をn、編成全体の両数をmとして次のように算出されます。

mx + n

したがって、編成の登録リソースは次のような順序で並びます。

1 Pattern0 Car1
2 Pattern0 Car2
3 Pattern0 Car3
m Pattern0 Carm
m+1 Pattern1 Car1
m+2 Pattern2 Car2

この順序はghost氏のオリジナルバージョンから変更はありませんが、185系では各車両の号車番号nはスクリプトを使って自動的に算出せずに、エディタから直値を打ち込んでいます。
これは、分割・併合を伴わない場合はスクリプトでの自動取得でも動作しそうです。

■スクロール配布について

連結・解放機能の無いバージョンは、ghost氏制作のβ3版でおそらくは事が足りますので、しばらくの間は配布予定はありません。未実装機能もありますので。

連結・解放機能付きバージョンは、スクリプト設定補助ツールとして(あくまで補助ツールですが)スクリプトウィザードが機能しますので、ドキュメントを整備し次第公開しようと思いますが、時期がいつ頃になるか分かりません。すみません。

ポータブル編成においては、「作る」こともその遊び方の一つかと思いますのでなるべく早くできるように頑張ります。

■そのた

バグがあったらぜひコメント欄でお知らせ下さい。フィードバックもお寄せいただけると元気の源になります。

|

« 185系谷川・草津・あかぎ'95 | トップページ | "イベントの発生タイミング"がどうなるのか »

VRM公開物」カテゴリの記事

コメント

こんにちは。

早速DLさせて頂きました。

流石に見事な出来映えですね。
驚くほどシンプルなスクリプトになっただけでなく、
電源Onの時のワンアクション追加、
走行中は電源Offに出来ない等、
細かい配慮もなされていますし。
(電源Offの状態でShift+vだと、ライトが点いてしまいますが、まあ、「バグ」とまでは。)

それから、相変らずの理解力不足で申し訳ありませんが、
>正確な「号車番号」
以降の事は起動時に別々の編成(今回ので言えば「基本編成」と「付属編成」)を配置して連結させる場合、という事でしょうか?
また、「ptMtdUncouple」で「ptMtdPowerOn3」をcallやCallCarではなく、SetEventAfter 1 で呼びだしているのは、何故なのでしょうか?
宜しければご教示頂けませんでしょうか?

投稿: | 2012年7月29日 (日) 14時26分

こんばんは。いつもありがとうございます。

>電源Offの状態でShift+vだと、ライトが点いてしまいますが
「バグ」でした(汗。
変数ptFlgPowerを、ptMtdPowerOn,ptMtdPowerOff内できちんと管理するのが正しいのですがそれがありませんでした。
初期状態の設定をそのまま参照したためライトが点灯してしまいます。



>正確な「号車番号」
以降の事は起動時に別々の編成(今回ので言えば「基本編成」と「付属編成」)を配置して連結させる場合、という事でしょうか?

そのご理解で正しいです。基本・付属編成の両方に、14両貫通の同じテクスチャーセットを登録するためにこのような措置をとりました。


>「ptMtdUncouple」で「ptMtdPowerOn3」をcallやCallCarではなく、SetEventAfter 1 で呼びだしているのは、…
これは、…何でだったんでしょうか(笑)。
Callでも意図する動作はするようなので変更しました。(アーカイブはこんど取り替えます)
よく考えれば、ptMtdFcsInをcallで呼んでる時点で、このふたつもcallで問題ないことが分かるはずでした。(いまいちシックリ来ないんですが)

Uncouple関連はやはりややこしいですね…。VRMの中では相当特殊な処理を伴う命令のようです。

投稿: AKAGI | 2012年7月30日 (月) 00時04分

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: [ポータブル編成]185系200番代(大宮車)2011:

« 185系谷川・草津・あかぎ'95 | トップページ | "イベントの発生タイミング"がどうなるのか »