2008/3/11

VRM4に実装して欲しい命令いろいろ  VRMスクリプト禅問答
チラシの裏的備忘録。

●おそらく簡単に実装できて、それなりに効果があるもの

【編成】GetTurnStatus [Variable(int)]

ビュワー起動時の先頭車方向へ向けて走行しているか、あるいはその逆かを取得する。要するに、[Home]キーを押した回数+Turn命令を使った回数の合計が偶数か奇数か、ってだけの話。

【編成】GetMe [Variable(train)]

この命令が実行されたコンテキストが所属する編成オブジェクトを取得する。こちらのエントリで言及したObjMeに相当。要するに動的なthis。

【ポイント】SetEventBranchChange [Method] [Event Handler]

ビュワーメニューまたはSetPointBranch命令によってポイントが切り替わった際に、任意のメソッドをトリガするイベント設定。コレとかコレでやっている“タイマーイベントでGetPointBranchの値を監視する”って手法は、あまりスマートでないので。

【信号】SetEventSignalChange [Method] [Event Handler]

SetSignal命令によって信号灯火が遷移した際に、任意のメソッドをトリガするイベント設定。ポイント位と異なり、信号遷移はスクリプトでしか起きないのでSetEventBranchChangeほどの重要性はないが、これがあれば、区間閉塞や中継信号その他を実現するために、無駄なタイマーイベントやアドオン記法を弄せずに済む。

●実装が厄介そうだけども、あれば面白くなりそうなもの

【編成】GetGradientRatio [Variable(float)]

先頭台車が乗っているレールの、両端の高さの差÷レール長(つまり勾配率)を取得する。GetDirectionの値と合わせて評価すれば、上ってるか下ってるかもわかる、みたいな。後述するSet/GetAccelerateと対で使う想定。

【編成】Set/GetAccelerate [Variable(float)]

直接的には、トラコンモードでノッチが入っていないときの減速率を設定/取得する。ノッチに応じた加減速に影響するならなおベター。前述したGetGradientRatioと組み合わせて使うことで、下り坂で加速し、上り坂で減速するギミックを実現できる。

【編成】Set/GetTrainCameraRoll [Variable(float)]
【カメラ】Set/GetCameraRoll [Variable(float)]

カメラの左右への傾き角を設定/取得する。値はラジアンか。取得はなくてもいいような気もするが、カントレールが使われていれば、編成が曲線を走行中か否かをスクリプトで知ることが出来る(編成先頭が振り子車かどうかも判別できるわな)というオマケが付く。何の役に立つかは別にして。

【全般】GetObjectPosition [Variable(Object)] [Variable(vector)]

任意のオブジェクトの座標をベクトル変数に取得する。出来ればすべてのオブジェクトに対応して欲しいが、とりあえず編成と車両(いずれも進行方向台車座標でOK)に対応してくれれば神。あとは適当に何とかする。

●とりあえず、とっととリファレンスの記述通りに動くようにして欲しいもの

【編成】SearchPoint
【編成】SetTopSpeed
【編成】AutoSpeedCtrl

コイツらが放置状態な現状では、上に書いたような要望も虚しいわな。っつーか、対応する気がないならないで、中の人にはその旨を明言して欲しい。そのくらいしても罰は当たらんだろう。

と、アウトプットしておかないと忘れそうなので、チラシの裏的に書き出してみた。まぁ、実装されたところで、ボクしか使わないんだったら意味ないけど。
0

2008/3/11  17:29

投稿者:ghost
補足: GetTurnStatus(仮称)については、編成併結時に生じる方向転換も考慮に入れないと駄目ですね。失念してました。

コメントを書く

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




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