Skip to content

beta0.18 - v0.18.30202.1

Pre-release
Pre-release
Compare
Choose a tag to compare
@automatic9045 automatic9045 released this 02 Feb 13:34
· 562 commits to main since this release

本バージョンは β 版です。頻繁に破壊的変更を行う可能性があるので、まだ本番環境での採用は推奨しません。

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

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

beta0.17.7 (v0.17.30127.1) からの主な更新内容

AtsEX 本体

  • 【重要】 panel 出力、sound 出力に対応しました。→ 7e0d490 / 6185258 / ad0f7d4 / c39b87b
    • 通常の ATS プラグインでいう「Elapse 関数の panel 変数、sound 変数を編集する」操作の互換機能になります。
    • 他のプラグインとのインデックスの競合を防止・自動検出する機能付です。
      • 他の AtsEX プラグインと競合している場合 - そのインデックスが既に使用されていることを通知します。
      • ネイティブプラグイン (通常のプラグイン) と競合している場合 - そのプラグインから値が変更された時点で「予期せぬ外部からの編集」として検出し、エラーを発生させます。
    • 仕様の詳細については下記「panel 出力について」、「sound 出力について」をご参照ください。
  • 【破壊的変更】 AtsEx.Caller の互換性チェックが機能していなかった不具合を修正しました。→ 5f15e7f / aa3711d / 7318226
    • この修正の影響で、以前のバージョンの AtsEx.Caller.x**.dll を使用している車両に関しては最新バージョンのものへ差し替えが必要となります。
      • AtsEX プラグインの再コンパイル・修正等は不要です。

サンプル

  • panel 出力機能のサンプルプラグイン・シナリオを追加しました。→ 0c36482
  • sound 出力機能のサンプルとして、「シンプルな ATS サンプル」で ATS 作動時にはベルが鳴る仕様に変更しました。→ 7f95daf

panel 出力について

この機能は BVE が ATS プラグイン向けに提供している機能のみを組み合わせて実装しているため、BVE 本体のバージョンに依存しません。

panel へ出力可能なのは整数値のみのため、通常の ATS プラグインでは

  • PilotLamp 向けの真偽値なら 0 を false、1 を true に対応させる
  • DigitalNumber で駅名を表示させたいなら各駅名に ID をふって駅名と整数値を 1 対 1 に対応させる

など、何かしらの方法でデータを整数値に変換する必要がありました。

本機能では、出力データに疑似的に型を持たせる仕様としています。bool 型の場合は AtsEX が上記のように自動で整数へシリアライズし、BVE 本体へ送信します。その他の型も独自にシリアライザーを定義することで使用できます。
これにより、整数以外のデータを出力するときも直感的に記述することが可能です。

コードの例

// 状態量 ats50 を bool 型、初期値 false として登録
IAtsPanelValue<bool> ats50 = Native.AtsPanelValues.RegisterBoolean(50, false);

// 状態量 ats51 を double 型、初期値 0.0 として登録
// 小数第 2 位まで出力する例 (例えば、1.23 なら「123」として送信)
IAtsPanelValue<int> ats51 = Native.AtsPanelValues.Register<double>(51, value => (int)(value * 100), 0.0);

この場合、以下のように出力するデータを設定します。

ats50.Value = true; // ->「1」として送信
ats51.Value = 45.6; // ->「4560」として送信

sound 出力について

この機能は BVE が ATS プラグイン向けに提供している機能のみを組み合わせて実装しているため、BVE 本体のバージョンに依存しません。

Play / PlayLoop メソッド (≒関数) を実行すると再生され、Stop メソッドを実行すると停止する仕様です。
地上子通過などをトリガーにサウンドを再生する場合でも、フラグ変数を定義して Elapse 関数内で複雑な条件式を組み合わせる必要はありません。

コードの例

// ATS サウンド 12 番を AtsEX から操作するサウンドとして登録
IAtsSound atsSound12 = Native.AtsSounds.Register(12);
// 再生
atsSound12.Play();

同梱プラグイン一覧

拡張機能

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

車両プラグイン

  • 【新規】 運転台パネルに値を渡すサンプル
  • シンプルな ATS サンプル
  • 状態取得・設定サンプル

マッププラグイン

  • DXDynamicTexture 連携サンプル
  • 先行列車操作サンプル
  • 信号現示操作サンプル
  • 駅リスト編集サンプル
  • 他列車操作サンプル
  • 他列車操作サンプル EX
  • 走行抵抗係数編集サンプル
  • 空の C# スクリプトプラグイン
  • 空の IronPython プラグイン

ダウンロード

AtsEX 本体+サンプルシナリオ

下の Assets より「AtsEX_v0.18.30202.1.7z」をダウンロード・解凍し、シナリオフォルダに配置してください。
AtsEX 本体に加えて、車両プラグイン・マッププラグインの動作を確認できるサンプルシナリオを同梱しています。

AtsEX SDK

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

下の Assets より「AtsEX_v0.18.30202.1_SDK.7z」をダウンロード・解凍してください。
ビルドには別途 AtsEX 本体のダウンロードが必要です。

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