Skip to content

Releases: automatic9045/AtsEX

ver1.0-RC10 - v1.0.41005.1

05 Oct 14:13
Compare
Choose a tag to compare
Pre-release

本バージョンは RC 版です。正式版リリースまでに少なくとも 1 回、重大な破壊的変更を予定しています。
変更前に開発されたプラグインも動作しなくなることはありませんが、旧仕様のプラグインと最新仕様のプラグインの間では

  • 相互の連携ができない
  • 同時に実行できない

などの制約が生じる可能性があります。本番環境で採用される場合、その点ご理解の上ご利用ください。

AtsEX についてはこちら→ AtsEX BVE拡張キット - 岡オカ営業所

⚠️RC 版につき、フィードバックにご協力ください

本バージョンは RC 版です。ひと通りの機能は揃っていますが、動作が不安定な可能性があります。また、仕様を十分に検討し切れていない部分もあります。
インストールや AtsEX プラグインの使用・開発はもちろん自由に行うことができますが、その際には是非 TwitterDiscord、Gmail にて動作報告・不具合報告・仕様に関するご意見など頂けるととても嬉しいです。

ver1.0-RC9 → RC10 アップデートのポイント

更に幅広いデータを操作可能に

BveTypes.dll の機能が、ver1.0-RC1 ~ RC9 にて追加したものに加え更に充実。RC10 では新たにサウンド 3D (他列車のサウンド含む)、他列車のダイヤ、揺れを考慮した自列車の加速度、マップの構文解析処理などが操作できるようになりました!

マップ構文関連の機能が更に充実

マッププラグインを更に簡単に読み込めるように

ver1.0-RC9 で追加したマップステートメント機能を利用して、ストラクチャーや駅のリストを読み込むのと同じ要領で AtsEX マッププラグインを読み込めるようになりました。

従来は

include '<AtsEx::USEATSEX>';
include '<AtsEx::READDEPTH>1';
include '<AtsEx::MapPluginUsing>MapPluginUsing.xml';

のように、独自ヘッダーを使って記述する必要がありましたが、本バージョン以降は以下の1行のみで OK です。AtsEx::USEATSEX ヘッダーや AtsEx::READDEPTH ヘッダーは一切不要になりました。

AtsEx.MapPlugin.Load('MapPluginUsing.xml');

また以下のように、プラグインリストを介さず直接プラグインを指定する構文も用意しました。いちいちシナリオの一つ一つにプラグインリストを準備する必要はもうありません!

AtsEx.MapPlugin.LoadAssembly('TrainController.dll');

独自ヘッダーのパフォーマンス向上

独自ヘッダーはマップステートメントの登場に伴い非推奨となりましたが、以前から作成していたマップなど、引き続き独自ヘッダーを使用している環境もあるかと思います。そんな方々にも嬉しいニュースです。
独自ヘッダーの構文解析ロジックの刷新により、読込速度が大幅に向上しました。またこれに伴い、<AtsEx::USEATSEX> ヘッダー、<AtsEx::READDEPTH> ヘッダーが一切不要に。快適に独自ヘッダーを使用できるようになりました!

include 文で式を利用可能に

ご存知でしたか? 以下のように include 文の中で足し算をすることは、実はこれまで不可能だったんです。

$index = 12;
include 'Map_' + $index + '.txt';

本バージョンの AtsEX にて、これをサポートしました。ランダムなマップの読込はもちろん、工夫すればループ条件分岐なども実現可能です!

メインマップからの相対パスを取得できるように

include 文を使っている方は多いかと思います。例として、

  • シナリオに指定するマップ (これを「メインマップ」と呼ぶことにします) が TokaidoLine\Map_1234M.txt
  • 各シナリオ共通のストラクチャーや軌道などを定義したマップが TokaidoLine\Maps\BaseMap.txt

であるケースを考えてみましょう。TokaidoLine\Map_1234M.txt から TokaidoLine\Maps\BaseMap.txt を読み込むには、Map_1234M.txt へ以下のように記述すれば良いですね。

// TokaidoLine\Map_1234M.txt にて

include 'Maps\BaseMap.txt';

ではここで、TokaidoLine\Maps\BaseMap.txt からストラクチャーリストとして TokaidoLine\Maps\Structures.csv を読み込むことにしましょう。このとき、相対パスの基準を取り違えて、BaseMap.txt へ以下のように書いてしまった経験のある方は多いかと思います。

// TokaidoLine\Maps\BaseMap.txt にて

Structure.Load('Structures.csv');
// 相対パスの基準がメインマップ (TokaidoLine\) にあるので、これでは TokaidoLine\Structures.csv が読み込まれてしまう
// 正しくは Structure.Load('Maps\Structures.csv');

分かれば「なんだ、そういうことか」となりますが、今回のように複数のメインマップから各シナリオ共通のマップを読み込むような構造のとき、いちいち Maps\ と頭に書くのはいまいち冗長に感じますよね。

そこで、メインマップからそのマップへの相対パス をシステム変数として取得できるようにしました。以下のように、BVE がサポートするシステム変数 distance と同じ要領で使用可能です。

// TokaidoLine\Maps\BaseMap.txt にて

Structure.Load(ex_relativedir + 'Structures.csv');
// Structure.Load('Maps\Structures.csv'); と等価
// メインマップが "TokaidoLine\"、このマップが "TokaidoLine\Maps\" にあるので、ex_relativedir は "Maps\" になる

これにより、「各シナリオ共通のマップ」がメインマップの位置を知る必要がなくなり、より綺麗にマップを設計することが可能となります。一見地味な機能ですが、大規模なマップでは確実に効いてくること間違いありません!

ver1.0-RC9 (v1.0.40627.1) からの主な更新内容

AtsEX 本体

  • 【重要】 AtsEX ATS プラグイン版は正式に廃止となりました。→ 1f5e3d7
    • マップステートメント機能など、AtsEX の一部新機能を実装することが仕様上不可能なためです。
    • ATS プラグイン版は ver1.0-RC9 (2024/6/27) 以降、非推奨となっています。
  • 【破壊的変更】 車両プラグインの読込に失敗しても、マッププラグインは読込を継続するようになりました。→ 726a252
  • InputEventArgs を直感的に作成できるようになりました。→ 06fefa0
    • InputEventArgsFactory 静的クラスから使用可能です。

マップファイルの構文関連

  • 【重要】 マップステートメントを使ってマッププラグインを読み込めるようになりました。→ 5b4f729
    • AtsEx.MapPlugin.Load(pluginUsingPath) 構文、または AtsEx.MapPlugin.LoadAssembly(assemblyPath) 構文により読込可能です。
    • 独自ヘッダーによる従来の方法も引き続きサポートされます。
  • 【重要】 include 文の引数に式 (変数、関数等含む) を指定できるようになりました。→ 88a34f5
  • 【重要】 システム変数 ex_relativedir を追加しました。→ eae96ca / 0fe53af
    • メインのマップファイルからの相対パスを取得できます。例えば、シナリオファイルに指定したマップが A\map1.txt で、マップ A\B\C\map2.txt にて include ex_relativedir + 'map3.txt'; と記述した場合、include 'B\C\map3.txt'; と等価となります。

ATS サウンド

  • 【重要】 複数箇所で同一インデックスが使用できない不具合を修正しました。→ 9a23936

ATS パネル出力

  • 【重要】 複数箇所で同一インデックスが使用できない不具合を修正しました。→ b13eddc

独自ヘッダー

  • 【重要】 後継機能の実装に伴い、非推奨となりました。→ 48400a6
    • 今後は AtsEX コア拡張機能「MapStatements」をご利用ください。
    • [[AtsEx::NOMPI]] ヘッダーが他機能で代替不可能なためサポートは継続しますが、NOMPI 以外での新規採用は推奨しません。
  • 【破壊的変更】 読込には自前のマップ構文解析処理を使用していましたが、BVE 本体のマップ読込処理を利用する仕様に変更しました。→ e8331b6
    • 読込速度が大幅に改善し、読込コストが理論上ほぼゼロになりました。
    • これに伴い、<AtsEx::USEATSEX> ヘッダー、<AtsEx::READDEPTH> ヘッダーが廃止となりました。 記述されていてもエラーは発生しませんが、記述の有無に関わらず全ての include 文が解析の対象となります。
  • # で始まるコメントがあると読み込まれなくなる不具合を修正しました。→ 8777822

AtsEX Launcher

  • 【重要】 スプラッシュスクリーンを別プロセス化しました。→ b61e4ac / 8d56884 / aa84ad0
    • 一部環境にて .NET Framework が強制終了するとの報告があったためです。
  • アップデート情報ダイアログのリンクが切れている不具合を修正しました。→ ca6fe05
    • プルリクエスト: @stop-pattern 氏。ありがとうございました。

AtsEX Caller

  • 【重要】 AtsEX ATS プラグイン版の廃止に伴い、削除しました。→ 1f5e3d7

AtsEX コア拡張機能

DiagramUpdater

  • 非推奨化された機能が使用されているコードを修正しました。→ cd1497a

DXDynamicTexture

  • キャッシュに簡易的な GC (ガベージコレクション) 機能を実装しました。→ b0f8de4
    • 作成したビットマップ、ブラシのオブジェクトがキャッシュされたまま解放されず、GDI エラーを引き起こしてしまう問題が解消しました。
    • キャッシュ容量の既定値は 16 です (GDIHelper.ImageCacheCapacity プロパティ、GDIHelper.BrushCacheCapacity プロパティにより変更可能)。容量を上回ると、古く参照回数の少ないものから自動で削除されます。

MapStatements

  • ClauseFilter.Element 静的メソッド、ClauseFilter.Function 静的メソッドを追加しました。→ 1ad91f0
    • ステートメントのキー・変数の長さを自動で検証し、不一致時には例外をスローします。
  • Statement.IsOfficialStatement メソッド、Statement.IsUserStatement メソッドを追加しました。→ d4e2823
    • IStatementSet.FindOfficialStatements メソッド、IStatementSet.FindUserStatements メソッドと同様のフィルタリング機能を、特定の 1 ステートメントに対して適用できるようにするものです。
  • StatementLoadedEventArgs クラスから、ステートメントの読込に使用された MapLoader を取得できるようになりました。→ c185dcb

PreTrainPatch

  • 先行列車の終点到着時にエラーが発生する不具合を修正しました。→ 51242ed
  • 走行閉そくが更新されないことがある不具合を修正しました。→ 36903b7

拡張地上子

  • 後継機能が既に充実しているため、非推奨となりました。→ 5311027

クラスラッパー

  • 【破壊的変更】 BrakePosition 列挙型の定義が全面的に誤っていたため修正しました。→ 305eddd
  • Sound3DObject クラス、Sound3DObjectList クラス、Route.Sound3DObjects プロパティ、TrainInfo.Sounds プロパティを追加しました。→ 9d636b6
    • Sound3D (固定音源) を操作できるようになりました。
  • TrainInfo クラスを MapObjectList クラスの派生として再定義しました。→ 4a29b2b
  • TrainSchedule クラス、TrainStopObject クラス、Train.Schedules プロパティ、Train.ScheduleIndex プロパティ、Train.CompileToSchedules メソッドを追加しました。→ 01fc318 / 7eee378
    • 他列車の走行スケジュールを操作できるようになりました。
  • Route.TrainInfos プロパティを追加しました。→ a3410cf
  • TrainInfo.Direction プロパティ、TrainInfo.EnableLocation プロパティ、TrainInfo.EnableTimeMilliseconds プロパティ、TrainInfo.EnableTime プロパティを追加しました。→ a051ea4
  • MapObjectList.Insert メソッドを追加しました。→ 372b6c9
    • MapObjectList へ距離程順で要素を挿入できるようになりました。
  • Vehicle.Initialize メソッドを追加しました。→ 6a8eba2
    • 自列車を初期化できるようになりました。
  • Train.EnabledTimeMilliseconds プロパティ、Train.EnabledTime プロパティ、Train.ViewZ プロパティ、Train.Initialize メソッド、Train.UpdateSound メソッド、Train.UpdateLocationAndSpeed メソッドを追加しました。→ 55edcf2
  • BcValve.ReleaseStartMargin プロパティ、BcValve.ApplyStartMargin プロパティ、BcValve.ReleaseStopMargin プロパティ、BcValve.ApplyStopMargin プロパティ、Valve.ApplySpeed プロパティ、Valve.ReleaseSpeed プロパティ、Valve.VolumeRatio プロパティを追加しました。→ 67bd2d8
  • VehicleVibrationManager.FrontAccelerationX プロパティ、VehicleVibrationManager.RearAccelerationX プロパティ、VehicleVibrationManager.AccelerationZ プロパティ、VehicleVibrationManager.CarBodyAcceleration プロパティを追加しました。→ e2d104b
    • 乗車中に感じる見かけの加速度を取得できるようになりました。
  • ClassicMapParser クラス、MapParser クラス、MapParserBase クラスを追加しました。→ b4dc7d8 / f2f0617
    • マップの構文解析処理を操作できるようになりました。
    • これに伴い、Irony を参照するようになりました。

サンプル

  • 【重要】 AtsEX ATS プラグイン版の廃止に伴い、ATS プラグイン版を起動するのに必要なファイルを全て削除しました。→ 31cd3e7
    • これにより、サンプル車両のフォルダ構成がかなりシンプルになりました。
    • ATS プラグイン版と入力デバイスプラグイン版の挙動の違いを説明するサンプルは削除しました。
  • 【重要】 新機能を利用して、マップファイル、ストラクチャーリストなどを整理しました。→ fa88df4
  • 他列車用の停止位置目標を差し替えました。→ 59182ad
    • 提供: タコスきょうだい氏。ありがとうございました。

停車場リスト編集サンプル

  • 非推奨化された機能が使用されているコードを修正しました。→ cd1497a

拡張地上子サンプル

  • 拡張地上子の非推奨化に伴い、削除しました。→ 48ebbfe

マップ構文サンプル

  • 【重要】 独自ヘッダーのサンプルを削除しました。→ 9f01b5b
  • 非推奨化された機能が使用されているコードを修正しました。→ cd1497a

運転台パネル関連サンプル

  • 非推奨化された機能が使用されているコードを修正しました。→ cd1497a

ver1.0-RC8 (v1.0.40401.1) からの主な更新内容

共通

  • 【重要】 ATS プラグイン版が非推奨となりました。
    • マップステートメント機能など、AtsEX の一部新機能を実装することが仕様上不可能なためです。
    • 今後は入力デバイスプラグイン版をご利用ください。入力デバイスプラグイン版への移行にあたり不都合な点がありましたら、[サポ...
Read more

ver1.0-RC9 - v1.0.40627.1

27 Jun 13:45
Compare
Choose a tag to compare
Pre-release

本バージョンは RC 版です。正式版リリースまでに少なくとも 1 回、重大な破壊的変更を予定しています。
変更前に開発されたプラグインも動作しなくなることはありませんが、旧仕様のプラグインと最新仕様のプラグインの間では

  • 相互の連携ができない
  • 同時に実行できない

などの制約が生じる可能性があります。本番環境で採用される場合、その点ご理解の上ご利用ください。

AtsEX についてはこちら→ AtsEX ATSプラグイン拡張キット - 岡オカ営業所

⚠️RC 版につき、フィードバックにご協力ください

本バージョンは RC 版です。ひと通りの機能は揃っていますが、動作が不安定な可能性があります。また、仕様を十分に検討し切れていない部分もあります。
インストールや AtsEX プラグインの使用・開発はもちろん自由に行うことができますが、その際には是非 TwitterDiscord、GMail にて 動作報告・不具合報告・仕様に関するご意見 など頂けるととても嬉しいです。

⚠️一部 AtsEX 対応路線に加工が必要です

ver1.0-RC3 以前のバージョンの AtsEX からアップデートした場合、仕様変更の影響で @Bluegill77BiVE5 氏制作・JR 大和路線データのAtsEX版が動作しなくなります。

こちら (Google ドライブ) よりパッチをダウンロードいただき、インストール済の大和路線データに上書きしてください。

ver1.0-RC8 → RC9 アップデートのポイント

更に、更に幅広いデータを操作可能に

BveTypes.dll の機能が、ver1.0-RC1 ~ RC8 にて追加したものに加え更に充実。RC9 では新たに 運転台パネル、マップファイルの読込 (構文解析) 処理、ブレーキの出力、台車の運動、音、設定画面 などなどが操作できるようになりました!

更に、更にユーザーに分かりやすく

正式版リリースを見据えて、ver1.0-RC8 で追加したものに加えて、分かりづらい原因のエラーに対する案内表示を更に充実させました。ダイアログも見やすいデザインにパワーアップしました。

また ver1.0-RC8 より、よくあるエラーには エラーコード を順次追加中。ドキュメントとの照合が容易になります。ver1.0-RC9 にて更に充実しました!

パフォーマンスのための独自ヘッダー (・独自ステートメント) の仕様変更

従来は何も設定せずとも独自ヘッダーはその機能をフルに使用することができましたが、行数の多いマップなどでは読込時間がとても長くなってしまっていました。
そこで、ver1.0-RC1 よりマップファイル・AtsEX プラグイン内で特定のフラグをオンにした場合以外は機能を大幅に制限する仕様に変更しました。

RC9 より、include ステートメントがマップファイル冒頭 10 行以内に存在しない場合も自動で機能が制限される仕様に変更しました。 これにより、一部のシナリオにて読込に極端に時間がかかってしまっていた問題が解消されました。

コア拡張機能も更に充実

SoundFactory

自前で実装しようとすると地味~に面倒だった 音声の読込 がコア拡張機能に新登場!
今まで、独自の音声を BVE から再生するには DirectSound から音声ファイルを読み込む処理を自力で実装する必要がありました。これが非常に大変なため、代わりに OpenAL を使う例も多くありました。
この機能を使えばその手間がまるまる不要に。加えて、BVE 標準の音声と同じロジックで再生できるため、BVE のポーズ時に連携して再生を止めることも可能です!

マップステートメント

疑似的ではない ”本物” のマップ構文がついに登場!
これを使えば、以下の例のようなオリジナルのマップ構文を簡単に定義することができちゃいます。活用の幅は無限大です。

// 'PlatformGates.xml' からホームドアを読み込む
AtsEx.User.Sample.PlatformGate.Load('PlatformGates.xml');

// キー 'Gate_1_L' で定義されるホームドアを X=-2 の位置に設置する
AtsEx.User.Sample.PlatformGate['Gate_1_L'].Put('0', -2, 0, 0, 0, 0, 0, 5);

マップファイルで if 文を使用可能に

待望の機能がついに登場!!
複数シナリオでマップを共通化したり、より複雑なランダム演出を実装したり……シンプルながら大変強力な機能です。

この他、ダイアログを表示する構文 (AtsEx.Dialog.Show ステートメント) を追加しました。マップ内変数のデバッグに便利です。

$random = floor(rand() * 100);
AtsEx.If.BeginIf($random, '==', 0);
    AtsEx.Dialog.Show('random はちょうど 0 です。');
AtsEx.If.ElseIf($random, '<', 30);
    AtsEx.Dialog.Show('random は 1 以上 30 未満です (' + $random + ')。');
AtsEx.If.ElseIf($random, '<', 60);
    AtsEx.Dialog.Show('random は 30 以上 60 未満です (' + $random + ')。');
AtsEx.If.Else();
    AtsEx.Dialog.Show('random は 60 以上 100 未満です (' + $random + ')。');
AtsEx.If.End();

AtsEX 経由で ATS プラグインを読み込めるように

これにより、AtsEX プラグインと ATS プラグインとの間で読み込む順番を自由に入れ替えられるようになりました。今後両プラグイン間で連携するための機能を強化する予定です。

有効・無効が切替可能な拡張機能を開発できるように

外部の入力デバイスと連携するようなプラグインに最適です。

ver1.0-RC8 (v1.0.40401.1) からの主な更新内容

共通

  • 【重要】 ATS プラグイン版が非推奨となりました。
    • マップステートメント機能など、AtsEX の一部新機能を実装することが仕様上不可能なためです。
    • 今後は入力デバイスプラグイン版をご利用ください。入力デバイスプラグイン版への移行にあたり不都合な点がありましたら、サポート よりお問い合わせください。
  • 【破壊的変更】 TLS の既定値が v1.0・1.1 の場合、自動的に 1.2 を利用するようになりました。→ 83bd87c
    • 影響があるのは基本的に BVE5 のみとなります (.NET Framework 3.5 上で動作するため)。
    • これにより、BVE5 上でアップデート情報ダイアログが表示されない不具合が解消しました。
  • 参照する NuGet パッケージのバージョンを更新・統一しました。→ 43f90de

AtsEX 本体

  • 【重要】 AtsEX 経由で ATS プラグインを読み込めるようになりました。→ 2277889
  • 【重要】 有効・無効が切替可能な拡張機能を開発できるようになりました。→ be5be30 / ebeb6c0
  • IBveHacker から MapLoader を取得できるようになりました。→ 8555b5c
  • IBveHacker から ConfigForm (設定画面) を取得できるようになりました。→ c077d1d
  • 車両に一切の ATS プラグインが組み込まれておらず AtsEX が動作しない場合は、警告が表示されるようになりました。→ b92a55e
  • IBveHacker.ScenarioCreated イベント内でスローされた例外も、可能な限り読込中画面のエラー一覧へ表示されるようになりました。→ 132afdc
  • App.ExtensionDirectory プロパティから拡張機能フォルダを取得できるようになりました。→ dd592c7
  • App.ProductName プロパティから取得できる値を AtsEX ATSプラグイン拡張キット for BVE 5 & 6 から AtsEX - BVE 拡張キット に変更しました。→ 4767102
  • プラグインの読込処理を整理しました。→ d05ef6c / 9d7895f
  • 入力デバイスプラグイン版の中核部分の処理を整理しました。→ c0592a6
  • バージョン情報ダイアログのスタイルを調整しました。→ 4124185 / f276c13 / be5be30
    • 高 DPI 環境でもレイアウトが崩れないようになりました。
    • プラグインの一覧を種類別にタブで分割しました。
    • 右クリックメニューから、拡張機能の有効・無効を切り替えられるようになりました (切替に対応している拡張機能のみ)。
  • アップデート情報ダイアログのスタイルを調整しました。→ b89fdb8 / f276c13
    • ダイアログ内に表示している「AtsEX」をロゴに差し替えました。
    • 高 DPI 環境でもレイアウトが崩れないようになりました。
  • 複数の SlimDX が読み込まれた際のエラーが正しく処理されない不具合を修正しました。→ be47fcf

ネイティブ (ATS プラグイン互換機能)

  • 【破壊的変更】 入力デバイスプラグイン版での INative.Handles の挙動を ATS プラグイン版と同じ仕様に変更しました。→ 1d319c1 / f7f0570
    • ATS プラグインによるハンドル入力も反映するようになりました。これにより、DetailManger を経由した際の ATS プラグインの SetPower/Brake/Reverser 関数と同一の挙動をとるようになりました。
  • 【重要】 ATS プラグインの HornBlow 関数、SetSignal 関数の互換機能を追加しました。→ 1f8998c
  • 全てのネイティブキー (ATS キー) の押下状態を一括で監視できるイベントを追加しました。→ f02e4de
    • INativeKeySet.AnyKeyPressed イベント、INativeKeySet.AnyKeyReleased イベント
  • 力行 / ブレーキハンドル、レバーサーの位置を変更したときに呼び出されるイベントを追加しました。→ 922c780
    • IHandle.NotchChanged イベント、IReverser.PositionChanged イベント
    • ATS プラグインの SetPower 関数、SetBrake 関数、SetReverser 関数の完全互換機能に当たります (従来から各ハンドルの位置を取得することはできましたが、変更された瞬間に発生するイベントは存在しませんでした)。
  • AtsEX プラグインの Tick メソッドを実行する前後に呼び出されるイベントを追加しました。→ 6bfd4a2
    • INative.PreviewTick イベント、INative.PostTick イベント

独自ヘッダー

  • 【破壊的変更】 マップファイル冒頭 10 行に include ステートメントが存在しない場合も、独自ヘッダーの構文解析を中断するようになりました。→ 0ddd169
    • include ステートメントを使用しないマップでは読込に大変時間がかかってしまっていたためです。
  • 【重要】 入力デバイスプラグイン版にて、独自ヘッダー関連のエラーが読込中画面へ一切表示されないようになりました。→ da00506 / bf7a35e / 50ce29c

独自ステートメント

  • 【重要】 後継機能の実装に伴い、非推奨となりました。→ 41424c1
    • 今後は AtsEX コア拡張機能「MapStatements」をご利用ください。
    • サポートは当面は継続しますが、ご利用状況をみて将来的に廃止する可能性があります。本格的に採用されている方がいらっしゃいましたらご連絡ください。

AtsEX Launcher

  • 起動時にスプラッシュ画面が表示されるようになりました。→ 9f93c45
    • 画面のデザインは調整中につき、変更となる可能性があります。
  • AtsEX本体のフォルダが存在しない場合、本体フォルダの候補が1つもない場合もエラーが発生するようになりました。→ 6840dfb / fb2841e / cd70a1b
    • エラーコード L-3・4 を付番しました (解説)。

AtsEX Caller 入力デバイスプラグイン版

  • 【破壊的変更】 AtsEx.Caller.InputDevice.txt にて、AtsEX の場所を相対パスで指定した時の挙動を変更しました。→ a502c1d
    • 相対パスは、作業ディレクトリ基準ではなく AtsEx.Caller.InputDevice.dll の配置先ディレクトリ基準で解決されるようになりました。
  • Launcher が見つからない場合はエラーが発生するようになりました。→ b5f009d
    • エラーコード CI-1 を付番しました (解説)。
  • 入力デバイス一覧から無効化した際、報告を求めるメッセージを表示するようになりました。→ ab5d9a3

AtsEX Diagnostics

  • 【重要】 エラーダイアログのデザインがリッチになりました。→ 49359d5
  • WrapperExceptionExtractor クラスを追加しました。→ ea415d7
    • 例外をラップしている AggregateException などの例外を一元的に解決することができます。

AtsEX コア拡張機能

  • 【重要】 音声を簡単に読み込めるようにする機能 SoundFactory を追加しました。→ 141d7ec / 4c27b12
  • 【重要】 オリジナルのマップステートメントを簡単に取得できるようにする機能 MapStatements を追加しました。→ f3a4ee5

ビルトイン マップ構文

  • 【重要】 if 文を実装しました。→ d2b64e1 / fc9d577
    • 使用可能構文は以下の通りです。
      • AtsEx.If.BeginIf(int condition)
      • AtsEx.If.BeginIf(double condition)
      • AtsEx.If.BeginIf(any left, string operator, any right)
      • AtsEx.If.ElseIf(int condition)
      • AtsEx.If.ElseIf(double condition)
      • AtsEx.If.ElseIf(any left, string operator, any right)
      • AtsEx.If.Else()
      • AtsEx.If.End()
    • condition は 0 以外なら true、0 なら false を表します。
    • operator には '=='、'!='、'<'、'<='、'>'、'>=' のいずれかを指定可能です。
  • 【重要】 ダイアログ表示構文を実装しました。→ 5c0ccd0
    • マップ内変数のデバッグに便利です。
    • 使用可能構文は以下の通りです。
      • AtsEx.Dialog.Show(any content)

ContextMenuHacker

  • アイテムの追加位置がずれる不具合を修正しました。→ 633dbce

BveTypes (クラスラッパー除く)

  • 【重要】 BveTypeSet の読込処理を整理しました。→ f7e9466 / a274613
    • 初期化時に指定するオプションが多くなってしまったため、BveTypeSet.Load メソッドにより読み込む方式から、BveTypeSetFactory クラスを介して読み込む方式に変更しました。
    • 互換性のために従来の BveTypeSet.Load メソッドも残してあります。

クラスラッパー

  • 【破壊的変更】 BrakeSystem クラスの MotorCarBc プロパティを MotorCarBrake に、TrailerCarBc プロパティを TrailerCarBrake に、FirstCarBc プロパティを FirstCarBrake に改名しました。→ d56f8dd
    • 旧名のプロパティは ClassMemberSet から参照できなくなったため、特殊な処理を実装している場合は影響を受ける可能性があります。通常の使用方法の範囲では影響はほぼありません。
  • 【破壊的変更】 VehicleBogieWheel.PositionInBlock プロパティの値を変更できるようになりました (set アクセサを追加しました)。→ a029f68
    • ソースをプロパティからフィールドに振り替えたため、特殊な処理を実装している場合は影響を受ける可能性があります。通常の使用方法の範囲では影響はほぼありません。
  • **【破壊的変更】*...
Read more

ver1.0-RC8 - v1.0.40401.1

01 Apr 11:17
Compare
Choose a tag to compare
Pre-release

本バージョンは 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 に公開。新規にプラグインを開発する際の手間が大幅に低減されました!

その他、車両ファイルが複数ある場合に車両プラグインリストファイル・車両設定ファイルを一括で定義できるようになったりと、プラグインの開発・組込にて地味~に手間がかかっていた部分を細かくじっくりと見直しました。

更にユーザーに分かりやすく (ver1.0-RC7 ~)

正式版リリースを見据えて、ゾーン識別子や SlimDX SDK との競合、BveTs.exe.config の加工など、分かりづらい原因によるエラーに対する案内表示を更に充実させました。エラーによっては 具体的な対処方法 が表示されることも!

また、新たなプラグインの形態として トラブルシューティングプラグイン を追加。ユーザー間でも、エラーへの対処のノウハウを共有することが可能となりました。

さらに、よくあるエラーには エラーコード を順次追加中 (ver1.0-RC8 ~)。ドキュメントとの照合が容易になります。

パフォーマンスのための独自ヘッダー・独自ステートメントの仕様変更

従来は何も設定せずとも独自ヘッダー、独自ステートメントはその機能をフルに使用することができましたが、行数の多いマップなどでは読込時間がとても長くなってしまっていました。
そこで、本バージョンよりマップファイル・AtsEX プラグイン内で特定のフラグをオンにした場合以外は機能を大幅に制限する仕様に変更しました。

ver1.0-RC7 (v1.0.40209.1) からの主な更新内容

共通

  • 【重要】 エラーダイアログを表示する処理を共通化し、AtsEx.Diagnostics.dll として分離しました。→ 18e41d2 / c61bacb / 21fda98
  • 【重要】 一部エラーにエラーコードを導入しました。→ 5216efe
    • エラーコードは、AtsEX 公式 HP にてエラーの対処方法を検索する際に利用できるようになる予定です。
    • エラーコードが付番されていないエラーについても、その一部は今後のアップデートにて付番する予定です。

AtsEX 本体

  • 【重要】 PluginTypeAttribute 属性の後継として、PluginAttribute 属性を追加しました。→ 0f7212e / 78eb6bb / 19c45f0
    • その AtsEX プラグインがサポートする AtsEX 本体の最低バージョンを指定できるようになりました。これを下回る場合、警告が表示されます (プラグインの読込自体は続行可能です)。
    • PluginTypeAttribute も引き続き利用可能です (新規採用は非推奨)。
  • 【重要】 AtsEXのパスをテキストファイルで指定できるようになりました。→ 1ef3369
    • AtsEx.Caller.InputDevice.dll と同一のディレクトリにファイル「AtsEx.Caller.InputDevice.txt」を配置することで認識されます。
    • ファイルが存在しない場合は、従来通りの挙動 (「AtsEx」サブディレクトリを読み込む) となります。
  • 【重要】 DoNotUseBveHackerAttribute 属性を廃止しました。→ 4308cbb
    • シェアの大半を占めるのが入力デバイスプラグイン版である一方、この機能が動作するのは ATS プラグイン版のみのためです。
  • App クラスから AtsEX 本体のバージョンを簡単に取得できるようになりました。→ 74dc680
  • ATS サウンドが解放できない不具合を修正しました。→ e19d3d4

AtsEX Caller

  • AtsEX 本体の起動に失敗した時に表示されるメッセージが更に分かりやすくなりました。→ 96173fd

クラスラッパー

  • 【破壊的変更】 MapObjectList.GoTo メソッドのオーバーロードを 2 種類追加しました。従来の同名メソッドについては、紛らわしいため GoToByIndex に改名しました。→ ebd922f
  • 【破壊的変更】 ElectroPneumaticBlendedBrakingControlBase クラスを BrakeBlenderBase に、CarBc クラスを CarBrake に改名しました。→ 520e8bc
  • Passenger.Capacity プロパティ、Passenger.Count プロパティを追加しました。→ 6824645
    • 自列車の乗車人数、定員を取得できるようになりました。
  • Vehicle.Passenger プロパティ、VehicleVibrationManager.Passenger プロパティを追加しました。→ 0e1695b
  • ITickable インターフェイス、JerkRegulator クラス、VehicleMotorState クラス、VehicleElectricity. MotorState プロパティ、VehicleElectricity.MotorState プロパティを追加しました。→ d989fae
    • モーターの出力する電流・引張力を操作可能になりました。
  • Sound.SetVolumeAndPitch メソッドを追加しました。→ 1326a2a
    • 音声の音量、ピッチを再生途中で変更可能になりました。
  • SpeedLimitList クラス、Route.SpeedLimits プロパティを追加しました。→ 970427e
    • 速度制限を操作できるようになりました。
  • ValueNode のコンストラクタを追加しました。→ 464546e
  • Model.SetAlpha メソッドを追加しました。→ 392a547
    • 3D モデルを半透明にして描画できるようになりました。
  • Sound.Buffers プロパティ、Sound.CurrentBufferIndex プロパティを追加しました。→ e8f4a6e
    • BVE で使用されている DirectSound の機能を直接操作できるようになりました。
  • MainForm.LoadScenario メソッドを呼び出すとエラーが発生する不具合を修正しました。→ 25026e7

FastMember

  • ジェネリック型のコンストラクタを呼び出せるようになりました。→ 35df939

TypeWrapping

  • 例外スロー処理の実装を整理しました。→ 914fe77

サンプル

  • 全てのサンプルプラグインの PluginTypeAttribute 属性を PluginAttribute 属性に置き換え、DoNotUseBveHackerAttribute 属性を削除しました。→ fb12d83

その他

ver1.0-RC6 (v1.0.40116.1) からの主な更新内容

AtsEX 本体

  • 【重要】 トラブルシューティングプラグイン機能を追加しました。→ 3dc2e7d
  • 入力デバイスプラグイン版 AtsEX の有効化時、必要に応じて再起動を促すメッセージが表示されるようになりました。→ b292959
  • バージョン情報ダイアログに、本体の呼出モード (入力デバイスプラグイン版、または ATS プラグイン版) の表記を追加しました。→ b7f0289
  • LaunchMode 列挙型の説明を文字列で取得できるようになりました。→ 4a3f782

独自ヘッダー

  • 構文解析の規則を、コンピューターのカルチャーに依存しない仕様に変更しました。→ 0790c2f

NuGet パッケージ

  • AtsEx.PluginHost の依存パッケージから Lib.Harmony を削除しました。→ 8927be4

AtsEX Caller

  • AtsEX 本体の起動に失敗した時、詳細なメッセージを表示するようになりました。→ af4fc5e

クラスラッパー

  • KeyProvider.LeverMoved イベント、KeyProvider.LeverMoved イベント、KeyProvider.LeverMoved イベントを追加しました。→ 0d258b4
    • これにより、入力デバイスプラグインのイベントに介入できるようになりました。
  • Route.RollingNoiseObjects プロパティ、Route.FlangeNoiseObjects プロパティ、Route.JointNoiseObjects プロパティを追加しました。→ 81d6d13
    • 車輪転動音、フランジきしり音、分岐器通過音を操作できるようになりました。
  • MyTrack.GetTransform メソッドを追加しました。→ 914c574
    • 自軌道における任意の 2 距離程間の射影行列を求めるメソッドです。
  • Model クラスに IDisposable インターフェイスを実装しました。→ b50a694
  • Direct3DProvider.HasDeviceLost プロパティ、Direct3DProvider.InitializeStates メソッドを追加しました。→ ad0d3b3
  • LoadingProgressForm.ProgressBar プロパティ、LoadingProgressForm.SetProgress メソッドを追加しました。→ df6abbb
    • 読込中画面のプログレスバーを操作できるようになりました。

サンプル

  • RichLoad (リッチなシナリオ読込画面を実装するプラグイン) のサンプルを追加しました。→ 0851834
  • 他列車操作サンプル EX のコードを読みやすく整理の上、改名しました。→ 3cf5cc7 / 1185943
    • この変更により、自軌道が直線でない場合も調整不要で正常動作するようになりました。
  • 他列車操作サンプル EX の自動制御版を追加しました。→ 90c7b62
    • 従来のもの (手動制御版) と比較してシンプルなコードとなっています。

その他

  • 【重要】 RichLoad (リッチなシナリオ読込画面を実装するプラグイン) の同梱を開始しました。
  • 【重要】 ゾーン識別子などの一般的なエラーに対応するトラブルシューティングプラグイン「AtsEX コモン トラブルシューティング」の同梱を開始しました。

ver1.0-RC5 (v1.0.40101.1) からの主な更新内容

AtsEX 本体

  • 【重要】 シナリオの再読込・再選択後、ランダムに続行が不可能となる不具合を修正しました。→ 5bf8763
    • Scenario クラスのデストラクタにより InputDeviceMain.ScenarioClosed が呼ばれ、リソースが誤って解放されてしまっていたためでした。
  • BveHacker.ScenarioOpened / ScenarioClosed イベントの発生タイミングを修正しました。→ 1985b46
    • 呼び出されなかったり、ScenarioClosed イベントより前に ScenarioOpened イベントが発生してしまう場合があった問題が解消されました。

独自ヘッダー

  • 【破壊的変更】 冒頭に USEATSEXNOMPI のいずれも定義されていなくても、機能が無効化されない場合がある不具合を修正しました。→ 56f8f7f

BveTypes (クラスラッパー除く)

  • コードを整理しました。→ e245f1b
    • アセンブリの解決処理について、必要最小限の範囲のみに適用する仕様としました。

クラスラッパー

  • 【重要】 Model.CreateRectangleWithTexture メソッドを追加しました。→ e6429d8
    • 運転台、補助表示向けの 2D モデルを簡単に生成できるようになりました。
  • 【重要】 Structure クラスのコンストラクタが動作しない不具合を修正しました。→ 52dd7c6
  • 【破壊的変更】 ClassWrapperBase クラスに等値演算子 ==、非等値演算子 != を実装しました。→ 9cf6fe4
    • これにより、動作が以前と異なる場合があります。
  • 【破壊的変更】 DoorSet.AreAllClosingOrClosed プロパティを AreAllClosed に改名しました。→ a7e518d
    • 実際には true になるのはドアが閉まり切った後であり、名前が実態にそぐわなかったためです。
    • 旧名のプロパティは ClassMemberSet から参照できなくなったため、特殊な処理を実装している場合は影響を受ける可能性があります。通常の使用方法の範囲では影響はほぼありません。
  • Route.GetTrackMatrix メソッドのパラメータを改名・XML ドキュメントを変更しました。→ 3231765
    • 従来のパラメータ名では直感的でなく分かりづらかったためです。
    • この変更によるプラグインの動作への影響はありません。

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...
Read more

ver1.0-RC7 - v1.0.40209.1

09 Feb 11:51
Compare
Choose a tag to compare
Pre-release

本バージョンは 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 に公開。新規にプラグインを開発する際の手間が大幅に低減されました!

その他、車両ファイルが複数ある場合に車両プラグインリストファイル・車両設定ファイルを一括で定義できるようになったりと、プラグインの開発・組込にて地味~に手間がかかっていた部分を細かくじっくりと見直しました。

更にユーザーに分かりやすく (ver1.0-RC7 ~)

正式版リリースを見据えて、ゾーン識別子や SlimDX SDK との競合、BveTs.exe.config の加工など、分かりづらい原因によるエラーに対する案内表示を更に充実させました。エラーによっては 具体的な対処方法 が表示されることも!

また、新たなプラグインの形態として トラブルシューティングプラグイン を追加。ユーザー間でも、エラーへの対処のノウハウを共有することが可能となりました。

【ご意見募集中】パフォーマンスのための独自ヘッダー・独自ステートメントの仕様変更

従来は何も設定せずとも独自ヘッダー、独自ステートメントはその機能をフルに使用することができましたが、行数の多いマップなどでは読込時間がとても長くなってしまっていました。
そこで、本バージョンよりマップファイル・AtsEX プラグイン内で特定のフラグをオンにした場合以外は機能を大幅に制限する仕様に変更しました。

読込時間の短縮のために手間が増えた格好ですが、いかがでしょうか。お使いになった際には「こういう仕様にした方が良いのでは?」など是非ご意見をお寄せください。

ver1.0-RC2: 仕様を変更しました

ご意見を踏まえて、機能が有効化される条件を若干緩和しました。

  • USEATSEX ではなく NOMPI が冒頭に定義されていても有効化するように
  • READDEPTHの初期値を 0 → 1 に
  • USEATSEXREADDEPTH は山括弧でも定義できるように

ver1.0-RC4: 仕様を変更しました

パフォーマンスが明らかに低下してしまっていたため、機能が有効化される条件の一部を戻しました。

  • READDEPTHの初期値を 1 → 0 に

ver1.0-RC6: 以前からの不具合を修正しました

不具合の修正が、結果として破壊的変更となり、以前は動作していたプラグインが動作しなくなる可能性があります。

  • 冒頭に USEATSEXNOMPI のいずれも定義されていなくても、機能が無効化されない場合がある不具合を修正しました。

引き続き皆様からのご意見お待ちしております。

ver1.0-RC6 (v1.0.40116.1) からの主な更新内容

AtsEX 本体

  • 【重要】 トラブルシューティングプラグイン機能を追加しました。→ 3dc2e7d
  • 入力デバイスプラグイン版 AtsEX の有効化時、必要に応じて再起動を促すメッセージが表示されるようになりました。→ b292959
  • バージョン情報ダイアログに、本体の呼出モード (入力デバイスプラグイン版、または ATS プラグイン版) の表記を追加しました。→ b7f0289
  • LaunchMode 列挙型の説明を文字列で取得できるようになりました。→ 4a3f782

独自ヘッダー

  • 構文解析の規則を、コンピューターのカルチャーに依存しない仕様に変更しました。→ 0790c2f

NuGet パッケージ

  • AtsEx.PluginHost の依存パッケージから Lib.Harmony を削除しました。→ 8927be4

AtsEX Caller

  • AtsEX 本体の起動に失敗した時、詳細なメッセージを表示するようになりました。→ af4fc5e

クラスラッパー

  • KeyProvider.LeverMoved イベント、KeyProvider.LeverMoved イベント、KeyProvider.LeverMoved イベントを追加しました。→ 0d258b4
    • これにより、入力デバイスプラグインのイベントに介入できるようになりました。
  • Route.RollingNoiseObjects プロパティ、Route.FlangeNoiseObjects プロパティ、Route.JointNoiseObjects プロパティを追加しました。→ 81d6d13
    • 車輪転動音、フランジきしり音、分岐器通過音を操作できるようになりました。
  • MyTrack.GetTransform メソッドを追加しました。→ 914c574
    • 自軌道における任意の 2 距離程間の射影行列を求めるメソッドです。
  • Model クラスに IDisposable インターフェイスを実装しました。→ b50a694
  • Direct3DProvider.HasDeviceLost プロパティ、Direct3DProvider.InitializeStates メソッドを追加しました。→ ad0d3b3
  • LoadingProgressForm.ProgressBar プロパティ、LoadingProgressForm.SetProgress メソッドを追加しました。→ df6abbb
    • 読込中画面のプログレスバーを操作できるようになりました。

サンプル

  • RichLoad (リッチなシナリオ読込画面を実装するプラグイン) のサンプルを追加しました。→ 0851834
  • 他列車操作サンプル EX のコードを読みやすく整理の上、改名しました。→ 3cf5cc7 / 1185943
    • この変更により、自軌道が直線でない場合も調整不要で正常動作するようになりました。
  • 他列車操作サンプル EX の自動制御版を追加しました。→ 90c7b62
    • 従来のもの (手動制御版) と比較してシンプルなコードとなっています。

その他

  • 【重要】 RichLoad (リッチなシナリオ読込画面を実装するプラグイン) の同梱を開始しました。
  • 【重要】 ゾーン識別子などの一般的なエラーに対応するトラブルシューティングプラグイン「AtsEX コモン トラブルシューティング」の同梱を開始しました。

ver1.0-RC5 (v1.0.40101.1) からの主な更新内容

AtsEX 本体

  • 【重要】 シナリオの再読込・再選択後、ランダムに続行が不可能となる不具合を修正しました。→ 5bf8763
    • Scenario クラスのデストラクタにより InputDeviceMain.ScenarioClosed が呼ばれ、リソースが誤って解放されてしまっていたためでした。
  • BveHacker.ScenarioOpened / ScenarioClosed イベントの発生タイミングを修正しました。→ 1985b46
    • 呼び出されなかったり、ScenarioClosed イベントより前に ScenarioOpened イベントが発生してしまう場合があった問題が解消されました。

独自ヘッダー

  • 【破壊的変更】 冒頭に USEATSEXNOMPI のいずれも定義されていなくても、機能が無効化されない場合がある不具合を修正しました。→ 56f8f7f

BveTypes (クラスラッパー除く)

  • コードを整理しました。→ e245f1b
    • アセンブリの解決処理について、必要最小限の範囲のみに適用する仕様としました。

クラスラッパー

  • 【重要】 Model.CreateRectangleWithTexture メソッドを追加しました。→ e6429d8
    • 運転台、補助表示向けの 2D モデルを簡単に生成できるようになりました。
  • 【重要】 Structure クラスのコンストラクタが動作しない不具合を修正しました。→ 52dd7c6
  • 【破壊的変更】 ClassWrapperBase クラスに等値演算子 ==、非等値演算子 != を実装しました。→ 9cf6fe4
    • これにより、動作が以前と異なる場合があります。
  • 【破壊的変更】 DoorSet.AreAllClosingOrClosed プロパティを AreAllClosed に改名しました。→ a7e518d
    • 実際には true になるのはドアが閉まり切った後であり、名前が実態にそぐわなかったためです。
    • 旧名のプロパティは ClassMemberSet から参照できなくなったため、特殊な処理を実装している場合は影響を受ける可能性があります。通常の使用方法の範囲では影響はほぼありません。
  • Route.GetTrackMatrix メソッドのパラメータを改名・XML ドキュメントを変更しました。→ 3231765
    • 従来のパラメータ名では直感的でなく分かりづらかったためです。
    • この変更によるプラグインの動作への影響はありません。

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 (クラスラッパー除く)

  • 型を互換性を維持しながら改名できるようになりました。→ 65597ed
  • 構築ジェネリック型のメンバーを扱えるようになりました。→ 81941ad

クラスラッパー

  • 【重要】 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 に変更しました。
  • USEATSEXREADDEPTH は、従来の記法 ([[AtsEx::USEATSEX]] など) に加えて、山括弧による記法 (<AtsEx::USEATSEX> など) でも定義できるようになりま...
Read more

ver1.0-RC6 - v1.0.40116.1

16 Jan 12:43
Compare
Choose a tag to compare
Pre-release

本バージョンは 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 に
  • USEATSEXREADDEPTH は山括弧でも定義できるように

ver1.0-RC4: 仕様を変更しました

パフォーマンスが明らかに低下してしまっていたため、機能が有効化される条件の一部を戻しました。

  • READDEPTHの初期値を 1 → 0 に

ver1.0-RC6: 以前からの不具合を修正しました

不具合の修正が、結果として破壊的変更となり、以前は動作していたプラグインが動作しなくなる可能性があります。

  • 冒頭に USEATSEXNOMPI のいずれも定義されていなくても、機能が無効化されない場合がある不具合を修正しました。

引き続き皆様からのご意見お待ちしております。

ver1.0-RC5 (v1.0.40101.1) からの主な更新内容

AtsEX 本体

  • 【重要】 シナリオの再読込・再選択後、ランダムに続行が不可能となる不具合を修正しました。→ 5bf8763
    • Scenario クラスのデストラクタにより InputDeviceMain.ScenarioClosed が呼ばれ、リソースが誤って解放されてしまっていたためでした。
  • BveHacker.ScenarioOpened / ScenarioClosed イベントの発生タイミングを修正しました。→ 1985b46
    • 呼び出されなかったり、ScenarioClosed イベントより前に ScenarioOpened イベントが発生してしまう場合があった問題が解消されました。

独自ヘッダー

  • 【破壊的変更】 冒頭に USEATSEXNOMPI のいずれも定義されていなくても、機能が無効化されない場合がある不具合を修正しました。→ 56f8f7f

BveTypes (クラスラッパー除く)

  • コードを整理しました。→ e245f1b
    • アセンブリの解決処理について、必要最小限の範囲のみに適用する仕様としました。

クラスラッパー

  • 【重要】 Model.CreateRectangleWithTexture メソッドを追加しました。→ e6429d8
    • 運転台、補助表示向けの 2D モデルを簡単に生成できるようになりました。
  • 【重要】 Structure クラスのコンストラクタが動作しない不具合を修正しました。→ 52dd7c6
  • 【破壊的変更】 ClassWrapperBase クラスに等値演算子 ==、非等値演算子 != を実装しました。→ 9cf6fe4
    • これにより、動作が以前と異なる場合があります。
  • 【破壊的変更】 DoorSet.AreAllClosingOrClosed プロパティを AreAllClosed に改名しました。→ a7e518d
    • 実際には true になるのはドアが閉まり切った後であり、名前が実態にそぐわなかったためです。
    • 旧名のプロパティは ClassMemberSet から参照できなくなったため、特殊な処理を実装している場合は影響を受ける可能性があります。通常の使用方法の範囲では影響はほぼありません。
  • Route.GetTrackMatrix メソッドのパラメータを改名・XML ドキュメントを変更しました。→ 3231765
    • 従来のパラメータ名では直感的でなく分かりづらかったためです。
    • この変更によるプラグインの動作への影響はありません。

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 (クラスラッパー除く)

  • 型を互換性を維持しながら改名できるようになりました。→ 65597ed
  • 構築ジェネリック型のメンバーを扱えるようになりました。→ 81941ad

クラスラッパー

  • 【重要】 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 に変更しました。
  • USEATSEXREADDEPTH は、従来の記法 ([[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
    • 車両設定ファイルに `<P...
Read more

ver1.0-RC5 - v1.0.40101.1

31 Dec 15:00
Compare
Choose a tag to compare
Pre-release

本バージョンは 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 に
  • USEATSEXREADDEPTH は山括弧でも定義できるように

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 (クラスラッパー除く)

  • 型を互換性を維持しながら改名できるようになりました。→ 65597ed
  • 構築ジェネリック型のメンバーを扱えるようになりました。→ 81941ad

クラスラッパー

  • 【重要】 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 に変更しました。
  • USEATSEXREADDEPTH は、従来の記法 ([[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...
Read more

ver1.0-RC4 - v1.0.31223.1

23 Dec 19:47
Compare
Choose a tag to compare
Pre-release

本バージョンは 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 に
  • USEATSEXREADDEPTH は山括弧でも定義できるように

ver1.0-RC4: 仕様を変更しました

パフォーマンスが明らかに低下してしまっていたため、機能が有効化される条件の一部を戻しました。

  • READDEPTHの初期値を 1 → 0 に

引き続き皆様からのご意見お待ちしております。

ver1.0-RC3 (v1.0.31118.2) からの主な更新内容

共通

  • 【重要】 AtsEXプラグインの Tick メソッドにおいて、elapsed パラメータの 1 フレーム目の値が不正になる不具合を修正しました。→ 2bbc336

AtsEX 本体

独自ヘッダー

  • 【破壊的変更】 READDEPTHの初期値を 0 → 1 に戻しました。→ 68cbc0f
    • パフォーマンスが明らかに低下してしまったためです。

BveTypes (クラスラッパー除く)

  • 型を互換性を維持しながら改名できるようになりました。→ 65597ed
  • 構築ジェネリック型のメンバーを扱えるようになりました。→ 81941ad

クラスラッパー

  • 【重要】 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 に変更しました。
  • USEATSEXREADDEPTH は、従来の記法 ([[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 ...
Read more

ver1.0-RC3 - v1.0.31118.2

18 Nov 09:12
Compare
Choose a tag to compare
Pre-release

本バージョンは 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 に
  • USEATSEXREADDEPTH は山括弧でも定義できるように

引き続き皆様からのご意見お待ちしております。

ver1.0-RC2 (v1.0.31118.1) からの主な更新内容

共通

  • 最新版であってもアップデート情報ダイアログが表示されてしまう不具合を解消するため、再更新しました。→ 83b3255

ver1.0-RC1 (v1.0.31106.1) からの主な更新内容

AtsEX 本体

独自ヘッダー

  • 【破壊的変更】 後方互換性のために、構文解析を実施する条件を緩和しました。→ a19363b
    • USEATSEX ではなく NOMPI が冒頭に定義されていても有効化される仕様に変更しました。
    • READDEPTHの初期値を 0 → 1 に変更しました。
  • USEATSEXREADDEPTH は、従来の記法 ([[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

  • イベントに対応しました。→ 2f59b87
  • デリゲートに対応しました。→ fd529d3

ObjectiveHarmonyPatch

  • 【重要】 NuGet パッケージとして別リポジトリに分離しました。→ 8463a0e

UnembeddedResources

  • 【重要】 NuGet パッケージとして別リポジトリに分離しました。→ da683f8
  • AtsEX プラグイン等の開発時、XML ドキュメントを表示できるようになりました。→ d241bc7

サンプル

  • ConductorPatch 拡張機能のサンプルを追加しました。→ 754cfd8
  • E217 系車両データを同梱しました。→ fa52ba2 / 2e8bae6 / e5d9d6f
  • 各シナリオにサムネイルを追加しました。→ 6881a98
  • AtsEX 非搭載時に表示される NOMPI メッセージを、現在の仕様に合った内容に変更しました。→ 3e2360e

同梱プラグイン一覧

拡張機能

  • AtsEX コア拡張機能
    • 【新規】 Conduct...
Read more

ver1.0-RC2 - v1.0.31118.1

18 Nov 08:07
Compare
Choose a tag to compare
Pre-release

本バージョンは 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 に
  • USEATSEXREADDEPTH は山括弧でも定義できるように

引き続き皆様からのご意見お待ちしております。

ver1.0-RC1 (v1.0.31106.1) からの主な更新内容

AtsEX 本体

独自ヘッダー

  • 【破壊的変更】 後方互換性のために、構文解析を実施する条件を緩和しました。→ a19363b
    • USEATSEX ではなく NOMPI が冒頭に定義されていても有効化される仕様に変更しました。
    • READDEPTHの初期値を 0 → 1 に変更しました。
  • USEATSEXREADDEPTH は、従来の記法 ([[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

  • イベントに対応しました。→ 2f59b87
  • デリゲートに対応しました。→ fd529d3

ObjectiveHarmonyPatch

  • 【重要】 NuGet パッケージとして別リポジトリに分離しました。→ 8463a0e

UnembeddedResources

  • 【重要】 NuGet パッケージとして別リポジトリに分離しました。→ da683f8
  • AtsEX プラグイン等の開発時、XML ドキュメントを表示できるようになりました。→ d241bc7

サンプル

  • ConductorPatch 拡張機能のサンプルを追加しました。→ 754cfd8
  • E217 系車両データを同梱しました。→ fa52ba2 / 2e8bae6 / e5d9d6f
  • 各シナリオにサムネイルを追加しました。→ 6881a98
  • AtsEX 非搭載時に表示される NOMPI メッセージを、現在の仕様に合った内容に変更しました。→ 3e2360e

同梱プラグイン一覧

拡張機能

  • AtsEX コア拡張機能
    • 【新規】 ConductorPatch
      • 車掌の動作を自由に変更できるようにするパッチを提供します。
    • ContextMenuHacker
      • メインフォームの右クリックメニューを編集するための機能を提供します。
    • DiagramUpdater
      • 時刻表、ダイヤグ...
Read more

ver1.0-RC1 - v1.0.31106.1

10 Nov 12:43
Compare
Choose a tag to compare
Pre-release

本バージョンは 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

  • イベントに対応しました。→ 2f59b87
  • デリゲートに対応しました。→ fd529d3

ObjectiveHarmonyPatch

  • 【重要】 NuGet パッケージとして別リポジトリに分離しました。→ 8463a0e

UnembeddedResources

  • 【重要】 NuGet パッケージとして別リポジトリに分離しました。→ da683f8
  • AtsEX プラグイン等の開発時、XML ドキュメントを表示できるようになりました。→ d241bc7

サンプル

  • ConductorPatch 拡張機能のサンプルを追加しました。→ 754cfd8
  • E217 系車両データを同梱しました。→ fa52ba2 / 2e8bae6 / e5d9d6f
  • 各シナリオにサムネイルを追加しました。→ 6881a98
  • AtsEX 非搭載時に表示される NOMPI メッセージを、現在の仕様に合った内容に変更しました。→ 3e2360e

同梱プラグイン一覧

拡張機能

  • AtsEX コア拡張機能
    • 【新規】 ConductorPatch
      • 車掌の動作を自由に変更できるようにするパッチを提供します。
    • ContextMenuHacker
      • メインフォームの右クリックメニューを編集するための機能を提供します。
    • DiagramUpdater
      • 時刻表、ダイヤグラムなどの行路に関わるオブジェクトの更新機能を提供します。
    • PreTrainPatch
      • 先行列車の走行位置を自由に変更できるようにするパッチを提供します。
    • SignalPatch
      • 閉塞の信号現示を自由に変更できるようにするパッチを提供します。
    • StructureModelFinder
      • ストラクチャーの 3D モデルを簡単に検索するための機能を提供します。
    • TrainDrawPatch
      • 他列車を自由に移動・回転できるようにするパッチを提供します。
  • 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 フォルダに配置し...

Read more