Skip to content

ver1.0-RC4 - v1.0.31223.1

Pre-release
Pre-release
Compare
Choose a tag to compare
@automatic9045 automatic9045 released this 23 Dec 19:47
· 279 commits to main since this 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 クラスを追加しました。→ 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.31223.1_AsInputDevice.Setup.exe」をダウンロードし、実行してください。

⚠️実行には管理者権限が必要です。
ご家族内で共有の PC を使用している場合などで、管理者権限を得られないときは、下の「入力デバイスプラグイン・手動インストール版」をご利用ください。

入力デバイスプラグイン・手動インストール版

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

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

ATS プラグイン版

下の Assets より「AtsEX_v1.0.31223.1_AsAtsPlugin.7z」をダウンロード・解凍し、シナリオフォルダに配置してください。

AtsEX SDK

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

下の Assets より「AtsEX_v1.0.31106.1_SDK.7z」をダウンロード・解凍してください (v1.0-RC1 向けのものと内容に差はありません)。
ビルドには別途 AtsEX 本体のダウンロードが必要です。

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