openbve  車両の表示方法


ここでは、要望の多かったopenbveでの車両の表示方法を紹介します。

まぁ、ソフトはエスパーではありませんから。どの車両を表示させるか、指定する必要があるんですね。

trainフォルダの中の、設定したい車両フォルダ(例:113_6)に、列車オブジェクトを突っ込んでその中に、メモ帳で、extensions.cfg
と、いうファイルを作り、そのファイルには、こんな感じで記述します。


このような位置関係の場合、先頭になる先頭車から、

[exterior]
0 = car\tc-2.csv
1 = car\t.x
2 = car\m.csv

…と、いう感じでに入れていきます。

**もちろんですが、train.datで指定された両数より多く指定されたら余剰分は表示されませんのでご了承ください。
んで、とりあえず。openbveで出してみましょう。

ん?なんか、問題点がいくつかあるようですね。一緒に確認していきましょう。


・前照灯がある車両が後ろ向いている。
・定位置にとまったのにオブジェクトで見るとずいぶん手前にとまったように見える。



勾配や、カーブでドリフトしている。

いろいろ問題点が見つかりましたね。
んでは。それをどんどん解決解決していきましょう。



解決方法
これらの問題は、
・Z方向の座標
・オブジェクトの回転

を行えば解決できます。
まぁ、具体的にこれから方法を示します

***translateall、rotateall構文の活用***
ん?translateall?そんな構文あったっけ?
これらはOPENBVE独自の構文なんです。 使用法はファイルの最後にアクセント的な感じで記述
これはRONさんの209系500番台の構文なんですが……。



1064行目に「translateall,0,0,10」
1065行目に「rotateall,0,1,0,180」                          
と記述これらの構文の意味はのちほど確認しましょうね。





んで、こうなる。なんだ、簡単じゃん。
まぁ、意味を確認しましょう。


「translateall,0,0,10」
訳すと
「このオブジェクト
全体を、X方向に0m、Y方向に0m、Z方向に10m移動する。」

という感じ。

んじゃ、そのZ方向に10mってどっからでてきたんかい? というと


車両の長さ÷2

って感じで、20÷2で10が出てきた。
当然、18m車なら9ですね。
RONさんのデータは後端にZ座標の原点(0)があるから+10だけど、前端にZ座標の原点(0)が来てる作者さんのデータだと、当然のごとく


-(車両の長さ÷2)

ってことでtranslateall,0,0,-10という風になります。

見分け方は、ぱっと見、Z座標の欄が-が多いってところでしょうか。

もっとおかしくなったら、逆の符号にかえりゃいいんです。


「rotateall,0,1,0,180」
訳すと
「このオブジェクト
全体を、X方向に0m、Y方向に1m、Z方向に0mの軸で180°回転する。」

という感じ。

これはまぁ、こんな感じで修正なしで使ってください。
もちろん、向きがあっているときはこれは必要ありません。

んで、これらのことを編成すべてのファイルに実施します。(一つでもやっていないファイルがあると、そこだけおかしいですよ)

*このtranslateall構文とrotateall構文、順番があります。
translateall構文を先に記述してください。



これで基本形は終わりです。
成果

スムーズな感じで改善されています。


きちっと、停止目標とおりに停車しました。


サンプルデータを用意しましたので、必要によってお使いください。
ただし、車両オブジェクトの著作権は、RONさんにありますので、そこだけ注意してください。

*この次紹介する、発展編のサンプルデータも同封です。


                              openbve  車両の表示方法

わかんないこと、追加してほしいことがあったら、
11_132.png   


 by