たまにはVRMの話も書く、一往“VRM”入道だし。
運転のキー
書込:モケキチ さん DATE:2007/06/24(Sun) 17:22 メッセージNo.5145
前進は上向き矢印キー、ストップは下向き矢印キーで動きますがバックがわかりません。キーボード上の操作方法を教えてください。
Re: 運転のキー
KSMaster さん- 2007/06/24(Sun) 17:37 メッセージNo.5146
バックはできません。HOMEキーで方向転換をしてください。
引用は同種のやりとりの代表として直近のものを拾っただけで、特にモケキチ氏とKSMaster氏に意趣はない、念のため。
数えたことはないのだが、テンキー無しキーボードの問題もあって、おそらくこの質問が会議室の最頻出ではないか、と思うんだけども、不意に、ひょっとしてこれが繰り返されるのはキーボードの仕様が原因ではないのではないか、という気がしたのでメモしておく。
引用したモケキチ氏もそうだが、大抵この質問には“方向転換のやり方がわかりません”ではなく“バックするにはどうしたらいいですか”という表現が使われる。そして、親切な誰か(引用ではKSMaster氏)がHOMEキーを押せと言うか、あるいはテンキー無しキーボードでの対処方法を示すワケだが、実は質問者が本当に知りたいのは、方向転換の方法ではなく、バックの方法ではないか、と思っている。
つまり、たとえば駅などでオーバーランした際に、現在のカメラ視点はそのままに、少しだけ逆進させて停車位置に戻したい、というのが、大半の質問者の真意なのではないか、という気が突然した。
結論から言うと、現行VRMにはバージョンを問わずそういう機能は
不思議なことにない。また、リアル鉄道模型ならまだしも、オーバーランしたから元に戻したい、という願望も、冷静に考えると「なんでそんなことに拘るの?」というレベルの話であるから、これまで誰もその可能性を省みなかったのではないか、あるいは、ボク同様に「ひょっとしてそうなんじゃねの?」と思いつつも、敢えて議論の俎上に乗せる必要性を感じなかったのではないか、という気がする。
で。
以下はボクの勝手な妄想であるから、真に受けるも受けないも読者諸兄の眼鏡に委ねるのだが、この“カメラの向きをそのままに編成を逆進する”という機能がVRMにない理由は、大雑把に2つ考えられる。つまり“技術的に不可能”か“I.MAGiCがその必要性を感じていない”のどちらかだ。多分、後者だと思う。
と言うのも、アップデータ4.0.4.0以降、センサーが、従来の編成の最初の台車に加え、編成末尾の台車を検知できるようになったが(SetSensorMode命令)これは、VRMビュワーは先頭台車のみならず、少なくとも末尾台車の空間内での位置を、先頭台車と同じレベルで(つまり、先頭台車からの演算の連鎖の結果としてでなく)知っていることを意味しているように思われる。多分、他のすべての台車についてもそうだとは思うが、ここでは捨ておく。
編成カメラの動作を見る限り、フライスルーカメラを除いて、すべて編成の先頭台車に対する相対位置でカメラ位置及び視線位置を算出しているように見える。ということは、同じロジックを末尾台車に適用すれば、編成の方向転換と同時にカメラ基準位置を末尾台車に切り替えれば、当初の進行方向を向いたままバックする、ということは、理屈の上では可能なはずだ。
で、これを以って「ゴルァ、さっさとそういう編成カメラを実装しやがれ」と言うほど、ボクは短気でも傲慢でもない。むしろ、編成カメラがVRMの基本動作と深く関わる機能であるがゆえに、軽々な機能追加はご遠慮いただきたいくらいだ。が、おそらく“カメラ方向はそのままに編成を逆進させたい”というニーズは、かなり多くのVRMユーザーが共有しているような気がする。
そこで妥協案なのだが、先頭/末尾台車(車両番号+台車番号で任意台車を選択する、でもOK)の位置と向きをVector型変数に取得するスクリプト命令を用意してはもらえないものだろうか。これなら値の参照だけなので、機能追加が思わぬ副作用を伴う可能性は低い。もちろん、これだけでは誰も何も出来ないだろうから、後はボクが勝手に引き受ける。具体的には、逆進運転や、その他諸々の、この機能によって実現可能なカメラをすべてスクロールで提供する。悪い取引ではないと思うんだけども、どーよ?>中の人
そういうカメラが欲しいぞ、と共感してくださった方は、適当に同意の声を適当な方法で挙げちゃってください。よろしく。