2006/10/31
● VRM入道的ネットVRM界隈月間MVP
[GJ]部門
山稜の作り方。 @ fox-hobby-blog
[ワロタ]部門
打ち上げ準備 @ JUNのひとり言
[やれやれ]部門
作り直し(>_<) @ 気ままにブログ
有望株:
スプリングポイント
似非スイッチバック @ 日向車両mini
[GJ]部門は目から鱗の山の作り方。VRM4ベースで書かれたものだが、VRM3にも応用可能で、しかもわかりやすい。
[ワロタ]部門はこのところ快調に(良い意味での)トンデモ系なネタを飛ばしまくるjunichi氏の異色作。この発想はなかった。やられた。
久々の[やれやれ]部門は、初心者会議室 メッセージNo.4405の流れを受けて「やれやれ」な感じ。
有望株は、fox氏のヤツがなければ間違いなくGJ部門MVPだったmoko氏のスクロール。
・ささやかだが、しかし、凄いことが起きている
・鉄道模型レイアウターF2006ってどうなんだろう?
本家I.MAGiC的にはVRM4小田急ロマンスカーVSEの発売やレイアウトコンテストがメインだったと思うのだが、VRM入道的には今月はリアル鉄道模型絡みがいろいろ面白かった。
余談になるが、この筋のもう一方の雄であられるJR関西氏が今月初旬に交通事故に遭われた由。大事に至らず不幸中の幸いであったが、氏に改めてお見舞い申し上げると共に、親愛なるVRMユーザー諸兄におかれても、これを氏の身を挺しての注意喚起と受け止め、くれぐれも日々ご油断なきように、と、お願い申し上げる次第。
・ネットVRM界隈で活躍したい人へのヒント(その4/その7)
・【何か】シリーズを作ってみよう(連載全14回)
・VRMユーザー紳士録#23 Willi Leopold殿(前後編)
・スクロールをより使いやすくするための改善案(前後編)

2006/10/30
この連載の最終回です。
ここまでで“【何か】センサー”から受け取るパラメーターに応じて、
・0〜300であれば速度(Km/h)と解釈し、編成の加減速性能に準じてその速度まで加速または減速する。
・301以上であれば停車位置までの距離(Nゲージmm)と解釈して減速→停車し、一定時間後に再発車する。
・-1以下であればその絶対値を停車位置までの距離と解釈して減速→停車し、一定時間後に方向転換してから再発車する。
(1) あるキーを押すと、編成がアクティブになる。
(2) キーを押したときに編成が停車していた場合、発車する。

2006/10/29
今回は、前回示したメソッドsubStopから(SetEventZeroSpeed命令で設定される)停車イベントによってcallされるメソッドsubStopped以降、編成を再出発させるまでの流れを解説します。この一連の流れでは、以下のことをおこないます。
(1) 停車してから一定時間待つ。
(2) グローバル変数VarFlagの値が1であれば方向転換する。
(3) さらに一定時間待つ。
(4) 再出発する。
param
{
name WizStopTime
type int
default 2500
range 1000 30000
guide "停車時間の半分(単位ミリ秒)。停車後、この時間が経過すると方向転換がおこなわれ、さらに同じだけ時間が経過すると出発する。"
}
ここで受け取ったWizStopTimeを使って、(1)〜(4)の処理をおこなうメソッドを以下に示します。

2006/10/28
今回は変数VarParameterの距離だけ走って期待の停車位置にピタリと止めるメソッドsubStopの中身について解説します。ここには、停車した後の動作(必要に応じて方向転換し、再発車する)のための準備も含まれます。
//↓独自の初期化処理(グローバル変数宣言等)はここで
Var VarParameter //パラメータ保存用
Var VarFlag //折り返し運転フラグ
Var IDEvent //イベントID
Var VarStartVoltage //減速開始時の電圧
Var VarStartTime //停車・再出発所要時間
//↑ここまで
では、肝心のメソッドsubStopの中身です。これを既に組み込み済みのメソッドsubSpeedの後に書き加えます。
BeginFunc subStop
//
//VarParameterの距離だけ走行して停車するメソッド
//
//既に停車イベントが設定されていれば、一旦これを解除する
KillEvent IDEvent
//停車イベント設定
SetEventZeroSpeed subStopped IDEvent
//停車所要時間算出
Var TmpSpeed
Var TmpTime
GetCurrentSpeed TmpSpeed
div TmpSpeed 3.6
mov TmpTime VarParameter
mul TmpTime 300.0
div TmpTime TmpSpeed
cnvint TmpTime
//再出発用電圧・加速所要時間記録
GetCurrentVoltage VarStartVoltage
mov VarStartTime TmpTime
//減速開始
SetTimerVoltage 0.0 TmpTime
EndFunc
