https://linen.dev logo
進行方向の左右判定について
# forum
r
RTMのドア開閉機能では乗っている台車の位置を基準に左右を判定していますが、車両のモデル側で左右を決めてしまうと置いた方向によっては逆側になる現象が発生しています。  進行方向常に左側or右側のオブジェクトだけに警告を表示させたい場合、どのように左右判定をするべきでしょうか。有識者の方アドバイスをお願いします。
p
'entity.doorMoveL'や'entity.doorMoveR'(0~60)といった変数は編成の進行方向に合った値を示すのでそれらを利用したらいいと思います。
そのオブジェクトは左右どちらにも付いていて、ドアの開閉に沿った動作をさせたいが、編成の向きによって反対になってしまうという認識で合ってますよね? そうでないのであれば別の案を模索しなければなりません。
r
開閉予告案内を出すときに編成の置いた向きによって方向が固定されてしまう問題のことです。 スクリプトのテッセレーター制御なので強制的に座標が固定されるために左右の判定が難しくなっています
p
予告案内なのでドアの開閉を感知する前に左右を知りたいということですね。
‘entity.getFormation().getEntry(entity).dir’を使用してはどうですか。車両の向きの方向が正なら1、負なら0を返すのでこれで場合分けします。
r
ありがとうございます。使用してみます。
ちなみにこの正の向き負の向きは何を基準にしていますか?またこれは編成全体で同じ値を共有していますか?
p
車両ごとのはずです
y
各車両(号車)ごと、モデルZ軸+方向と編成の進行方向が一致しているかが出るはずです。 編成の進行方向は、前照灯や転換クロス座席の描画で使うような、前後どちらの運転席判定に座ったかで切り替わる奴です
r
なるほどz軸基準でしたか… わかりやすい解説ありがとうございます
p
車両のモデルの向きが反対かどうかの判定は、最終的には前後どちらが運転席になっているかという判定に帰結する思うのですが
例えばこの関数の値が1の場合に反対側に表示するようにすれば、編成内で必ず同じ側に表示させることが可能です
y
(別の関数と混同していたかもしれない……申し訳
p
'entity.seatRotation'ですかね?
y
'FormationEntry'の'dir'と、'trainState(0)'の'direction'がごっちゃになったかもしれません……いずれにせよ曖昧なので、詳しい方の意見の方が参考になると思います
私の言う車両モデルZ軸依存の進行方向判定は後者です
r
ほう
進行方向と車両の向きどっちもとれるんですねこれ
今使おうとしてるものがどっちも使えそうなので書くときに組み合わせで検討してみます
2つの構文とも無事動作できました。ありがとうございます。