ビューワーでの手動操作として通常の電圧制御コントローラーではなく鉄道車両らしくノッチで運転する方法を調べていたのですが・・・なんとこのノッチ動作は鉄道車両のものではなく、トランジスタ制御コントローラーのものだということが分かりました(^_^;)
鉄道模型シミュレーターNXには[-3]~[+5]のノッチがあります(表示が[-3]ではなく[3]になってます)が、例えば最高速120.0km/hの485系で試すと
-3 制動大(ブレーキ音が鳴る)
-2 制動中
-1 制動小
0 最高速0.0km/h 惰行のはずが制動にもなる
+1 最高速40.8km/h 力行のはずが制動にもなる
+2 最高速64.8km/h 力行のはずが制動にもなる
+3 最高速88.7km/h 力行のはずが制動にもなる
+4 最高速112.7km/h 力行のはずが制動にもなる
+5 最高速120.0km/h 力行
となり、120km/hで走っていてもノッチを+4にすると減速してしまうのです。鉄道車両であれば力行なので加速するのだから落ちないはずで、惰行なら少しづつ落ちるかな?という所のはずです。動画や記事で鉄道車両と同じノッチ操作が出来ると言ってしまったので、これは作らないといけないと思いました(^_^;) で作ったのがコチラ。
if ev == 'init':
obj.SetInputMode(1)
obj.SetEventKeyDown('9')
obj.SetEventKeyDown('8')
obj.SetEventKeyDown('7')
obj.SetEventKeyDown('6')
obj.SetEventKeyDown('5')
obj.SetEventKeyDown('4')
obj.SetEventKeyDown('3')
obj.SetEventKeyDown('2')
obj.SetEventKeyDown('1')
obj.SetEventKeyDown('Q')
obj.SetEventKeyDown('W')
obj.SetEventKeyDown('E')
obj.SetEventKeyDown('R')
obj.SetEventKeyDown('T')
obj.SetEventKeyDown('Y')
(中略)
elif ev == 'keydown':
if param['keycode'] == '9':
obj.SetNotchFactor(-3, 1.5)
obj.SetCurrentNotch(-3)
if param['keycode'] == '8':
obj.SetNotchFactor(-2, 1.5)
obj.SetCurrentNotch(-2)
if param['keycode'] == '7':
obj.SetNotchFactor(-2, 1.25)
obj.SetCurrentNotch(-2)
if param['keycode'] == '6':
obj.SetNotchFactor(-2, 1.0)
obj.SetCurrentNotch(-2)
if param['keycode'] == '5':
obj.SetNotchFactor(-2, 0.75)
obj.SetCurrentNotch(-2)
if param['keycode'] == '4':
obj.SetNotchFactor(-2, 0.5)
obj.SetCurrentNotch(-2)
if param['keycode'] == '3':
obj.SetNotchFactor(-2, 0.25)
obj.SetCurrentNotch(-2)
if param['keycode'] == '2':
obj.SetNotchFactor(-2, 0.1)
obj.SetCurrentNotch(-2)
if param['keycode'] == '1':
obj.SetNotchFactor(-2, 0.05)
obj.SetCurrentNotch(-2)
if param['keycode'] == 'Q':
obj.SetNotchFactor(0, 0.1)
obj.SetCurrentNotch(0)
if param['keycode'] == 'W':
obj.SetNotchFactor(5, 0.5)
obj.SetCurrentNotch(5)
if param['keycode'] == 'E':
obj.SetNotchFactor(5, 1.0)
obj.SetCurrentNotch(5)
if param['keycode'] == 'R':
obj.SetNotchFactor(5, 2.0)
obj.SetCurrentNotch(5)
if param['keycode'] == 'T':
obj.SetNotchFactor(5, 2.5)
obj.SetCurrentNotch(5)
if param['keycode'] == 'Y':
obj.SetNotchFactor(5, 3.0)
obj.SetCurrentNotch(5)
鉄道車両にはノッチが15段ぐらいあるらしく、[EB]/[B8]~[B1]/[N]/[P1]~[P5]とし、[EB]はブレーキ音がなる[-3]に加速度係数を掛け、[B8]~[B1]は[-2]に加速度係数を掛け、[N]は[0]に加速度係数を掛け、[P1]~[P5]は[+5]に加速度係数を掛けるようにしました。これで大体予定通りの動きになりました。
現状はたくさんのキーを使っていますが、これを2つのキーで上げ下げ出来るようにしたいですね。それと出来ればスプライトを使って表示もしたいところです。