2006/11/13

こんなVRMだってアリなのでは?  電波ゆんゆん
Caldia氏スクリプト/スクロールに関してなんやかやと書いて、45-50s氏これに応じた件について。
VRMスクリプトに問題があるとすれば、それが「分散型」であること自体ではなくて、「分散型」のメリットを生かしきれていないことだと思います。現行仕様を無下に「ナンセンス」と言い切ってしまうのはいかがなものでしょうか。

such a cool / センスの話 より
上引用にまったく同感なので、更にCaldia氏を批評するつもりはない。逆に、ひねくれ者のボクちゃんとしては、Caldia氏の中途半端さを補って「VRMスクリプトなんてわからない、要らない」路線の極北を描いてみたいと思う。

*     *     *

I.MAGiCの中の人がそこまで考えてSCRIPTウィザード/スクロール機能をVRM4に実装したのかどうかについてはボクの知ったこっちゃないんだけれども、こういう可能性があるんじゃねーかと、かねてより考えてたことがあったりするワケで。ここの末尾でちょっと示唆してみたんだけども、誰も気づかなかったみたいだし。

具体例がないとわかりにくいと思うんで、閉塞信号機を例に話を進めてみようと思う。で、以下の話が理解できなくても悩まなくていいからね。以下の話は、そんなあなたを助ける話なので、あなたは必ずしもその中身を理解する必要はないのよ。「理解しなくても使える」ってのがミソだから。


みんなね、閉塞信号機は実物を見たことがあるし、なんとなく仕組みも知っているから、開発元であるI.MAGiCであれば簡単に実現できるんじゃないの?と思ってるだろうし、事実、VRM2の頃から、そういう機能が欲しいって話はユーザーの間から出てたワケ。でも、VRM4に至って、I.MAGiCはそういう閉塞信号機を実装するんじゃなくって、そういう閉塞信号機を実現する手段=スクリプトを実装したのね。

なんでか、と言うと、多分、中の人にもどうすればユーザーが納得して使う閉塞信号機を実現できるか思いつかなかったからなんだな、きっと。何せ、ユーザーの立場でVRMを使ったことがないから、そういうのがわかんない。一番いいのは、ユーザーから聞くことなのよ。「あなたの欲しい、閉塞信号機はどんなのよ?」って。でも、ユーザーはバカだから、そういう聞き方をすると「思い通りにちゃんと動作する信号機」みたいな阿呆なことを答えるのね。そんなの、VRMシステムからしたら何の意味もない答えなのに。

で、この両者のギャップを埋めるのがスクリプトでありスクロール。スクリプトは、唯一、VRMシステムがユーザーの要望を理解できる“言葉”なワケ。そして、スクロールってのは、同じ動作をする部品に、参照する部品名と細かいパラメータを除けばまったく同じスクリプトを書き込むことで、レイアウト全体としてはちゃんと動作することを目指す仕組みに他ならないワケだから、出来のいいスクロールは、その気になればVRMの“部品”として組み込むことが出来るのよ。

話は閉塞信号機に戻るんだけれども。まだ未公開のまま眠らせてるんだけども(βテスターが集まらないので・苦笑)ボクは既に、信号機1つに対してセンサー2つ、そして対応する編成が1つ以上あれば、列車の走行に連動して正しく動作する閉塞信号機と、かつ、その閉塞信号機の灯火色に応じて自動運転する列車が実現できるスクロールを書いたワケ。で、これは、実は、このロジックをハナからVRMの編成や信号部品に埋め込むことが出来るっつー証明でもあるワケ。スクロールってヤツは、元来そういう性格を持ってる。小難しい言い方をすれば“オブジェクト指向におけるクラス”に当たるんだけども。

クリックすると元のサイズで表示します
<黄色の部分が“1つ”の部品になる>

ボクがスクロールによって“証明”したところによると、要するに閉塞信号機ってヤツは、信号の位置で編成を検知するセンサーと、編成が信号の灯火色を見て速度を変える位置を示すセンサー(いわゆる信号換呼地点)、そして、その信号機のもう1つ先の信号機さえわかれば実現出来る。ってことは、スクロールの組み込みみたいな面倒な手順を踏まなくても、VRMの信号部品がそういう機能をハナから持ってりゃ話が早いワケで。

上図の黄色で示した部分が、実は1つの部品だと考えてみてね。信号の場所にセンサーが1つくっついてて、これは常に信号機と一緒に移動するワケ。もう1つのセンサーとは水色の線で繋がってるだけで、こっちは信号とは別に移動できる。つまり、こっちが換呼地点を示すセンサー。で、水色の線が示すように、どこに持っていっても、この信号機との関係は明確なのね。信号機からはもう1本水色の線が出てて、先っぽに赤いコネクタがある。これを1つ先の信号の緑のコネクタに繋ぐ。これで、この信号機に1つ先の信号機を教える。後は、この信号に最初から埋め込まれているロジックが閉塞動作を処理する。同様に、gws/1.0規格の自動運転スクロール相当のロジックが埋め込まれた編成部品を走らせれば、勝手に速度が調整され、勝手に信号機が切り替わる。

何が言いたいのかというと、スクロールは、ユーザーが何がしたいのかをVRMシステム(とI.MAGiCの中の人)にわかる“言葉”で表現したものなのであって、これが明確になりさえすれば、それをそのままVRMシステムの機能として取り込むのは簡単だ、って話。ポータブル編成も話は同じで、もし、大半のVRMユーザーが拙作ポータブル編成の機能・仕様に満足するのならば、そのロジックをハナから編成部品に埋め込んでしまい、ユーザーは編成ダイアログからパラメーターをいじるだけ、みたいな実装にすることも出来るってことなのね。

これは以前、はやたま氏に喝を入れたときの真逆の話になるんだけども、I.MAGiCから見て、ユーザーの大半が「信号機はかくあるべし、それ以外の動作は不要なり」「編成はかくあるべし、それ以外の機能は不要なり」と宣言しているように見えるのであれば、スクリプトなんざ要らないんだわ、ぶっちゃけ。

これには2つの意味があって、第一には、今はそう見えない=ユーザーが何を求めているのかわからない、からこそスクリプトが存在してるってこと。第二には、そのスクリプトを使ってのユーザーの表現=ニーズの表明がある方向に収斂される(必ずしもボクのやり方に、でなくて良い)のであれば、I.MAGiCにはリスキーなスクリプト実装を続ける理由がない、ってこと。

*     *     *

まぁ、個人的には、一般的なVRMユーザーには特にスクリプトを使ってやりたいことなんてないんじゃねーの、と思ってるんだけども。要するにみんな、格好いいお気に入りの車両がPCの画面内でパーッと走ってりゃ、それでOKなんでしょ。じゃ、それでいいじゃん。無理にスクリプトを巡ってクネクネする必要ないよ。

で、どうしてもやりたいことが出て来て、その実現方法が自分で見出せないんだったら、既にVRMスクリプトをマスターしたように見えるユーザーはいるんだから、気の合いそうなヤツを捕まえて教えを乞いなさいな。スクロールが必要だったら作ってもらいなさいな。それは恥でも何でもなくて、あなたにしか出来ないネットVRM界隈への「貢献」なんだから。
0

コメントを書く

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




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