Skip to content

ver1.0-RC10 - v1.0.41005.1

Pre-release
Pre-release
Compare
Choose a tag to compare
@automatic9045 automatic9045 released this 05 Oct 14:13
· 152 commits to main since this 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 の一部新機能を実装することが仕様上不可能なためです。
    • 今後は入力デバイスプラグイン版をご利用ください。入力デバイスプラグイン版への移行にあたり不都合な点がありましたら、サポート よりお問い合わせください。
  • 【破壊的変更】 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
    • ソースをプロパティからフィールドに振り替えたため、特殊な処理を実装している場合は影響を受ける可能性があります。通常の使用方法の範囲では影響はほぼありません。
  • 【破壊的変更】 Direct3DProvider.Device プロパティ、Direct3DProvider.PresentParameters プロパティの値を変更できるようになりました (set アクセサを追加しました)。→ e75649a
    • ソースをプロパティからフィールドに振り替えたため、特殊な処理を実装している場合は影響を受ける可能性があります。通常の使用方法の範囲では影響はほぼありません。
  • Valve クラス、BcValve クラス、ValueContainer クラス、CarBrake.BcValve プロパティを追加しました。→ 9cd3755
    • ブレーキシリンダ電磁弁を操作できるようになりました。これにより、ブレーキ出力を制御することが可能となりました。
  • MainForm.OpenScenario メソッドを追加しました。→ 28477b8
    • プラグインからシナリオを開けるようになりました。
  • Physical クラス、VehicleBogieWheel.LocationInCar プロパティ、VehicleBogieWheel.X プロパティ、VehicleBogieWheel.Y プロパティ、VehicleBogieWheel.RotationZ プロパティ、VehicleBogieWheel.OnLocationChanged メソッドを追加しました。→ 457488c
    • 台車の運動を操作できるようになりました。
  • Sound クラスに IDisposable インターフェイスを実装し、MinRadius プロパティ、MaxFrequency プロパティ、MinFrequency プロパティ、Dispose メソッドを追加しました。→ 0cf9618 / 3fd85bb
  • SoundObject クラス、SoundObjectList クラス、Route.SoundObjects プロパティを追加しました。→ a3b6983 / 3fd85bb / 3079c35 / b8d838a
    • マップに設置されたサウンドを操作できるようになりました。
  • MapLoader クラス、MapStatement クラス、MapStatementClause クラス、MapStatementList クラスを追加しました。→ 01cf6af
    • マップの読込処理を操作できるようになりました。
  • AtsPlugin クラスに IDisposable インターフェイスを実装し、HModule プロパティ、Dispose メソッド、LoadLibrary メソッドを追加しました。→ 462de03
    • ATS プラグインを読込・解放できるようになりました。
  • ConfigForm クラスを追加しました。→ 3079c35
    • 設定画面を操作できるようになりました。
  • Direct3DProvider.CreateDevice メソッドを追加しました。→ e75649a
  • CircularGauge クラス、DigitalGauge クラス、DigitalNumber クラス、Needle クラス、PilotLamp クラス、VehiclePanel クラス、VehiclePanelElement クラス、Vehicle.Panel プロパティを追加しました。→ ab48fe2
    • 運転台パネルを操作できるようになりました。
  • Vehicle クラスのコンストラクタを追加しました。→ a6262e1
  • ClassWrapperConverter.ConvertBack メソッドが null を許容するようになりました。→ 358c5d4
  • WrappedSortedList.Src プロパティのアクセシビリティを public に変更しました。→ 130c244
  • Sound クラスのコンストラクタが動作しない不具合を修正しました。→ 052d67f

TypeWrapping

  • メソッドが見つからなかった場合に誤ったメッセージが表示される不具合を修正しました。→ ff3f95e

サンプル

  • 【重要】 付属の E217 系データの ATS プラグインを全て AtsEX 経由で読み込む仕様に変更しました。→ f970475
  • 【重要】 マップファイルで if 文、ダイアログ構文を使用するサンプル「マップ if 文サンプル」を追加しました。→ c66831d
  • 【重要】 SoundFactory を利用して音声を読み込み、再生するサンプル「SoundFactoryTest」を追加しました。→ 5d90ca2

車掌サンプル

  • シナリオの説明文が誤っていたため修正しました。→ 9e3d5fa

(旧) 独自マップ構文サンプル → (新) マップ構文サンプル

  • 【重要】 新・マップステートメント機能対応仕様にリニューアルしました。→ 4d43fc2
  • ビルド時に成果物がコピーされない問題を修正しました。→ e438621

(旧) 運転台パネルに値を渡すサンプル → (新) 運転台パネル関連サンプル

  • 【重要】 以前からのサンプルプラグインに加え、運転台パネルの計器要素を操作するサンプルプラグイン「PanelController」を追加しパワーアップしました。→ 7d7e24c

RichLoad サンプル

  • RichLoad の新機能追加にあわせて、背景色、プログレスバーの色を設定ファイルにて明示的に指定するようにしました。→ 156da49

同梱プラグイン一覧

拡張機能

  • AtsEX コア拡張機能
    • ConductorPatch
      • 車掌の動作を自由に変更できるようにするパッチを提供します。
    • ContextMenuHacker
      • メインフォームの右クリックメニューを編集するための機能を提供します。
    • DiagramUpdater
      • 時刻表、ダイヤグラムなどの行路に関わるオブジェクトの更新機能を提供します。
    • MapStatements
      • プラグインからオリジナルのマップ構文を簡単に定義・参照できるようにします。
    • PreTrainPatch
      • 先行列車の走行位置を自由に変更できるようにするパッチを提供します。
    • SignalPatch
      • 閉塞の信号現示を自由に変更できるようにするパッチを提供します。
    • SoundFactory
      • プラグインから音声を簡単に読み込めるようにします。
    • StructureModelFinder
      • ストラクチャーの 3D モデルを簡単に検索するための機能を提供します。
    • TrainDrawPatch
      • 他列車を自由に移動・回転できるようにするパッチを提供します。
  • AtsArrayExtender
    • ATS パネル・サウンドで使用可能なインデックスを、従来の 4 倍の範囲 (0 ~ 1023) に拡張します。詳しいことは ホームページ をご覧ください。
  • DXDynamicTexture
  • * 拡張地上子
    • 古い機能のため非推奨。AtsEX コア拡張機能「MapStatements」を使用してください。
  • MultiStructureList
    • 複数のストラクチャーリストを読み込めるようにするプラグインです。
  • RichLoad
    • リッチなシナリオ読込画面を実装できるようにするプラグインです。

車両プラグイン

  • 運転台パネルに値を渡すサンプル
  • 車掌サンプル
  • マッププラグイン連携サンプル
  • 運転台パネル操作サンプル
  • シンプルな ATS サンプル
  • 状態取得・設定サンプル

マッププラグイン

  • 車両プラグイン連携サンプル
  • DXDynamicTexture 連携サンプル
  • 新・マップ構文サンプル
  • 先行列車操作サンプル
  • 信号現示操作サンプル
  • SoundFactory サンプル
  • 駅リスト編集サンプル
  • 他列車操作サンプル
  • 他列車操作サンプル EX (自動制御版)
  • 他列車操作サンプル EX (手動制御版)
  • 走行抵抗係数編集サンプル
  • 空の C# スクリプトプラグイン
  • 空の IronPython プラグイン

ダウンロード

ver1.0-RC10 以降、入力デバイスプラグイン版のみ提供しています。

【推奨】AtsEX 本体+サンプルシナリオ+AtsEX SDK exe インストーラー版

AtsEX 本体に加えて、車両プラグイン・マッププラグインの動作が確認できるサンプルシナリオ、AtsEX SDK (サンプルプラグインのソースコードのセット) を同梱しています。

下の Assets より「AtsEX_v1.0.41005.1_Setup.exe」をダウンロードし、実行してください。AtsEX SDK もインストーラーからダウンロードできるようになりました。

管理者権限が原則不要になりました! (ver1.0-RC8 ~)
ご家族内で共有の PC を使用している場合などで、管理者権限を得られないときも、インストーラー版を利用できるようになりました。

AtsEX 本体+サンプルシナリオ 7z 手動インストール版

AtsEX 本体に加えて、車両プラグイン・マッププラグインの動作が確認できるサンプルシナリオを同梱しています。
※手動インストール版には AtsEX SDK は同梱されません

下の Assets より「AtsEX_v1.0.41005.1.7z」をダウンロード・解凍し、シナリオフォルダおよび BVE 本体の Input Devices フォルダに配置してください。

インストール方法の説明はこちら→ AtsEXインストールガイド - AtsEX ATSプラグイン拡張キット - 岡オカ営業所

【廃止 (ver1.0-RC10 ~)】ATS プラグイン版

一部機能が動作しないため、ATS プラグイン版は廃止しました。

※ ATS プラグイン版は ver1.0-RC9 (2024/6/27) より非推奨となっています。

AtsEX SDK

サンプルプラグインのソースコードのセットです。

下の Assets より「AtsEX_v1.0.41005.1_SDK.7z」をダウンロード・解凍してください。実行には別途 AtsEX 本体のダウンロードが必要です。
※自動インストーラー版には AtsEX SDK が初めから同梱されているため、こちらを別途ダウンロードする必要はありません

解凍には 7-zip などの解凍ソフトが必要です。