« フレキシブル緩和曲線・大半径版 | トップページ | VRM Cloudコンテスト レビュー(その1) »

近況報告(2014/5/1)

ごきげんよう。4月から5月病のAKAGIです。

3月中は結構時間があったのですが、4月になってから本当はもっと暇なはずだったのに妙に忙しくなっています。加えて諸事情で、メインPCのグラボを抜いてしまいましたので、今手元でVRMがマトモに動くパソコンがありません。このメインPCもVista入ってるし6年使いましたので、そろそろ組み立てキットでも買って新調しようかと思っていますがGWも微妙に時間が取れない…。

ということで、ほとんどVRMも撮り鉄も出来てません。PhotoshopとIllustratorは用があるので遅いパソコンで一生懸命やってるんですけど。

さて、書いておかないとそろそろ忘れますので、ポータブル編成についての備忘録。marlboroさんに取り上げていただいた手前、なにか反応しておこう、と。

ポータブル編成の連結・開放機能でまた困ったことになってきました。前回の記事を書いた段階でなんとなく考えていた方針では、東北・秋田新幹線のはやぶさ・こまちや碓氷峠の補機EF63のように、基本編成と付属編成の位置関係が固定な場合はよさそうでした。しかし、東京駅で行われていた寝台特急の機回しを考えると、それが上手くいかないことに気が付きました。

切り離した機関車を、機回し線を使って逆側に付けるというもの。進行方向をフラグ管理しても、場合によって切り離し位置が違うのでは意味が無い。

そこで考えた代替案。(まだコードは一行も書いてません)

  1. Shift+Vを押す
  2. とりあえず編成スクリプトのメソッドがキックされる
  3. 進行方向先頭車両のメソッドをCall(これは、getcarをするとか、CallCarをして一斉呼び出ししてから、ifで先頭車だけが応答する(GetCarPosが使える)ようにすればいい)
  4. 先頭車両は、自分が先頭であるときには、自分からいくつ後ろの車両で開放すればよいか、の数字を持っていて、それを親である編成に返す
  5. 編成スクリプトで、先頭車両からもらった数字を元にUncouple

編成は、もらった数が0だったり妙に大きすぎたりそもそも数字がもらえなかったりしたら何もしなければいい。参照関係が複雑化するのだが、進行方向フラグを管理しなくても良い(?)やり方だ。スマートじゃないようで、スマート。スマートなようで、スマートじゃない。でも、GetDirection2が連結・解放のパターンによっては意味の分からない挙動を起こしていたのでちょうどいい。

若干組み込み手順が面倒になるかもしれないが、ダイアログからGUIでライトON/OFFや車両テクスチャーの設定が出来るいま、ムリヤリスクリプトウィザードでぜんぶ組み込めるようにする必要もないんじゃないかと思う。

ついでに。SetEventHomeを用意してライト制御とかHeadmarkの設定をするのは、ポータブル編成の趣旨からするとあまりよくない。他に運行制御のスクリプトを書いた場合に、そこから方向転換のたびにイチイチポータブル編成のメソッドを呼びに行くというのはスジ違いだ。ポータブル編成のコードはそれだけで完結しているべきであって、他のコードに干渉したりされたりするのはよろしくない。ヘッドマークを切り替えるなら、

あとこんなことも検討中。Shift+Homeで、方向転換+運転台カメラ/最後尾カメラ切替のギミックがシステムでサポートされるようになっている。コレを使った時にポータブル編成のライトまで切り替わるというのは見た目的におかしいから、Shiftと同時押ししたかにかかわらず方向転換からライト切替まで数秒のラグを設けようかと思ってる。間にヘッドライトとテールライト両方点灯させる時間も1秒とか挟まったらそれもカッコイイよね、なんて。

|

« フレキシブル緩和曲線・大半径版 | トップページ | VRM Cloudコンテスト レビュー(その1) »

日記・コラム・つぶやき」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 近況報告(2014/5/1):

« フレキシブル緩和曲線・大半径版 | トップページ | VRM Cloudコンテスト レビュー(その1) »