こんにちは(*・ω・)ノ
アンケートで、今のところ「BVE5の路線データの基本的な作り方」と「BVE5の路線データの作り方(基本から一歩踏み込んだくらい)」が6名ずつで明らかに高いものとなっているので基本的→一歩踏み込むという形で行きたいと思います。
と言っても、私自身が初心者なので、どこまでできるかわかりません('A`|||)
ただ、逆に初心者が説明することで初心者にわかりやすい説明ができるのではないかと思うので、始めます(´∀`)

記念すべき第1回目は「BVE5のデータの仕組みについて」です。
初歩の初歩ですので、どうでもいい方は飛ばしてください。

BVE5(以下BVE)はこのような仕組みというか成り立ちになっています。
01
ただ、本当に初心者の方はこれを見ても???っていう状況だと思いますので、順を追って説明していきます。
※ここで例としてとりあげるtxt、csvファイルはSIGMA作の上田電鉄別所線のものを使っています。


まず、
●Scenario(.txt)についてです。
Scenario.txtとはBVEを動かすうえでなくてはならないものです。
Scenario.txtが路線データと車両データをまとめ、プレーできるようにしてくれています。
Scenario.txtは基本的にこのような作りです。
scenario
まず、一行目のBvets Scenario 1.00
これはScenarioファイルであることを表しています。
これを入力しないとScenarioファイルとして機能しません。
2行目は空行(空行にしなくてもいいとは思いますが、一応空けています)。
3行目以降は別のもので解説します。
scenario_a1
各行の内容に番号を振りました。
以下はBVEを起動させたときに出るシナリオ選択画面との内容を番号で対比させたものです。
scenario_a2
しっかり解説すると、
①は種別や列車番号
②は作者
③は表示される画像
④はmap.txt(路線データ)
⑤は路線名
⑥はVehicle.txt(車両データ)
⑦は車両名(車両形式)
⑧は作者からのコメント(運転区間、特記事項など)
となっています。



はい。
ここで、Scenario.txtからmap.txtとVehicle.txtに枝分かれする理由です。
Scenario.txtを見ると、
scenariob
つまり、Scenario.txtがmap.txtとVehicle.txtを指定しています。
このScenario.txtがこのシナリオで運転する路線データと運転する車両を組み合わせてくれているのです。
Scenario.txtはこの辺にしておきます。


Vehicle.txtのほうを説明することが私にはできないので、Map.txt(map.txtもMap.txtも同じものですからご安心ください)に行きます。
Map.txtはこんな感じです。
map
Map.txtは基本的に駅の位置やストラクチャーの設置位置、サウンドデータを鳴らす位置、対向列車の位置や動き、カーブ、勾配、制限速度などを設定します。
Map.txtのこれらの入力方法は今後、個別に書いていきます。

さて、ではここでMap.txtから
ストラクチャー
シグナル(信号)
サウンド(アナウンス系)
サウンド(踏切の警報音など)
ステーション(駅)
トレイン(他列車)
などのファイルへ枝分かれする理由を説明します。

Map.txtの上部
mapb
赤枠で囲った部分に注目していただくと、
 Structure.Load(structures.csv);
 Signal.Load(signals.csv);
 Sound.Load(sounds.csv);
 Sound3D.Load(sounds3d.csv);
 Station.Load(stations.csv);
 Train.Add(1004, 1004.txt);
 Train[1004].SetTrack(1, -1);
とあります。
Structure.Load(structures.csv);でストラクチャー
Signal.Load(signals.csv);で信号
Sound.Load(sounds.csv);でサウンド
Sound3D.Load(sounds3d.csv);で踏切の警報音などのサウンド
Station.Load(stations.csv);で駅
Train.Add(1004, 1004.txt);で他列車
Train[1004].SetTrack(1, -1);で設定した他列車の詳細設定
をしています。
これらの○○.Loadという部分は変更できません。
このまま入力してください。
(●●.csv);の部分はファイル名に合わせます。
SIGMAが作っているデータではmackoyさんの京成線に合わせていますので上記のようになっていますが、もし仮にstructures.csvをカタカナで「ストラクチャー.csv」やsignals.csvを「信号.csv」と保存しても基本的には、かっこ内をStructure.Load(ストラクチャー.csv);とSignal.Load(信号.csv);とすれば読み込めるはずです。

ここからは個別に説明していきます。
Structure.Load(structures.csv)
structures
こんな感じです。
1行目にbvets structure list 0.02
これはストラクチャーのリストであることを示すのでこのまま入力してください。
2行目からは
Aの列にストラクチャーキーを入力します。
【ストラクチャーキーとは?】
作者が好きに決められるストラクチャーのあだ名的なものです。
BVE2やBVE4ではRail/Pole/Ground/Wall...などと指定されたものに対応するものを指定していくというスタイルでしたが、BVEではこれらを自分で決められるようになりました。
つまり、めんどうだから上から0,1,2,3,4,5,6...という風にしてもいいですし、
今までより細かくUeda_Station、Shiroshita_Station、Chikuma_riverなどと自分が分かりやすいように決められるようになりました。

Bの列はストラクチャーファイルパスを入力します。
【ストラクチャーファイルパスとは?】
ストラクチャーファイルのある場所を指定します。
たとえば、structureフォルダのuedadenntetsuフォルダのrailフォルダにあるRail01.xというものを使うときは、
structure¥(半角入力できないので全角としています)uedadenntetsu¥rail¥Rail01.xとします。
これはイメージしやすくると
マイドキュメントの中にあるマイピクチャの壁紙というフォルダにある300.jpgという画像をこの方法で指定するならば、
マイドキュメント¥マイピクチャ¥壁紙¥300.jpgという風になります。
ファイルパスはBVEで必要になる知識ですのでしっかり覚えておいてください。


次にsignals.csvに行きます。
signal
1行目のbvets signal aspects list 0.01でシグナルリストであることを示します。
このまま入力してください。
Aの列にタイプを入力します。
これは信号現示に関係します。
たとえば
Type0をR(停止)→YY(警戒)→Y(注意)→G(進行)と動く信号機
Type1をR→Y→YG(減速)→Gと動く信号機
とするときなどに使います。
電車でGO!のせいで4灯式信号機はR→YY→Y→YG→Gと動くと考えている方も多いかもしれませんが、
実際、4灯式信号機はR→YY→Y→GかR→Y→YG→Gの2種類となっています。
1つの4灯式信号機がYYとYGを両方を現示することはありません。
B~Gの列には現示パターンを入力します。
ちなみに画像ではSignal0Lなどと入力してあります。
これはストラクチャーとみなされていて、ストラクチャー.csvで指定したストラクチャーキーを入力しています。
ですから、逆に言えば、ストラクチャー.csvで自作の信号機を指定すれば自分だけの信号機で自分の現示を考えることができます。
なお、Bの列にR、Cの列にYY、Dの列にY、Eの列にYGF(抑速)、Fの列にYG、Gの列にGと入力するのが一般的です。
ただ、YGF現示にしたときにどう点滅させるのかは今のところ私にはわかりませんww
ですので、上の画像の信号、Type0はRとYとGを現示する設定となっています。
※ちなみに、、、R/YY/Y/YG/YGF/Gってなに?って思ってる方いるかと思いますが、
信号現示の色を見れば一目瞭然です。
R=Red(停止)/YY=Yellow,Yellow(黄色2色は警戒)/Y=Yellow(黄色1色は注意)/YG=Yellow,Green(減速)/
YGF=Yellow,Green,Flash(黄、緑の点滅は抑速)/G=Green(進行)
ですから、5灯式信号機の一部や6灯式の信号機の高速信号はGGのはずですww

>エクセレさんからの補足(コメントを引用させていただきます)
//---------------------------------------------引用開始
signals.csvについて補足します。

signals.csvはMap.txt内の構文Section.BeginNew(0,1,N・・・)とATSプラグインと連動しているので注意してください

まず、Excelで見てB列が0でC列が1という順番でIW列が255になります。(ココまで指定可能?)
Map.txtでSignal[signalAspectKey].Put(パラメータは省略・書くともっと長くなる)
signalAspectKeyはsignals.csvのA列で指定したKeyを入力すことで利用可能ですが
この構文だけでは常に赤信号(B列に入力した信号)です。
では、どうすればいいかと言うとSection.BeginNewで閉塞を設定します。

閉塞についてはこちらを参照(公式の解説より解かりやすい)
http://iiyamaline.web.fc2.com/bve/plugin/route.html

Vehicle.txtで指定されるATSプラグインによって利用可能な信号現示が変化したりします。
BVE2互換保安装置(ats1.dllやats2.dll)では
0停止(R)/1警戒(YY)/2注意(Y)/3減速(YG)/4進行(G)です。
※多くのATSプラグインはこのタイプです

京成千葉線で使用されている(KqAts.dll)では
このページの通りのものになります

なお、抑速信号などの点滅するストラクチャには現在対応していません
Openbveなら出来るらしいが
ちなみにですが高速進行現示(GG)に対応したATSプラグインは今のところありません。

参考程度に自分が作ったBVE5用シナリオ「標準軌の鉄道」をBVE作成支援事務所にて公開中です。
http://bvessj.net/
//--------------------------------------------引用終了

続いて、sound.csv
sound
1行目はbvets sound list 0.01
これでサウンドリストであることを示します。
このまま入力してください。
2行目からは
Aの列にサウンドキー
(サウンドキーもあだ名的存在です。ストラクチャーキーと使い方は変わりません)
Bの列はサウンドファイルパス
(サウンドファイルパスもストラクチャーファイルパスと同じように入力してください。ただし、サウンド形式はwaveサウンドのみです。入力時は.waveではなく.wavです。)
Cの列に必要であればバッファ数
(sound.csvで使うものは基本的に関係ありません)

sounds.csvで扱うもの
列車内でのアナウンス
無線
到着・発車アナウンス
など、基本的に1度だけ使用するもの(連続で流したりしないもの)

続いて、sound3d.csv
sound3d
sounds.csvと同じく、
1行目はbvets sound list 0.01
2行目からは
Aの列にサウンドキー
Bの列はサウンドファイルパス
Cの列に必要であればバッファ数
(ヒロピョンさんによりますと
>sound3dは、たぶん一つの種類のサウンドで100メートルに一つしか設置できません。
>だから、2つ以上設置すると、自車両に近いほうだけが再生されて、その再生されたところから100メートル過ぎると、次のが鳴る仕組みになっているのではないかと思います。
>ですが、それではだめなので、バッファ数と言うのがあり、その数だけ100メートル内で同じ種類のサウンドが再生できるのだと思います。
>なので、100メートル内で一番鳴らすところが多いところでそのサウンドの数を調べて書けばいいと思います。

とのことです)

sounds3d.csvで扱うもの
踏切の警報音など特定の位置で連続で再生するもの


続いて、Station.Load(stations.csv);ですが、
基本的には以前、説明していますのでこちらを
http://blog.livedoor.jp/nagano_railway/archives/52751992.html
http://blog.livedoor.jp/nagano_railway/archives/53258659.html
駅名の文字化け防止策↓
http://blog.livedoor.jp/nagano_railway/archives/53321166.html


Train.Add(1004, 1004.txt);について
(1004・・・①, 1004.txt・・・②)とすると
①の1004はトレインキーとでもいうべきものです。
お好きに対向列車の名前というかあだ名を決めることができます。
②は対向列車のtxtです。
これはまた説明させていただきます。
対向列車のテキストファイルは必ずmap.txtと同じフォルダにおいてください。

最後にTrain[1004].SetTrack(1, -1);について
[1004]はTrain.Add(1004, 1004.txt);で設定したトレインキーです。
SetTrackのかっこは(走る線路,走る方向)です。
走る線路に関しては後々map.txtの詳細で説明していく予定ですが、
0は自線(プレイヤーが走行している線路)
1~∞は他線です。
走る方向は-1が対向、1は並走です。
つまり、-1にで走る線路を0にしてしまうと衝突します。(最後の駅で併結されたりするのであればそれも可能です。)

長くなりましたが、第1回はここまでにします。
お疲れ様でした。
これを持って
Scenario.txt
structures.csv
signals.csv
sounds.csv
sounds3d.csv
stations.csv
Train.Add( , );
Train[ ].SetTrack( , );
についての説明を終わりにします。
第2回はmap.txtを書き出す準備について書いていきます(☆゚∀゚)