2007/1/20

連結でガチャンッβ版  VRM4魔法書庫
ここで話題にしていたスクロール。とりあえず作ってみた。

[Download] 連結でガチャンッ(β版)

使い方は同梱のreadme.txtを参照のこと。音声リソースそのものは同梱されていないので、たとえば即応してくれたmoko氏のヤツをダウンロードして使うと吉。お気づきかと思うが、今回のスクロールは、moko氏への表敬による命名、最後の「ッ」がポイント。

もちろん、スクリプトはWAVファイルの中身までは問わないので、ぽわわ〜んでも、ひょんげ〜でも音は鳴るのだが、出来ればガチャンッな感じの音声リソースを使うことをお奨めする。

っつーか、moko氏提供のヤツを組み込んでテストしてみたが、格好いいぞ、コレ。


*     *     *

誰も興味はないと思うが、連結音がどのように実現されているか、について薀蓄を垂れておくことにする。

結論から言うと、このスクロールで鳴っている音の正体は、PlayHorn命令で吹鳴するところの「警笛」である。つまり、編成の連結をSetEventCouple命令で検知し、実行されるメソッドの中でSetWaveHorn命令を使って一時的に警笛を「連結音」に変更し、吹鳴させた直後に元に戻す、という作戦。なので、連結前も連結後も、警笛は普通に使える。

ゆえに、このスクロールを電車・気動車編成の併合に使うのはお奨め出来ない。基本は単機の機関車で。重連だと(組込み手順に手間が増える)ギリギリ許容範囲といったところ。とにかく、警笛は先頭車で鳴るので、音の定位をクッキリ再生可能な良いサウンドデバイスを使っている人ほど、不自然な方角から聴こえる連結音に悩む(あるいは連結位置から先頭車が遠すぎて、そもそも聴こえない)、というジレンマに陥る。

こういうケースについては、現状では、VRM4第4号所収の「音源」部品を連結予定位置に配置しておき、連結イベントからこの部品のメソッドをコールするしかないと思うが、4号限定になるし、編成の可搬性(他の人のレイアウトに持っていける、いわゆる“ポータブル”)を損ねるので今回はその方法は見送った。

大局的な“戦略”は上記の通りだが、これを実現せしめる“戦術”は、いささかややこしい。アーカイブ同梱のreadme.txtを読んでもらうと、多分最初に疑問に思うのは、連結音用リソースの組み込み先についてだと思う。VRM的には「警笛」となる「連結音」は、当然機関車で鳴るのに、組み込み先は連結される客貨車側でなければならないからだ(レイアウトリソースも使えるようにはしておいたけど)。

これは、先日も少し触れたように、4.0.5.3時点のVRMの編成連結の仕様が「ぶつけた編成(機関車)がぶつけられた編成(客貨車)に吸収される」になっているからだ。機関車側の編成にリソースを持っていても、連結された時点でそれは消滅する(厳密に言えば、メモリ上にはあるが通常の手段でアクセスできなくなる)。

従って、連結の直後にSetWaveHornされるリソースは、連結後も存在する客貨車側リソース(あるいはレイアウトリソース)として組み込んでおく必要がある。ファイルの可搬性を考えれば、編成リソースを選択するのが賢明であろうから、この点には注意が必要だ。この現行仕様については、いろいろと物申したいことが山ほどあるのだが、本題からそれるので捨て置く。おそらくVRM4では解決しないだろうし。

*     *     *

ちゃんと動作するとは思うけども、何か不具合があったり、もっとこうして欲しいみたいな要望があればコメント欄へ。

なお、現時点では「分割し、再連結する」という実装は、不可能ではないと思うが、不条理な操作をユーザーに強いる(分割時の編成の向きなどが規程される)ので、敢えて着手するつもりはない。

加えて、後日、この機能を加味したポータブル編成、つまり、機関車ファイルと客車ファイルが同梱されており、これをレイアウトに展開すると、牽引機の回送から連結音を伴った連結、そして出発までを楽しめるようなヤツをサンプルとしてリリースする予定。自分で組み込むのが困難・・・っつーか、有り体に言えば「面倒臭いので自分ではやりません」という人はそれまで待て。
0

コメントを書く

この記事にはコメントを投稿できません




teacup.ブログ “AutoPage”
AutoPage最新お知らせ