Releases: automatic9045/BveEX
ver1.0-RC5 - v1.0.40101.1
本バージョンは RC 版です。正式版リリースまでに少なくとも 1 回、重大な破壊的変更を予定しています。本番環境での採用はお控えください。
AtsEX についてはこちら→ AtsEX ATSプラグイン拡張キット - 岡オカ営業所
⚠️ RC 版につき、フィードバックにご協力ください
本バージョンは RC 版です。ひと通りの機能は揃っていますが、動作が不安定な可能性があります。また、仕様を十分に検討し切れていない部分もあります。
インストールや AtsEX プラグインの使用・開発はもちろん自由に行うことができますが、その際には是非 Twitter や GMail にて 動作報告・不具合報告・仕様に関するご意見 など頂けるととても嬉しいです。
⚠️ 一部AtsEX対応路線に加工が必要です
ver1.0-RC3 以前のバージョンの AtsEX からアップデートした場合、仕様変更の影響で @Bluegill77BiVE5 氏制作・JR 大和路線データのAtsEX版が動作しなくなります。
こちら (Google ドライブ) よりパッチをダウンロードいただき、インストール済の大和路線データに上書きしてください。
アップデートのポイント
更に幅広いデータを操作可能に
BveTypes.dll の機能が更に充実。車掌、音声、自軌道、補助表示、3D モデルなどなど、AtsEX プラグインから操作できるものの幅が格段にパワーアップしました!
更にプラグインを作りやすく
AtsEx.PluginHost、AtsEx.CoreExtensions などの AtsEX プラグインから参照する DLL を NuGet に公開。新規にプラグインを開発する際の手間が大幅に低減されました!
その他、車両ファイルが複数ある場合に車両プラグインリストファイル・車両設定ファイルを一括で定義できるようになったりと、プラグインの開発・組込にて地味~に手間がかかっていた部分を細かくじっくりと見直しました。
【ご意見募集中】パフォーマンスのための独自ヘッダー・独自ステートメントの仕様変更
従来は何も設定せずとも独自ヘッダー、独自ステートメントはその機能をフルに使用することができましたが、行数の多いマップなどでは読込時間がとても長くなってしまっていました。
そこで、本バージョンよりマップファイル・AtsEX プラグイン内で特定のフラグをオンにした場合以外は機能を大幅に制限する仕様に変更しました。
読込時間の短縮のために手間が増えた格好ですが、いかがでしょうか。お使いになった際には「こういう仕様にした方が良いのでは?」など是非ご意見をお寄せください。
ver1.0-RC2: 仕様を変更しました
ご意見を踏まえて、機能が有効化される条件を若干緩和しました。
USEATSEX
ではなくNOMPI
が冒頭に定義されていても有効化するようにREADDEPTH
の初期値を 0 → 1 にUSEATSEX
、READDEPTH
は山括弧でも定義できるように
ver1.0-RC4: 仕様を変更しました
パフォーマンスが明らかに低下してしまっていたため、機能が有効化される条件の一部を戻しました。
READDEPTH
の初期値を 1 → 0 に
引き続き皆様からのご意見お待ちしております。
ver1.0-RC4 (v1.0.31223.1) からの主な更新内容
AtsEX 本体
- 【重要】 定速制御のコマンドが正しく動作しない不具合を修正しました。→ a1efb25
- アップデート情報ダイアログで表示されるダウンロードリンクを、GitHub のものから AtsEX 公式ホームページのダウンロードページに変更しました。→ 327e57f
クラスラッパー
- 【破壊的変更】 一部メンバー名の綴り間違いを修正しました。→ 4b62433 / b64f3f3
- 対象: Station.DepertureTimeMilliseconds プロパティ、Station.DepertureTime プロパティ、Station.DepertureSound プロパティ、TimeTable.DepertureTimeTexts プロパティ、TimeTable.DepertureTimeTextWidths プロパティ
- 旧名のプロパティは ClassMemberSet から参照できなくなったため、特殊な処理を実装している場合は影響を受ける可能性があります。通常の使用方法の範囲では影響はほぼありません。
- MyTrack.Gradients プロパティを追加しました。→ 494e13d
- 勾配の情報を取得できるようになりました。
- ConstantSpeedRelay クラスを追加しました。→ 98b5a7f
- 定速制御の制御種別が操作できるようになりました。
- TimeManager.State プロパティが取得できない不具合を修正しました。→ 907d284
- CantList クラスを InterpolatableMapObjectList クラスの派生として再定義しました。→ b3f6f60
- ver1.0-RC4 にて CurveList クラスを InterpolatableMapObjectList クラスの派生として再定義しましたが、実際には InterpolatableMapObjectList クラスを継承していなかったため修正しました。→ c1c301a
拡張機能
- 【重要】 AtsArrayExtender の AtsEX 拡張機能版を追加しました。→ 0eb2085
ver1.0-RC3 (v1.0.31118.2) からの主な更新内容
共通
- 【重要】 AtsEXプラグインの Tick メソッドにおいて、elapsed パラメータの 1 フレーム目の値が不正になる不具合を修正しました。→ 2bbc336
AtsEX 本体
独自ヘッダー
- 【破壊的変更】
READDEPTH
の初期値を 0 → 1 に戻しました。→ 68cbc0f- パフォーマンスが明らかに低下してしまったためです。
BveTypes (クラスラッパー除く)
クラスラッパー
- 【重要】 PluginLoader クラスを AtsPlugin に改名しました。→ da45c56 / adac7c9
- 実態にそぐわなかったためです。
- ある程度の互換性は維持されています。旧名のクラスも引き続きご利用いただけます。
- 運転台関連のクラス (OneLeverCab クラス、TwoLeverCab クラス) を追加しました。→ 1f45377
- これにより、ワンハンドル / ツーハンドルを識別できるようになりました。
- Model.FromXFile メソッドを追加しました。→ ff9fd05
- プラグインから X ファイルを読み込み、3D モデルを構築できるようになりました。
- SectionManager.CurrentSectionSignalIndex プロパティを追加しました。→ 032bfa3
- 現在の閉そくの信号インデックスを簡単に取得できるようになりました。
- MyTrack.CurvePosts プロパティを CurveList 型として取得できるようになりました。→ b9812ba
- ValueNode クラス、ValueEventArgs クラスのメンバーが正しく読み込めない不具合を修正しました。→ 5638200 など
- CurveList クラスを InterpolatableMapObjectList クラスの派生として再定義しました。→ 15b311f
FastMember
P/Invoke によるアンマネージな関数の呼び出しに対応ました。→ 316f435
TypeWrapping
- 【破壊的変更】 ジェネリック型のメンバーを扱えるようになりました。→ ce85a40 / 88a5692 / b96b358
- WrapTypeSet のメンバーの形態を変更しました。
- 型を互換性を維持しながら改名できるようになりました。→ 65597ed
サンプル
状態取得・設定サンプル (StateViewer)
- 右クリックメニューが正しく解放されない不具合を修正しました。→ 4b84ccc
信号現示操作サンプル (SignalController)
- イベントが正しく解放されない不具合を修正しました。→ 4a31842
ver1.0-RC2 (v1.0.31118.1) からの主な更新内容
共通
- 最新版であってもアップデート情報ダイアログが表示されてしまう不具合を解消するため、再更新しました。→ 83b3255
ver1.0-RC1 (v1.0.31106.1) からの主な更新内容
AtsEX 本体
独自ヘッダー
- 【破壊的変更】 後方互換性のために、構文解析を実施する条件を緩和しました。→ a19363b
USEATSEX
ではなくNOMPI
が冒頭に定義されていても有効化される仕様に変更しました。READDEPTH
の初期値を 0 → 1 に変更しました。
USEATSEX
、READDEPTH
は、従来の記法 ([[AtsEx::USEATSEX]]
など) に加えて、山括弧による記法 (<AtsEx::USEATSEX>
など) でも定義できるようになりました。→ a19363b
AtsEX 拡張機能: DXDynamicTexture
- デバッグ用のメッセージボックスを削除しました。→ 77b3232
クラスラッパー
- Beacon クラスのコンストラクタを追加しました。→ beb9258
- ObjectPassedEventArgs クラスのコンストラクタを追加しました。→ c966b59
- これにより、AtsEX プラグインから SetBeaconData 関数を独自の設定で呼び出せるようになりました。
サンプル
- 他列車操作サンプルにて使用する他列車を E217 系から停止位置目標に戻しました。→ 76143d6
- 案内表示が隠れてしまっていたためです。
beta0.19 (v0.19.30520.1) からの主な更新内容
共通
- 【重要】 AtsEx.PluginHost、AtsEx.CoreExtensions を NuGet パッケージとして公開しました。→ 9124a5d
- 多くのコードを整理しました。
AtsEX 本体
- 【重要】 AtsEX プラグインの Tick メソッドの elapsed パラメータにおいて、ポーズ・早送りが考慮されない不具合を修正しました。→ 5571438
- シナリオが開かれたとき / 閉じられたときをイベントから検知できるようになりました。→ 1fc2aee / e1f2507
入力デバイスプラグイン版のみ関係するもの
- 【重要】 ATS プラグインによるブレーキが作用しなくなる不具合を修正しました。→ f046754
- この変更は v0.19.30520.1-fix にて適用済です。
- AtsEX 本体の読込でエラーが発生した場合、その詳細が表示されるようになりました。→ 9ec0a6f
- 終了時にエラーが発生する不具合を修正しました。→ 8cf6109
- シナリオを再読込するとエラーが発生する不具合を修正しました。→ e2261e1 / 573056d
独自ヘッダー
- 【破壊的変更】 マップファイル冒頭に特定のヘッダーが定義されていない限り、そのマップファイルについてはヘッダーの解釈をスキップする仕様に変更しました。→ 2b4bca7 / b9775a6 / edf74d6
- パフォーマンスのためです。従来の仕様では、無条件に全マップファイルの構文解釈を行っていたため、AtsEX を使用している状態で重量級のマップを読み込もうとすると読込に要する時間が極端に長くなってしまっていました。
- この機能については、現在仕様について検討している段階です。ver1.0 RC → ver1.0 へのバージョンアップ時に仕様が多少変更となる可能性があります。ご意見等あれば是非お聞かせください。
- 読込に際して、削除対象でないエラーも削除されてしまう不具合を修正しました。→ fea7c6a / cd575ca
- シナリオ終了時にメモリリークが発生する不具合を修正しました。→ 06d41e6
独自ステートメント
- 【破壊的変更】 監視対象の他列車は AtsEX プラグインから指定する仕様に変更しました。→ d5363ae
- パフォーマンスのためです。
プラグインリストファイル
- 【重要】 同一ディレクトリ内の車両ファイルに対して、1 つのプラグインリストファイルを一括で適用できるようになりました。→ e603d73
- ファイル名を
VehiclePluginUsing.xml
にして車両ファイル群と同一のディレクトリに配置してください。
- ファイル名を
- 【重要】 プラグインリストファイルのファイル名として
(車両ファイル名).VehiclePluginUsing.xml
以外の名前も使用できるようになりました。→ e603d73- 車両設定ファイルに
<PluginIUsingPath>ファイル名</PluginIUsingPath>
と設定することで有効化されます。
- 車両設定ファイルに
- C# アセンブリ / C# スクリプト / IronPython 2 いずれの形態かに関わらず、プラグインの読込順を任意に指定できるようになりました。→ 097bd9a
- ATS プラグイン版でも、AtsEX Caller に付属させる形のみではなく車両ファイルに付属させる形のプラグインリストファイルも読み込めるようになりました。→ e603d73
車両設定ファイル
- 同一ディレクトリ内の車両ファイルに対して、1 つの車両設定ファイルを一括で適用できるようになりました。→ 7554ee1
- ファイル名を
VehicleConfig.xml
にして車両ファイル群と同一のディレクトリに配置してください。
- ファイル名を
- 要素を任意の順番で定義できるようになりました。→ 1518287
- ATS プラグイン版でも、AtsEX Caller に付属させる形のみではなく車両ファイルに付属させる形の車両設定ファイルも読み込めるようになりました。→ 7554ee1
AtsEX コア拡張機能
- BVE 内部で定義されている車掌動作を、AtsEX プラグインから上書きできるようにする機能
ConductorPatch
を追加しました。→ 6c29ec5
AtsEX 拡張機能: DXDynamicTexture
- テクスチャのファイルパスの表記揺れを許容する仕様に変更しました。→ 068cfbf
BveTypes (クラスラッパー除く)
- 【破壊的変更】 LoadAsync メソッドを廃止しました。→ 41fcc32
- 同期版と比較して、パフォーマンスなどのアドバンテージに乏しいためです。
- インターフェイスに対応しました。→ 4ab0050
- デリゲートに対応しました。→ fd529d3
クラスラッパー
- 【破壊的変更】 StructureBlock.MatrixFromLastBlock プロパティを TransformFromLastBlock に改名しました。→ 5e52a79
- 【破壊的変更】 AssistantTextBase クラス、AssistantTextDraw クラスは、命名が不適切だったため改名しました。→ f0e2fc3
- Direct3DProvider クラスから DirectSound オブジェクトを取得できるようになりました。→ 0124454
- 車掌関連のクラス (Conductor クラス、Passenger クラス) を追加しました。→ 8dd0bef / b72eed4 / df0c28c / 8924d33
- SoundSet クラスを追加しました。→ 8dd0bef...
ver1.0-RC4 - v1.0.31223.1
本バージョンは RC 版です。正式版リリースまでに少なくとも 1 回、重大な破壊的変更を予定しています。本番環境での採用はお控えください。
AtsEX についてはこちら→ AtsEX ATSプラグイン拡張キット - 岡オカ営業所
⚠️ RC 版につき、フィードバックにご協力ください
本バージョンは RC 版です。ひと通りの機能は揃っていますが、動作が不安定な可能性があります。また、仕様を十分に検討し切れていない部分もあります。
インストールや AtsEX プラグインの使用・開発はもちろん自由に行うことができますが、その際には是非 Twitter や GMail にて 動作報告・不具合報告・仕様に関するご意見 など頂けるととても嬉しいです。
⚠️ 一部AtsEX対応路線に加工が必要です
本アップデートを適用すると、仕様変更の影響で @Bluegill77BiVE5 氏制作・JR大和路線 データのAtsEX版が動作しなくなります。
こちら (Google ドライブ) よりパッチをダウンロードいただき、インストール済の大和路線データに上書きしてください。
アップデートのポイント
更に幅広いデータを操作可能に
BveTypes.dll の機能が更に充実。車掌、音声、自軌道、補助表示、3D モデルなどなど、AtsEX プラグインから操作できるものの幅が格段にパワーアップしました!
更にプラグインを作りやすく
AtsEx.PluginHost、AtsEx.CoreExtensions などの AtsEX プラグインから参照する DLL を NuGet に公開。新規にプラグインを開発する際の手間が大幅に低減されました!
その他、車両ファイルが複数ある場合に車両プラグインリストファイル・車両設定ファイルを一括で定義できるようになったりと、プラグインの開発・組込にて地味~に手間がかかっていた部分を細かくじっくりと見直しました。
【ご意見募集中】パフォーマンスのための独自ヘッダー・独自ステートメントの仕様変更
従来は何も設定せずとも独自ヘッダー、独自ステートメントはその機能をフルに使用することができましたが、行数の多いマップなどでは読込時間がとても長くなってしまっていました。
そこで、本バージョンよりマップファイル・AtsEX プラグイン内で特定のフラグをオンにした場合以外は機能を大幅に制限する仕様に変更しました。
読込時間の短縮のために手間が増えた格好ですが、いかがでしょうか。お使いになった際には「こういう仕様にした方が良いのでは?」など是非ご意見をお寄せください。
ver1.0-RC2: 仕様を変更しました
ご意見を踏まえて、機能が有効化される条件を若干緩和しました。
USEATSEX
ではなくNOMPI
が冒頭に定義されていても有効化するようにREADDEPTH
の初期値を 0 → 1 にUSEATSEX
、READDEPTH
は山括弧でも定義できるように
ver1.0-RC4: 仕様を変更しました
パフォーマンスが明らかに低下してしまっていたため、機能が有効化される条件の一部を戻しました。
READDEPTH
の初期値を 1 → 0 に
引き続き皆様からのご意見お待ちしております。
ver1.0-RC3 (v1.0.31118.2) からの主な更新内容
共通
- 【重要】 AtsEXプラグインの Tick メソッドにおいて、elapsed パラメータの 1 フレーム目の値が不正になる不具合を修正しました。→ 2bbc336
AtsEX 本体
独自ヘッダー
- 【破壊的変更】
READDEPTH
の初期値を 0 → 1 に戻しました。→ 68cbc0f- パフォーマンスが明らかに低下してしまったためです。
BveTypes (クラスラッパー除く)
クラスラッパー
- 【重要】 PluginLoader クラスを AtsPlugin に改名しました。→ da45c56 / adac7c9
- 実態にそぐわなかったためです。
- ある程度の互換性は維持されています。旧名のクラスも引き続きご利用いただけます。
- 運転台関連のクラス (OneLeverCab クラス、TwoLeverCab クラス) を追加しました。→ 1f45377
- これにより、ワンハンドル / ツーハンドルを識別できるようになりました。
- Model.FromXFile メソッドを追加しました。→ ff9fd05
- プラグインから X ファイルを読み込み、3D モデルを構築できるようになりました。
- SectionManager.CurrentSectionSignalIndex プロパティを追加しました。→ 032bfa3
- 現在の閉そくの信号インデックスを簡単に取得できるようになりました。
- MyTrack.CurvePosts プロパティを CurveList 型として取得できるようになりました。→ b9812ba
- ValueNode クラス、ValueEventArgs クラスのメンバーが正しく読み込めない不具合を修正しました。→ 5638200 など
- CurveList クラスを InterpolatableMapObjectList クラスの派生として再定義しました。
FastMember
P/Invoke によるアンマネージな関数の呼び出しに対応ました。→ 316f435
TypeWrapping
- 【破壊的変更】 ジェネリック型のメンバーを扱えるようになりました。→ ce85a40 / 88a5692 / b96b358
- WrapTypeSet のメンバーの形態を変更しました。
- 型を互換性を維持しながら改名できるようになりました。→ 65597ed
サンプル
状態取得・設定サンプル (StateViewer)
- 右クリックメニューが正しく解放されない不具合を修正しました。→ 4b84ccc
信号現示操作サンプル (SignalController)
- イベントが正しく解放されない不具合を修正しました。→ 4a31842
ver1.0-RC2 (v1.0.31118.1) からの主な更新内容
共通
- 最新版であってもアップデート情報ダイアログが表示されてしまう不具合を解消するため、再更新しました。→ 83b3255
ver1.0-RC1 (v1.0.31106.1) からの主な更新内容
AtsEX 本体
独自ヘッダー
- 【破壊的変更】 後方互換性のために、構文解析を実施する条件を緩和しました。→ a19363b
USEATSEX
ではなくNOMPI
が冒頭に定義されていても有効化される仕様に変更しました。READDEPTH
の初期値を 0 → 1 に変更しました。
USEATSEX
、READDEPTH
は、従来の記法 ([[AtsEx::USEATSEX]]
など) に加えて、山括弧による記法 (<AtsEx::USEATSEX>
など) でも定義できるようになりました。→ a19363b
AtsEX 拡張機能: DXDynamicTexture
- デバッグ用のメッセージボックスを削除しました。→ 77b3232
クラスラッパー
- Beacon クラスのコンストラクタを追加しました。→ beb9258
- ObjectPassedEventArgs クラスのコンストラクタを追加しました。→ c966b59
- これにより、AtsEX プラグインから SetBeaconData 関数を独自の設定で呼び出せるようになりました。
サンプル
- 他列車操作サンプルにて使用する他列車を E217 系から停止位置目標に戻しました。→ 76143d6
- 案内表示が隠れてしまっていたためです。
beta0.19 (v0.19.30520.1) からの主な更新内容
共通
- 【重要】 AtsEx.PluginHost、AtsEx.CoreExtensions を NuGet パッケージとして公開しました。→ 9124a5d
- 多くのコードを整理しました。
AtsEX 本体
- 【重要】 AtsEX プラグインの Tick メソッドの elapsed パラメータにおいて、ポーズ・早送りが考慮されない不具合を修正しました。→ 5571438
- シナリオが開かれたとき / 閉じられたときをイベントから検知できるようになりました。→ 1fc2aee / e1f2507
入力デバイスプラグイン版のみ関係するもの
- 【重要】 ATS プラグインによるブレーキが作用しなくなる不具合を修正しました。→ f046754
- この変更は v0.19.30520.1-fix にて適用済です。
- AtsEX 本体の読込でエラーが発生した場合、その詳細が表示されるようになりました。→ 9ec0a6f
- 終了時にエラーが発生する不具合を修正しました。→ 8cf6109
- シナリオを再読込するとエラーが発生する不具合を修正しました。→ e2261e1 / 573056d
独自ヘッダー
- 【破壊的変更】 マップファイル冒頭に特定のヘッダーが定義されていない限り、そのマップファイルについてはヘッダーの解釈をスキップする仕様に変更しました。→ 2b4bca7 / b9775a6 / edf74d6
- パフォーマンスのためです。従来の仕様では、無条件に全マップファイルの構文解釈を行っていたため、AtsEX を使用している状態で重量級のマップを読み込もうとすると読込に要する時間が極端に長くなってしまっていました。
- この機能については、現在仕様について検討している段階です。ver1.0 RC → ver1.0 へのバージョンアップ時に仕様が多少変更となる可能性があります。ご意見等あれば是非お聞かせください。
- 読込に際して、削除対象でないエラーも削除されてしまう不具合を修正しました。→ fea7c6a / cd575ca
- シナリオ終了時にメモリリークが発生する不具合を修正しました。→ 06d41e6
独自ステートメント
- 【破壊的変更】 監視対象の他列車は AtsEX プラグインから指定する仕様に変更しました。→ d5363ae
- パフォーマンスのためです。
プラグインリストファイル
- 【重要】 同一ディレクトリ内の車両ファイルに対して、1 つのプラグインリストファイルを一括で適用できるようになりました。→ e603d73
- ファイル名を
VehiclePluginUsing.xml
にして車両ファイル群と同一のディレクトリに配置してください。
- ファイル名を
- 【重要】 プラグインリストファイルのファイル名として
(車両ファイル名).VehiclePluginUsing.xml
以外の名前も使用できるようになりました。→ e603d73- 車両設定ファイルに
<PluginIUsingPath>ファイル名</PluginIUsingPath>
と設定することで有効化されます。
- 車両設定ファイルに
- C# アセンブリ / C# スクリプト / IronPython 2 いずれの形態かに関わらず、プラグインの読込順を任意に指定できるようになりました。→ 097bd9a
- ATS プラグイン版でも、AtsEX Caller に付属させる形のみではなく車両ファイルに付属させる形のプラグインリストファイルも読み込めるようになりました。→ e603d73
車両設定ファイル
- 同一ディレクトリ内の車両ファイルに対して、1 つの車両設定ファイルを一括で適用できるようになりました。→ 7554ee1
- ファイル名を
VehicleConfig.xml
にして車両ファイル群と同一のディレクトリに配置してください。
- ファイル名を
- 要素を任意の順番で定義できるようになりました。→ 1518287
- ATS プラグイン版でも、AtsEX Caller に付属させる形のみではなく車両ファイルに付属させる形の車両設定ファイルも読み込めるようになりました。→ 7554ee1
AtsEX コア拡張機能
- BVE 内部で定義されている車掌動作を、AtsEX プラグインから上書きできるようにする機能
ConductorPatch
を追加しました。→ 6c29ec5
AtsEX 拡張機能: DXDynamicTexture
- テクスチャのファイルパスの表記揺れを許容する仕様に変更しました。→ 068cfbf
BveTypes (クラスラッパー除く)
- 【破壊的変更】 LoadAsync メソッドを廃止しました。→ 41fcc32
- 同期版と比較して、パフォーマンスなどのアドバンテージに乏しいためです。
- インターフェイスに対応しました。→ 4ab0050
- デリゲートに対応しました。→ fd529d3
クラスラッパー
- 【破壊的変更】 StructureBlock.MatrixFromLastBlock プロパティを TransformFromLastBlock に改名しました。→ 5e52a79
- 【破壊的変更】 AssistantTextBase クラス、AssistantTextDraw クラスは、命名が不適切だったため改名しました。→ f0e2fc3
- Direct3DProvider クラスから DirectSound オブジェクトを取得できるようになりました。→ 0124454
- 車掌関連のクラス (Conductor クラス、Passenger クラス) を追加しました。→ 8dd0bef / b72eed4 / df0c28c / 8924d33
- SoundSet クラスを追加しました。→ 8dd0bef
- Sound クラスのコンストラクタを追加しました。→ ee66e5b
- Sound クラスから音声を再生できるようになりました。→ 8dd0bef / 8906c63
- Sound クラスから音声の設置位置、速度を操作できるようになりました。→ 4737b37
- これにより、いわゆる Sound3D でループ以外の任意の音声も再生できるようになりました。
- SectionManager クラスから前後の閉そくの制限速度を取得できるようになりました。
- 自軌道関連のクラス (Cant クラス、CantList クラス、Curve クラス、CurveList クラス、MyTrack クラス) を追加しました。→ 0398861 / c62f2b0
- 自軌道の曲線、カントの位置及び量を全て取得できるようになりました。
- 自列車の位置を制御するためのクラス (Transform クラス、VehicleBogieWheel クラス、VehiclePositioner クラス、VehicleVibrationManager クラス) を追加しました。→
- 車体を傾けたり、自列車を線路から離れて動かすことが可能となります。
- 視点を表す CameraLocation クラスを追加しました。→ 15c602c / 1c1b057
- 視点を編集できるようになりました。
- 自列車のバネに関するクラス (AirSpring クラス、Spring クラス) を追加しました。→ b1d3ed7
- 6DoFを表す SixDof クラスを追加しました。→ b1d3ed7
- 背景モデルを表す Background クラスを追加しました。→ 8d78997
- 補助表示関連のクラス (AssistantBase クラス、AssistantDrawer クラス、ClockText クラス、DetailText クラス、StationText クラス、SpeedLimitText クラス、GeometryText クラス、LeverText クラス、InstructionText クラス、SwayGauge クラス、StopPositionGauge クラス) を追加しました。→ f0e2fc3
- InterpolatableMapObjectList ...
ver1.0-RC3 - v1.0.31118.2
本バージョンは RC 版です。正式版リリースまでに少なくとも 1 回、重大な破壊的変更を予定しています。本番環境での採用はお控えください。
AtsEX についてはこちら→ AtsEX ATSプラグイン拡張キット - 岡オカ営業所
ホームページ リニューアルしました!
⚠️ RC 版につき、フィードバックにご協力ください
本バージョンは RC 版です。ひと通りの機能は揃っていますが、動作が不安定な可能性があります。また、仕様を十分に検討し切れていない部分もあります。
インストールや AtsEX プラグインの使用・開発はもちろん自由に行うことができますが、その際には是非 Twitter や GMail にて 動作報告・不具合報告・仕様に関するご意見 など頂けるととても嬉しいです。
アップデートのポイント
更に幅広いデータを操作可能に
BveTypes.dll の機能が更に充実。車掌、音声、自軌道、補助表示などなど、AtsEX プラグインから操作できるものの幅が格段にパワーアップしました!
更にプラグインを作りやすく
AtsEx.PluginHost、AtsEx.CoreExtensions などの AtsEX プラグインから参照する DLL を NuGet に公開。新規にプラグインを開発する際の手間が大幅に低減されました!
その他、車両ファイルが複数ある場合に車両プラグインリストファイル・車両設定ファイルを一括で定義できるようになったりと、プラグインの開発・組込にて地味~に手間がかかっていた部分を細かくじっくりと見直しました。
【ご意見募集中】パフォーマンスのための独自ヘッダー・独自ステートメントの仕様変更
従来は何も設定せずとも独自ヘッダー、独自ステートメントはその機能をフルに使用することができましたが、行数の多いマップなどでは読込時間がとても長くなってしまっていました。
そこで、本バージョンよりマップファイル・AtsEX プラグイン内で特定のフラグをオンにした場合以外は機能を大幅に制限する仕様に変更しました。
読込時間の短縮のために手間が増えた格好ですが、いかがでしょうか。お使いになった際には「こういう仕様にした方が良いのでは?」など是非ご意見をお寄せください。
ver1.0-RC2: 仕様を変更しました
ご意見を踏まえて、機能が有効化される条件を若干緩和しました。
USEATSEX
ではなくNOMPI
が冒頭に定義されていても有効化するようにREADDEPTH
の初期値を 0 → 1 にUSEATSEX
、READDEPTH
は山括弧でも定義できるように
引き続き皆様からのご意見お待ちしております。
ver1.0-RC2 (v1.0.31118.1) からの主な更新内容
共通
- 最新版であってもアップデート情報ダイアログが表示されてしまう不具合を解消するため、再更新しました。→ 83b3255
ver1.0-RC1 (v1.0.31106.1) からの主な更新内容
AtsEX 本体
独自ヘッダー
- 【破壊的変更】 後方互換性のために、構文解析を実施する条件を緩和しました。→ a19363b
USEATSEX
ではなくNOMPI
が冒頭に定義されていても有効化される仕様に変更しました。READDEPTH
の初期値を 0 → 1 に変更しました。
USEATSEX
、READDEPTH
は、従来の記法 ([[AtsEx::USEATSEX]]
など) に加えて、山括弧による記法 (<AtsEx::USEATSEX>
など) でも定義できるようになりました。→ a19363b
AtsEX 拡張機能: DXDynamicTexture
- デバッグ用のメッセージボックスを削除しました。→ 77b3232
クラスラッパー
- Beacon クラスのコンストラクタを追加しました。→ beb9258
- ObjectPassedEventArgs クラスのコンストラクタを追加しました。→ c966b59
- これにより、AtsEX プラグインから SetBeaconData 関数を独自の設定で呼び出せるようになりました。
サンプル
- 他列車操作サンプルにて使用する他列車を E217 系から停止位置目標に戻しました。→ 76143d6
- 案内表示が隠れてしまっていたためです。
beta0.19 (v0.19.30520.1) からの主な更新内容
共通
- 【重要】 AtsEx.PluginHost、AtsEx.CoreExtensions を NuGet パッケージとして公開しました。→ 9124a5d
- 多くのコードを整理しました。
AtsEX 本体
- 【重要】 AtsEX プラグインの Tick メソッドの elapsed パラメータにおいて、ポーズ・早送りが考慮されない不具合を修正しました。→ 5571438
- シナリオが開かれたとき / 閉じられたときをイベントから検知できるようになりました。→ 1fc2aee / e1f2507
入力デバイスプラグイン版のみ関係するもの
- 【重要】 ATS プラグインによるブレーキが作用しなくなる不具合を修正しました。→ f046754
- この変更は v0.19.30520.1-fix にて適用済です。
- AtsEX 本体の読込でエラーが発生した場合、その詳細が表示されるようになりました。→ 9ec0a6f
- 終了時にエラーが発生する不具合を修正しました。→ 8cf6109
- シナリオを再読込するとエラーが発生する不具合を修正しました。→ e2261e1 / 573056d
独自ヘッダー
- 【破壊的変更】 マップファイル冒頭に特定のヘッダーが定義されていない限り、そのマップファイルについてはヘッダーの解釈をスキップする仕様に変更しました。→ 2b4bca7 / b9775a6 / edf74d6
- パフォーマンスのためです。従来の仕様では、無条件に全マップファイルの構文解釈を行っていたため、AtsEX を使用している状態で重量級のマップを読み込もうとすると読込に要する時間が極端に長くなってしまっていました。
- この機能については、現在仕様について検討している段階です。ver1.0 RC → ver1.0 へのバージョンアップ時に仕様が多少変更となる可能性があります。ご意見等あれば是非お聞かせください。
- 読込に際して、削除対象でないエラーも削除されてしまう不具合を修正しました。→ fea7c6a / cd575ca
- シナリオ終了時にメモリリークが発生する不具合を修正しました。→ 06d41e6
独自ステートメント
- 【破壊的変更】 監視対象の他列車は AtsEX プラグインから指定する仕様に変更しました。→ d5363ae
- パフォーマンスのためです。
プラグインリストファイル
- 【重要】 同一ディレクトリ内の車両ファイルに対して、1 つのプラグインリストファイルを一括で適用できるようになりました。→ e603d73
- ファイル名を
VehiclePluginUsing.xml
にして車両ファイル群と同一のディレクトリに配置してください。
- ファイル名を
- 【重要】 プラグインリストファイルのファイル名として
(車両ファイル名).VehiclePluginUsing.xml
以外の名前も使用できるようになりました。→ e603d73- 車両設定ファイルに
<PluginIUsingPath>ファイル名</PluginIUsingPath>
と設定することで有効化されます。
- 車両設定ファイルに
- C# アセンブリ / C# スクリプト / IronPython 2 いずれの形態かに関わらず、プラグインの読込順を任意に指定できるようになりました。→ 097bd9a
- ATS プラグイン版でも、AtsEX Caller に付属させる形のみではなく車両ファイルに付属させる形のプラグインリストファイルも読み込めるようになりました。→ e603d73
車両設定ファイル
- 同一ディレクトリ内の車両ファイルに対して、1 つの車両設定ファイルを一括で適用できるようになりました。→ 7554ee1
- ファイル名を
VehicleConfig.xml
にして車両ファイル群と同一のディレクトリに配置してください。
- ファイル名を
- 要素を任意の順番で定義できるようになりました。→ 1518287
- ATS プラグイン版でも、AtsEX Caller に付属させる形のみではなく車両ファイルに付属させる形の車両設定ファイルも読み込めるようになりました。→ 7554ee1
AtsEX コア拡張機能
- BVE 内部で定義されている車掌動作を、AtsEX プラグインから上書きできるようにする機能
ConductorPatch
を追加しました。→ 6c29ec5
AtsEX 拡張機能: DXDynamicTexture
- テクスチャのファイルパスの表記揺れを許容する仕様に変更しました。→ 068cfbf
BveTypes (クラスラッパー除く)
- 【破壊的変更】 LoadAsync メソッドを廃止しました。→ 41fcc32
- 同期版と比較して、パフォーマンスなどのアドバンテージに乏しいためです。
- インターフェイスに対応しました。→ 4ab0050
- デリゲートに対応しました。→ fd529d3
クラスラッパー
- 【破壊的変更】 StructureBlock.MatrixFromLastBlock プロパティを TransformFromLastBlock に改名しました。→ 5e52a79
- 【破壊的変更】 AssistantTextBase クラス、AssistantTextDraw クラスは、命名が不適切だったため改名しました。→ f0e2fc3
- Direct3DProvider クラスから DirectSound オブジェクトを取得できるようになりました。→ 0124454
- 車掌関連のクラス (Conductor クラス、Passenger クラス) を追加しました。→ 8dd0bef / b72eed4 / df0c28c / 8924d33
- SoundSet クラスを追加しました。→ 8dd0bef
- Sound クラスのコンストラクタを追加しました。→ ee66e5b
- Sound クラスから音声を再生できるようになりました。→ 8dd0bef / 8906c63
- Sound クラスから音声の設置位置、速度を操作できるようになりました。→ 4737b37
- これにより、いわゆる Sound3D でループ以外の任意の音声も再生できるようになりました。
- SectionManager クラスから前後の閉そくの制限速度を取得できるようになりました。
- 自軌道関連のクラス (Cant クラス、CantList クラス、Curve クラス、CurveList クラス、MyTrack クラス) を追加しました。→ 0398861 / c62f2b0
- 自軌道の曲線、カントの位置及び量を全て取得できるようになりました。
- 自列車の位置を制御するためのクラス (Transform クラス、VehicleBogieWheel クラス、VehiclePositioner クラス、VehicleVibrationManager クラス) を追加しました。→
- 車体を傾けたり、自列車を線路から離れて動かすことが可能となります。
- 視点を表す CameraLocation クラスを追加しました。→ 15c602c / 1c1b057
- 視点を編集できるようになりました。
- 自列車のバネに関するクラス (AirSpring クラス、Spring クラス) を追加しました。→ b1d3ed7
- 6DoFを表す SixDof クラスを追加しました。→ b1d3ed7
- 背景モデルを表す Background クラスを追加しました。→ 8d78997
- 補助表示関連のクラス (AssistantBase クラス、AssistantDrawer クラス、ClockText クラス、DetailText クラス、StationText クラス、SpeedLimitText クラス、GeometryText クラス、LeverText クラス、InstructionText クラス、SwayGauge クラス、StopPositionGauge クラス) を追加しました。→ f0e2fc3
- InterpolatableMapObjectList クラスを追加しました。→ 7bebd13
- IDrawable インターフェイスを追加し、AssistantBase クラス、AssistantDrawer クラス、MainForm クラスにその実装を追加しました。→ 1c1b057
- ReAdhesionControl クラス、ReAdhesionControlMode 列挙型を追加しました。→ 4a8bf14
- 車両の再粘着制御の動作状態を取得できるようになりました。
- Scenario.Dispose メソッドを追加しました。→ cbe3f0c
- MapObjectList.GoTo メソッド、MapObjectList.GoToAndGetCurrent メソッドを追加しました。→ a5e2851 / 9edc423
- 現在の距離程に対応する要素を簡単に取得できるようになりました。
- Station.DoorSideEnum プロパティを追加しました。→ 861d1b2
- Conductor との連携を容易にするためです。
- StructureBlock.Direction プロパティを追加しました。→ b088bd7
- ストラクチャーブロックの方角が分かるため、自列車を線路から離れて動かしたいときなどに便利です。
- DrawDistanceManager クラスから描画距離を操作できるようになりました。→ 30ffb8f
- Route.CabIlluminanceObjects プロパティを追加しました。→ 7bebd13
- 運転台の明るさを操作できるようになりました。
- Direct3DProvider クラス、ObjectDrawer クラス、Scenario クラスへ、オブジェクト類を描画するときに呼び出されるメソッドを追加しました。→ 1c1b057
- Train、TrainInfo クラスのコンストラクタを追加しました。→ 53dff43
- MapObjectList.ObjectPassed イベントを追加しました。→ 63b909f
- マップオブジェクトの通過時に通知します。
FastMember
TypeWrapping
ObjectiveHarmonyPatch
- 【重要】 NuGet パッケージとして別リポジトリに分離しました。→ 8463a0e
UnembeddedResources
サンプル
ConductorPatch
拡張機能のサンプルを追加しました。→ 754cfd8- E217 系車両データを同梱しました。→ fa52ba2 / 2e8bae6 / e5d9d6f
- 各シナリオにサムネイルを追加しました。→ 6881a98
- AtsEX 非搭載時に表示される NOMPI メッセージを、現在の仕様に合った内容に変更しました。→ 3e2360e
同梱プラグイン一覧
拡張機能
- AtsEX コア拡張機能
- 【新規】 Conduct...
ver1.0-RC2 - v1.0.31118.1
本バージョンは RC 版です。正式版リリースまでに少なくとも 1 回、重大な破壊的変更を予定しています。本番環境での採用はお控えください。
AtsEX についてはこちら→ AtsEX ATSプラグイン拡張キット - 岡オカ営業所
ホームページ リニューアルしました!
⚠️ RC 版につき、フィードバックにご協力ください
本バージョンは RC 版です。ひと通りの機能は揃っていますが、動作が不安定な可能性があります。また、仕様を十分に検討し切れていない部分もあります。
インストールや AtsEX プラグインの使用・開発はもちろん自由に行うことができますが、その際には是非 Twitter や GMail にて 動作報告・不具合報告・仕様に関するご意見 など頂けるととても嬉しいです。
アップデートのポイント
更に幅広いデータを操作可能に
BveTypes.dll の機能が更に充実。車掌、音声、自軌道、補助表示などなど、AtsEX プラグインから操作できるものの幅が格段にパワーアップしました!
更にプラグインを作りやすく
AtsEx.PluginHost、AtsEx.CoreExtensions などの AtsEX プラグインから参照する DLL を NuGet に公開。新規にプラグインを開発する際の手間が大幅に低減されました!
その他、車両ファイルが複数ある場合に車両プラグインリストファイル・車両設定ファイルを一括で定義できるようになったりと、プラグインの開発・組込にて地味~に手間がかかっていた部分を細かくじっくりと見直しました。
【ご意見募集中】パフォーマンスのための独自ヘッダー・独自ステートメントの仕様変更
従来は何も設定せずとも独自ヘッダー、独自ステートメントはその機能をフルに使用することができましたが、行数の多いマップなどでは読込時間がとても長くなってしまっていました。
そこで、本バージョンよりマップファイル・AtsEX プラグイン内で特定のフラグをオンにした場合以外は機能を大幅に制限する仕様に変更しました。
読込時間の短縮のために手間が増えた格好ですが、いかがでしょうか。お使いになった際には「こういう仕様にした方が良いのでは?」など是非ご意見をお寄せください。
ver1.0-RC2: 仕様を変更しました
ご意見を踏まえて、機能が有効化される条件を若干緩和しました。
USEATSEX
ではなくNOMPI
が冒頭に定義されていても有効化するようにREADDEPTH
の初期値を 0 → 1 にUSEATSEX
、READDEPTH
は山括弧でも定義できるように
引き続き皆様からのご意見お待ちしております。
ver1.0-RC1 (v1.0.31106.1) からの主な更新内容
AtsEX 本体
独自ヘッダー
- 【破壊的変更】 後方互換性のために、構文解析を実施する条件を緩和しました。→ a19363b
USEATSEX
ではなくNOMPI
が冒頭に定義されていても有効化される仕様に変更しました。READDEPTH
の初期値を 0 → 1 に変更しました。
USEATSEX
、READDEPTH
は、従来の記法 ([[AtsEx::USEATSEX]]
など) に加えて、山括弧による記法 (<AtsEx::USEATSEX>
など) でも定義できるようになりました。→ a19363b
AtsEX 拡張機能: DXDynamicTexture
- デバッグ用のメッセージボックスを削除しました。→ 77b3232
クラスラッパー
- Beacon クラスのコンストラクタを追加しました。→ beb9258
- ObjectPassedEventArgs クラスのコンストラクタを追加しました。→ c966b59
- これにより、AtsEX プラグインから SetBeaconData 関数を独自の設定で呼び出せるようになりました。
サンプル
- 他列車操作サンプルにて使用する他列車を E217 系から停止位置目標に戻しました。→ 76143d6
- 案内表示が隠れてしまっていたためです。
beta0.19 (v0.19.30520.1) からの主な更新内容
共通
- 【重要】 AtsEx.PluginHost、AtsEx.CoreExtensions を NuGet パッケージとして公開しました。→ 9124a5d
- 多くのコードを整理しました。
AtsEX 本体
- 【重要】 AtsEX プラグインの Tick メソッドの elapsed パラメータにおいて、ポーズ・早送りが考慮されない不具合を修正しました。→ 5571438
- シナリオが開かれたとき / 閉じられたときをイベントから検知できるようになりました。→ 1fc2aee / e1f2507
入力デバイスプラグイン版のみ関係するもの
- 【重要】 ATS プラグインによるブレーキが作用しなくなる不具合を修正しました。→ f046754
- この変更は v0.19.30520.1-fix にて適用済です。
- AtsEX 本体の読込でエラーが発生した場合、その詳細が表示されるようになりました。→ 9ec0a6f
- 終了時にエラーが発生する不具合を修正しました。→ 8cf6109
- シナリオを再読込するとエラーが発生する不具合を修正しました。→ e2261e1 / 573056d
独自ヘッダー
- 【破壊的変更】 マップファイル冒頭に特定のヘッダーが定義されていない限り、そのマップファイルについてはヘッダーの解釈をスキップする仕様に変更しました。→ 2b4bca7 / b9775a6 / edf74d6
- パフォーマンスのためです。従来の仕様では、無条件に全マップファイルの構文解釈を行っていたため、AtsEX を使用している状態で重量級のマップを読み込もうとすると読込に要する時間が極端に長くなってしまっていました。
- この機能については、現在仕様について検討している段階です。ver1.0 RC → ver1.0 へのバージョンアップ時に仕様が多少変更となる可能性があります。ご意見等あれば是非お聞かせください。
- 読込に際して、削除対象でないエラーも削除されてしまう不具合を修正しました。→ fea7c6a / cd575ca
- シナリオ終了時にメモリリークが発生する不具合を修正しました。→ 06d41e6
独自ステートメント
- 【破壊的変更】 監視対象の他列車は AtsEX プラグインから指定する仕様に変更しました。→ d5363ae
- パフォーマンスのためです。
プラグインリストファイル
- 【重要】 同一ディレクトリ内の車両ファイルに対して、1 つのプラグインリストファイルを一括で適用できるようになりました。→ e603d73
- ファイル名を
VehiclePluginUsing.xml
にして車両ファイル群と同一のディレクトリに配置してください。
- ファイル名を
- 【重要】 プラグインリストファイルのファイル名として
(車両ファイル名).VehiclePluginUsing.xml
以外の名前も使用できるようになりました。→ e603d73- 車両設定ファイルに
<PluginIUsingPath>ファイル名</PluginIUsingPath>
と設定することで有効化されます。
- 車両設定ファイルに
- C# アセンブリ / C# スクリプト / IronPython 2 いずれの形態かに関わらず、プラグインの読込順を任意に指定できるようになりました。→ 097bd9a
- ATS プラグイン版でも、AtsEX Caller に付属させる形のみではなく車両ファイルに付属させる形のプラグインリストファイルも読み込めるようになりました。→ e603d73
車両設定ファイル
- 同一ディレクトリ内の車両ファイルに対して、1 つの車両設定ファイルを一括で適用できるようになりました。→ 7554ee1
- ファイル名を
VehicleConfig.xml
にして車両ファイル群と同一のディレクトリに配置してください。
- ファイル名を
- 要素を任意の順番で定義できるようになりました。→ 1518287
- ATS プラグイン版でも、AtsEX Caller に付属させる形のみではなく車両ファイルに付属させる形の車両設定ファイルも読み込めるようになりました。→ 7554ee1
AtsEX コア拡張機能
- BVE 内部で定義されている車掌動作を、AtsEX プラグインから上書きできるようにする機能
ConductorPatch
を追加しました。→ 6c29ec5
AtsEX 拡張機能: DXDynamicTexture
- テクスチャのファイルパスの表記揺れを許容する仕様に変更しました。→ 068cfbf
BveTypes (クラスラッパー除く)
- 【破壊的変更】 LoadAsync メソッドを廃止しました。→ 41fcc32
- 同期版と比較して、パフォーマンスなどのアドバンテージに乏しいためです。
- インターフェイスに対応しました。→ 4ab0050
- デリゲートに対応しました。→ fd529d3
クラスラッパー
- 【破壊的変更】 StructureBlock.MatrixFromLastBlock プロパティを TransformFromLastBlock に改名しました。→ 5e52a79
- 【破壊的変更】 AssistantTextBase クラス、AssistantTextDraw クラスは、命名が不適切だったため改名しました。→ f0e2fc3
- Direct3DProvider クラスから DirectSound オブジェクトを取得できるようになりました。→ 0124454
- 車掌関連のクラス (Conductor クラス、Passenger クラス) を追加しました。→ 8dd0bef / b72eed4 / df0c28c / 8924d33
- SoundSet クラスを追加しました。→ 8dd0bef
- Sound クラスのコンストラクタを追加しました。→ ee66e5b
- Sound クラスから音声を再生できるようになりました。→ 8dd0bef / 8906c63
- Sound クラスから音声の設置位置、速度を操作できるようになりました。→ 4737b37
- これにより、いわゆる Sound3D でループ以外の任意の音声も再生できるようになりました。
- SectionManager クラスから前後の閉そくの制限速度を取得できるようになりました。
- 自軌道関連のクラス (Cant クラス、CantList クラス、Curve クラス、CurveList クラス、MyTrack クラス) を追加しました。→ 0398861 / c62f2b0
- 自軌道の曲線、カントの位置及び量を全て取得できるようになりました。
- 自列車の位置を制御するためのクラス (Transform クラス、VehicleBogieWheel クラス、VehiclePositioner クラス、VehicleVibrationManager クラス) を追加しました。→
- 車体を傾けたり、自列車を線路から離れて動かすことが可能となります。
- 視点を表す CameraLocation クラスを追加しました。→ 15c602c / 1c1b057
- 視点を編集できるようになりました。
- 自列車のバネに関するクラス (AirSpring クラス、Spring クラス) を追加しました。→ b1d3ed7
- 6DoFを表す SixDof クラスを追加しました。→ b1d3ed7
- 背景モデルを表す Background クラスを追加しました。→ 8d78997
- 補助表示関連のクラス (AssistantBase クラス、AssistantDrawer クラス、ClockText クラス、DetailText クラス、StationText クラス、SpeedLimitText クラス、GeometryText クラス、LeverText クラス、InstructionText クラス、SwayGauge クラス、StopPositionGauge クラス) を追加しました。→ f0e2fc3
- InterpolatableMapObjectList クラスを追加しました。→ 7bebd13
- IDrawable インターフェイスを追加し、AssistantBase クラス、AssistantDrawer クラス、MainForm クラスにその実装を追加しました。→ 1c1b057
- ReAdhesionControl クラス、ReAdhesionControlMode 列挙型を追加しました。→ 4a8bf14
- 車両の再粘着制御の動作状態を取得できるようになりました。
- Scenario.Dispose メソッドを追加しました。→ cbe3f0c
- MapObjectList.GoTo メソッド、MapObjectList.GoToAndGetCurrent メソッドを追加しました。→ a5e2851 / 9edc423
- 現在の距離程に対応する要素を簡単に取得できるようになりました。
- Station.DoorSideEnum プロパティを追加しました。→ 861d1b2
- Conductor との連携を容易にするためです。
- StructureBlock.Direction プロパティを追加しました。→ b088bd7
- ストラクチャーブロックの方角が分かるため、自列車を線路から離れて動かしたいときなどに便利です。
- DrawDistanceManager クラスから描画距離を操作できるようになりました。→ 30ffb8f
- Route.CabIlluminanceObjects プロパティを追加しました。→ 7bebd13
- 運転台の明るさを操作できるようになりました。
- Direct3DProvider クラス、ObjectDrawer クラス、Scenario クラスへ、オブジェクト類を描画するときに呼び出されるメソッドを追加しました。→ 1c1b057
- Train、TrainInfo クラスのコンストラクタを追加しました。→ 53dff43
- MapObjectList.ObjectPassed イベントを追加しました。→ 63b909f
- マップオブジェクトの通過時に通知します。
FastMember
TypeWrapping
ObjectiveHarmonyPatch
- 【重要】 NuGet パッケージとして別リポジトリに分離しました。→ 8463a0e
UnembeddedResources
サンプル
ConductorPatch
拡張機能のサンプルを追加しました。→ 754cfd8- E217 系車両データを同梱しました。→ fa52ba2 / 2e8bae6 / e5d9d6f
- 各シナリオにサムネイルを追加しました。→ 6881a98
- AtsEX 非搭載時に表示される NOMPI メッセージを、現在の仕様に合った内容に変更しました。→ 3e2360e
同梱プラグイン一覧
拡張機能
- AtsEX コア拡張機能
- 【新規】 ConductorPatch
- 車掌の動作を自由に変更できるようにするパッチを提供します。
- ContextMenuHacker
- メインフォームの右クリックメニューを編集するための機能を提供します。
- DiagramUpdater
- 時刻表、ダイヤグ...
- 【新規】 ConductorPatch
ver1.0-RC1 - v1.0.31106.1
本バージョンは RC 版です。正式版リリースまでに少なくとも 1 回、重大な破壊的変更を予定しています。本番環境での採用はお控えください。
AtsEX についてはこちら→ AtsEX ATSプラグイン拡張キット - 岡オカ営業所
ホームページ リニューアルしました!
⚠️ RC 版につき、フィードバックにご協力ください
本バージョンは RC 版です。ひと通りの機能は揃っていますが、動作が不安定な可能性があります。また、仕様を十分に検討し切れていない部分もあります。
インストールや AtsEX プラグインの使用・開発はもちろん自由に行うことができますが、その際には是非 Twitter や GMail にて 動作報告・不具合報告・仕様に関するご意見 など頂けるととても嬉しいです。
アップデートのポイント
更に幅広いデータを操作可能に
BveTypes.dll の機能が更に充実。車掌、音声、自軌道、補助表示などなど、AtsEX プラグインから操作できるものの幅が格段にパワーアップしました!
更にプラグインを作りやすく
AtsEx.PluginHost、AtsEx.CoreExtensions などの AtsEX プラグインから参照する DLL を NuGet に公開。新規にプラグインを開発する際の手間が大幅に低減されました!
その他、車両ファイルが複数ある場合に車両プラグインリストファイル・車両設定ファイルを一括で定義できるようになったりと、プラグインの開発・組込にて地味~に手間がかかっていた部分を細かくじっくりと見直しました。
【ご意見募集中】パフォーマンスのための独自ヘッダー・独自ステートメントの仕様変更
従来は何も設定せずとも独自ヘッダー、独自ステートメントはその機能をフルに使用することができましたが、行数の多いマップなどでは読込時間がとても長くなってしまっていました。
そこで、本バージョンよりマップファイル・AtsEX プラグイン内で特定のフラグをオンにした場合のみ機能を有効化する仕様に変更しました。
読込時間の短縮のために手間が増えた格好ですが、いかがでしょうか。お使いになった際には「こういう仕様にした方が良いのでは?」など是非ご意見をお寄せください。
beta0.19 (v0.19.30520.1) からの主な更新内容
共通
- 【重要】 AtsEx.PluginHost、AtsEx.CoreExtensions を NuGet パッケージとして公開しました。→ 9124a5d
- 多くのコードを整理しました。
AtsEX 本体
- 【重要】 AtsEX プラグインの Tick メソッドの elapsed パラメータにおいて、ポーズ・早送りが考慮されない不具合を修正しました。→ 5571438
- シナリオが開かれたとき / 閉じられたときをイベントから検知できるようになりました。→ 1fc2aee / e1f2507
入力デバイスプラグイン版のみ関係するもの
- 【重要】 ATS プラグインによるブレーキが作用しなくなる不具合を修正しました。→ f046754
- この変更は v0.19.30520.1-fix にて適用済です。
- AtsEX 本体の読込でエラーが発生した場合、その詳細が表示されるようになりました。→ 9ec0a6f
- 終了時にエラーが発生する不具合を修正しました。→ 8cf6109
- シナリオを再読込するとエラーが発生する不具合を修正しました。→ e2261e1 / 573056d
独自ヘッダー
- 【破壊的変更】 マップファイル冒頭に特定のヘッダーが定義されていない限り、そのマップファイルについてはヘッダーの解釈をスキップする仕様に変更しました。→ 2b4bca7 / b9775a6 / edf74d6
- パフォーマンスのためです。従来の仕様では、無条件に全マップファイルの構文解釈を行っていたため、AtsEX を使用している状態で重量級のマップを読み込もうとすると読込に要する時間が極端に長くなってしまっていました。
- この機能については、現在仕様について検討している段階です。ver1.0 RC → ver1.0 へのバージョンアップ時に仕様が多少変更となる可能性があります。ご意見等あれば是非お聞かせください。
- 読込に際して、削除対象でないエラーも削除されてしまう不具合を修正しました。→ fea7c6a / cd575ca
- シナリオ終了時にメモリリークが発生する不具合を修正しました。→ 06d41e6
独自ステートメント
- 【破壊的変更】 監視対象の他列車は AtsEX プラグインから指定する仕様に変更しました。→ d5363ae
- パフォーマンスのためです。
プラグインリストファイル
- 【重要】 同一ディレクトリ内の車両ファイルに対して、1 つのプラグインリストファイルを一括で適用できるようになりました。→ e603d73
- ファイル名を
VehiclePluginUsing.xml
にして車両ファイル群と同一のディレクトリに配置してください。
- ファイル名を
- 【重要】 プラグインリストファイルのファイル名として
(車両ファイル名).VehiclePluginUsing.xml
以外の名前も使用できるようになりました。→ e603d73- 車両設定ファイルに
<PluginIUsingPath>ファイル名</PluginIUsingPath>
と設定することで有効化されます。
- 車両設定ファイルに
- C# アセンブリ / C# スクリプト / IronPython 2 いずれの形態かに関わらず、プラグインの読込順を任意に指定できるようになりました。→ 097bd9a
- ATS プラグイン版でも、AtsEX Caller に付属させる形のみではなく車両ファイルに付属させる形のプラグインリストファイルも読み込めるようになりました。→ e603d73
車両設定ファイル
- 同一ディレクトリ内の車両ファイルに対して、1 つの車両設定ファイルを一括で適用できるようになりました。→ 7554ee1
- ファイル名を
VehicleConfig.xml
にして車両ファイル群と同一のディレクトリに配置してください。
- ファイル名を
- 要素を任意の順番で定義できるようになりました。→ 1518287
- ATS プラグイン版でも、AtsEX Caller に付属させる形のみではなく車両ファイルに付属させる形の車両設定ファイルも読み込めるようになりました。→ 7554ee1
AtsEX コア拡張機能
- BVE 内部で定義されている車掌動作を、AtsEX プラグインから上書きできるようにする機能
ConductorPatch
を追加しました。→ 6c29ec5
AtsEX 拡張機能: DXDynamicTexture
- テクスチャのファイルパスの表記揺れを許容する仕様に変更しました。→ 068cfbf
BveTypes (クラスラッパー除く)
- 【破壊的変更】 LoadAsync メソッドを廃止しました。→ 41fcc32
- 同期版と比較して、パフォーマンスなどのアドバンテージに乏しいためです。
- インターフェイスに対応しました。→ 4ab0050
- デリゲートに対応しました。→ fd529d3
クラスラッパー
- 【破壊的変更】 StructureBlock.MatrixFromLastBlock プロパティを TransformFromLastBlock に改名しました。→ 5e52a79
- 【破壊的変更】 AssistantTextBase クラス、AssistantTextDraw クラスは、命名が不適切だったため改名しました。→ f0e2fc3
- Direct3DProvider クラスから DirectSound オブジェクトを取得できるようになりました。→ 0124454
- 車掌関連のクラス (Conductor クラス、Passenger クラス) を追加しました。→ 8dd0bef / b72eed4 / df0c28c / 8924d33
- SoundSet クラスを追加しました。→ 8dd0bef
- Sound クラスのコンストラクタを追加しました。→ ee66e5b
- Sound クラスから音声を再生できるようになりました。→ 8dd0bef / 8906c63
- Sound クラスから音声の設置位置、速度を操作できるようになりました。→ 4737b37
- これにより、いわゆる Sound3D でループ以外の任意の音声も再生できるようになりました。
- SectionManager クラスから前後の閉そくの制限速度を取得できるようになりました。
- 自軌道関連のクラス (Cant クラス、CantList クラス、Curve クラス、CurveList クラス、MyTrack クラス) を追加しました。→ 0398861 / c62f2b0
- 自軌道の曲線、カントの位置及び量を全て取得できるようになりました。
- 自列車の位置を制御するためのクラス (Transform クラス、VehicleBogieWheel クラス、VehiclePositioner クラス、VehicleVibrationManager クラス) を追加しました。→
- 車体を傾けたり、自列車を線路から離れて動かすことが可能となります。
- 視点を表す CameraLocation クラスを追加しました。→ 15c602c / 1c1b057
- 視点を編集できるようになりました。
- 自列車のバネに関するクラス (AirSpring クラス、Spring クラス) を追加しました。→ b1d3ed7
- 6DoFを表す SixDof クラスを追加しました。→ b1d3ed7
- 背景モデルを表す Background クラスを追加しました。→ 8d78997
- 補助表示関連のクラス (AssistantBase クラス、AssistantDrawer クラス、ClockText クラス、DetailText クラス、StationText クラス、SpeedLimitText クラス、GeometryText クラス、LeverText クラス、InstructionText クラス、SwayGauge クラス、StopPositionGauge クラス) を追加しました。→ f0e2fc3
- InterpolatableMapObjectList クラスを追加しました。→ 7bebd13
- IDrawable インターフェイスを追加し、AssistantBase クラス、AssistantDrawer クラス、MainForm クラスにその実装を追加しました。→ 1c1b057
- ReAdhesionControl クラス、ReAdhesionControlMode 列挙型を追加しました。→ 4a8bf14
- 車両の再粘着制御の動作状態を取得できるようになりました。
- Scenario.Dispose メソッドを追加しました。→ cbe3f0c
- MapObjectList.GoTo メソッド、MapObjectList.GoToAndGetCurrent メソッドを追加しました。→ a5e2851 / 9edc423
- 現在の距離程に対応する要素を簡単に取得できるようになりました。
- Station.DoorSideEnum プロパティを追加しました。→ 861d1b2
- Conductor との連携を容易にするためです。
- StructureBlock.Direction プロパティを追加しました。→ b088bd7
- ストラクチャーブロックの方角が分かるため、自列車を線路から離れて動かしたいときなどに便利です。
- DrawDistanceManager クラスから描画距離を操作できるようになりました。→ 30ffb8f
- Route.CabIlluminanceObjects プロパティを追加しました。→ 7bebd13
- 運転台の明るさを操作できるようになりました。
- Direct3DProvider クラス、ObjectDrawer クラス、Scenario クラスへ、オブジェクト類を描画するときに呼び出されるメソッドを追加しました。→ 1c1b057
- Train、TrainInfo クラスのコンストラクタを追加しました。→ 53dff43
- MapObjectList.ObjectPassed イベントを追加しました。→ 63b909f
- マップオブジェクトの通過時に通知します。
FastMember
TypeWrapping
ObjectiveHarmonyPatch
- 【重要】 NuGet パッケージとして別リポジトリに分離しました。→ 8463a0e
UnembeddedResources
サンプル
ConductorPatch
拡張機能のサンプルを追加しました。→ 754cfd8- E217 系車両データを同梱しました。→ fa52ba2 / 2e8bae6 / e5d9d6f
- 各シナリオにサムネイルを追加しました。→ 6881a98
- AtsEX 非搭載時に表示される NOMPI メッセージを、現在の仕様に合った内容に変更しました。→ 3e2360e
同梱プラグイン一覧
拡張機能
- AtsEX コア拡張機能
- 【新規】 ConductorPatch
- 車掌の動作を自由に変更できるようにするパッチを提供します。
- ContextMenuHacker
- メインフォームの右クリックメニューを編集するための機能を提供します。
- DiagramUpdater
- 時刻表、ダイヤグラムなどの行路に関わるオブジェクトの更新機能を提供します。
- PreTrainPatch
- 先行列車の走行位置を自由に変更できるようにするパッチを提供します。
- SignalPatch
- 閉塞の信号現示を自由に変更できるようにするパッチを提供します。
- StructureModelFinder
- ストラクチャーの 3D モデルを簡単に検索するための機能を提供します。
- TrainDrawPatch
- 他列車を自由に移動・回転できるようにするパッチを提供します。
- 【新規】 ConductorPatch
- DXDynamicTexture
- * 拡張地上子
- 古い機能のため非推奨。独自マップ構文機能を使用してください。
車両プラグイン
- 運転台パネルに値を渡すサンプル
- 【新規】 車掌サンプル
- マッププラグイン連携サンプル
- シンプルな ATS サンプル
- 状態取得・設定サンプル
マッププラグイン
- 車両プラグイン連携サンプル
- DXDynamicTexture 連携サンプル
- 独自マップ構文サンプル
- 先行列車操作サンプル
- 信号現示操作サンプル
- 駅リスト編集サンプル
- 他列車操作サンプル
- 他列車操作サンプル EX
- 走行抵抗係数編集サンプル
- 空の C# スクリプトプラグイン
- 空の IronPython プラグイン
ダウンロード
AtsEX 本体+サンプルシナリオ
AtsEX 本体に加えて、車両プラグイン・マッププラグインの動作が確認できるサンプルシナリオを同梱しています。
【推奨】入力デバイスプラグイン・インストーラー版
下の Assets より「AtsEX_v1.0.31106.1_AsInputDevice.Setup.exe」をダウンロードし、実行してください。
ご家族内で共有の PC を使用している場合などで、管理者権限を得られないときは、下の「入力デバイスプラグイン・手動インストール版」をご利用ください。
入力デバイスプラグイン・手動インストール版
下の Assets より「AtsEX_v1.0.31106.1_AsInputDevice.7z」をダウンロード・解凍し、シナリオフォルダおよび BVE 本体の Input Devices フォルダに配置し...
beta0.19 - v0.19.30520.1
本バージョンは β 版です。正式版リリースまでにあと 1 回破壊的変更を加える可能性がありますので、本番環境で採用される場合はその点ご留意ください。
AtsEX についてはこちら→ AtsEX ATSプラグイン拡張キット - 岡オカ営業所
インストール方法の説明はこちら→ AtsEXインストールガイド - AtsEX ATSプラグイン拡張キット - 岡オカ営業所
アップデートのポイント
AtsEX 入力デバイスプラグイン版の追加
従来の AtsEX ATS プラグイン版では車両に AtsEx.Caller を組み込む必要があり、様々な車両で AtsEX を使用するとなると非常に面倒なものでした。
しかし、この度実装した入力デバイスプラグイン版では、「BVE 本体の設定画面から『AtsEX』にチェックをつける」たったこのひと手間で 全ての 車両・マップから AtsEX が使えるように。手軽に AtsEX を導入できる時代がついにやってきました!
パフォーマンスの改善
実際に AtsEX をお試しくださったデータ制作者の皆様からのフィードバックを基に、パフォーマンスに問題のある処理を改善しました。
ご協力ありがとうございました。
beta0.18.2 (v0.18.302042) からの主な更新内容
共通
- 【重要】 AtsEX 入力デバイスプラグイン版を実装しました。→ f8a5dae / 376e713 / ee4336e / 0409975 / 257f761 / f2dc4d9 / 09ad92f
AtsEX 本体
- 【破壊的変更】 プラグイン読込まわりの処理を実装し直しました。→ c849c98
- これにより仕様が変更となった機能が存在します。
- 「範囲外のノッチ入力を検出した場合に例外をスローする」設定をオフにした場合でも例外がスローされてしまう不具合を修正しました。→ 22e6dbd
- 独自ステートメントの他列車検知処理のパフォーマンスを改善しました。→ de57308
- AtsEX プラグインではないアセンブリ (DLL) を読み込むと AtsEX が強制終了する不具合を修正しました。→ e772979
パネル・サウンド出力
- インデックスの競合を検出するかどうかを、車両データに同梱した AtsEX 独自の設定ファイル (以下「車両設定ファイル」) から選択できるようになりました。→ 37c383b
- 既定では検出しない仕様に変更となりました。
- 車両設定ファイルは省略することもできます。省略した場合は既定値が使用されます。
BveTypes (クラスラッパー除く)
- BveTypeSet クラスのファクトリメソッドに同期版を追加しました。→ dfdccaf
クラスラッパー
- ドア関連の型 (CarDoor クラス、DoorSet クラス、DoorSide 列挙型、DoorState クラス、SideDoorSet クラス) を追加しました。→ 617eab1
- AtsEX 入力デバイスプラグイン版の実装に際して必要だったメンバーを追加しました。→ f729fe4 / 7d4152e / 868f490
- 対象の型: MainForm クラス、PluginLoader クラス、SectionManager クラス、VehicleStateStore (仮称) クラス
- パネル・サウンド配列を操作するためのメンバーを追加しました。→ 6834824
- 対象の型: PluginLoader クラス、VehicleStateStore (仮称) クラス
- CarInfo クラスから自列車が空転・滑走しているかのフラグを操作できるようになりました。→ d2884f5
- VehicleDynamics クラスから自列車の車両の長さを操作できるようになりました。→ 12de7c4
- WrappedList クラス、WrappedSortedList クラスのインスタンス生成のパフォーマンスを改善しました。→ 2e68102
- SectionManager.SectionIndexesTrainOn プロパティは、調査の結果名前が実際の役割に合っていないことが判明したため StopSignalSectionIndexes に改名となりました。→ a29c3e4
- 互換性維持のために従来の名前のものも残してあります。
- ObjectPassedEventArgs クラスの実装ミスを修正しました。→ 1d44ca4
サンプル
- 独自マップ構文 (独自ヘッダー、独自ステートメント) のサンプルを追加しました。→ fe99fd5
- マッププラグインと車両プラグインで連携するサンプルを追加しました。→ 1dc72ef
- 入力デバイスプラグイン版関連のサンプルを 2 つ追加しました。→ 3336688
- 車両設定ファイルを「空のサンプル車両」以外の全サンプル車両に追加しました。→ 8b729bb
- 一部シナリオにおいて、「プログラムから開く」からシナリオを開くと終了時にエラーが発生する不具合を修正しました。→ ebc7d4d
- シナリオ再読込時のメモリリークを修正しました。→ 2ac33c7
同梱プラグイン一覧
拡張機能
- AtsEX コア拡張機能
- ContextMenuHacker
- メインフォームの右クリックメニューを編集するための機能を提供します。
- DiagramUpdater
- 時刻表、ダイヤグラムなどの行路に関わるオブジェクトの更新機能を提供します。
- PreTrainPatch
- 先行列車の走行位置を自由に変更できるようにするパッチを提供します。
- SignalPatch
- 閉塞の信号現示を自由に変更できるようにするパッチを提供します。
- StructureModelFinder
- ストラクチャーの 3D モデルを簡単に検索するための機能を提供します。
- TrainDrawPatch
- 他列車を自由に移動・回転できるようにするパッチを提供します。
- ContextMenuHacker
- DXDynamicTexture
- * 拡張地上子
- 古い機能のため非推奨。独自マップ構文機能を使用してください。
車両プラグイン
- 運転台パネルに値を渡すサンプル
- 【新規】 マッププラグイン連携サンプル
- シンプルな ATS サンプル
- 状態取得・設定サンプル
マッププラグイン
- 【新規】 車両プラグイン連携サンプル
- DXDynamicTexture 連携サンプル
- 【新規】 独自マップ構文サンプル
- 先行列車操作サンプル
- 信号現示操作サンプル
- 駅リスト編集サンプル
- 他列車操作サンプル
- 他列車操作サンプル EX
- 走行抵抗係数編集サンプル
- 空の C# スクリプトプラグイン
- 空の IronPython プラグイン
ダウンロード
AtsEX 本体+サンプルシナリオ
AtsEX 本体に加えて、車両プラグイン・マッププラグインの動作を確認できるサンプルシナリオを同梱しています。
【推奨】入力デバイスプラグイン版
下の Assets より「AtsEX_v0.19.30520.1_AsInputDevice.7z」をダウンロード・解凍し、シナリオフォルダおよび BVE 本体の Input Devices フォルダに配置してください。
2023/8/27 13:35 (JST) 以前にダウンロードされた方は、誠に恐縮ですが再インストールをお願いします。
「atsex.caller.inputdevice.dll 呼び出しのターゲットが例外をスローしました。」というダイアログが表示される場合は、Assets より「AtsEx.Caller.InputDevice.dll」をダウンロードし、AtsEX 本体の Input Devices
フォルダ内にある同名の DLL ファイルを置き換えてください。
ATS プラグイン版 (以前と同様の起動方法のもの)
下の Assets より「AtsEX_v0.19.30520.1_AsAtsPlugin.7z」をダウンロード・解凍し、シナリオフォルダに配置してください。
AtsEX SDK
サンプルプラグインのソースコードのセットです。
下の Assets より「AtsEX_v0.19.30520.1_SDK.7z」をダウンロード・解凍してください。
ビルドには別途 AtsEX 本体のダウンロードが必要です。
解凍には 7-zip などの解凍ソフトが必要です。
beta0.18.2 - v0.18.30204.2
本バージョンは β 版です。頻繁に破壊的変更を行う可能性があるので、まだ本番環境での採用は推奨しません。
AtsEX についてはこちら→ AtsEX ATSプラグイン拡張キット - 岡オカ営業所
インストール方法の説明はこちら→ AtsEXインストールガイド - AtsEX ATSプラグイン拡張キット - 岡オカ営業所
beta0.18.1 (v0.18.30204.1) からの主な更新内容
AtsEX 本体
サウンド出力
beta0.18 (v0.18.30202.1) からの主な更新内容
AtsEX 本体
パネル出力
- 【重要】 他の ATS プラグインからの値の変更を同期できるようになりました。→ 2847332
- データの同期方向を OneWay (β0.18 と同様の挙動) / OneWayToSource / TwoWay の 3 種類から選べます。
- インデックス競合の自動検出機能は、OneWay に指定されている場合のみ動作する仕様となりました。
- データの同期方向を OneWay (β0.18 と同様の挙動) / OneWayToSource / TwoWay の 3 種類から選べます。
beta0.17.7 (v0.17.30127.1) からの主な更新内容
AtsEX 本体
- 【重要】 パネル出力、サウンド出力に対応しました。→ 7e0d490 / 6185258 / ad0f7d4 / c39b87b
- 通常の ATS プラグインでいう「Elapse 関数の panel 変数、sound 変数を編集する」操作の互換機能になります。
- 他のプラグインとのインデックスの競合を防止・自動検出する機能付です。
- 他の AtsEX プラグインと競合している場合 - そのインデックスが既に使用されていることを通知します。
- ネイティブプラグイン (通常のプラグイン) と競合している場合 - そのプラグインから値が変更された時点で「予期せぬ外部からの編集」として検出し、エラーを発生させます。
- 仕様の詳細については下記「パネル出力について」、「サウンド出力について」をご参照ください。
- 【破壊的変更】 AtsEx.Caller の互換性チェックが機能していなかった不具合を修正しました。→ 5f15e7f / aa3711d / 7318226
- この修正の影響で、以前のバージョンの AtsEx.Caller.x**.dll を使用している車両に関しては最新バージョンのものへ差し替えが必要となります。
- AtsEX プラグインの再コンパイル・修正等は不要です。
- この修正の影響で、以前のバージョンの AtsEx.Caller.x**.dll を使用している車両に関しては最新バージョンのものへ差し替えが必要となります。
サンプル
- panel 出力機能のサンプルプラグイン・シナリオを追加しました。→ 0c36482
- サウンド出力機能のサンプルとして、「シンプルな ATS サンプル」で ATS 作動時にはベルが鳴る仕様に変更しました。→ 7f95daf
パネル出力について
この機能は BVE が ATS プラグイン向けに提供している機能のみを組み合わせて実装しているため、BVE 本体のバージョンに依存しません。
パネルへ出力可能なのは整数値のみのため、通常の ATS プラグインでは
- PilotLamp 向けの真偽値なら 0 を false、1 を true に対応させる
- DigitalNumber で駅名を表示させたいなら各駅名に ID をふって駅名と整数値を 1 対 1 に対応させる
など、何かしらの方法でデータを整数値に変換する必要がありました。
本機能では、出力データに疑似的に型を持たせる仕様としています。bool 型の場合は AtsEX が上記のように自動で整数へシリアライズし、BVE 本体へ送信します。その他の型も独自にシリアライザーを定義することで使用できます。
これにより、整数以外のデータを出力するときも直感的に記述することが可能です。
コードの例
// 状態量 ats50 を bool 型、初期値 false として登録
IAtsPanelValue<bool> ats50 = Native.AtsPanelValues.RegisterBoolean(50, false);
// 状態量 ats51 を double 型、初期値 0.0 として登録
// 小数第 2 位まで出力する例 (例えば、1.23 なら「123」として送信)
IAtsPanelValue<int> ats51 = Native.AtsPanelValues.Register<double>(51, value => (int)(value * 100), 0.0);
この場合、以下のように出力するデータを設定します。
ats50.Value = true; // ->「1」として送信
ats51.Value = 45.6; // ->「4560」として送信
サウンド出力について
この機能は BVE が ATS プラグイン向けに提供している機能のみを組み合わせて実装しているため、BVE 本体のバージョンに依存しません。
Play / PlayLoop メソッド (≒関数) を実行すると再生され、Stop メソッドを実行すると停止する仕様です。
地上子通過などをトリガーにサウンドを再生する場合でも、フラグ変数を定義して Elapse 関数内で複雑な条件式を組み合わせる必要はありません。
コードの例
// ATS サウンド 12 番を AtsEX から操作するサウンドとして登録
IAtsSound atsSound12 = Native.AtsSounds.Register(12);
// 再生
atsSound12.Play();
同梱プラグイン一覧
拡張機能
- AtsEX コア拡張機能
- ContextMenuHacker
- メインフォームの右クリックメニューを編集するための機能を提供します。
- DiagramUpdater
- 時刻表、ダイヤグラムなどの行路に関わるオブジェクトの更新機能を提供します。
- PreTrainPatch
- 先行列車の走行位置を自由に変更できるようにするパッチを提供します。
- SignalPatch
- 閉塞の信号現示を自由に変更できるようにするパッチを提供します。
- StructureModelFinder
- ストラクチャーの 3D モデルを簡単に検索するための機能を提供します。
- TrainDrawPatch
- 他列車を自由に移動・回転できるようにするパッチを提供します。
- ContextMenuHacker
- DXDynamicTexture
- 拡張地上子
車両プラグイン
- 【新規】 運転台パネルに値を渡すサンプル
- シンプルな ATS サンプル
- 状態取得・設定サンプル
マッププラグイン
- DXDynamicTexture 連携サンプル
- 先行列車操作サンプル
- 信号現示操作サンプル
- 駅リスト編集サンプル
- 他列車操作サンプル
- 他列車操作サンプル EX
- 走行抵抗係数編集サンプル
- 空の C# スクリプトプラグイン
- 空の IronPython プラグイン
ダウンロード
AtsEX 本体+サンプルシナリオ
下の Assets より「AtsEX_v0.18.302024.2.7z」をダウンロード・解凍し、シナリオフォルダに配置してください。
AtsEX 本体に加えて、車両プラグイン・マッププラグインの動作を確認できるサンプルシナリオを同梱しています。
AtsEX SDK
サンプルプラグインのソースコードのセットです。
下の Assets より「AtsEX_v0.18.30202.1_SDK.7z」をダウンロード・解凍してください (beta0.18 向けのものですが、beta0.18.1 とは相互互換性があります)。
ビルドには別途 AtsEX 本体のダウンロードが必要です。
解凍には 7-zip などの解凍ソフトが必要です。
beta0.18.1 - v0.18.30204.1
本バージョンは β 版です。頻繁に破壊的変更を行う可能性があるので、まだ本番環境での採用は推奨しません。
AtsEX についてはこちら→ AtsEX ATSプラグイン拡張キット - 岡オカ営業所
インストール方法の説明はこちら→ AtsEXインストールガイド - AtsEX ATSプラグイン拡張キット - 岡オカ営業所
beta0.18 (v0.18.30202.1) からの主な更新内容
AtsEX 本体
パネル出力
- 【重要】 他の ATS プラグインからの値の変更を同期できるようになりました。→ 2847332
- データの同期方向を OneWay (β0.18 と同様の挙動) / OneWayToSource / TwoWay の 3 種類から選べます。
- インデックス競合の自動検出機能は、OneWay に指定されている場合のみ動作する仕様となりました。
- データの同期方向を OneWay (β0.18 と同様の挙動) / OneWayToSource / TwoWay の 3 種類から選べます。
beta0.17.7 (v0.17.30127.1) からの主な更新内容
AtsEX 本体
- 【重要】 パネル出力、サウンド出力に対応しました。→ 7e0d490 / 6185258 / ad0f7d4 / c39b87b
- 通常の ATS プラグインでいう「Elapse 関数の panel 変数、sound 変数を編集する」操作の互換機能になります。
- 他のプラグインとのインデックスの競合を防止・自動検出する機能付です。
- 他の AtsEX プラグインと競合している場合 - そのインデックスが既に使用されていることを通知します。
- ネイティブプラグイン (通常のプラグイン) と競合している場合 - そのプラグインから値が変更された時点で「予期せぬ外部からの編集」として検出し、エラーを発生させます。
- 仕様の詳細については下記「パネル出力について」、「サウンド出力について」をご参照ください。
- 【破壊的変更】 AtsEx.Caller の互換性チェックが機能していなかった不具合を修正しました。→ 5f15e7f / aa3711d / 7318226
- この修正の影響で、以前のバージョンの AtsEx.Caller.x**.dll を使用している車両に関しては最新バージョンのものへ差し替えが必要となります。
- AtsEX プラグインの再コンパイル・修正等は不要です。
- この修正の影響で、以前のバージョンの AtsEx.Caller.x**.dll を使用している車両に関しては最新バージョンのものへ差し替えが必要となります。
サンプル
- panel 出力機能のサンプルプラグイン・シナリオを追加しました。→ 0c36482
- サウンド出力機能のサンプルとして、「シンプルな ATS サンプル」で ATS 作動時にはベルが鳴る仕様に変更しました。→ 7f95daf
パネル出力について
この機能は BVE が ATS プラグイン向けに提供している機能のみを組み合わせて実装しているため、BVE 本体のバージョンに依存しません。
パネルへ出力可能なのは整数値のみのため、通常の ATS プラグインでは
- PilotLamp 向けの真偽値なら 0 を false、1 を true に対応させる
- DigitalNumber で駅名を表示させたいなら各駅名に ID をふって駅名と整数値を 1 対 1 に対応させる
など、何かしらの方法でデータを整数値に変換する必要がありました。
本機能では、出力データに疑似的に型を持たせる仕様としています。bool 型の場合は AtsEX が上記のように自動で整数へシリアライズし、BVE 本体へ送信します。その他の型も独自にシリアライザーを定義することで使用できます。
これにより、整数以外のデータを出力するときも直感的に記述することが可能です。
コードの例
// 状態量 ats50 を bool 型、初期値 false として登録
IAtsPanelValue<bool> ats50 = Native.AtsPanelValues.RegisterBoolean(50, false);
// 状態量 ats51 を double 型、初期値 0.0 として登録
// 小数第 2 位まで出力する例 (例えば、1.23 なら「123」として送信)
IAtsPanelValue<int> ats51 = Native.AtsPanelValues.Register<double>(51, value => (int)(value * 100), 0.0);
この場合、以下のように出力するデータを設定します。
ats50.Value = true; // ->「1」として送信
ats51.Value = 45.6; // ->「4560」として送信
サウンド出力について
この機能は BVE が ATS プラグイン向けに提供している機能のみを組み合わせて実装しているため、BVE 本体のバージョンに依存しません。
Play / PlayLoop メソッド (≒関数) を実行すると再生され、Stop メソッドを実行すると停止する仕様です。
地上子通過などをトリガーにサウンドを再生する場合でも、フラグ変数を定義して Elapse 関数内で複雑な条件式を組み合わせる必要はありません。
コードの例
// ATS サウンド 12 番を AtsEX から操作するサウンドとして登録
IAtsSound atsSound12 = Native.AtsSounds.Register(12);
// 再生
atsSound12.Play();
同梱プラグイン一覧
拡張機能
- AtsEX コア拡張機能
- ContextMenuHacker
- メインフォームの右クリックメニューを編集するための機能を提供します。
- DiagramUpdater
- 時刻表、ダイヤグラムなどの行路に関わるオブジェクトの更新機能を提供します。
- PreTrainPatch
- 先行列車の走行位置を自由に変更できるようにするパッチを提供します。
- SignalPatch
- 閉塞の信号現示を自由に変更できるようにするパッチを提供します。
- StructureModelFinder
- ストラクチャーの 3D モデルを簡単に検索するための機能を提供します。
- TrainDrawPatch
- 他列車を自由に移動・回転できるようにするパッチを提供します。
- ContextMenuHacker
- DXDynamicTexture
- 拡張地上子
車両プラグイン
- 【新規】 運転台パネルに値を渡すサンプル
- シンプルな ATS サンプル
- 状態取得・設定サンプル
マッププラグイン
- DXDynamicTexture 連携サンプル
- 先行列車操作サンプル
- 信号現示操作サンプル
- 駅リスト編集サンプル
- 他列車操作サンプル
- 他列車操作サンプル EX
- 走行抵抗係数編集サンプル
- 空の C# スクリプトプラグイン
- 空の IronPython プラグイン
ダウンロード
AtsEX 本体+サンプルシナリオ
下の Assets より「AtsEX_v0.18.302024.1.7z」をダウンロード・解凍し、シナリオフォルダに配置してください。
AtsEX 本体に加えて、車両プラグイン・マッププラグインの動作を確認できるサンプルシナリオを同梱しています。
AtsEX SDK
サンプルプラグインのソースコードのセットです。
下の Assets より「AtsEX_v0.18.30202.1_SDK.7z」をダウンロード・解凍してください (beta0.18 向けのものですが、beta0.18.1 とは相互互換性があります)。
ビルドには別途 AtsEX 本体のダウンロードが必要です。
解凍には 7-zip などの解凍ソフトが必要です。
beta0.18 - v0.18.30202.1
本バージョンは β 版です。頻繁に破壊的変更を行う可能性があるので、まだ本番環境での採用は推奨しません。
AtsEX についてはこちら→ AtsEX ATSプラグイン拡張キット - 岡オカ営業所
インストール方法の説明はこちら→ AtsEXインストールガイド - AtsEX ATSプラグイン拡張キット - 岡オカ営業所
beta0.17.7 (v0.17.30127.1) からの主な更新内容
AtsEX 本体
- 【重要】 panel 出力、sound 出力に対応しました。→ 7e0d490 / 6185258 / ad0f7d4 / c39b87b
- 通常の ATS プラグインでいう「Elapse 関数の panel 変数、sound 変数を編集する」操作の互換機能になります。
- 他のプラグインとのインデックスの競合を防止・自動検出する機能付です。
- 他の AtsEX プラグインと競合している場合 - そのインデックスが既に使用されていることを通知します。
- ネイティブプラグイン (通常のプラグイン) と競合している場合 - そのプラグインから値が変更された時点で「予期せぬ外部からの編集」として検出し、エラーを発生させます。
- 仕様の詳細については下記「panel 出力について」、「sound 出力について」をご参照ください。
- 【破壊的変更】 AtsEx.Caller の互換性チェックが機能していなかった不具合を修正しました。→ 5f15e7f / aa3711d / 7318226
- この修正の影響で、以前のバージョンの AtsEx.Caller.x**.dll を使用している車両に関しては最新バージョンのものへ差し替えが必要となります。
- AtsEX プラグインの再コンパイル・修正等は不要です。
- この修正の影響で、以前のバージョンの AtsEx.Caller.x**.dll を使用している車両に関しては最新バージョンのものへ差し替えが必要となります。
サンプル
- panel 出力機能のサンプルプラグイン・シナリオを追加しました。→ 0c36482
- sound 出力機能のサンプルとして、「シンプルな ATS サンプル」で ATS 作動時にはベルが鳴る仕様に変更しました。→ 7f95daf
panel 出力について
この機能は BVE が ATS プラグイン向けに提供している機能のみを組み合わせて実装しているため、BVE 本体のバージョンに依存しません。
panel へ出力可能なのは整数値のみのため、通常の ATS プラグインでは
- PilotLamp 向けの真偽値なら 0 を false、1 を true に対応させる
- DigitalNumber で駅名を表示させたいなら各駅名に ID をふって駅名と整数値を 1 対 1 に対応させる
など、何かしらの方法でデータを整数値に変換する必要がありました。
本機能では、出力データに疑似的に型を持たせる仕様としています。bool 型の場合は AtsEX が上記のように自動で整数へシリアライズし、BVE 本体へ送信します。その他の型も独自にシリアライザーを定義することで使用できます。
これにより、整数以外のデータを出力するときも直感的に記述することが可能です。
コードの例
// 状態量 ats50 を bool 型、初期値 false として登録
IAtsPanelValue<bool> ats50 = Native.AtsPanelValues.RegisterBoolean(50, false);
// 状態量 ats51 を double 型、初期値 0.0 として登録
// 小数第 2 位まで出力する例 (例えば、1.23 なら「123」として送信)
IAtsPanelValue<int> ats51 = Native.AtsPanelValues.Register<double>(51, value => (int)(value * 100), 0.0);
この場合、以下のように出力するデータを設定します。
ats50.Value = true; // ->「1」として送信
ats51.Value = 45.6; // ->「4560」として送信
sound 出力について
この機能は BVE が ATS プラグイン向けに提供している機能のみを組み合わせて実装しているため、BVE 本体のバージョンに依存しません。
Play / PlayLoop メソッド (≒関数) を実行すると再生され、Stop メソッドを実行すると停止する仕様です。
地上子通過などをトリガーにサウンドを再生する場合でも、フラグ変数を定義して Elapse 関数内で複雑な条件式を組み合わせる必要はありません。
コードの例
// ATS サウンド 12 番を AtsEX から操作するサウンドとして登録
IAtsSound atsSound12 = Native.AtsSounds.Register(12);
// 再生
atsSound12.Play();
同梱プラグイン一覧
拡張機能
- AtsEX コア拡張機能
- ContextMenuHacker
- メインフォームの右クリックメニューを編集するための機能を提供します。
- DiagramUpdater
- 時刻表、ダイヤグラムなどの行路に関わるオブジェクトの更新機能を提供します。
- PreTrainPatch
- 先行列車の走行位置を自由に変更できるようにするパッチを提供します。
- SignalPatch
- 閉塞の信号現示を自由に変更できるようにするパッチを提供します。
- StructureModelFinder
- ストラクチャーの 3D モデルを簡単に検索するための機能を提供します。
- TrainDrawPatch
- 他列車を自由に移動・回転できるようにするパッチを提供します。
- ContextMenuHacker
- DXDynamicTexture
- 拡張地上子
車両プラグイン
- 【新規】 運転台パネルに値を渡すサンプル
- シンプルな ATS サンプル
- 状態取得・設定サンプル
マッププラグイン
- DXDynamicTexture 連携サンプル
- 先行列車操作サンプル
- 信号現示操作サンプル
- 駅リスト編集サンプル
- 他列車操作サンプル
- 他列車操作サンプル EX
- 走行抵抗係数編集サンプル
- 空の C# スクリプトプラグイン
- 空の IronPython プラグイン
ダウンロード
AtsEX 本体+サンプルシナリオ
下の Assets より「AtsEX_v0.18.30202.1.7z」をダウンロード・解凍し、シナリオフォルダに配置してください。
AtsEX 本体に加えて、車両プラグイン・マッププラグインの動作を確認できるサンプルシナリオを同梱しています。
AtsEX SDK
サンプルプラグインのソースコードのセットです。
下の Assets より「AtsEX_v0.18.30202.1_SDK.7z」をダウンロード・解凍してください。
ビルドには別途 AtsEX 本体のダウンロードが必要です。
解凍には 7-zip などの解凍ソフトが必要です。
beta0.17.7 - v0.17.30127.1
本バージョンは β 版です。頻繁に破壊的変更を行う可能性があるので、まだ本番環境での採用は推奨しません。
AtsEX についてはこちら→ AtsEX ATSプラグイン拡張キット - 岡オカ営業所
インストール方法の説明はこちら→ AtsEXインストールガイド - AtsEX ATSプラグイン拡張キット - 岡オカ営業所
アップデートのポイント
※ beta0.15.x 〜 beta0.17.x における変更を基に記載しています。
- ユーザーに優しく
- 分かりやすいエラーメッセージ、ハマりやすいポイントには手厚い警告を
- パフォーマンスの向上
- キャッシュ機構の実装、高速な処理方法への再実装により、根本からの最大 100 倍もの高速化を実現しました。
- 読込もシナリオ実行も圧倒的に軽量化されています。
- これまでの処理方法では、AtsEX の読込に要する時間はシナリオの規模に比例していました。そのため、とある巨大なシナリオでは AtsEX の読込に1分以上要していましたが、この更新によって 20 秒程度へと 3 分の 1 以下に短縮されました。
- 見通しの良い構造に
- 大規模にアセンブリ (DLL) の分割、クラスの分割、名前空間の変更などを行いました。
- これによりプラグインが更に設計しやすくなりました。
beta0.17.6 (v0.17.30125.1) からの主な更新内容
AtsEX コア拡張機能
- SignalPatch で、内部的に使用されていなかったパラメータがファクトリメソッドに含まれていたため削除しました。→ 006a32e
- 互換性維持のため旧バージョンのメソッドも残していますが、今後新規に開発する際は新バージョンのものを使用してください。
クラスラッパー
- 【重要】 車両性能テーブルのデータを編集できるようになりました。→ 37316e1
- 【重要】 進段パラメーターテーブルの情報を取得・編集できるようになりました。→ 86d62b9
- SectionManager.TimeManager プロパティが取得できない不具合を修正しました。→ bed2768
beta0.17.5 (v0.17.30110.1) からの主な更新内容
AtsEX 本体
- 【重要】 DoorOpen 関数、DoorClose 関数の互換機能を追加しました。→ 4b14fa0
- 大文字で指定された名前空間・識別子は、全て自動で小文字に変換する仕様に変更しました。→ 9129951
- 名前空間・識別子に大文字を使用することは BVE の仕様上不可能だったため、影響はないと判断したものです。
AtsEX コア拡張機能
- 3D モデルからストラクチャーキーを検索する機能
StructureModelFinder
を追加しました。→ 3515fd4AtsEx.Extensions.StructureModelFinder
名前空間より使用可能です。
FastCaching
- 排他制御が不完全だったため、暫定的に修正しました。→ d0cd55d
- 処理速度が若干低下している可能性があります。
クラスラッパー
- 配列をラップする WrappedArray を追加しました。→ 9cef492
- LocatableModel クラス、StructureBlock クラス、StructureDrawer クラスを追加しました。→ 87d3783
- ストラクチャーの描画処理を管理・介入できます。
- ブレーキ方式を表すクラス (BrakeControllerBase クラス、Ecb クラス、Smee クラス、Cl クラス) を追加しました。→ 4d1ca7b
- GraphCurve クラスを追加しました。→ 29ca29c
- 車両性能テーブルやモーター音テーブルで内部的に使用されているクラスです。
- 電気系のクラス (VehicleElectricity クラス、VehiclePerformance クラス、VehiclePerformanceBase クラス、VehicleStep クラス、VehicleStepSet クラス) を追加しました。→ ae7d781
- これにより車両性能テーブルのデータを取得できるようになりました。
- ただし、進段パラメーターテーブルのデータに関しては未実装です。ご希望の場合は Twitter の DM かメールにてお知らせください。
- これにより車両性能テーブルのデータを取得できるようになりました。
- UserVehicleLocationManager.BlockIndex プロパティの型が誤っていたため修正しました。→ 2b06e3e
- オリジナル型からラッパー型を検索する BveTypeSet.GetWrapperTypeOf(Type originalType) メソッドに Try 版を追加しました。→ d13b23a
サンプル
- 「シンプルなサンプル車両 + 空のマップ」の組み合わせのシナリオを追加しました。→ 6feecb9
- ストラクチャーリスト、信号現示リストを BaseMap.txt 内ではなく各サンプル毎に定義する仕様に変更しました。→ 835ffac
- プラグインメインクラスの
IDisposable
の明示的な指定を削除しました。→ 90bd413- 以前の仕様変更で自動的に
IDisposable
が実装されるようになっており、指定の必要が無くなっていたためです。
- 以前の仕様変更で自動的に
beta0.17.3 (v0.17.30106.1) からの主な更新内容
AtsEX 本体
- SetBeaconData 関数の互換機能を追加しました。→ 7868f27
ObjectiveHarmonyPatch
- 【破壊的変更】 実装を一新しました。→ 43f541a / 69f6a6a
- 従来の仕様では、同一メソッドへ複数回パッチした場合、ケースによっては非常に複雑な処理が必要となってしまっていたためです。
- これに合わせて拡張機能・サンプルを書き換えたことに伴い、SignalPatch等を複数使用できない不具合が改善されています。
クラスラッパー
beta0.17.2 (v0.17.21224.2) からの主な更新内容
AtsEX 本体
- 【重要】 null ストラクチャー (ストラクチャーキーを指定せずに設置した空のストラクチャー) の処理に失敗する不具合を修正しました。→ 3ea84c3
- これにより、内房線をはじめとした多くの路線データにて AtsEX を起動できない問題が解消されました。
- アップデート情報ダイアログの詳細情報を表示するプロセスを変更しました。→ b1abc8a
- これにより、アップデート前の AtsEX のバージョンにより表示内容を多少変更することができるようになりました。
beta0.17.1 (v0.17.21224.1) からの主な更新内容
AtsEX 本体
- アップデート情報ダイアログが表示され続ける問題を修正しました。→ ac42024
beta0.16.2 (v0.16.21022.1) からの主な更新内容
非常に多いため、特に影響の大きいもののみを掲載しています。 全ての変更の一覧は Comparing changes をご覧ください。
AtsEX 本体
- 【重要】 シナリオフォルダ内における配置位置を
Scenarios\Automaitc9045\AtsEx
からScenarios\AtsEx\(バージョン名)
に変更しました。→ 4cede3b / 64e1875- 今後、複数バージョンの AtsEX をインストール・使用することができるようになる予定です。現時点では最新バージョンのものを自動的に選択する仕様となっています。
- 【重要】 拡張機能を開発できるようになりました。→ 872bf68 / 387a140 / b3a96a4 / 4699eb4 / 1d0ed08 / 22f1d64 / bf66089
- 拡張機能は、シナリオではなく AtsEX 本体に紐づけるプラグインです。汎用的な機能を提供するプラグインや、シナリオの演出には直接関わらない補助的なプラグインなどにお勧めです。
- 拡張機能のアセンブリ (DLL) は AtsEx フォルダ (AtsEX の本体を配置するフォルダ) の Extensions フォルダ内に配置する仕様です。
- 【重要】 マップに独自の構文を定義できるようになりました。→ 648ce60 / 79ebd83 / 85036b4 / 6c8d337 / 39499fb / 6cd4db7 / 4247712 / 24cec14 / 37b7abf / 37f3bdb / 4c4600b / 4bdfc47
- include ステートメントを使用して定数的宣言 (何らかのファイルのパス指定など) ができる「ヘッダー」、Repeater 系ステートメントを使用してマップ内の特定距離程に独自のオブジェクトを設置できる「ステートメント」の 2 種類の機能を提供します。
- これに伴い、従来の
<MPIUSING>
、[[NOMPI]]
はヘッダー機能を利用した実装に書き換えました。記述方法がそれぞれ<AtsEx::MapPluginUsing>
、[[AtsEx::NOMPI]]
へ変更となります。
- 【重要】 先行列車を操作するパッチ、信号現示を操作するパッチを追加しました。→ 9acef49 / e5890c1
- 【重要】 アップデート情報ダイアログがリッチになりました。→ 44dd1f1
- 最新版の情報が Markdown 形式でより詳細に、綺麗に表示されるようになりました。
- データ制作者様向けに、12 時間のあいだアップデート情報の表示を停止するオプションを追加しました。
- 【破壊的変更】 名前空間を
Automatic9045.AtsEx.~
からAtsEx.~
に変更しました。→ 8f5a5ea / 086cfeb / - 【破壊的変更】 プラグインのメインクラスのコンストラクタの内、定数的用法のものについては属性で指定する仕様に変更しました。→ 62bb828
- 【破壊的変更】 BveTypeSet、クラスラッパーを別アセンブリ「BveTypes.dll」に分離しました。→ 5e940b6 / ab15845
- 【破壊的変更】 本体に実装された補助的な機能群を、拡張機能として分離しました。→ 9d08ecf / a4f5ae9 / 5540abc / 19f56c4
- ContextMenuHacker、DiagramUpdater、TrainDrawPatch は「AtsEx.CoreExtensions.dll」に定義されています。
- 拡張地上子は「ExtendedBeacons.dll」に定義されています。
- DXDynamicTexture のラッパーは「DXDynamicTexture.dll」に定義されています。
- 【破壊的変更】 App から、シナリオに依存するメンバー、プラグインの一覧をそれぞれ別クラス
Native
、PluginSet
に分離しました。→ c20cd45 / 1f2ab45 / 57204d2 / e90d1c2 / a8bc9dc / - 【破壊的変更】 App の実体を PluginHost に移動しました。→ c9644de
- PluginHost 内のクラスを含む全てのクラスからシングルトンパターンによりインスタンスを取得できるようにするためです。
- 【破壊的変更】 一部 PluginHost 内に記述していた BveHacker の実装を AtsEx (コア) 内のみに統一しました。これに伴い AtsEx.PluginHost.BveHacker クラスは AtsEx.PluginHost.IBveHacker インターフェイスへ変更となっています。→ ba92311
- 【破壊的変更】 全てのプラグインにおいて、IDisposable の実装が必須となりました。→ 660d1ea
- 【破壊的変更】 TickResult 系クラスをミュータブルな仕様に変更し、コンストラクタはパラメータを持たない形になりました。→ b60ef6a
- 【破壊的変更】 BveHacker の読込に成功しても、Native.Handles (旧: App.Handles) は書き換えない仕様に変更しました。→ 8d6896d
- 一様でない動作は仕様を分かりづらくすると判断したためです。
- 【破壊的変更】 BveHacker.Handles の初期化時、Native.Handles (旧: App.Handles) の設定を引き継がない仕様に変更しました。→ 65fd3a4
- BVE5.8 から読み込めない不具合を修正しました。→ 13492fb
- パブリックでないクラスもプラグインのメインクラスとして認識されるようになりました。→ f2fc4c7
- スクリプティング系の処理を別アセンブリ「AtsEx.Scripting.dll」に分離しました。→ 9623538 / d74a8dc / c933655 / a9e27b6
- これに伴い、プラグインへ独自のスクリプティング機能を比較的簡単に実装できるようになりました。
- エラー発生時に具体的なメッセージが表示されない問題を改善しました。→ 8d5c9cf / 23f4b47 / 8b3803a / 3b56d90 / d1b3b3f
- その他、プラグインの仕様に影響しない内部実装の改善を多数行いました。
クラスラッパー
- MapObjectBase、MapObjectList、Section、SectionManager にメンバーを追加しました。→ 905ac0c / ac7bf63 / 29a959d
- ValueNode を追加しました。→ ddbeacb
パフォーマンス関連
- 一部 SortedList を使用している処理を Dictionary へ置き換えました。→ ecc2f4f
- ConcurrentDictionary によるキャッシュ機構を Hashtable を利用した独自実装に置き換えました。→ 6a65b52
拡張地上子
- 【重要】 上位互換となる機能「独自マップ構文」の実装に伴い、新たにプラグインを開発される際、拡張地上子を使用するのは (非推奨 = Obsolete とまではいきませんが) あまりお勧めしません。
- 独自マップ構文機能では、拡張地上子にてサポートされる機能に加えて新しい機能が追加されている他、デバッグ性・読込速度も大幅に向上しています。
- 【重要】 「プラグインに紐づいた変数」機能を廃止しました。→ d4bfd23
- 今後複雑な機能を実装する場合は独自マップ構文機能を使用してください。
サンプル
- 【重要】 フォルダ構成を一新しました。→ 75548dc...