Releases: automatic9045/BveEX
ver2.1 - v2.1.51225.1
ver2.0.8 のリリース後、重大な不具合の報告などなく、一定程度安定して動作していることが確認できたため、本バージョンをもって正式版となります。
BveEX についてはこちら→ BveEX BVE拡張キット - 岡オカ営業所
ver2.0.8 (v2.0.50428.1) からの主な更新内容
クラスラッパー
- 【重要】
null == nullが false になってしまう不具合を修正しました。→ fde7a6a - VehicleStepper クラスを追加しました。→ cc1e43c
- 自列車の制御段の選択処理を操作できるようになりました。
- CarInfo.PowerCreap プロパティ、CarInfo.BrakeCreap プロパティ、CarInfo.UpdateCreap メソッド、CarInfo.Tick メソッドを追加しました。→ fbe35d8
- 自列車の車両の縦クリープ力を操作できるようになりました。
- AssistantText.Draw メソッド、ClockText.Draw メソッド、DetailText.Draw メソッド、GeometryText.Draw メソッド、InstructionText.Dispose メソッド、InstructionText.Draw メソッド、LeverText.Draw メソッド、SpeedLimitText.Dispose メソッド、SpeedLimitText.Draw メソッド、StationText.Dispose メソッド、StationText.Draw メソッド、TimeTable.Dispose メソッド、TimeTable.Draw メソッドを追加しました。→ cd5510f
- 補助表示類のオーバーライドされたメソッドを参照できるようになりました。
- MyTrackAlignment クラス、VehicleDynamics.TrackAlignment プロパティを追加しました。→ 1b3727e
- 自列車の走行位置における軌道形状を操作できるようになりました。
- Section クラスのコンストラクタを追加しました。→ 477b3ad
- StationText.Stations プロパティ、StationText.Location プロパティ、StationText.NextText プロパティ、StationText.Next プロパティ、StationText.Doors プロパティ、StationText.Update メソッド、StationText.UpdateText メソッドを追加しました。→ d9d8e9e
- AdhesionObject クラスを追加しました。→ 9f3547b
FastMember
- 基底型のメソッドを強制的に呼び出す FastMethod.InvokeDeclaredOnly メソッドを追加しました。→ 734f035
ver2.0.7 (v2.0.50331.1) からの主な更新内容
BveEX 本体
マップファイルの構文関連
- 【重要】 BveEX 本体組み込みのマップ構文の解析処理を全てコア拡張機能 MapStatements に分離しました。→ 005d4a0
BveEX 経由で ATS プラグインを読み込む機能
- SetPower 関数、SetBrake 関数、SetReverser 関数を呼び出すタイミングを変更しました。→ 3686f47
- これにより、ATS ハンドル出力が無視されることがある問題が解消しました。
BveEX コア拡張機能
ビルトイン マップ構文
- 【重要】
ex_using文を追加しました。→ ec13c37 - 【重要】
ex_while文を追加しました。→ c496462 - 【重要】
BveEx.Error.Throw(string message)構文を追加しました。→ dd51e5d- マップからオリジナルのエラーを発生させられるようになりました。
クラスラッパー
- 【破壊的変更】 VehiclePositioner.BlockToCarCenterTransform プロパティの set アクセサ、VehicleVibration.HalfOfCarLength プロパティ、VehicleVibration.HalfOfBogieDistance プロパティを追加しました。→ 7d08ecc
- VehiclePositioner.BlockToCarCenterTransform プロパティからリフレクション情報を取得している場合のみ影響があります。呼び出すことは引き続き可能です。
- MapObjectList.GetNext メソッド、MapObjectList.GoToAndGetNext メソッド、MapObjectList.GetCurrent メソッドを追加しました。→ 0888810
- 現在の距離程に対応するマップオブジェクトがシンプルなコードで取得できるようになりました。
- ObjectDrawer クラスに IDisposable インターフェイス、IDrawable インターフェイスを実装し、ObjectDrawer.VehicleLocation プロパティ、ObjectDrawer.Background プロパティ、ObjectDrawer.CameraLocation プロパティ、ObjectDrawer.Trains プロパティ、ObjectDrawer.Map プロパティ、ObjectDrawer.OnDeviceLost メソッド、ObjectDrawer.OnDeviceReset メソッド、ObjectDrawer.Dispose メソッドを追加しました。→ 6e0118c
- OtherTrack クラス、TrackPosition クラス、TrackPositionList クラス、CantList.Translation プロパティ、CantList.Rotation プロパティ、Map.OtherTracks プロパティ、Map.GetPosition メソッドを追加しました。→ 3c524fe
- 他軌道を操作できるようになりました。
- Transform クラスが誤って MapObjectBase を継承していたため、修正しました。→ 03cecd2
- Scenario.Trains プロパティが null だと正しく取得できない不具合を修正しました。→ 764a78e
- MapGrammar.Src プロパティが null を許容しない不具合を修正しました。→ e85655f
- MapObjectList.ObjectPassed イベントが購読できない不具合を修正しました。→ 5ef5ec1
- Sound3DObject クラスのコンストラクタが動作しない不具合を修正しました。→ ea41150
サンプル
RichLoad サンプル
- 画像のパスが誤っていた不具合を修正しました。→ 265a016
マップ if 文・演算子等サンプル
- ex_using 文、ex_while 文など追加構文の例を追加し、「BveEX オリジナルマップ文法サンプル」に改称しました。→ 8e63e8b
ver2.0.6 (v2.0.50314.1) からの主な更新内容
クラスラッパー
- 【破壊的変更】 VehicleLocation.BlockIndex プロパティの set アクセサ、VehicleLocation.LocationInBlock プロパティ、VehicleLocation.LimitLocation プロパティ、VehicleLocation.Location プロパティの set アクセサ、VehicleLocation.BlockChanged イベント、VehicleLocation.LocationChanged イベントを追加しました。→ 8c51977
- VehicleLocation.BlockIndex プロパティ、VehicleLocation.Location プロパティからリフレクション情報を取得している場合のみ影響があります。呼び出すことは引き続き可能です。
- VehicleBogieWheel.VehicleLocation プロパティ、VehicleBogieWheel.MyTrack プロパティを追加しました。→ aa85be5
- ValueEventArgs<T> クラスのコンストラクタを追加しました。→ b50d4bc
- AssistantBase クラスおよびその派生クラスに IDisposable インターフェイスを実装しました。→ 101588c
==演算子の左辺が null だとエラーが発生する不具合を修正しました。→ fbf48b8- Physical クラスの演算子が使用できない不具合を修正しました。→ 3e45017
同梱拡張機能
複数ストラクチャーリストプラグイン
- ストラクチャーリスト、サウンドリストを複数回読み込むとエラーが発生することがある問題に対応するパッチを実装しました。
ver2.0.5 (v2.0.50204.1) からの主な更新内容
共通
BveEX 本体
- バージョン情報ダイアログを高 DPI 環境に完全対応しました。→ f0e3fda
- 高 DPI 環境下でダイアログのレイアウトが崩れる不具合が解消しました。
- プラグインのコンストラクタの呼出中に例外がスローされた場合のエラー文面を変更しました。→ 7af67d6
- 旧:
初期化に失敗しました。古いバージョン (バージョン x.x.x.x) の BveEX に準拠していることが原因の可能性があります。 - 新:
初期化に失敗しました。BveEX 本体のバージョン (x.x.x.x) とプラグインが準拠しているバージョン (x.x.x.x) が異なっていることが原因の可能性があります。 - 「準拠」という表現が分かりづらかったため、より具体的な説明に変更しました。
- 旧:
クラスラッパー
- 【破壊的変更】 ObjectDrawer.SetMap メソッドを Build メソッドに改名しました。→ 79d0c91
- 同メソッドからリフレクション情報を取得している場合のみ影響があります。呼び出すことは引き続き可能です。
- TractionMotor クラス、JerkRegulator.TractionMotor プロパティ、VehicleElectricity.TractionMotor プロパティを追加しました。→ 92cbf53
- 主電動機を操作できるようになりました。
- StructureDrawer.BuildBlocks プロパティ、StructureDrawer.BuildBlock プロパティを追加しました。→ 79d0c91
- 個々のストラクチャーブロックの初期化処理を操作できるようになりました。
- WrappedList<TWrapper> クラスの一部コンストラクタが動作しない不具合を修正しました。→ 270fee1
WrappedList()、WrappedList(IEnumerable collection)、WrappedList(int capacity)が対象です。
- LocatableModel.Model プロパティ、TimeTable.Model プロパティに null が代入できない不具合を修正しました。→ 2a40d2c
- MapObjectList クラスのコンストラクタを追加しました。→ 77376bd
- CabBase.ReverserTexts プロパティ、CabBase.PowerTexts プロパティ、CabBase.BrakeTexts プロパティ、CabBase.HoldingSpeedTexts プロパティを追加しました。→ 9078bbb
- ハンドルの表示文字列を操作できるようになりました。
- MapLight クラスを追加しました。→ 0957010
- マップ上の光を操作できるようになりました。
- ScenarioSelectionForm.SaveSettings メソッドを追加しました。→ 66aec7b
- 「シナリオの選択」フォームの設定を保存する処理を操作できるようになりました。
TypeWrapping
- ソースメンバーが見つからなかった場合のエラー文面を変更しました。→ f7574a5
- 旧:
オリジナルフィールドが見つかりませんでした。wrapperName 'Model' は無効なキーです。など - 新:
オリジナルフィールドが見つかりませんでした。型 BveTypes.ClassWrappers.TimeTable にフィールド 'Model' は存在しません。など - エラーの出元を明示することで、原因がより円滑に究明できるようになりました。
- 旧:
サンプル
- NOMPI の説明文が古い表記のままだったため修正しました。→ 12fe413
レガシーモード
- 【重要】 全画面表示下でレガシーモードへ移行するとフリーズしてしまう不具合を修正しました。→ 8437c84
- レガシーモードに移行する条件を、「特定ファイルが存在するかどうか」から「特定コマンドライン引数が指定されているかどうか」に変更しました。→ 24aa1c5
ver2.0.4 (v2.0.50104.1) からの主な更新内容
共通
- 参照する Harmony のバージョンを 2.2.2 から 2.3.3 にアップデートしました。→ 07eee56
BveEX 本体
- 【破壊的変更】 同一プラグインを複数回読み込んだとき、AssemblyPluginBase.Location プロパティが「そのプラグインが初めて読み込まれたときのパス」ではなく「PluginUsing などで指定されたパスそのもの」を返すようになりました。→ a99693b
- 従来の戻り値は直感に反するものですが、これは .NET Framework のアセンブリ (dll) 読込の仕様に起因するものです。
マップファイルの構文関連
- 【重要】 2 項演算子
<、>、<=、>=、==、!=、&&、||を追加しました。→ af8d846 - 【重要】 単項演算子
!(否定) を追加しました。→ af8d846 - 【重要】 if 文を新しい書式で追加しました。→ 3053ce8
ex_if (condition) { ~ } ex_elif (condition) { ~ } ex_else { ~ }のように記述します。BveEx.If.BeginIf(int condition)などによる旧書式の if 文と異なり、条件分岐の中でも正常に変数への代入や距離程の変更を行うことができます。
- 【重要】 引数を付加可能な拡張 include 文を実装しました。→ 8cec62a
BveEX コア拡張機能
ビルトイン マップ構文
クラスラッパー
- 【破壊的変更】 BasicBrake クラスを BrakePiston に改名しました。→ 897f1bb
- 【重要】 BpValve クラス、CircuitBreaker クラス、Compressor クラス、CscFilteredTimeDelayedHandleSet クラス、LoadCompensator クラス、TimeDelayedHandleSet クラス、BcValve.IsBcServo プロパティ、BcValve.RapidReleaseSpeed プロパティ、BcValve.RapidApplySpeed プロパティ、BrakePiston.Stroke プロパティ、BrakePiston.Force プロパティ、BrakeSystem.TimeDelayedHandles プロパティ、BrakeSystem.BrakeBlender プロパティの set アクセサ、BrakeSystem.BrakeController プロパティの set アクセサ、BrakeSystem.Compressor プロパティ、CarInfo.Tachogenerator プロパティ、CarInfo.MotorState プロパティ、CarInfo.BrakePistonForce プロパティ、Cl.Er プロパティ、Cl.Bp プロパティ、ConstantSpeedRelay.Input プロパティ、ConstantSpeedRelay.Output プロパティ、ConstantSpeedRelay.Initialize メソッド、HandleSet クラスのコンストラクタ、HandleSet.Sync メソッド、JerkRegulator.ElectricBrakeCommand プロパティ、JerkRegulator.CurrentIncrease プロパティ、JerkRegulator.CurrentDecrease プロパティ、NotchInfo クラスのコンストラクタ、OneLeverCab クラスのコンストラクタ、Passenger.Load プロパティ、Passenger.BodyWeight プロパティ、Passenger.BoardingSpeed プロパティ、Passenger.AlightingSpeed プロパティ、ReAdhesionControl.SlipAcceleration プロパティ、ReAdhesionControl.SlipDeceleration プロパティ、ReAdhe...
ver2.0.8 - v2.0.50428.1
基本的には、本バージョンの仕様がそのまま正式版の仕様として引き継がれます。ただし、万が一重大な欠陥などが判明した場合は、一部の仕様が変更となる可能性があります。次版 (ver2.1) が正式版最初のバージョンとなる予定です。
BveEX についてはこちら→ BveEX BVE拡張キット - 岡オカ営業所
ver2.0.7 → ver2.0.8 アップデートのポイント
新規マップ構文を多数追加
マップ制作をもっと便利にする、新しい構文が 3 つ登場!
ex_using文ex_using BveEx.User.Automatic9045.ExtendedTrainScheduler.Train;などと宣言し、マップステートメントを短く記述できるようにします。
ex_while文- ループ系構文が初登場!
ex_while (condition) { ... }の形で記述します。Repeater 構文だけでは実現できない複雑なストラクチャーの連続配置や、ストラクチャー以外の連続設置など、幅広く活躍します。
- ループ系構文が初登場!
BveEx.Error.Throw(message)ステートメント- マップファイルからオリジナルのエラーを発生させることができます。マップ変数に想定されない値が設定されたことを検出するなどの用途に便利です。
これらの新構文の使い方について詳しくは、リニューアルされたサンプルシナリオ「BveEX オリジナルマップ文法サンプル」を参照してください。
BveEX 経由で ATS プラグインを読み込む機能が安定
SetPower 関数、SetBrake 関数、SetReverser 関数を呼び出すタイミングを変更し、BveEX 経由で読み込まれた ATS プラグインのハンドル出力が無視されることがある問題を解消しました。
この機能が不安定であったことが、BveEX ver2.1 を中々リリースできない理由のひとつでした。全ての ATS プラグインで安定動作するかどうか、ぜひお試しいただけると嬉しいです。
更に多くの機能を操作可能に
今回のアップデートでもクラスラッパーを追加しています。操作可能となった機能の例を以下に示します。
- 他軌道
- 自列車の位置情報
- 現在の距離程に対応するマップオブジェクトを、更にシンプルなコードで取得できるように
この他、クラスラッパー関連の不具合をいくつか修正しました。
- Transform クラスが誤って MapObjectBase を継承していた不具合を修正
- Scenario.Trains プロパティが null だと正しく取得できない不具合を修正
- MapGrammar.Src プロパティが null を許容しない不具合を修正
- MapObjectList.ObjectPassed イベントが購読できない不具合を修正
- Sound3DObject クラスのコンストラクタが動作しない不具合を修正
ライセンス
従来の AtsEX からライセンスが変更となっているため、ご注意ください。
商用利用について
商用利用をご希望の場合は個別の許諾となります。事前にご連絡ください。
連絡の要・不要の指針は後日ホームページにて公開予定ですが、現時点では一律で要連絡とさせていただきます。
ver2.0.7 (v2.0.50331.1) からの主な更新内容
BveEX 本体
マップファイルの構文関連
- 【重要】 BveEX 本体組み込みのマップ構文の解析処理を全てコア拡張機能 MapStatements に分離しました。→ 005d4a0
BveEX 経由で ATS プラグインを読み込む機能
- SetPower 関数、SetBrake 関数、SetReverser 関数を呼び出すタイミングを変更しました。→ 3686f47
- これにより、ATS ハンドル出力が無視されることがある問題が解消しました。
BveEX コア拡張機能
ビルトイン マップ構文
- 【重要】
ex_using文を追加しました。→ ec13c37 - 【重要】
ex_while文を追加しました。→ c496462 - 【重要】
BveEx.Error.Throw(string message)構文を追加しました。→ dd51e5d- マップからオリジナルのエラーを発生させられるようになりました。
クラスラッパー
- 【破壊的変更】 VehiclePositioner.BlockToCarCenterTransform プロパティの set アクセサ、VehicleVibration.HalfOfCarLength プロパティ、VehicleVibration.HalfOfBogieDistance プロパティを追加しました。→ 7d08ecc
- VehiclePositioner.BlockToCarCenterTransform プロパティからリフレクション情報を取得している場合のみ影響があります。呼び出すことは引き続き可能です。
- MapObjectList.GetNext メソッド、MapObjectList.GoToAndGetNext メソッド、MapObjectList.GetCurrent メソッドを追加しました。→ 0888810
- 現在の距離程に対応するマップオブジェクトがシンプルなコードで取得できるようになりました。
- ObjectDrawer クラスに IDisposable インターフェイス、IDrawable インターフェイスを実装し、ObjectDrawer.VehicleLocation プロパティ、ObjectDrawer.Background プロパティ、ObjectDrawer.CameraLocation プロパティ、ObjectDrawer.Trains プロパティ、ObjectDrawer.Map プロパティ、ObjectDrawer.OnDeviceLost メソッド、ObjectDrawer.OnDeviceReset メソッド、ObjectDrawer.Dispose メソッドを追加しました。→ 6e0118c
- OtherTrack クラス、TrackPosition クラス、TrackPositionList クラス、CantList.Translation プロパティ、CantList.Rotation プロパティ、Map.OtherTracks プロパティ、Map.GetPosition メソッドを追加しました。→ 3c524fe
- 他軌道を操作できるようになりました。
- Transform クラスが誤って MapObjectBase を継承していたため、修正しました。→ 03cecd2
- Scenario.Trains プロパティが null だと正しく取得できない不具合を修正しました。→ 764a78e
- MapGrammar.Src プロパティが null を許容しない不具合を修正しました。→ e85655f
- MapObjectList.ObjectPassed イベントが購読できない不具合を修正しました。→ 5ef5ec1
- Sound3DObject クラスのコンストラクタが動作しない不具合を修正しました。→ ea41150
サンプル
RichLoad サンプル
- 画像のパスが誤っていた不具合を修正しました。→ 265a016
マップ if 文・演算子等サンプル
- ex_using 文、ex_while 文など追加構文の例を追加し、「BveEX オリジナルマップ文法サンプル」に改称しました。→ 8e63e8b
ver2.0.6 (v2.0.50314.1) からの主な更新内容
クラスラッパー
- 【破壊的変更】 VehicleLocation.BlockIndex プロパティの set アクセサ、VehicleLocation.LocationInBlock プロパティ、VehicleLocation.LimitLocation プロパティ、VehicleLocation.Location プロパティの set アクセサ、VehicleLocation.BlockChanged イベント、VehicleLocation.LocationChanged イベントを追加しました。→ 8c51977
- VehicleLocation.BlockIndex プロパティ、VehicleLocation.Location プロパティからリフレクション情報を取得している場合のみ影響があります。呼び出すことは引き続き可能です。
- VehicleBogieWheel.VehicleLocation プロパティ、VehicleBogieWheel.MyTrack プロパティを追加しました。→ aa85be5
- ValueEventArgs<T> クラスのコンストラクタを追加しました。→ b50d4bc
- AssistantBase クラスおよびその派生クラスに IDisposable インターフェイスを実装しました。→ 101588c
==演算子の左辺が null だとエラーが発生する不具合を修正しました。→ fbf48b8- Physical クラスの演算子が使用できない不具合を修正しました。→ 3e45017
同梱拡張機能
複数ストラクチャーリストプラグイン
- ストラクチャーリスト、サウンドリストを複数回読み込むとエラーが発生することがある問題に対応するパッチを実装しました。
ver2.0.5 (v2.0.50204.1) からの主な更新内容
共通
BveEX 本体
- バージョン情報ダイアログを高 DPI 環境に完全対応しました。→ f0e3fda
- 高 DPI 環境下でダイアログのレイアウトが崩れる不具合が解消しました。
- プラグインのコンストラクタの呼出中に例外がスローされた場合のエラー文面を変更しました。→ 7af67d6
- 旧:
初期化に失敗しました。古いバージョン (バージョン x.x.x.x) の BveEX に準拠していることが原因の可能性があります。 - 新:
初期化に失敗しました。BveEX 本体のバージョン (x.x.x.x) とプラグインが準拠しているバージョン (x.x.x.x) が異なっていることが原因の可能性があります。 - 「準拠」という表現が分かりづらかったため、より具体的な説明に変更しました。
- 旧:
クラスラッパー
- 【破壊的変更】 ObjectDrawer.SetMap メソッドを Build メソッドに改名しました。→ 79d0c91
- 同メソッドからリフレクション情報を取得している場合のみ影響があります。呼び出すことは引き続き可能です。
- TractionMotor クラス、JerkRegulator.TractionMotor プロパティ、VehicleElectricity.TractionMotor プロパティを追加しました。→ 92cbf53
- 主電動機を操作できるようになりました。
- StructureDrawer.BuildBlocks プロパティ、StructureDrawer.BuildBlock プロパティを追加しました。→ 79d0c91
- 個々のストラクチャーブロックの初期化処理を操作できるようになりました。
- WrappedList<TWrapper> クラスの一部コンストラクタが動作しない不具合を修正しました。→ 270fee1
WrappedList()、WrappedList(IEnumerable collection)、WrappedList(int capacity)が対象です。
- LocatableModel.Model プロパティ、TimeTable.Model プロパティに null が代入できない不具合を修正しました。→ 2a40d2c
- MapObjectList クラスのコンストラクタを追加しました。→ 77376bd
- CabBase.ReverserTexts プロパティ、CabBase.PowerTexts プロパティ、CabBase.BrakeTexts プロパティ、CabBase.HoldingSpeedTexts プロパティを追加しました。→ 9078bbb
- ハンドルの表示文字列を操作できるようになりました。
- MapLight クラスを追加しました。→ 0957010
- マップ上の光を操作できるようになりました。
- ScenarioSelectionForm.SaveSettings メソッドを追加しました。→ 66aec7b
- 「シナリオの選択」フォームの設定を保存する処理を操作できるようになりました。
TypeWrapping
- ソースメンバーが見つからなかった場合のエラー文面を変更しました。→ f7574a5
- 旧:
オリジナルフィールドが見つかりませんでした。wrapperName 'Model' は無効なキーです。など - 新:
オリジナルフィールドが見つかりませんでした。型 BveTypes.ClassWrappers.TimeTable にフィールド 'Model' は存在しません。など - エラーの出元を明示することで、原因がより円滑に究明できるようになりました。
- 旧:
サンプル
- NOMPI の説明文が古い表記のままだったため修正しました。→ 12fe413
レガシーモード
- 【重要】 全画面表示下でレガシーモードへ移行するとフリーズしてしまう不具合を修正しました。→ 8437c84
- レガシーモードに移行する条件を、「特定ファイルが存在するかどうか」から「特定コマンドライン引数が指定されているかどうか」に変更しました。→ 24aa1c5
ver2.0.4 (v2.0.50104.1) からの主な更新内容
共通
- 参照する Harmony のバージョンを 2.2.2 から 2.3.3 にアップデートしました。→ 07eee56
BveEX 本体
- 【破壊的変更】 同一プラグインを複数回読み込んだとき、AssemblyPluginBase.Location プロパティが「そのプラグインが初めて読み込まれたときのパス」ではなく「PluginUsing などで指定されたパスそのもの」を返すようになりました。→ a99693b
- 従来の戻り値は直感に反するものですが、これは .NET Framework のアセンブリ (dll) 読込の仕様に起因するものです。
マップファイルの構文関連
- 【重要】 2 項演算子
<、>、<=、>=、==、!=、&&、||を追加しました。→ af8d846 - 【重要】 単項演算子
!(否定) を追加しました。→ af8d846 - 【重要】 if 文を新しい書式で追加しました。→ 3053ce8
ex_if (condition) { ~ } ex_elif (condition) { ~ } ex_else { ~ }のように記述します。BveEx.If.BeginIf(int condition)などによる旧書式の if 文と異なり、条件分岐の中でも正常に変数への代入や距離程の変更を行うことができます。
- 【重要】 引数を付加可能な拡張 include 文を実装しました。→ 8cec62a
BveEX コア拡張機能
ビルトイン マップ構文
クラスラッパー
- 【破壊的変更】 BasicBrake クラスを BrakePiston に改名しました。→ 897f1bb
- 【重要】 BpValve クラス、CircuitBreaker クラス、Compressor クラス、CscFilteredTimeDelayedHandleSet クラス、LoadCompensator クラス、TimeDelayedHandleSet クラス、BcValve.IsBcServo プロパティ、BcValve.RapidReleaseSpeed プロパティ、BcValve.RapidApplySpeed プロパティ、BrakePiston.Stroke プロパティ、BrakePiston.Force プロパティ、BrakeSystem.TimeDelayedHandles プロパティ、BrakeSystem.BrakeBlender プロパティの set アクセサ、BrakeSystem.BrakeController プロパティの set アクセサ、BrakeSystem.Compressor プロパティ、CarInfo.Tachogenerator プロパティ、CarInfo.MotorState プロパティ、CarInfo.BrakePistonForce プロパティ、Cl.Er プロパティ、Cl.Bp プロパティ、ConstantSpeedRelay.Input プロパティ、ConstantSpeedRelay.Output プロパティ、ConstantSpeedRelay.Initialize メソッド、HandleSet クラスのコンストラクタ、HandleSet.Sync メソッド、JerkRegulator.ElectricBrakeCommand プロパティ、JerkRegulator.CurrentIncrease プロパティ、JerkRegulator.CurrentDecrease プロパティ、NotchInfo クラスのコンストラクタ、OneLeverCab クラスのコンストラクタ、Passenger.Load プロパティ、Passenger.BodyWeight プロパティ、Passenger.BoardingSpeed プロパティ、Passenger.AlightingSpeed プロパティ、ReAdhesionControl.SlipAcceleration プロパティ、ReAdhesionControl.SlipDeceleration プロパティ、ReAdhesionControl.SlipVelocity プロパティ、ReAdhesionControl.BalanceAcceleration プロパティ、ReAdhesionControl.HoldingTime プロパティ、...
ver2.0.7 - v2.0.50331.1
基本的には、本バージョンの仕様がそのまま正式版の仕様として引き継がれます。ただし、万が一重大な欠陥などが判明した場合は、一部の仕様が変更となる可能性があります。次版 (ver2.1) が正式版最初のバージョンとなる予定です。
BveEX についてはこちら→ BveEX BVE拡張キット - 岡オカ営業所
ver2.0.6 → ver2.0.7 アップデートのポイント
エラー「'xxx' の値は 'Value' に対して有効ではありません。'Value' は 'minimum' と 'maximum' の間でなければなりません。」を改善するパッチを実装
上記のエラーが一部ユーザーから報告されていました。開発チームの環境で再現することに成功し、「ストラクチャーリスト、サウンドリストのいずれかを同一シナリオ下で複数回読み込んでおり、かつ特定の条件を満たしたとき」に発生することが判明したため、このエラーが発生しないようにするパッチを複数ストラクチャーリストプラグインに実装しました。
更に多くの機能を操作可能に
今回のアップデートでもクラスラッパーを追加しています。操作可能となった機能の例を以下に示します。
- 自列車の位置に関する高度な制御
- ValueEventArgs<T> クラスのコンストラクタ
この他、クラスラッパー関連の不具合をいくつか修正しました。
==演算子の左辺が null だとエラーが発生する不具合を修正- Physical クラスの演算子が使用できない不具合を修正
ライセンス
従来の AtsEX からライセンスが変更となっているため、ご注意ください。
商用利用について
商用利用をご希望の場合は個別の許諾となります。事前にご連絡ください。
連絡の要・不要の指針は後日ホームページにて公開予定ですが、現時点では一律で要連絡とさせていただきます。
ver2.0.6 (v2.0.50314.1) からの主な更新内容
クラスラッパー
- 【破壊的変更】 VehicleLocation.BlockIndex プロパティの set アクセサ、VehicleLocation.LocationInBlock プロパティ、VehicleLocation.LimitLocation プロパティ、VehicleLocation.Location プロパティの set アクセサ、VehicleLocation.BlockChanged イベント、VehicleLocation.LocationChanged イベントを追加しました。→ 8c51977
- VehicleLocation.BlockIndex プロパティ、VehicleLocation.Location プロパティからリフレクション情報を取得している場合のみ影響があります。呼び出すことは引き続き可能です。
- VehicleBogieWheel.VehicleLocation プロパティ、VehicleBogieWheel.MyTrack プロパティを追加しました。→ aa85be5
- ValueEventArgs<T> クラスのコンストラクタを追加しました。→ b50d4bc
- AssistantBase クラスおよびその派生クラスに IDisposable インターフェイスを実装しました。→ 101588c
==演算子の左辺が null だとエラーが発生する不具合を修正しました。→ fbf48b8- Physical クラスの演算子が使用できない不具合を修正しました。→ 3e45017
同梱拡張機能
複数ストラクチャーリストプラグイン
- ストラクチャーリスト、サウンドリストを複数回読み込むとエラーが発生することがある問題に対応するパッチを実装しました。
ver2.0.5 (v2.0.50204.1) からの主な更新内容
共通
BveEX 本体
- バージョン情報ダイアログを高 DPI 環境に完全対応しました。→ f0e3fda
- 高 DPI 環境下でダイアログのレイアウトが崩れる不具合が解消しました。
- プラグインのコンストラクタの呼出中に例外がスローされた場合のエラー文面を変更しました。→ 7af67d6
- 旧:
初期化に失敗しました。古いバージョン (バージョン x.x.x.x) の BveEX に準拠していることが原因の可能性があります。 - 新:
初期化に失敗しました。BveEX 本体のバージョン (x.x.x.x) とプラグインが準拠しているバージョン (x.x.x.x) が異なっていることが原因の可能性があります。 - 「準拠」という表現が分かりづらかったため、より具体的な説明に変更しました。
- 旧:
クラスラッパー
- 【破壊的変更】 ObjectDrawer.SetMap メソッドを Build メソッドに改名しました。→ 79d0c91
- 同メソッドからリフレクション情報を取得している場合のみ影響があります。呼び出すことは引き続き可能です。
- TractionMotor クラス、JerkRegulator.TractionMotor プロパティ、VehicleElectricity.TractionMotor プロパティを追加しました。→ 92cbf53
- 主電動機を操作できるようになりました。
- StructureDrawer.BuildBlocks プロパティ、StructureDrawer.BuildBlock プロパティを追加しました。→ 79d0c91
- 個々のストラクチャーブロックの初期化処理を操作できるようになりました。
- WrappedList<TWrapper> クラスの一部コンストラクタが動作しない不具合を修正しました。→ 270fee1
WrappedList()、WrappedList(IEnumerable collection)、WrappedList(int capacity)が対象です。
- LocatableModel.Model プロパティ、TimeTable.Model プロパティに null が代入できない不具合を修正しました。→ 2a40d2c
- MapObjectList クラスのコンストラクタを追加しました。→ 77376bd
- CabBase.ReverserTexts プロパティ、CabBase.PowerTexts プロパティ、CabBase.BrakeTexts プロパティ、CabBase.HoldingSpeedTexts プロパティを追加しました。→ 9078bbb
- ハンドルの表示文字列を操作できるようになりました。
- MapLight クラスを追加しました。→ 0957010
- マップ上の光を操作できるようになりました。
- ScenarioSelectionForm.SaveSettings メソッドを追加しました。→ 66aec7b
- 「シナリオの選択」フォームの設定を保存する処理を操作できるようになりました。
TypeWrapping
- ソースメンバーが見つからなかった場合のエラー文面を変更しました。→ f7574a5
- 旧:
オリジナルフィールドが見つかりませんでした。wrapperName 'Model' は無効なキーです。など - 新:
オリジナルフィールドが見つかりませんでした。型 BveTypes.ClassWrappers.TimeTable にフィールド 'Model' は存在しません。など - エラーの出元を明示することで、原因がより円滑に究明できるようになりました。
- 旧:
サンプル
- NOMPI の説明文が古い表記のままだったため修正しました。→ 12fe413
レガシーモード
- 【重要】 全画面表示下でレガシーモードへ移行するとフリーズしてしまう不具合を修正しました。→ 8437c84
- レガシーモードに移行する条件を、「特定ファイルが存在するかどうか」から「特定コマンドライン引数が指定されているかどうか」に変更しました。→ 24aa1c5
ver2.0.4 (v2.0.50104.1) からの主な更新内容
共通
- 参照する Harmony のバージョンを 2.2.2 から 2.3.3 にアップデートしました。→ 07eee56
BveEX 本体
- 【破壊的変更】 同一プラグインを複数回読み込んだとき、AssemblyPluginBase.Location プロパティが「そのプラグインが初めて読み込まれたときのパス」ではなく「PluginUsing などで指定されたパスそのもの」を返すようになりました。→ a99693b
- 従来の戻り値は直感に反するものですが、これは .NET Framework のアセンブリ (dll) 読込の仕様に起因するものです。
マップファイルの構文関連
- 【重要】 2 項演算子
<、>、<=、>=、==、!=、&&、||を追加しました。→ af8d846 - 【重要】 単項演算子
!(否定) を追加しました。→ af8d846 - 【重要】 if 文を新しい書式で追加しました。→ 3053ce8
ex_if (condition) { ~ } ex_elif (condition) { ~ } ex_else { ~ }のように記述します。BveEx.If.BeginIf(int condition)などによる旧書式の if 文と異なり、条件分岐の中でも正常に変数への代入や距離程の変更を行うことができます。
- 【重要】 引数を付加可能な拡張 include 文を実装しました。→ 8cec62a
BveEX コア拡張機能
ビルトイン マップ構文
クラスラッパー
- 【破壊的変更】 BasicBrake クラスを BrakePiston に改名しました。→ 897f1bb
- 【重要】 BpValve クラス、CircuitBreaker クラス、Compressor クラス、CscFilteredTimeDelayedHandleSet クラス、LoadCompensator クラス、TimeDelayedHandleSet クラス、BcValve.IsBcServo プロパティ、BcValve.RapidReleaseSpeed プロパティ、BcValve.RapidApplySpeed プロパティ、BrakePiston.Stroke プロパティ、BrakePiston.Force プロパティ、BrakeSystem.TimeDelayedHandles プロパティ、BrakeSystem.BrakeBlender プロパティの set アクセサ、BrakeSystem.BrakeController プロパティの set アクセサ、BrakeSystem.Compressor プロパティ、CarInfo.Tachogenerator プロパティ、CarInfo.MotorState プロパティ、CarInfo.BrakePistonForce プロパティ、Cl.Er プロパティ、Cl.Bp プロパティ、ConstantSpeedRelay.Input プロパティ、ConstantSpeedRelay.Output プロパティ、ConstantSpeedRelay.Initialize メソッド、HandleSet クラスのコンストラクタ、HandleSet.Sync メソッド、JerkRegulator.ElectricBrakeCommand プロパティ、JerkRegulator.CurrentIncrease プロパティ、JerkRegulator.CurrentDecrease プロパティ、NotchInfo クラスのコンストラクタ、OneLeverCab クラスのコンストラクタ、Passenger.Load プロパティ、Passenger.BodyWeight プロパティ、Passenger.BoardingSpeed プロパティ、Passenger.AlightingSpeed プロパティ、ReAdhesionControl.SlipAcceleration プロパティ、ReAdhesionControl.SlipDeceleration プロパティ、ReAdhesionControl.SlipVelocity プロパティ、ReAdhesionControl.BalanceAcceleration プロパティ、ReAdhesionControl.HoldingTime プロパティ、ReAdhesionControl.ReferenceAcceleration プロパティ、ReAdhesionControl.ReferenceDeceleration プロパティ、Smee.Sap プロパティ、Smee.Bp プロパティ、Tachogenerator クラスのコンストラクタ、Tachogenerator.Acceleration プロパティ、Tachogenerator.ResistanceAcceleration プロパティ、TwoLeverCab クラスのコンストラクタ、Vehicle.Initialize メソッドのオーバーロード、Vehicle.Tick メソッド、VehicleDynamics クラスのコンストラクタ、VehicleDynamics.InertiaRatio プロパティ、VehicleDynamics.TotalMass プロパティ、VehicleDynamics.TotalInertia プロパティ、VehicleDynamics.MassRatio プロパティ、VehicleDynamics.Tick メソッド、VehicleDynamics.Initialize メソッド、VehicleDynamics.Setup メソッド、VehicleElectricity.TimeDelayedHandles プロパティ、VehicleElectricity.Breaker プロパティ、VehicleInstrumentSet クラスのコンストラクタ、VehicleInstrumentSet.LoadCompensator プロパティ、VehicleInstrumentSet.Initialize メソッドのオーバーロード、VehicleLocation クラスのコンストラクタ、VehiclePerformanceBase.LoadFromFile メソッド、VehicleVibration クラスのコンストラクタ、VehicleVibration.Initialize メソッドを追加しました。→ 71a93bb
- 車両データのパラメーターファイルで設定する値を全て操作できるようになりました。
- AirSupplement クラス、BrakeBlenderBase クラス、BrakeControllerBase クラス、BrakePiston クラス、BrakeSystem クラス、CarBrake クラス、Cl クラス、Ecb クラス、LockoutValve クラス、Smee クラス、VehicleElectricity クラス、VehicleInstrumentSet クラスに ITickable インターフェイスを実装しました。→ b2e1064 / 49e4d35 / 71a93bb / a62248d
- これにより、各クラスに Initialize メソッド、Tick メソッドが追加されました。
- ElectricBrakeCommand クラス、BrakeBlenderBase.ElectricBrakeCommand プロパティを追加しました。→ 085220d
- 電気ブレーキ力の目標値が操作できるようになりました。
- VehicleLocation.Tick メソッド、Tachogenerator.Tick メソッドを追加しました。→ 6c1583a
- Map.AdhesionObjects プロパティ、Map.BrakeShoeFrictionObjects プロパティを追加しました。→ 465064e
- CabBase クラス、VehicleInstrumentSet クラスに IDisposable インターフェイスを実装しました。→ 71a93bb
- これにより、各クラスに Dispose メソッドが追加されました。
- Model.CreateRectangleWithTexture メソッドのオーバーロード、Model.FromMesh メソッドを追加しました。→ 2e5af71
- これまで以上に様々な方法で Model オブジェクトを作成できるようになりました。
- IniReader クラスを追加しました。→ 4d94324
- BVE 標準の INI ファイルの読込ロジックを参照できるようになりました。
- SpeedLimitList.VehicleLength プロパティを追加しました。→ 258a663
- 速度制限を解除する位置を計算するための自列車長さを操作できるようになりました。
- IMapLoader インターフェイス、MapGrammar クラス、ClassicMapParser.Parse メソッド、MapLoader.ThrowError メソッド、MapParser.Parse メソッド、MapParserBase.Parent プロパティを追加しました。→ 7180a77
- マップファイルの構文解析ロジックを根本から操作できるようになりました。
- ValveMode 列挙型、Valve.Pressure プロパティ、Valve.Mode プロパティを追加しました。→ 4e37c46
- BrakeControllerBase.Handles プロパティ、BrakeControllerBase.OutputPressure プロパティを追加しました。→ a62248d
TypeWrapping
- 読込時のエラーで、文面が分かりづらいものの一部を修正しました。→ 2719c17
サンプル
- 駅のホームの方向を逆転しました。→ 1736e51
- 見た目上は右側にあるものの、Station.Put 構文では左側に設定されていたため、見た目に合わせて右側へ統一しました。
マップ if 文
- 【重要】 if 文の書式変更や演算子の追加に対応し、「マップ if 文・演算子等サンプ...
ver2.0.6 - v2.0.50314.1
基本的には、本バージョンの仕様がそのまま正式版の仕様として引き継がれます。ただし、万が一重大な欠陥などが判明した場合は、一部の仕様が変更となる可能性があります。次版 (ver2.1) が正式版最初のバージョンとなる予定です。
BveEX についてはこちら→ BveEX BVE拡張キット - 岡オカ営業所
ver2.0.5 → ver2.0.6 アップデートのポイント
レガシーモードの安定性が向上
モード移行の処理をより確実に行うよう改善しました。これにより、全画面表示下でレガシーモードへ移行するとフリーズしてしまう不具合が解消しました。BveEX リリースから 3 ヶ月弱、ご不便をおかけしたことをお詫びします。
バージョン情報ダイアログのレイアウトが崩れる不具合を修正
プラグインの一覧表示部を高 DPI 対応させることで、4K ディスプレイなどでもダイアログのレイアウトが崩れないようになりました。
なお、本件については くさあんこ氏 にご協力いただきました。ありがとうございました。
エラー文面を分かりやすいものに改善
プラグインの読込時に発生するエラーの説明文のうち、更新を重ねるうちに実態と乖離してしまっていたものや分かりにくいものを改善しました。
例えば、BveTypes.dll と BveEX プラグインのバージョンが食い違っているときなどに、以下のようなエラーが発生することがあります。
オリジナルフィールドが見つかりませんでした。wrapperName 'Model' は無効なキーです。
これを以下のように変更しました。
オリジナルフィールドが見つかりませんでした。型 BveTypes.ClassWrappers.TimeTable にフィールド 'Model' は存在しません。
エラーの発出元となる型を明示することで、原因をより円滑に究明できるようになりました。
更に多くの機能を操作可能に
今回のアップデートでもクラスラッパーを追加しています。操作可能となった機能の例を以下に示します。
- ハンドルの表示文字列
- 主電動機
- マップ上の光
- MapObjectList のコンストラクタ
この他、クラスラッパー関連の不具合をいくつか修正しました。
- WrappedList<TWrapper> の一部コンストラクタが動作しない不具合を修正
- LocatableModel.Model プロパティ、TimeTable.Model プロパティに null を代入できない不具合を修正
ライセンス
従来の AtsEX からライセンスが変更となっているため、ご注意ください。
商用利用について
商用利用をご希望の場合は個別の許諾となります。事前にご連絡ください。
連絡の要・不要の指針は後日ホームページにて公開予定ですが、現時点では一律で要連絡とさせていただきます。
ver2.0.5 (v2.0.50204.1) からの主な更新内容
共通
BveEX 本体
- バージョン情報ダイアログを高 DPI 環境に完全対応しました。→ f0e3fda
- 高 DPI 環境下でダイアログのレイアウトが崩れる不具合が解消しました。
- プラグインのコンストラクタの呼出中に例外がスローされた場合のエラー文面を変更しました。→ 7af67d6
- 旧:
初期化に失敗しました。古いバージョン (バージョン x.x.x.x) の BveEX に準拠していることが原因の可能性があります。 - 新:
初期化に失敗しました。BveEX 本体のバージョン (x.x.x.x) とプラグインが準拠しているバージョン (x.x.x.x) が異なっていることが原因の可能性があります。 - 「準拠」という表現が分かりづらかったため、より具体的な説明に変更しました。
- 旧:
クラスラッパー
- 【破壊的変更】 ObjectDrawer.SetMap メソッドを Build メソッドに改名しました。→ 79d0c91
- 同メソッドからリフレクション情報を取得している場合のみ影響があります。呼び出すことは引き続き可能です。
- TractionMotor クラス、JerkRegulator.TractionMotor プロパティ、VehicleElectricity.TractionMotor プロパティを追加しました。→ 92cbf53
- 主電動機を操作できるようになりました。
- StructureDrawer.BuildBlocks プロパティ、StructureDrawer.BuildBlock プロパティを追加しました。→ 79d0c91
- 個々のストラクチャーブロックの初期化処理を操作できるようになりました。
- WrappedList<TWrapper> クラスの一部コンストラクタが動作しない不具合を修正しました。→ 270fee1
WrappedList()、WrappedList(IEnumerable collection)、WrappedList(int capacity)が対象です。
- LocatableModel.Model プロパティ、TimeTable.Model プロパティに null が代入できない不具合を修正しました。→ 2a40d2c
- MapObjectList クラスのコンストラクタを追加しました。→ 77376bd
- CabBase.ReverserTexts プロパティ、CabBase.PowerTexts プロパティ、CabBase.BrakeTexts プロパティ、CabBase.HoldingSpeedTexts プロパティを追加しました。→ 9078bbb
- ハンドルの表示文字列を操作できるようになりました。
- MapLight クラスを追加しました。→ 0957010
- マップ上の光を操作できるようになりました。
- ScenarioSelectionForm.SaveSettings メソッドを追加しました。→ 66aec7b
- 「シナリオの選択」フォームの設定を保存する処理を操作できるようになりました。
TypeWrapping
- ソースメンバーが見つからなかった場合のエラー文面を変更しました。→ f7574a5
- 旧:
オリジナルフィールドが見つかりませんでした。wrapperName 'Model' は無効なキーです。など - 新:
オリジナルフィールドが見つかりませんでした。型 BveTypes.ClassWrappers.TimeTable にフィールド 'Model' は存在しません。など - エラーの出元を明示することで、原因がより円滑に究明できるようになりました。
- 旧:
サンプル
- NOMPI の説明文が古い表記のままだったため修正しました。→ 12fe413
レガシーモード
- 【重要】 全画面表示下でレガシーモードへ移行するとフリーズしてしまう不具合を修正しました。→ 8437c84
- レガシーモードに移行する条件を、「特定ファイルが存在するかどうか」から「特定コマンドライン引数が指定されているかどうか」に変更しました。→ 24aa1c5
ver2.0.4 (v2.0.50104.1) からの主な更新内容
共通
- 参照する Harmony のバージョンを 2.2.2 から 2.3.3 にアップデートしました。→ 07eee56
BveEX 本体
- 【破壊的変更】 同一プラグインを複数回読み込んだとき、AssemblyPluginBase.Location プロパティが「そのプラグインが初めて読み込まれたときのパス」ではなく「PluginUsing などで指定されたパスそのもの」を返すようになりました。→ a99693b
- 従来の戻り値は直感に反するものですが、これは .NET Framework のアセンブリ (dll) 読込の仕様に起因するものです。
マップファイルの構文関連
- 【重要】 2 項演算子
<、>、<=、>=、==、!=、&&、||を追加しました。→ af8d846 - 【重要】 単項演算子
!(否定) を追加しました。→ af8d846 - 【重要】 if 文を新しい書式で追加しました。→ 3053ce8
ex_if (condition) { ~ } ex_elif (condition) { ~ } ex_else { ~ }のように記述します。BveEx.If.BeginIf(int condition)などによる旧書式の if 文と異なり、条件分岐の中でも正常に変数への代入や距離程の変更を行うことができます。
- 【重要】 引数を付加可能な拡張 include 文を実装しました。→ 8cec62a
BveEX コア拡張機能
ビルトイン マップ構文
クラスラッパー
- 【破壊的変更】 BasicBrake クラスを BrakePiston に改名しました。→ 897f1bb
- 【重要】 BpValve クラス、CircuitBreaker クラス、Compressor クラス、CscFilteredTimeDelayedHandleSet クラス、LoadCompensator クラス、TimeDelayedHandleSet クラス、BcValve.IsBcServo プロパティ、BcValve.RapidReleaseSpeed プロパティ、BcValve.RapidApplySpeed プロパティ、BrakePiston.Stroke プロパティ、BrakePiston.Force プロパティ、BrakeSystem.TimeDelayedHandles プロパティ、BrakeSystem.BrakeBlender プロパティの set アクセサ、BrakeSystem.BrakeController プロパティの set アクセサ、BrakeSystem.Compressor プロパティ、CarInfo.Tachogenerator プロパティ、CarInfo.MotorState プロパティ、CarInfo.BrakePistonForce プロパティ、Cl.Er プロパティ、Cl.Bp プロパティ、ConstantSpeedRelay.Input プロパティ、ConstantSpeedRelay.Output プロパティ、ConstantSpeedRelay.Initialize メソッド、HandleSet クラスのコンストラクタ、HandleSet.Sync メソッド、JerkRegulator.ElectricBrakeCommand プロパティ、JerkRegulator.CurrentIncrease プロパティ、JerkRegulator.CurrentDecrease プロパティ、NotchInfo クラスのコンストラクタ、OneLeverCab クラスのコンストラクタ、Passenger.Load プロパティ、Passenger.BodyWeight プロパティ、Passenger.BoardingSpeed プロパティ、Passenger.AlightingSpeed プロパティ、ReAdhesionControl.SlipAcceleration プロパティ、ReAdhesionControl.SlipDeceleration プロパティ、ReAdhesionControl.SlipVelocity プロパティ、ReAdhesionControl.BalanceAcceleration プロパティ、ReAdhesionControl.HoldingTime プロパティ、ReAdhesionControl.ReferenceAcceleration プロパティ、ReAdhesionControl.ReferenceDeceleration プロパティ、Smee.Sap プロパティ、Smee.Bp プロパティ、Tachogenerator クラスのコンストラクタ、Tachogenerator.Acceleration プロパティ、Tachogenerator.ResistanceAcceleration プロパティ、TwoLeverCab クラスのコンストラクタ、Vehicle.Initialize メソッドのオーバーロード、Vehicle.Tick メソッド、VehicleDynamics クラスのコンストラクタ、VehicleDynamics.InertiaRatio プロパティ、VehicleDynamics.TotalMass プロパティ、VehicleDynamics.TotalInertia プロパティ、VehicleDynamics.MassRatio プロパティ、VehicleDynamics.Tick メソッド、VehicleDynamics.Initialize メソッド、VehicleDynamics.Setup メソッド、VehicleElectricity.TimeDelayedHandles プロパティ、VehicleElectricity.Breaker プロパティ、VehicleInstrumentSet クラスのコンストラクタ、VehicleInstrumentSet.LoadCompensator プロパティ、VehicleInstrumentSet.Initialize メソッドのオーバーロード、VehicleLocation クラスのコンストラクタ、VehiclePerformanceBase.LoadFromFile メソッド、VehicleVibration クラスのコンストラクタ、VehicleVibration.Initialize メソッドを追加しました。→ 71a93bb
- 車両データのパラメーターファイルで設定する値を全て操作できるようになりました。
- AirSupplement クラス、BrakeBlenderBase クラス、BrakeControllerBase クラス、BrakePiston クラス、BrakeSystem クラス、CarBrake クラス、Cl クラス、Ecb クラス、LockoutValve クラス、Smee クラス、VehicleElectricity クラス、VehicleInstrumentSet クラスに ITickable インターフェイスを実装しました。→ b2e1064 / 49e4d35 / 71a93bb / a62248d
- これにより、各クラスに Initialize メソッド、Tick メソッドが追加されました。
- ElectricBrakeCommand クラス、BrakeBlenderBase.ElectricBrakeCommand プロパティを追加しました。→ 085220d
- 電気ブレーキ力の目標値が操作できるようになりました。
- VehicleLocation.Tick メソッド、Tachogenerator.Tick メソッドを追加しました。→ 6c1583a
- Map.AdhesionObjects プロパティ、Map.BrakeShoeFrictionObjects プロパティを追加しました。→ 465064e
- CabBase クラス、VehicleInstrumentSet クラスに IDisposable インターフェイスを実装しました。→ 71a93bb
- これにより、各クラスに Dispose メソッドが追加されました。
- Model.CreateRectangleWithTexture メソッドのオーバーロード、Model.FromMesh メソッドを追加しました。→ 2e5af71
- これまで以上に様々な方法で Model オブジェクトを作成できるようになりました。
- IniReader クラスを追加しました。→ 4d94324
- BVE 標準の INI ファイルの読込ロジックを参照できるようになりました。
- SpeedLimitList.VehicleLength プロパティを追加しました。→ 258a663
- 速度制限を解除する位置を計算するための自列車長さを操作できるようになりました。
- IMapLoader インターフェイス、MapGrammar クラス、ClassicMapParser.Parse メソッド、MapLoader.ThrowError メソッド、MapParser.Parse メソッド、MapParserBase.Parent プロパティを追加しました。→ 7180a77
- マップファイルの構文解析ロジックを根本から操作できるようになりました。
- ValveMode 列挙型、Valve.Pressure プロパティ、Valve.Mode プロパティを追加しました。→ 4e37c46
- BrakeControllerBase.Handles プロパティ、BrakeControllerBase.OutputPressure プロパティを追加しました。→ a62248d
TypeWrapping
- 読込時のエラーで、文面が分かりづらいものの一部を修正しました。→ 2719c17
サンプル
- 駅のホームの方向を逆転しました。→ 1736e51
- 見た目上は右側にあるものの、Station.Put 構文では左側に設定されていたため、見た目に合わせて右側へ統一しました。
マップ if 文
ver2.0.3 (v2.0.50103.3) からの主な更新内容
BveEX 本体
- 【重要】 プラグインの Tick メソッドから ATS ハンドル出力が上書きできない問題を修正しました。→ 78c8733
- Markdig が正常に動作していなかったため、参照する System.Runtime.CompilerServices.Unsafe パッケージのバージョンを調整しました。→ d728e1c
- Markdown変換に失敗した場合でも、アップデート情報ダイアログが表示されるようになりました。→ 3ad67d9
BveEX コア拡張機能
SoundFactory
- 内部実装を変更し、ISoundFactory.LoadFrom メソッ...
ver2.0.5 - v2.0.50204.1
基本的には、本バージョンの仕様がそのまま正式版の仕様として引き継がれます。ただし、万が一重大な欠陥などが判明した場合は、一部の仕様が変更となる可能性があります。次版 (ver2.1) が正式版最初のバージョンとなる予定です。
BveEX についてはこちら→ AtsEX BVE拡張キット - 岡オカ営業所
※サイト工事中につき、「AtsEX」の表記が残っています。
ver2.0.4 → ver2.0.5 アップデートのポイント
操作できる機能を大量追加
車両からマップまで、過去最大級の機能追加を行いました。以下はその一例です。
- 車両データのパラメーターファイルで設定する値全て
- マップファイルの構文解析ロジックの根本部分
- INI ファイルの読込ロジック
- 3D モデルの読込方法を拡充
あまりの量の多さに、ここではその全てをご紹介することができませんが、下記「ver2.0.4 からの主な更新内容」の「クラスラッパー」項目をご覧いただければその量が分かるかと思います。
BveEX オリジナルの演算子を追加
論理演算に便利な各種演算子を追加しました。
- 比較演算子:
<、>、<=、>= - 等価演算子:
==、!= - 論理演算子:
&&、||、!
C 言語などの有名な言語と基本的な仕様を合わせているので直感的に扱えます。マップ if 文 (後述) の条件式と相性抜群です!
マップ if 文を完全刷新
できないことが多かった従来の if 文に代わり、どんな操作にも対応できる新形式の if 文を実装しました。
従来の if 文では、以下のように変数への代入や距離程の変更、他のマップファイルの include などを条件分岐の中で行うことができませんでした。
$a = rand();
$b = 0;
BveEx.If.BeginIf($a, '<', 0.5);
$b = 1;
BveEx.If.EndIf();
BveEx.Dialog.Show('$b は ' + $b + ' です。');
// $b は 50% の確率で 0、1 のどちらかになるかと思いきや、常に 1 になってしまうこれは、BVE 本体のマップ読込ロジックへの介入箇所に起因する問題でした。
そこで、新形式の if 文では更に構文解析の根本部分へと介入する形で実装。これにより、どのような構文を条件分岐の中に記述しても正常に処理できるようになりました。
$a = rand();
$b = 0;
ex_if ($a < 0.5) {
$b = 1;
}
BveEx.Dialog.Show('$b は ' + $b + ' です。');
// $b はちゃんと 50% の確率で 0、1 のどちらかになる詳しい使い方は「マップ if 文・演算子等サンプル」を参照してください。
引数付きの拡張 include 文を実装
以下のように、引数を付けて他のマップファイルを呼び出せるようになりました。1 行で完結するので、インクルードを関数的な方法で使う際に便利です。
800;
$foo = 12345;
ex_include 'SubMap.txt', 100, 'hello', $foo;インクルードされる側のマップファイルでは、以下のように渡された引数の値を取得できます。
ex_argdistance;
// ex_include 構文が記述されていた距離程 (800 m) を取得できる
BveEx.Dialog.Show('arg1 は ' + ex_arg1 + ' です。'); // 100
BveEx.Dialog.Show('arg2 は ' + ex_arg2 + ' です。'); // 'hello'
BveEx.Dialog.Show('arg3 は ' + ex_arg3 + ' です。'); // 12345詳しい使い方は「マップ if 文・演算子等サンプル」を参照してください。
ライセンス
従来の AtsEX からライセンスが変更となっています。暫定的なもののため、次版以降は異なるライセンスに変更となる可能性があります。
商用利用について
商用利用をご希望の場合は個別の許諾となります。事前にご連絡ください。
連絡の要・不要の指針は後日ホームページにて公開予定ですが、現時点では一律で要連絡とさせていただきます。
ver2.0.4 (v2.0.50104.1) からの主な更新内容
共通
- 参照する Harmony のバージョンを 2.2.2 から 2.3.3 にアップデートしました。→ 07eee56
BveEX 本体
- 【破壊的変更】 同一プラグインを複数回読み込んだとき、AssemblyPluginBase.Location プロパティが「そのプラグインが初めて読み込まれたときのパス」ではなく「PluginUsing などで指定されたパスそのもの」を返すようになりました。→ a99693b
- 従来の戻り値は直感に反するものですが、これは .NET Framework のアセンブリ (dll) 読込の仕様に起因するものです。
マップファイルの構文関連
- 【重要】 2 項演算子
<、>、<=、>=、==、!=、&&、||を追加しました。→ af8d846 - 【重要】 単項演算子
!(否定) を追加しました。→ af8d846 - 【重要】 if 文を新しい書式で追加しました。→ 3053ce8
ex_if (condition) { ~ } ex_elif (condition) { ~ } ex_else { ~ }のように記述します。BveEx.If.BeginIf(int condition)などによる旧書式の if 文と異なり、条件分岐の中でも正常に変数への代入や距離程の変更を行うことができます。
- 【重要】 引数を付加可能な拡張 include 文を実装しました。→ 8cec62a
BveEX コア拡張機能
ビルトイン マップ構文
クラスラッパー
- 【破壊的変更】 BasicBrake クラスを BrakePiston に改名しました。→ 897f1bb
- 【重要】 BpValve クラス、CircuitBreaker クラス、Compressor クラス、CscFilteredTimeDelayedHandleSet クラス、LoadCompensator クラス、TimeDelayedHandleSet クラス、BcValve.IsBcServo プロパティ、BcValve.RapidReleaseSpeed プロパティ、BcValve.RapidApplySpeed プロパティ、BrakePiston.Stroke プロパティ、BrakePiston.Force プロパティ、BrakeSystem.TimeDelayedHandles プロパティ、BrakeSystem.BrakeBlender プロパティの set アクセサ、BrakeSystem.BrakeController プロパティの set アクセサ、BrakeSystem.Compressor プロパティ、CarInfo.Tachogenerator プロパティ、CarInfo.MotorState プロパティ、CarInfo.BrakePistonForce プロパティ、Cl.Er プロパティ、Cl.Bp プロパティ、ConstantSpeedRelay.Input プロパティ、ConstantSpeedRelay.Output プロパティ、ConstantSpeedRelay.Initialize メソッド、HandleSet クラスのコンストラクタ、HandleSet.Sync メソッド、JerkRegulator.ElectricBrakeCommand プロパティ、JerkRegulator.CurrentIncrease プロパティ、JerkRegulator.CurrentDecrease プロパティ、NotchInfo クラスのコンストラクタ、OneLeverCab クラスのコンストラクタ、Passenger.Load プロパティ、Passenger.BodyWeight プロパティ、Passenger.BoardingSpeed プロパティ、Passenger.AlightingSpeed プロパティ、ReAdhesionControl.SlipAcceleration プロパティ、ReAdhesionControl.SlipDeceleration プロパティ、ReAdhesionControl.SlipVelocity プロパティ、ReAdhesionControl.BalanceAcceleration プロパティ、ReAdhesionControl.HoldingTime プロパティ、ReAdhesionControl.ReferenceAcceleration プロパティ、ReAdhesionControl.ReferenceDeceleration プロパティ、Smee.Sap プロパティ、Smee.Bp プロパティ、Tachogenerator クラスのコンストラクタ、Tachogenerator.Acceleration プロパティ、Tachogenerator.ResistanceAcceleration プロパティ、TwoLeverCab クラスのコンストラクタ、Vehicle.Initialize メソッドのオーバーロード、Vehicle.Tick メソッド、VehicleDynamics クラスのコンストラクタ、VehicleDynamics.InertiaRatio プロパティ、VehicleDynamics.TotalMass プロパティ、VehicleDynamics.TotalInertia プロパティ、VehicleDynamics.MassRatio プロパティ、VehicleDynamics.Tick メソッド、VehicleDynamics.Initialize メソッド、VehicleDynamics.Setup メソッド、VehicleElectricity.TimeDelayedHandles プロパティ、VehicleElectricity.Breaker プロパティ、VehicleInstrumentSet クラスのコンストラクタ、VehicleInstrumentSet.LoadCompensator プロパティ、VehicleInstrumentSet.Initialize メソッドのオーバーロード、VehicleLocation クラスのコンストラクタ、VehiclePerformanceBase.LoadFromFile メソッド、VehicleVibration クラスのコンストラクタ、VehicleVibration.Initialize メソッドを追加しました。→ 71a93bb
- 車両データのパラメーターファイルで設定する値を全て操作できるようになりました。
- AirSupplement クラス、BrakeBlenderBase クラス、BrakeControllerBase クラス、BrakePiston クラス、BrakeSystem クラス、CarBrake クラス、Cl クラス、Ecb クラス、LockoutValve クラス、Smee クラス、VehicleElectricity クラス、VehicleInstrumentSet クラスに ITickable インターフェイスを実装しました。→ b2e1064 / 49e4d35 / 71a93bb / a62248d
- これにより、各クラスに Initialize メソッド、Tick メソッドが追加されました。
- ElectricBrakeCommand クラス、BrakeBlenderBase.ElectricBrakeCommand プロパティを追加しました。→ 085220d
- 電気ブレーキ力の目標値が操作できるようになりました。
- VehicleLocation.Tick メソッド、Tachogenerator.Tick メソッドを追加しました。→ 6c1583a
- Map.AdhesionObjects プロパティ、Map.BrakeShoeFrictionObjects プロパティを追加しました。→ 465064e
- CabBase クラス、VehicleInstrumentSet クラスに IDisposable インターフェイスを実装しました。→ 71a93bb
- これにより、各クラスに Dispose メソッドが追加されました。
- Model.CreateRectangleWithTexture メソッドのオーバーロード、Model.FromMesh メソッドを追加しました。→ 2e5af71
- これまで以上に様々な方法で Model オブジェクトを作成できるようになりました。
- IniReader クラスを追加しました。→ 4d94324
- BVE 標準の INI ファイルの読込ロジックを参照できるようになりました。
- SpeedLimitList.VehicleLength プロパティを追加しました。→ 258a663
- 速度制限を解除する位置を計算するための自列車長さを操作できるようになりました。
- IMapLoader インターフェイス、MapGrammar クラス、ClassicMapParser.Parse メソッド、MapLoader.ThrowError メソッド、MapParser.Parse メソッド、MapParserBase.Parent プロパティを追加しました。→ 7180a77
- マップファイルの構文解析ロジックを根本から操作できるようになりました。
- ValveMode 列挙型、Valve.Pressure プロパティ、Valve.Mode プロパティを追加しました。→ 4e37c46
- BrakeControllerBase.Handles プロパティ、BrakeControllerBase.OutputPressure プロパティを追加しました。→ a62248d
TypeWrapping
- 読込時のエラーで、文面が分かりづらいものの一部を修正しました。→ 2719c17
サンプル
- 駅のホームの方向を逆転しました。→ 1736e51
- 見た目上は右側にあるものの、Station.Put 構文では左側に設定されていたため、見た目に合わせて右側へ統一しました。
マップ if 文
ver2.0.3 (v2.0.50103.3) からの主な更新内容
BveEX 本体
- 【重要】 プラグインの Tick メソッドから ATS ハンドル出力が上書きできない問題を修正しました。→ 78c8733
- Markdig が正常に動作していなかったため、参照する System.Runtime.CompilerServices.Unsafe パッケージのバージョンを調整しました。→ d728e1c
- Markdown変換に失敗した場合でも、アップデート情報ダイアログが表示されるようになりました。→ 3ad67d9
BveEX コア拡張機能
SoundFactory
- 内部実装を変更し、ISoundFactory.LoadFrom メソッドを使用できる期間を延長しました。→ 093456e
- AtsPlugin クラスのコンストラクタの実行後から BveHacker.ScenarioClosed イベントの発生まで使用可能です。
- 呼出タイミングの関係により、車両プラグインのコンストラクタからは直接呼び出せるようになりました (マッププラグイン、拡張機能のコンストラクタからの呼出は引き続き不可です)。
- 使用可能かどうかを ISoundFactory.IsAvailable プロパティから取得できるようになりました。
- 使用不可能なタイミングで ISoundFactory.LoadFrom メソッドを呼び出した場合、独自の InvalidOperationException がスローされるようになりました。
ver2.0.2 (v2.0.50103.2) からの主な更新内容
レガシーモード
ver2.0.1 (v2.0.50103.1) からの主な更新内容
レガシーモード
ver2.0 (v2.0.41222.1) からの主な更新内容
BveEX 本体
- バージョン情報ダイアログ内のリンクを修正しました。→ 7e36293
BveEX Launcher
- IPC チャンネルの登録解除忘れを修正しました。→ fda4571
- これにより、「チャネル 'ipc client' は既に登録されています」エラーが解消されました。
- BveEX 本体の読込に時間がかかると IPC 通信がタイムアウトし、エラーとなる不具合を修正しました。→ 07f4bd0
- これにより、「IPC ポートに接続できません」エラーが解消されました。
- アップデート情報の取得先が旧名リポジトリのままであったため修正しました。→ 0356d37
クラスラッパー
- XML ドキュメントの誤りを修正しました。→ 66c4fb4
サンプル
マップ if 文サンプル
- AtsEX 向けの古い構文が残っていたため修正しました。→ 1fde1cb
レガシーモード
ver2.0.4 - v2.0.10504.1
基本的には、本バージョンの仕様がそのまま正式版の仕様として引き継がれます。ただし、万が一重大な欠陥などが判明した場合は、一部の仕様が変更となる可能性があります。次版 (ver2.1) が正式版最初のバージョンとなる予定です。
BveEX についてはこちら→ AtsEX BVE拡張キット - 岡オカ営業所
※サイト工事中につき、「AtsEX」の表記が残っています。
ver1.0-RC10 → ver2.0.x アップデートのポイント
AtsEX → BveEX への改称
RC 版の終了を記念して、名前を AtsEX から BveEX に変更しました。
元々「ATS プラグインの機能を拡張する」との意味が込められていたのですが、より導入が簡単な入力デバイスプラグイン版に代替され、ATS プラグイン版が非推奨化、そして廃止となった現在、もはや AtsEX という名前が実態にそぐわなくなってしまっていたためです。
これに伴い、全 API の名前空間が AtsEx.~ → BveEx.~ に変更となっています。よって、従来の AtsEX プラグインを BveEX に対応させるためには、参照を書き換える必要があります。
従来の AtsEX プラグインもレガシーモードで動作可能
従来規格の AtsEX プラグインも、レガシーモードを使えば動作させることが可能です。ただしレガシーモードで動作するのは AtsEX プラグインのみ、通常モードで動作するのは BveEX プラグインのみのため、AtsEX プラグインと BveEX プラグインを同時に動作させることはできません。
通常モードとレガシーモードの切替は、プラグインリストやマップ構文の文法から自動で判定・実行されます。手動でモード切替を行う必要はありません。
API をより綺麗に
互換性がなくなるこのタイミングに合わせて、多くの変更を行いました。
- AtsEX RC 版で非推奨となっていた機能は全て廃止しました。
- クラスやプロパティ、メソッドなどの名前で、一部扱いづらかったり、実態にそぐわないものがありました。これらについても全て改名しました。
- 例えば、
UserVehicleLocationManagerはVehicleLocationに、KeyProviderはInputManagerに、RouteはMapに変更となっています。
- 例えば、
- Tick メソッドの戻り値を
TickResultからvoidに変更しました。これまではいちいちreturn new ○○PluginTickResult();と書かなければいけませんでしたが、この手間がなくなりました。- 従来の
VehiclePluginTickResultで可能だったハンドル出力の上書きを行いたい場合は、直接HandleSetを操作する必要があります。「シンプルな ATS プラグイン」の実装を参考にしてください。
- 従来の
Nativeを本体機能から廃止し、BveEX コア拡張機能のいち機能として再実装しました。- 過去の ATS プラグイン版では「
BveHackerを使わない、ATS プラグインの機能のみを使って実装した機能」という意味がありましたが、入力デバイスプラグイン版が主流となった今ではただBveHackerから得たデータを加工しているだけの機能となってしまい、もはや本体に付属させる意義がなくなっていたためです。
- 過去の ATS プラグイン版では「
新機能の追加
RC 版までのアップデートと同様、今回のアップデートでも様々な新機能を追加しています。
- オリジナルの補助表示を 1 行で追加できる
AssistantText.Createメソッド - 自列車の読込・終了メソッド
- ハンドルを動かしたときに発生するイベント
- etc...
ライセンスについて
従来の AtsEX からライセンスが変更となっています。暫定的なもののため、次版以降は異なるライセンスに変更となる可能性があります。
商用利用について
商用利用をご希望の場合は個別の許諾となります。事前にご連絡ください。
連絡の要・不要の指針は後日ホームページにて公開予定ですが、現時点では一律で要連絡とさせていただきます。
ver2.0.3 (v2.0.50103.3) からの主な更新内容
BveEX 本体
- 【重要】 プラグインの Tick メソッドから ATS ハンドル出力が上書きできない問題を修正しました。→ 78c8733
- Markdig が正常に動作していなかったため、参照する System.Runtime.CompilerServices.Unsafe パッケージのバージョンを調整しました。→ d728e1c
- Markdown変換に失敗した場合でも、アップデート情報ダイアログが表示されるようになりました。→ 3ad67d9
BveEX コア拡張機能
SoundFactory
- 内部実装を変更し、ISoundFactory.LoadFrom メソッドを使用できる期間を延長しました。→ 093456e
- AtsPlugin クラスのコンストラクタの実行後から BveHacker.ScenarioClosed イベントの発生まで使用可能です。
- 呼出タイミングの関係により、車両プラグインのコンストラクタからは直接呼び出せるようになりました (マッププラグイン、拡張機能のコンストラクタからの呼出は引き続き不可です)。
- 使用可能かどうかを ISoundFactory.IsAvailable プロパティから取得できるようになりました。
- 使用不可能なタイミングで ISoundFactory.LoadFrom メソッドを呼び出した場合、独自の InvalidOperationException がスローされるようになりました。
ver2.0.2 (v2.0.50103.2) からの主な更新内容
レガシーモード
ver2.0.1 (v2.0.50103.1) からの主な更新内容
レガシーモード
ver2.0 (v2.0.41222.1) からの主な更新内容
BveEX 本体
- バージョン情報ダイアログ内のリンクを修正しました。→ 7e36293
BveEX Launcher
- IPC チャンネルの登録解除忘れを修正しました。→ fda4571
- これにより、「チャネル 'ipc client' は既に登録されています」エラーが解消されました。
- BveEX 本体の読込に時間がかかると IPC 通信がタイムアウトし、エラーとなる不具合を修正しました。→ 07f4bd0
- これにより、「IPC ポートに接続できません」エラーが解消されました。
- アップデート情報の取得先が旧名リポジトリのままであったため修正しました。→ 0356d37
クラスラッパー
- XML ドキュメントの誤りを修正しました。→ 66c4fb4
サンプル
マップ if 文サンプル
- AtsEX 向けの古い構文が残っていたため修正しました。→ 1fde1cb
レガシーモード
- 【重要】 レガシーモード下で BVE を終了した場合でも、次回起動時には自動で通常モードへ復帰するようになりました。→ 05fc250
- 【重要】 AtsEX 向け・BveEX 向けのコードが混在していると再起動を繰り返し、無限ループしてしまう不具合を修正しました。→ 9bc779b / 8673eb4
- 【重要】 AtsEx.Caller.x**.VehiclePluginUsing.xml からの車両プラグインの自動読込に再対応しました。→ 1e2ebda
- AtsEX ATS プラグイン版向けの車両プラグイン組込方法です。古い機能のためレガシーモードでは実装しなかったのですが、多くのご要望を頂いたため予定を変更して実装しました。
同梱プラグイン一覧
拡張機能
- BveEX コア拡張機能
- ConductorPatch
- 車掌の動作を自由に変更できるようにするパッチを提供します。
- ContextMenuHacker
- メインフォームの右クリックメニューを編集するための機能を提供します。
- DiagramUpdater
- 時刻表、ダイヤグラムなどの行路に関わるオブジェクトの更新機能を提供します。
- MapStatements
- プラグインからオリジナルのマップ構文を簡単に定義・参照できるようにします。
- PreTrainPatch
- 先行列車の走行位置を自由に変更できるようにするパッチを提供します。
- SignalPatch
- 閉塞の信号現示を自由に変更できるようにするパッチを提供します。
- SoundFactory
- プラグインから音声を簡単に読み込めるようにします。
- StructureModelFinder
- ストラクチャーの 3D モデルを簡単に検索するための機能を提供します。
- TrainDrawPatch
- 他列車を自由に移動・回転できるようにするパッチを提供します。
- ConductorPatch
- AtsArrayExtender
- ATS パネル・サウンドで使用可能なインデックスを、従来の 4 倍の範囲 (0 ~ 1023) に拡張します。詳しいことは ホームページ をご覧ください。
- DXDynamicTexture
- MultiStructureList
- 複数のストラクチャーリストを読み込めるようにするプラグインです。
- RichLoad
- リッチなシナリオ読込画面を実装できるようにするプラグインです。
車両プラグイン
- 運転台パネルに値を渡すサンプル
- 車掌サンプル
- マッププラグイン連携サンプル
- 運転台パネル操作サンプル
- シンプルな ATS サンプル
- 状態取得・設定サンプル
マッププラグイン
- 車両プラグイン連携サンプル
- DXDynamicTexture 連携サンプル
- 新・マップ構文サンプル
- 先行列車操作サンプル
- 信号現示操作サンプル
- SoundFactory サンプル
- 駅リスト編集サンプル
- 他列車操作サンプル
- 他列車操作サンプル EX (自動制御版)
- 他列車操作サンプル EX (手動制御版)
ダウンロード
【推奨】BveEX 本体+サンプルシナリオ+BveEX SDK exe インストーラー版
BveEX 本体に加えて、車両プラグイン・マッププラグインの動作が確認できるサンプルシナリオ、BveEX SDK (サンプルプラグインのソースコードのセット) を同梱しています。
下の Assets より BveEX_v2.0.50104.1_Setup.exe をダウンロードし、実行してください。
BveEX 本体+サンプルシナリオ 7z 手動インストール版
BveEX 本体に加えて、車両プラグイン・マッププラグインの動作が確認できるサンプルシナリオを同梱しています。
※手動インストール版には BveEX SDK は同梱されません
下の Assets より BveEX_v2.0.50104.1.7z をダウンロード・解凍し、シナリオフォルダおよび BVE 本体の Input Devices フォルダに配置してください。
インストール方法の説明はこちら→ AtsEXインストールガイド - AtsEX ATSプラグイン拡張キット - 岡オカ営業所
旧・AtsEX 向けの説明ですが、手順に大きな変更はありません。
BveEX SDK
サンプルプラグインのソースコードのセットです。内容は ver2.0 から変更ありません。
下の Assets より BveEX_v2.0.50104.1_SDK.7z をダウンロード・解凍してください。実行には別途 BveEX 本体のダウンロードが必要です。
※自動インストーラー版には BveEX SDK が初めから同梱されているため、こちらを別途ダウンロードする必要はありません。
解凍には 7-zip などの解凍ソフトが必要です。
ver2.0.3 - v2.0.50103.3
基本的には、本バージョンの仕様がそのまま正式版の仕様として引き継がれます。ただし、万が一重大な欠陥などが判明した場合は、一部の仕様が変更となる可能性があります。次版 (ver2.1) が正式版最初のバージョンとなる予定です。
BveEX についてはこちら→ AtsEX BVE拡張キット - 岡オカ営業所
※サイト工事中につき、「AtsEX」の表記が残っています。
ver1.0-RC10 → ver2.0.x アップデートのポイント
AtsEX → BveEX への改称
RC 版の終了を記念して、名前を AtsEX から BveEX に変更しました。
元々「ATS プラグインの機能を拡張する」との意味が込められていたのですが、より導入が簡単な入力デバイスプラグイン版に代替され、ATS プラグイン版が非推奨化、そして廃止となった現在、もはや AtsEX という名前が実態にそぐわなくなってしまっていたためです。
これに伴い、全 API の名前空間が AtsEx.~ → BveEx.~ に変更となっています。よって、従来の AtsEX プラグインを BveEX に対応させるためには、参照を書き換える必要があります。
従来の AtsEX プラグインもレガシーモードで動作可能
従来規格の AtsEX プラグインも、レガシーモードを使えば動作させることが可能です。ただしレガシーモードで動作するのは AtsEX プラグインのみ、通常モードで動作するのは BveEX プラグインのみのため、AtsEX プラグインと BveEX プラグインを同時に動作させることはできません。
通常モードとレガシーモードの切替は、プラグインリストやマップ構文の文法から自動で判定・実行されます。手動でモード切替を行う必要はありません。
API をより綺麗に
互換性がなくなるこのタイミングに合わせて、多くの変更を行いました。
- AtsEX RC 版で非推奨となっていた機能は全て廃止しました。
- クラスやプロパティ、メソッドなどの名前で、一部扱いづらかったり、実態にそぐわないものがありました。これらについても全て改名しました。
- 例えば、
UserVehicleLocationManagerはVehicleLocationに、KeyProviderはInputManagerに、RouteはMapに変更となっています。
- 例えば、
- Tick メソッドの戻り値を
TickResultからvoidに変更しました。これまではいちいちreturn new ○○PluginTickResult();と書かなければいけませんでしたが、この手間がなくなりました。- 従来の
VehiclePluginTickResultで可能だったハンドル出力の上書きを行いたい場合は、直接HandleSetを操作する必要があります。「シンプルな ATS プラグイン」の実装を参考にしてください。
- 従来の
Nativeを本体機能から廃止し、BveEX コア拡張機能のいち機能として再実装しました。- 過去の ATS プラグイン版では「
BveHackerを使わない、ATS プラグインの機能のみを使って実装した機能」という意味がありましたが、入力デバイスプラグイン版が主流となった今ではただBveHackerから得たデータを加工しているだけの機能となってしまい、もはや本体に付属させる意義がなくなっていたためです。
- 過去の ATS プラグイン版では「
新機能の追加
RC 版までのアップデートと同様、今回のアップデートでも様々な新機能を追加しています。
- オリジナルの補助表示を 1 行で追加できる
AssistantText.Createメソッド - 自列車の読込・終了メソッド
- ハンドルを動かしたときに発生するイベント
- etc...
ライセンスについて
従来の AtsEX からライセンスが変更となっています。暫定的なもののため、次版以降は異なるライセンスに変更となる可能性があります。
商用利用について
商用利用をご希望の場合は個別の許諾となります。事前にご連絡ください。
連絡の要・不要の指針は後日ホームページにて公開予定ですが、現時点では一律で要連絡とさせていただきます。
ver2.0.2 (v2.0.50103.2) からの主な更新内容
レガシーモード
ver2.0.1 (v2.0.50103.1) からの主な更新内容
レガシーモード
ver2.0 (v2.0.41222.1) からの主な更新内容
BveEX 本体
- バージョン情報ダイアログ内のリンクを修正しました。→ 7e36293
BveEX Launcher
- IPC チャンネルの登録解除忘れを修正しました。→ fda4571
- これにより、「チャネル 'ipc client' は既に登録されています」エラーが解消されました。
- BveEX 本体の読込に時間がかかると IPC 通信がタイムアウトし、エラーとなる不具合を修正しました。→ 07f4bd0
- これにより、「IPC ポートに接続できません」エラーが解消されました。
- アップデート情報の取得先が旧名リポジトリのままであったため修正しました。→ 0356d37
クラスラッパー
- XML ドキュメントの誤りを修正しました。→ 66c4fb4
サンプル
マップ if 文サンプル
- AtsEX 向けの古い構文が残っていたため修正しました。→ 1fde1cb
レガシーモード
- 【重要】 レガシーモード下で BVE を終了した場合でも、次回起動時には自動で通常モードへ復帰するようになりました。→ 05fc250
- 【重要】 AtsEX 向け・BveEX 向けのコードが混在していると再起動を繰り返し、無限ループしてしまう不具合を修正しました。→ 9bc779b / 8673eb4
- 【重要】 AtsEx.Caller.x**.VehiclePluginUsing.xml からの車両プラグインの自動読込に再対応しました。→ 1e2ebda
- AtsEX ATS プラグイン版向けの車両プラグイン組込方法です。古い機能のためレガシーモードでは実装しなかったのですが、多くのご要望を頂いたため予定を変更して実装しました。
同梱プラグイン一覧
拡張機能
- BveEX コア拡張機能
- ConductorPatch
- 車掌の動作を自由に変更できるようにするパッチを提供します。
- ContextMenuHacker
- メインフォームの右クリックメニューを編集するための機能を提供します。
- DiagramUpdater
- 時刻表、ダイヤグラムなどの行路に関わるオブジェクトの更新機能を提供します。
- MapStatements
- プラグインからオリジナルのマップ構文を簡単に定義・参照できるようにします。
- PreTrainPatch
- 先行列車の走行位置を自由に変更できるようにするパッチを提供します。
- SignalPatch
- 閉塞の信号現示を自由に変更できるようにするパッチを提供します。
- SoundFactory
- プラグインから音声を簡単に読み込めるようにします。
- StructureModelFinder
- ストラクチャーの 3D モデルを簡単に検索するための機能を提供します。
- TrainDrawPatch
- 他列車を自由に移動・回転できるようにするパッチを提供します。
- ConductorPatch
- AtsArrayExtender
- ATS パネル・サウンドで使用可能なインデックスを、従来の 4 倍の範囲 (0 ~ 1023) に拡張します。詳しいことは ホームページ をご覧ください。
- DXDynamicTexture
- MultiStructureList
- 複数のストラクチャーリストを読み込めるようにするプラグインです。
- RichLoad
- リッチなシナリオ読込画面を実装できるようにするプラグインです。
車両プラグイン
- 運転台パネルに値を渡すサンプル
- 車掌サンプル
- マッププラグイン連携サンプル
- 運転台パネル操作サンプル
- シンプルな ATS サンプル
- 状態取得・設定サンプル
マッププラグイン
- 車両プラグイン連携サンプル
- DXDynamicTexture 連携サンプル
- 新・マップ構文サンプル
- 先行列車操作サンプル
- 信号現示操作サンプル
- SoundFactory サンプル
- 駅リスト編集サンプル
- 他列車操作サンプル
- 他列車操作サンプル EX (自動制御版)
- 他列車操作サンプル EX (手動制御版)
ダウンロード
【推奨】BveEX 本体+サンプルシナリオ+BveEX SDK exe インストーラー版
BveEX 本体に加えて、車両プラグイン・マッププラグインの動作が確認できるサンプルシナリオ、BveEX SDK (サンプルプラグインのソースコードのセット) を同梱しています。
下の Assets より BveEX_v2.0.50103.2_Setup.exe をダウンロードし、実行してください。
BveEX 本体+サンプルシナリオ 7z 手動インストール版
BveEX 本体に加えて、車両プラグイン・マッププラグインの動作が確認できるサンプルシナリオを同梱しています。
※手動インストール版には BveEX SDK は同梱されません
下の Assets より BveEX_v2.0.50103.2.7z をダウンロード・解凍し、シナリオフォルダおよび BVE 本体の Input Devices フォルダに配置してください。
インストール方法の説明はこちら→ AtsEXインストールガイド - AtsEX ATSプラグイン拡張キット - 岡オカ営業所
旧・AtsEX 向けの説明ですが、手順に大きな変更はありません。
BveEX SDK
サンプルプラグインのソースコードのセットです。内容は ver2.0 から変更ありません。
下の Assets より BveEX_v2.0.50103.2_SDK.7z をダウンロード・解凍してください。実行には別途 BveEX 本体のダウンロードが必要です。
※自動インストーラー版には BveEX SDK が初めから同梱されているため、こちらを別途ダウンロードする必要はありません。
解凍には 7-zip などの解凍ソフトが必要です。
ver2.0.2 - v2.0.50103.2
基本的には、本バージョンの仕様がそのまま正式版の仕様として引き継がれます。ただし、万が一重大な欠陥などが判明した場合は、一部の仕様が変更となる可能性があります。次版 (ver2.1) が正式版最初のバージョンとなる予定です。
BveEX についてはこちら→ AtsEX BVE拡張キット - 岡オカ営業所
※サイト工事中につき、「AtsEX」の表記が残っています。
ver1.0-RC10 → ver2.0.x アップデートのポイント
AtsEX → BveEX への改称
RC 版の終了を記念して、名前を AtsEX から BveEX に変更しました。
元々「ATS プラグインの機能を拡張する」との意味が込められていたのですが、より導入が簡単な入力デバイスプラグイン版に代替され、ATS プラグイン版が非推奨化、そして廃止となった現在、もはや AtsEX という名前が実態にそぐわなくなってしまっていたためです。
これに伴い、全 API の名前空間が AtsEx.~ → BveEx.~ に変更となっています。よって、従来の AtsEX プラグインを BveEX に対応させるためには、参照を書き換える必要があります。
従来の AtsEX プラグインもレガシーモードで動作可能
従来規格の AtsEX プラグインも、レガシーモードを使えば動作させることが可能です。ただしレガシーモードで動作するのは AtsEX プラグインのみ、通常モードで動作するのは BveEX プラグインのみのため、AtsEX プラグインと BveEX プラグインを同時に動作させることはできません。
通常モードとレガシーモードの切替は、プラグインリストやマップ構文の文法から自動で判定・実行されます。手動でモード切替を行う必要はありません。
API をより綺麗に
互換性がなくなるこのタイミングに合わせて、多くの変更を行いました。
- AtsEX RC 版で非推奨となっていた機能は全て廃止しました。
- クラスやプロパティ、メソッドなどの名前で、一部扱いづらかったり、実態にそぐわないものがありました。これらについても全て改名しました。
- 例えば、
UserVehicleLocationManagerはVehicleLocationに、KeyProviderはInputManagerに、RouteはMapに変更となっています。
- 例えば、
- Tick メソッドの戻り値を
TickResultからvoidに変更しました。これまではいちいちreturn new ○○PluginTickResult();と書かなければいけませんでしたが、この手間がなくなりました。- 従来の
VehiclePluginTickResultで可能だったハンドル出力の上書きを行いたい場合は、直接HandleSetを操作する必要があります。「シンプルな ATS プラグイン」の実装を参考にしてください。
- 従来の
Nativeを本体機能から廃止し、BveEX コア拡張機能のいち機能として再実装しました。- 過去の ATS プラグイン版では「
BveHackerを使わない、ATS プラグインの機能のみを使って実装した機能」という意味がありましたが、入力デバイスプラグイン版が主流となった今ではただBveHackerから得たデータを加工しているだけの機能となってしまい、もはや本体に付属させる意義がなくなっていたためです。
- 過去の ATS プラグイン版では「
新機能の追加
RC 版までのアップデートと同様、今回のアップデートでも様々な新機能を追加しています。
- オリジナルの補助表示を 1 行で追加できる
AssistantText.Createメソッド - 自列車の読込・終了メソッド
- ハンドルを動かしたときに発生するイベント
- etc...
ライセンスについて
従来の AtsEX からライセンスが変更となっています。暫定的なもののため、次版以降は異なるライセンスに変更となる可能性があります。
商用利用について
商用利用をご希望の場合は個別の許諾となります。事前にご連絡ください。
連絡の要・不要の指針は後日ホームページにて公開予定ですが、現時点では一律で要連絡とさせていただきます。
ver2.0.1 (v2.0.50103.1) からの主な更新内容
レガシーモード
ver2.0 (v2.0.41222.1) からの主な更新内容
BveEX 本体
- バージョン情報ダイアログ内のリンクを修正しました。→ 7e36293
BveEX Launcher
- IPC チャンネルの登録解除忘れを修正しました。→ fda4571
- これにより、「チャネル 'ipc client' は既に登録されています」エラーが解消されました。
- BveEX 本体の読込に時間がかかると IPC 通信がタイムアウトし、エラーとなる不具合を修正しました。→ 07f4bd0
- これにより、「IPC ポートに接続できません」エラーが解消されました。
- アップデート情報の取得先が旧名リポジトリのままであったため修正しました。→ 0356d37
クラスラッパー
- XML ドキュメントの誤りを修正しました。→ 66c4fb4
サンプル
マップ if 文サンプル
- AtsEX 向けの古い構文が残っていたため修正しました。→ 1fde1cb
レガシーモード
- 【重要】 レガシーモード下で BVE を終了した場合でも、次回起動時には自動で通常モードへ復帰するようになりました。→ 05fc250
- 【重要】 AtsEX 向け・BveEX 向けのコードが混在していると再起動を繰り返し、無限ループしてしまう不具合を修正しました。→ 9bc779b / 8673eb4
- 【重要】 AtsEx.Caller.x**.VehiclePluginUsing.xml からの車両プラグインの自動読込に再対応しました。→ 1e2ebda
- AtsEX ATS プラグイン版向けの車両プラグイン組込方法です。古い機能のためレガシーモードでは実装しなかったのですが、多くのご要望を頂いたため予定を変更して実装しました。
同梱プラグイン一覧
拡張機能
- BveEX コア拡張機能
- ConductorPatch
- 車掌の動作を自由に変更できるようにするパッチを提供します。
- ContextMenuHacker
- メインフォームの右クリックメニューを編集するための機能を提供します。
- DiagramUpdater
- 時刻表、ダイヤグラムなどの行路に関わるオブジェクトの更新機能を提供します。
- MapStatements
- プラグインからオリジナルのマップ構文を簡単に定義・参照できるようにします。
- PreTrainPatch
- 先行列車の走行位置を自由に変更できるようにするパッチを提供します。
- SignalPatch
- 閉塞の信号現示を自由に変更できるようにするパッチを提供します。
- SoundFactory
- プラグインから音声を簡単に読み込めるようにします。
- StructureModelFinder
- ストラクチャーの 3D モデルを簡単に検索するための機能を提供します。
- TrainDrawPatch
- 他列車を自由に移動・回転できるようにするパッチを提供します。
- ConductorPatch
- AtsArrayExtender
- ATS パネル・サウンドで使用可能なインデックスを、従来の 4 倍の範囲 (0 ~ 1023) に拡張します。詳しいことは ホームページ をご覧ください。
- DXDynamicTexture
- MultiStructureList
- 複数のストラクチャーリストを読み込めるようにするプラグインです。
- RichLoad
- リッチなシナリオ読込画面を実装できるようにするプラグインです。
車両プラグイン
- 運転台パネルに値を渡すサンプル
- 車掌サンプル
- マッププラグイン連携サンプル
- 運転台パネル操作サンプル
- シンプルな ATS サンプル
- 状態取得・設定サンプル
マッププラグイン
- 車両プラグイン連携サンプル
- DXDynamicTexture 連携サンプル
- 新・マップ構文サンプル
- 先行列車操作サンプル
- 信号現示操作サンプル
- SoundFactory サンプル
- 駅リスト編集サンプル
- 他列車操作サンプル
- 他列車操作サンプル EX (自動制御版)
- 他列車操作サンプル EX (手動制御版)
ダウンロード
【推奨】BveEX 本体+サンプルシナリオ+BveEX SDK exe インストーラー版
BveEX 本体に加えて、車両プラグイン・マッププラグインの動作が確認できるサンプルシナリオ、BveEX SDK (サンプルプラグインのソースコードのセット) を同梱しています。
下の Assets より BveEX_v2.0.50103.2_Setup.exe をダウンロードし、実行してください。
BveEX 本体+サンプルシナリオ 7z 手動インストール版
BveEX 本体に加えて、車両プラグイン・マッププラグインの動作が確認できるサンプルシナリオを同梱しています。
※手動インストール版には BveEX SDK は同梱されません
下の Assets より BveEX_v2.0.50103.2.7z をダウンロード・解凍し、シナリオフォルダおよび BVE 本体の Input Devices フォルダに配置してください。
インストール方法の説明はこちら→ AtsEXインストールガイド - AtsEX ATSプラグイン拡張キット - 岡オカ営業所
旧・AtsEX 向けの説明ですが、手順に大きな変更はありません。
BveEX SDK
サンプルプラグインのソースコードのセットです。内容は ver2.0 から変更ありません。
下の Assets より BveEX_v2.0.50103.2_SDK.7z をダウンロード・解凍してください。実行には別途 BveEX 本体のダウンロードが必要です。
※自動インストーラー版には BveEX SDK が初めから同梱されているため、こちらを別途ダウンロードする必要はありません。
解凍には 7-zip などの解凍ソフトが必要です。
ver2.0.1 - v2.0.50103.1
基本的には、本バージョンの仕様がそのまま正式版の仕様として引き継がれます。ただし、万が一重大な欠陥などが判明した場合は、一部の仕様が変更となる可能性があります。次版 (ver2.1) が正式版最初のバージョンとなる予定です。
BveEX についてはこちら→ AtsEX BVE拡張キット - 岡オカ営業所
※サイト工事中につき、「AtsEX」の表記が残っています。
ver1.0-RC10 → ver2.0.x アップデートのポイント
AtsEX → BveEX への改称
RC 版の終了を記念して、名前を AtsEX から BveEX に変更しました。
元々「ATS プラグインの機能を拡張する」との意味が込められていたのですが、より導入が簡単な入力デバイスプラグイン版に代替され、ATS プラグイン版が非推奨化、そして廃止となった現在、もはや AtsEX という名前が実態にそぐわなくなってしまっていたためです。
これに伴い、全 API の名前空間が AtsEx.~ → BveEx.~ に変更となっています。よって、従来の AtsEX プラグインを BveEX に対応させるためには、参照を書き換える必要があります。
従来の AtsEX プラグインもレガシーモードで動作可能
従来規格の AtsEX プラグインも、レガシーモードを使えば動作させることが可能です。ただしレガシーモードで動作するのは AtsEX プラグインのみ、通常モードで動作するのは BveEX プラグインのみのため、AtsEX プラグインと BveEX プラグインを同時に動作させることはできません。
通常モードとレガシーモードの切替は、プラグインリストやマップ構文の文法から自動で判定・実行されます。手動でモード切替を行う必要はありません。
API をより綺麗に
互換性がなくなるこのタイミングに合わせて、多くの変更を行いました。
- AtsEX RC 版で非推奨となっていた機能は全て廃止しました。
- クラスやプロパティ、メソッドなどの名前で、一部扱いづらかったり、実態にそぐわないものがありました。これらについても全て改名しました。
- 例えば、
UserVehicleLocationManagerはVehicleLocationに、KeyProviderはInputManagerに、RouteはMapに変更となっています。
- 例えば、
- Tick メソッドの戻り値を
TickResultからvoidに変更しました。これまではいちいちreturn new ○○PluginTickResult();と書かなければいけませんでしたが、この手間がなくなりました。- 従来の
VehiclePluginTickResultで可能だったハンドル出力の上書きを行いたい場合は、直接HandleSetを操作する必要があります。「シンプルな ATS プラグイン」の実装を参考にしてください。
- 従来の
Nativeを本体機能から廃止し、BveEX コア拡張機能のいち機能として再実装しました。- 過去の ATS プラグイン版では「
BveHackerを使わない、ATS プラグインの機能のみを使って実装した機能」という意味がありましたが、入力デバイスプラグイン版が主流となった今ではただBveHackerから得たデータを加工しているだけの機能となってしまい、もはや本体に付属させる意義がなくなっていたためです。
- 過去の ATS プラグイン版では「
新機能の追加
RC 版までのアップデートと同様、今回のアップデートでも様々な新機能を追加しています。
- オリジナルの補助表示を 1 行で追加できる
AssistantText.Createメソッド - 自列車の読込・終了メソッド
- ハンドルを動かしたときに発生するイベント
- etc...
ライセンスについて
従来の AtsEX からライセンスが変更となっています。暫定的なもののため、次版以降は異なるライセンスに変更となる可能性があります。
商用利用について
商用利用をご希望の場合は個別の許諾となります。事前にご連絡ください。
連絡の要・不要の指針は後日ホームページにて公開予定ですが、現時点では一律で要連絡とさせていただきます。
ver2.0 (v2.0.41222.1) からの主な更新内容
BveEX 本体
- 【重要】 レガシーモード下で BVE を終了した場合でも、次回起動時には自動で通常モードへ復帰するようになりました。→ 05fc250
- 【重要】 AtsEX 向け・BveEX 向けのコードが混在していると再起動を繰り返し、無限ループしてしまう不具合を修正しました。→ 9bc779b
- バージョン情報ダイアログ内のリンクを修正しました。→ 7e36293
BveEX Launcher
- IPC チャンネルの登録解除忘れを修正しました。→ fda4571
- これにより、「チャネル 'ipc client' は既に登録されています」エラーが解消されました。
- BveEX 本体の読込に時間がかかると IPC 通信がタイムアウトし、エラーとなる不具合を修正しました。→ 07f4bd0
- これにより、「IPC ポートに接続できません」エラーが解消されました。
- アップデート情報の取得先が旧名リポジトリのままであったため修正しました。→ 0356d37
クラスラッパー
- XML ドキュメントの誤りを修正しました。→ 66c4fb4
サンプル
マップ if 文サンプル
- AtsEX 向けの古い構文が残っていたため修正しました。→ 1fde1cb
レガシーモード
- AtsEx.Caller.x**.VehiclePluginUsing.xml からの車両プラグインの自動読込に再対応しました。→ 1e2ebda
- AtsEX ATS プラグイン版向けの車両プラグイン組込方法です。古い機能のためレガシーモードでは実装しなかったのですが、多くのご要望を頂いたため予定を変更して実装しました。
同梱プラグイン一覧
拡張機能
- BveEX コア拡張機能
- ConductorPatch
- 車掌の動作を自由に変更できるようにするパッチを提供します。
- ContextMenuHacker
- メインフォームの右クリックメニューを編集するための機能を提供します。
- DiagramUpdater
- 時刻表、ダイヤグラムなどの行路に関わるオブジェクトの更新機能を提供します。
- MapStatements
- プラグインからオリジナルのマップ構文を簡単に定義・参照できるようにします。
- PreTrainPatch
- 先行列車の走行位置を自由に変更できるようにするパッチを提供します。
- SignalPatch
- 閉塞の信号現示を自由に変更できるようにするパッチを提供します。
- SoundFactory
- プラグインから音声を簡単に読み込めるようにします。
- StructureModelFinder
- ストラクチャーの 3D モデルを簡単に検索するための機能を提供します。
- TrainDrawPatch
- 他列車を自由に移動・回転できるようにするパッチを提供します。
- ConductorPatch
- AtsArrayExtender
- ATS パネル・サウンドで使用可能なインデックスを、従来の 4 倍の範囲 (0 ~ 1023) に拡張します。詳しいことは ホームページ をご覧ください。
- DXDynamicTexture
- MultiStructureList
- 複数のストラクチャーリストを読み込めるようにするプラグインです。
- RichLoad
- リッチなシナリオ読込画面を実装できるようにするプラグインです。
車両プラグイン
- 運転台パネルに値を渡すサンプル
- 車掌サンプル
- マッププラグイン連携サンプル
- 運転台パネル操作サンプル
- シンプルな ATS サンプル
- 状態取得・設定サンプル
マッププラグイン
- 車両プラグイン連携サンプル
- DXDynamicTexture 連携サンプル
- 新・マップ構文サンプル
- 先行列車操作サンプル
- 信号現示操作サンプル
- SoundFactory サンプル
- 駅リスト編集サンプル
- 他列車操作サンプル
- 他列車操作サンプル EX (自動制御版)
- 他列車操作サンプル EX (手動制御版)
ダウンロード
【推奨】BveEX 本体+サンプルシナリオ+BveEX SDK exe インストーラー版
BveEX 本体に加えて、車両プラグイン・マッププラグインの動作が確認できるサンプルシナリオ、BveEX SDK (サンプルプラグインのソースコードのセット) を同梱しています。
下の Assets より BveEX_v2.0.50103.1_Setup.exe をダウンロードし、実行してください。
BveEX 本体+サンプルシナリオ 7z 手動インストール版
BveEX 本体に加えて、車両プラグイン・マッププラグインの動作が確認できるサンプルシナリオを同梱しています。
※手動インストール版には BveEX SDK は同梱されません
下の Assets より BveEX_v2.0.50103.1.7z をダウンロード・解凍し、シナリオフォルダおよび BVE 本体の Input Devices フォルダに配置してください。
インストール方法の説明はこちら→ AtsEXインストールガイド - AtsEX ATSプラグイン拡張キット - 岡オカ営業所
旧・AtsEX 向けの説明ですが、手順に大きな変更はありません。
BveEX SDK
サンプルプラグインのソースコードのセットです。内容は ver2.0 から変更ありません。
下の Assets より BveEX_v2.0.41222.1_SDK.7z をダウンロード・解凍してください。実行には別途 BveEX 本体のダウンロードが必要です。
※自動インストーラー版には BveEX SDK が初めから同梱されているため、こちらを別途ダウンロードする必要はありません。
解凍には 7-zip などの解凍ソフトが必要です。
ver2.0 - v2.0.41222.1
🎉祝・BveEX 正式版プレリリース!🎉
基本的には、本バージョンの仕様がそのまま正式版の仕様として引き継がれます。ただし、万が一重大な欠陥などが判明した場合は、一部の仕様が変更となる可能性があります。次版 (ver2.1) が正式版最初のバージョンとなる予定です。
BveEX についてはこちら→ AtsEX BVE拡張キット - 岡オカ営業所
※サイト工事中につき、「AtsEX」の表記が残っています。
ver1.0-RC10 → ver2.0 アップデートのポイント
AtsEX → BveEX への改称
RC 版の終了を記念して、名前を AtsEX から BveEX に変更しました。
元々「ATS プラグインの機能を拡張する」との意味が込められていたのですが、より導入が簡単な入力デバイスプラグイン版に代替され、ATS プラグイン版が非推奨化、そして廃止となった現在、もはや AtsEX という名前が実態にそぐわなくなってしまっていたためです。
これに伴い、全 API の名前空間が AtsEx.~ → BveEx.~ に変更となっています。よって、従来の AtsEX プラグインを BveEX に対応させるためには、参照を書き換える必要があります。
従来の AtsEX プラグインもレガシーモードで動作可能
従来規格の AtsEX プラグインも、レガシーモードを使えば動作させることが可能です。ただしレガシーモードで動作するのは AtsEX プラグインのみ、通常モードで動作するのは BveEX プラグインのみのため、AtsEX プラグインと BveEX プラグインを同時に動作させることはできません。
通常モードとレガシーモードの切替は、プラグインリストやマップ構文の文法から自動で判定・実行されます。手動でモード切替を行う必要はありません。
API をより綺麗に
互換性がなくなるこのタイミングに合わせて、多くの変更を行いました。
- AtsEX RC 版で非推奨となっていた機能は全て廃止しました。
- クラスやプロパティ、メソッドなどの名前で、一部扱いづらかったり、実態にそぐわないものがありました。これらについても全て改名しました。
- 例えば、
UserVehicleLocationManagerはVehicleLocationに、KeyProviderはInputManagerに、RouteはMapに変更となっています。
- 例えば、
- Tick メソッドの戻り値を
TickResultからvoidに変更しました。これまではいちいちreturn new ○○PluginTickResult();と書かなければいけませんでしたが、この手間がなくなりました。- 従来の
VehiclePluginTickResultで可能だったハンドル出力の上書きを行いたい場合は、直接HandleSetを操作する必要があります。「シンプルな ATS プラグイン」の実装を参考にしてください。
- 従来の
Nativeを本体機能から廃止し、BveEX コア拡張機能のいち機能として再実装しました。- 過去の ATS プラグイン版では「
BveHackerを使わない、ATS プラグインの機能のみを使って実装した機能」という意味がありましたが、入力デバイスプラグイン版が主流となった今ではただBveHackerから得たデータを加工しているだけの機能となってしまい、もはや本体に付属させる意義がなくなっていたためです。
- 過去の ATS プラグイン版では「
新機能の追加
RC 版までのアップデートと同様、今回のアップデートでも様々な新機能を追加しています。
- オリジナルの補助表示を 1 行で追加できる
AssistantText.Createメソッド - 自列車の読込・終了メソッド
- ハンドルを動かしたときに発生するイベント
- etc...
ライセンスについて
従来の AtsEX からライセンスが変更となっています。暫定的なもののため、次版以降は異なるライセンスに変更となる可能性があります。
商用利用について
商用利用をご希望の場合は個別の許諾となります。事前にご連絡ください。
連絡の要・不要の指針は後日ホームページにて公開予定ですが、現時点では一律で要連絡とさせていただきます。
同梱プラグイン一覧
拡張機能
- BveEX コア拡張機能
- ConductorPatch
- 車掌の動作を自由に変更できるようにするパッチを提供します。
- ContextMenuHacker
- メインフォームの右クリックメニューを編集するための機能を提供します。
- DiagramUpdater
- 時刻表、ダイヤグラムなどの行路に関わるオブジェクトの更新機能を提供します。
- MapStatements
- プラグインからオリジナルのマップ構文を簡単に定義・参照できるようにします。
- PreTrainPatch
- 先行列車の走行位置を自由に変更できるようにするパッチを提供します。
- SignalPatch
- 閉塞の信号現示を自由に変更できるようにするパッチを提供します。
- SoundFactory
- プラグインから音声を簡単に読み込めるようにします。
- StructureModelFinder
- ストラクチャーの 3D モデルを簡単に検索するための機能を提供します。
- TrainDrawPatch
- 他列車を自由に移動・回転できるようにするパッチを提供します。
- ConductorPatch
- AtsArrayExtender
- ATS パネル・サウンドで使用可能なインデックスを、従来の 4 倍の範囲 (0 ~ 1023) に拡張します。詳しいことは ホームページ をご覧ください。
- DXDynamicTexture
- MultiStructureList
- 複数のストラクチャーリストを読み込めるようにするプラグインです。
- RichLoad
- リッチなシナリオ読込画面を実装できるようにするプラグインです。
車両プラグイン
- 運転台パネルに値を渡すサンプル
- 車掌サンプル
- マッププラグイン連携サンプル
- 運転台パネル操作サンプル
- シンプルな ATS サンプル
- 状態取得・設定サンプル
マッププラグイン
- 車両プラグイン連携サンプル
- DXDynamicTexture 連携サンプル
- 新・マップ構文サンプル
- 先行列車操作サンプル
- 信号現示操作サンプル
- SoundFactory サンプル
- 駅リスト編集サンプル
- 他列車操作サンプル
- 他列車操作サンプル EX (自動制御版)
- 他列車操作サンプル EX (手動制御版)
ダウンロード
【推奨】BveEX 本体+サンプルシナリオ+BveEX SDK exe インストーラー版
BveEX 本体に加えて、車両プラグイン・マッププラグインの動作が確認できるサンプルシナリオ、BveEX SDK (サンプルプラグインのソースコードのセット) を同梱しています。
下の Assets より BveEX_v2.0.41222.1_Setup.exe をダウンロードし、実行してください。
BveEX 本体+サンプルシナリオ 7z 手動インストール版
BveEX 本体に加えて、車両プラグイン・マッププラグインの動作が確認できるサンプルシナリオを同梱しています。
※手動インストール版には BveEX SDK は同梱されません
下の Assets より BveEX_v2.0.41222.1.7z をダウンロード・解凍し、シナリオフォルダおよび BVE 本体の Input Devices フォルダに配置してください。
インストール方法の説明はこちら→ AtsEXインストールガイド - AtsEX ATSプラグイン拡張キット - 岡オカ営業所
旧・AtsEX 向けの説明ですが、手順に大きな変更はありません。
BveEX SDK
サンプルプラグインのソースコードのセットです。
下の Assets より BveEX_v2.0.41222.1_SDK.7z をダウンロード・解凍してください。実行には別途 BveEX 本体のダウンロードが必要です。
※自動インストーラー版には BveEX SDK が初めから同梱されているため、こちらを別途ダウンロードする必要はありません。
解凍には 7-zip などの解凍ソフトが必要です。