■目次
- 1. 概要
- 2. Syntax
- 3. The This section
- 4. The PilotLamp section
- 5. The Needle section
- 6. The DigitalNumber section
- 7. The DigitalGauge section
- 8. The LinearGauge section
- 9. The Timetable section
- 10. The Windscreen section
- 11. Available subjects
■ 1. 概要
panel2.cfg ファイルは lampやneedle等、運転台パネルを使用するための要素について表示、配置などの場所を定義することにより、2D運転台パネルを作成できます。
panel2.cfg ファイルは任意のエンコードで記述されたプレーンテキストですが encoding, 、好ましい選択としてはバイトオーダー付きのUTF-8です。 The parsing model に用いる数字は ルーズですが、 それでも出力にあたっては 厳密な 出力をすることが望ましいです。 このファイルは必ずTrainフォルダー内に配置する必要があり、 panel2.cfgという名前にする必要があります。 ファイルは各行ごとに上から下に解釈されます。
レイヤー
パネル内の全ての要素はレイヤーに紐づけされています。 レイヤーは整数で記述されます。 小さな値はより背景寄りに、大きな値は前景寄りに配置されます。 要素を配置する際は、同じレイヤー番号に重複しないよう留意する必要があります。 パネルの背景イメージは常にレイヤー番号0に関連付けられているため、その上に配置する要素はつねにレイヤー番号1以上で始まる必要があります。パネルの背景画像の更に背後に要素を配置する場合は、同様に負の数を使用して、此等のレイヤーを表すことが出来ます。
Daytime と nighttime イメージ
テクスチャを取得する全ての要素に対して、昼間と夜間用の異なるテクスチャを指定できます。照明の条件と追加の路線データからの命令に応じて、OpenBVEは昼間と夜間のテクスチャの中間的なブレンドの結果を表示します。夜間のテクスチャを使用しない場合は、対応する夜間の画像をシミュレートするために、昼間の画像が暗くなります。
➟ panel2.cfgのクイックリファレンスも参照して下さい…
重なりとライティング
運転台パネルのデータはオーバーレイとしてレンダリングされます。これは、運転台画像が常に風景のオブジェクトの手前に表示されることを意味します。この方法では、雨、壁、その他の遮るオブジェクト運転台画像内で誤ってレンダリングされることはありません。 周囲の明るさは運転台に反映されますが、運転台は常に白色光を反射しているように見えます。
■ 2. 文法
ファイル内の各行は空(または空白)飲みにすることが出来、またその行は無視され、新しいセクションの開始をマークするか、セクション内にキーと値のペアを含めることが出来ます。全てのキーと値のペアは、最後に開かれたセクションと関連付けされます。
新しいセクションを開くには、行を開始ブラケット (U+005B) で開始し、終了ブラケット (U+005D)で終了します。 カッコ内のテキストはセクション名を示し、大文字と小文字を区別しません。 行の最初と最後の空白、及びセクション名の最初と最後の空白は無視されます。従って、セクションの先頭は次の形式になります:
キーと値のペアは、キー、等号 (U+003D)、そして値を与えることで示されます。 キーは大文字と小文字を区別しません。 行頭と末尾、及び等号の前後の空白は無視され、または、キーと値を囲む空白は無視されます。 従って、キーと値のペアは次のような書式をとります:
一部の値は、カンマで区切られた複数の部分にさらに分割されます (U+002C)。
コメントは行末のどこでも使用可能です。 コメントはセミコロン (U+003B)で始まります。 コメントは存在する場合、処理される前に全ての行から削除されます。
■ 3. This セクション
This セクションはパネルの背景イメージを用いる為の定義や、解像度を定義します。このセクションは、ファイル内で一度だけ使用できます。
これをを定義することにより、セクションを開始します。
背景画像のどのピクセルがデフォルトのカメラ位置の消失点に対応するかを定義します。これは、2本のレールが直線の線路上で水平線に収束するポイントです。 Center と Origin の関係は、運転台の位置合わせの yaw と pitch に影響します。
背景画像のどのピクセルがデフォルトのカメラ位置の消失点に対応するかを定義します。これは、2本のレールが直線の線路上で水平線に収束するポイントです。 Center と Origin の関係性は、運転台パネルの yaw と pitch に影響します。
カメラの制限がデフォルトのカメラ設定に影響する場合
カメラの制限は、Panel2.cfgで作成された運転台データ内のカメラの見え方を、 Left、 Right、 Top、Bottomで指定された長方形に制限する機能です。 Center と Resolution の設定により、デフォルトのカメラ設定でも、指定された領域外のパーツがカメラに表示された場合でも、カメラの位置が変更されて、ビューが運転台パネルの範囲内に表示されることが保証されます。 Center と Origin の設定がこの影響を受けないことを確認するには、 CAMERA_RESTRICTION キー (デフォルト: CTRL+R) を押してカメラの制限を無効にし、CAMERA_RESET キー (デフォルト: num 5) を押して、カメラをリセットします。それによりCenter と Origin の値は 記述されたとおりの挙動をし、 Resolution、 Left、 Right、 Top、 Bottom、Center、Originの関係で考えられる問題を明確にすることが出来ます。
■ 4. PilotLampセクション
PilotLamp せくしょんでは、表示または非表示にできるインジケーターを作成できます。此等のセクションは、必要な数だけ使用することが出来ます。
PilotLampセクションを使用する場合は、 DaytimeImage を指定する必要があります。 PilotLampを表示させたい場合は Subject は1を返す必要があります。そうでない場合は非表示になります。
これをを定義することにより、セクションを開始します。
Top: 画面の上端が挿入されるY座標を示す浮動小数点数。デフォルトは値は0です。
■ 5. Needle セクション
Needle セクションは、 回転する要素、または針を作成します。 此等のセクションは必要な数だけ使用できます。
Needleにはイメージを用い、DaytimeImage (必須) or NighttimeImage (オプション), は Origin で定義された中心により回転し、 Radius が定義されている場合オプションで拡大縮小されます。 描かれている針の画像は上を向いている必要があります。
これをを定義することにより、セクションを開始します。
CenterY: A floating-point number representing the y-coordinate of the center of rotation in terms of the background image. The default value is 0.
The Y value in the Origin key-value pair defines the vertical point of rotation, but also defines the actual radius of the element in the bitmap’s own pixel coordinates. If ValueInPixels is set to a different value than this actual radius, the image will be scaled by a factor of Radius / Y, while preserving the Origin-Center relation. If you do not want to scale the image, set ValueInPixels to the same value as Yin the Origin key-value pair, or omit Radius altogether.
Multiplies the images by the color specified by HexColor. Setting HexColor to #FFFFFF (white) preserves the original color of the images, while setting HexColor to #000000 (black) produces black images. Pixels defined as being transparent via TransparentColor are not affected.
Y: A floating-point number representing the y-coordinate that corresponds to the image’s center of rotation. The default value is half the image height.
Defines the natural frequency. In an undamped oscillatory system, this is the angular frequency in radians per second. As soon as damping is performed, the frequency will decrease with convergence of the oscillator. A natural frequency of 0 will not allow any rotation to be performed. Higher values roughly correspond to radians per second. If specified, DampingRatio should also be specified.
Defines the damping ratio for the oscillatory system. Values between 0 and 1 represent under-damping, 1 represents critical damping and values above 1 represent over-damping. Compare the following illustration in which the angle of rotation changes from 0 to 1 over time:
If specified, NaturalFreq should also be specified.
■ 6. The DigitalNumber section
The DigitalNumber section creates an indicator that can switch between multiple states, useful to build up a display of decimal digits. You can use as many of these sections as required.
The image used for the DigitalNumber, defined by DaytimeImage (required) and NighttimeImage (optional), is comprised of the individual states, which are stacked vertically, anchored at the top of the image. The width of a single state is equal to the width of the image, while the height of a single state is defined by Interval (required). The Subject used needs to return an integer from 0 (first element) to n-1 (last element), where n is the number of elements. If a value outside of that range is returned by Subject, the DigitalNumber will be made invisible.
これをを定義することにより、セクションを開始します。
Top: 画面の上端が挿入されるY座標を示す浮動小数点数。デフォルトは値は0です。
■ 7. The DigitalGauge section
The DigitalGauge section creates a solid-color square of which only a radial section is shown at a time. You can use as many of these sections as required.
There are three important angles to consider. The InitialAngle defines which angle corresponds to the Minimum value, while LastAngle defines which angle corresponds to the Maximum value. The current value at a given time corresponds to the current angle. The solid-color square will only show the part that is between the current angle and the LastAngle. If InitialAngle is less than LastAngle, the solid-color square will wind clockwise. If InitialAngle is greater than LastAngle, the solid-color square will wind counter-clockwise.
The subject needs to return a value that meaningfully works together with the Minimum and Maximum settings.
これをを定義することにより、セクションを開始します。
CenterY: A floating-point number representing the y-coordinate at which the top of the image is inserted. The default value is 0.
If Radius is negative, it is treated as if it was positive, but the entire LED is rotated by 180 degrees.
The absolute difference between InitialAngle and LastAngle may not exceed 360 degrees.
The absolute difference between InitialAngle and LastAngle may not exceed 360 degrees.
■ 8. The LinearGauge section
The LinearGauge section creates a panel layer, which uses texture shifting to create a sliding linear gauge. You can use as many of these sections as required.
Consider a standard openBVE face:
As you can see, the horizontal texture-coordinates upon this face are 0 at the right and 1 at the left. Thus, the value given by Minimum represents 0 Maximum, represents 1, and the current value may then be calculated as a simple percentage.
Further, the direction of the texture shift may be changed from horizontal to vertical (or both) by using the Direction parameter.
これをを定義することにより、セクションを開始します。
CenterY: A floating-point number representing the y-coordinate at which the top of the image is inserted. The default value is 0.
YDirection: -1: Translates from top to bottom 0: No translation is performed 1: Translates from bottom to top. The default value is 0.
■ 9. The Timetable section
The Timetable section defines where to place custom timetables. The actual images are loaded via the route file. Only one Timetable section may be used within the file.
これをを定義することにより、セクションを開始します。
Top: 画面の上端が挿入されるY座標を示す浮動小数点数。デフォルトは値は0です。
■ 10. The Windscreen section
The Windscreen section defines a set of animated raindrops / snowflakes and windscreen wipers.
これをを定義することにより、セクションを開始します。
■ 11. Available subjects
A subject is composed of a base subject and an optional subject suffix. The subject controls what information is fed to the element that uses the subject. For example, a Needle can use the subject kmph to be fed with the current speed of the train in kilometers per hour, or with the mr subject to show the main reservoir pressure.
● Base subjects
Base | subjectDescription |
---|---|
acc | Returns the (signed) acceleration of the train in meters per second squared (m/s2). |
atc | Equivalent to ats271. |
atsi | Returns the state of the ith plugin variable, depending on the plugin used. This is the same as pluginState[i] in animated objects. For the built-in safety systems ATS and ATC, see below. |
locobrakecylinder | Returns the pressure of the brake cylinder on the driver’s car in kPa (1000 Pa). |
bc | Returns the pressure of the brake cylinder in kPa (1000 Pa). |
locobrakepipe | Returns the pressure of the brake pipe on the driver’s car in kPa (1000 Pa). |
bp | Returns the pressure of the brake pipe in kPa (1000 Pa). |
brake | Returns the currently selected brake notch. For trains with automatic air brakes, 0 represents RELEASE, 1 represents LAP, 2 represents SERVICE and 3 represents the emergency brake. For trains without a hold brake device, 0 represents released brakes, i represents brake notch i and n+1 represents the emergency brake, where n is the number of brake notches the train has. For trains with a hold brake device, 0 represents released brakes, 1 represents the hold brake, i+1 represents brake notch i, and n+2 represents the emergency brakes, where n is the number of brake notches the train has. |
locobrake | Returns the currently selected Loco Brake notch. |
csc | Returns 1 if the const speed system is currently active and 0 otherwise. |
door | Returns a value between 0 (open doors) and 1 (closed doors). |
doorli | Returns a value between 0 (open) and 1 (closed) for the left doors of car i, or 2 if the car does not exist. Car index 0 represents the first car in the train, and n-1 the last car, where n is the number of cars in the train. |
doorri | Returns a value between 0 (open) and 1 (closed) for the right doors of car i, or 2 if the car does not exist. Car index 0 represents the first car in the train, and n-1 the last car, where n is the number of cars in the train. |
doorbuttonl | Returns 1 if the left door button is currently pressed, 0 otherwise. |
doorbuttonr | Returns 1 if the right door button is currently pressed, 0 otherwise. |
er | Returns the pressure of the equalizing reservoir in kPa (1000 Pa). |
hour | Returns the integer part of the current hour. |
kmph | Returns the absolute speed of the train in kilometers per hour (km/h). |
min | Returns the integer part of the current minute. |
motor | Returns the acceleration which the motor of the first motor car currently generates in m/s2. |
mph | Returns the absolute speed of the train in international miles per hour (mph). |
mr | Returns the pressure of the main reservoir in kPa (1000 Pa). |
ms | Returns the absolute speed of the train in meters per second (m/s). |
power | Returns the currently selected power notch. This is an integer between 0 and n, where n is the number of power notches the train has. |
rev | Returns the currently selected reverser position. 0 represents backward, 1 represents neutral and 2 represents forward. |
sap | Returns the pressure of the straight air pipe in kPa (1000 Pa). |
sec | Returns the integer part of the current second. |
true | Always returns 1. This is useful for the PilotLamp element in order to always show the associated bitmap. |
Klaxon | Returns the currently playing horn (if any) as follows: (0) No horns are playing (1) The primary horn is playing (2) The secondary horn is playing (3) The music horn is playing. Note If multiple horns are playing, the lowest value will be returned. |
PrimaryKlaxon | Returns 1 if the primary horn is currently playing, 0 otherwise. |
SecondaryKlaxon | Returns 1 if the secondary horn is currently playing, 0 otherwise. |
MusicKlaxon | Returns 1 if the music horn is currently playing, 0 otherwise. |
passAlarm | Whether the station pass alarm has been activated. Returns either 0 (inactive) or 1 (active). |
pilotLamp | The state of the pilot lamp (Doors closed & ready to start). Returns either 0 (unlit) or 1 (lit). |
stationAdjustAlarm | Whether the station adjust alarm has been activated. Returns either 0 (inactive) or 1 (active). |
wiperPosition | The current position of the wiper blade on the panel. Ranges from 0 (left) to 100 (right) |
wheelSlip | Whether the train is currently experiencing wheelsip. Returns 1 if true, 0 otherwise. |
sanders | Whether the sanders are currently active. Returns 1 if true, 0 otherwise. |
sandLevel | Returns the current sand level. |
If atsi is used with the built-in safety systems ATS and ATC, the following mapping for i applies:
i | English | 日本語 | Return values | ats271 | 意味 | |
---|---|---|---|---|---|---|
256 | ATS | ATS | 0 (unlit) or 1 (lit) | 0 | ATC not available | |
257 | ATS RUN | ATS 作動 | 0 (unlit), 1 (lit) or 2 (flashing) | 1 | 0 km/h | |
258 | ATS RUN | ATS 作動 | 0 (unlit / non-flashing), 1 (lit / flashing) | 2 | 15 km/h | |
259 | P POWER | P 電源 | 0 (unlit) or 1 (lit) | 3 | 25 km/h | |
260 | PTN APPROACH | パターン接近 | 0 (unlit) or 1 (lit) | 4 | 45 km/h | |
261 | BRAKE RELEASE | ブレーキ開放 | 0 (unlit) or 1 (lit) | 5 | 55 km/h | |
262 | BRAKE APPLY | ブレーキ動作 | 0 (unlit) or 1 (lit) | 6 | 65 km/h | |
263 | ATS P | ATS-P | 0 (unlit) or 1 (lit) | 7 | 75 km/h | |
264 | FAILURE | 故障 | 0 (unlit) or 1 (lit) | 8 | 90 km/h | |
265 | ATC | ATC | 0 (unlit) or 1 (lit) | 9 | 100 km/h | |
266 | ATC POWER | ATC 電源 | 0 (unlit) or 1 (lit) | 10 | 110 km/h | |
267 | ATC SRV | ATC 常用 | 0 (unlit) or 1 (lit) | 11 | 120 km/h | |
268 | ATC EMG | ATC 非常 | 0 (unlit) or 1 (lit) | 12 | ATS is active | |
269 | CONST SPEED | 定速 | 0 (unlit) or 1 (lit) | |||
270 | EB | EB | 0 (unlit) or 1 (lit) | |||
271 | ATC speed indicator | 0 - 12, see table on the right |
● Suffixes
Subject suffix | Description |
---|---|
di | With d0 for the ones, d1 for the tens, d2 for the hundreds, etc., this suffix returns a value between 0 and 9 corresponding to the respective digit of the underlying subject, but only if the value of the subject is less than 10 for d1, less than 100 for d2, etc., otherwise this suffix returns 10. |
Example: kmphd1 can be used to feed a DigitalNumber with the tens of the current speed of the train in kilometers per hour. The image used by the DigitalNumber will thus need to be composed of images from 0 to 10 in order to show all possible states kmphd1 can return, where images 0 through 9 correspond to the digits, and 10 corresponds to an image shown at the tens when the speed is below 10 km/h (e.g. another 0-digit, or blank space).