# DCS Mission Studio 0.4.0a6 リリースノート **状態: 開発版のアルファ版(ビルド候補)。公開は、利用者が最終成果物を承認してから行います。** DCS 本体の Mission Editor での読込・再保存の確認(ネイティブゲート)は未通過です。DCS との互換は主張しません。編集したミッションは、使う前に必ず DCS の Mission Editor で開いて確認してください。 - 対象コミット: `400a60a`(開発リポジトリの main `1fbb9ea`(0.4.0a5 の後の新規作成ダイアログの変更と、地図の速さ・西側の国の航空機の修正 `fix/map-speed-western`)に、版の変更、リリースノート、文書の更新を加えたもの。ブランチ `release/0.4.0a6`)。配布物はこのコミットを `git archive` で書き出したツリーからビルドしました。 - アプリの版番号: `dcsmission/__init__.py` は `0.4.0a6` です。画面の範囲欄の見出しは「開発プレビュー 0.4.0a6(アルファ版)— 検証候補」と表示します。 ## 概要 DCS Mission Studio は、既存の DCS ミッション(`.miz`)を原本を残して編集する Windows ネイティブ GUI です。独立した非公式ツールで、飛行機能は対象外です。Lua は実行しません。純正エディターの全機能への対応は開発中です。 0.4.0a6 は、西側の国の航空機・ヘリを配置できるようにし、オンライン地図の読み込みを速くし、新規作成ダイアログで地形・陣営・位置を DCS のインストールから選べるようにした版です。 **0.4.0a5 からは、アプリの中で更新できます**(「ヘルプ › 更新を確認...」)。0.4.0a6 は、アプリ内の更新で届く最初の版です。0.4.0a4 までの版には更新の機能がないため、配布ページから ZIP をダウンロードして手で入れ直してください。設定と未保存の編集の復旧ファイルは `%LOCALAPPDATA%\DcsMissionStudio` にあるため、そのまま引き継がれます。 ## 動作が変わる点(先に確認してください) - **西側の国の航空機・ヘリの複製で、呼出符号が変わります。** 0.4.0a5 までは callsign 表を原文のまま写していました。0.4.0a6 では、呼出名と要素番号を保ったまま、その国で空いている最初の flight 番号へ振り直します(例: Enfield11 → Enfield21、2 機の組なら Uzi11・Uzi12 → Uzi21・Uzi22)。名前の末尾が番号と一致しない表は、原文のまま写します。 - **航空機・ヘリの配置で、写し元に使う機体が増えました。** 0.4.0a5 までは、写し元が駐機スタートの機体や、データリンク・DTC・最初の経路点のアクションを持つ機体だと配置を拒否していました。0.4.0a6 では、余分なデータのない空中開始の機体を優先し、ないときはそれらの機体も使います。そのデータは写さず、写さなかったことを配置の前提として画面に表示します。**最初の経路点のアクションを写さないため、置いた AI が交戦しないことがあります。** ## 0.4.0a5 からの変更 - **西側の国の航空機・ヘリの配置**(`dcsmission/aircraft_ids.py`、`placement.py`、`placement_dialog.py`): 呼出名は、同じ国・同じ機種の機体に ME が付けた callsign 表から取り、その国で空いている最初の flight 番号にします。呼出名の完全な一覧は DCS のインストールのファイルにないため、ミッションにある機体から読みます。そのため、同じ国・同じ機種の機体がミッションにないと配置を拒否します(「先に ME で 1 機置いてください」)。ME 自身は完全な一覧の最初の空きを選ぶため、ME で置いた場合と違う呼出名になることがあります。配置の前に、プレビューに呼出符号を表示します。 - **西側の国の複製**(`dcsmission/editor.py`): 上の「動作が変わる点」のとおり、空いている最初の flight 番号へ振り直します。 - **東側の国の航空機・ヘリの配置**: 写し元の条件を緩めた分、配置できる機種が増えました(同梱ミッションの標本 120 件で、受け付けた機種と国の組は 102 件のうち 16 → 102)。 - **オンライン地図の読み込み**(`dcsmission/map_tiles.py`): タイルは届いた順に表示し、ズームや移動の直後は、まず半解像度で描いて、まだ届いていないタイルは一つ上の段のタイルを拡大して埋めます。通信は取得の作業ごとに接続を保って再利用します(プロキシの設定があるときは標準の取得方法)。578×591 の地図、速い回線での計測で、ズーム・移動のあと最初の画像まで約 0.26 秒 → 約 0.11 秒、描き終わるまで約 0.64 秒 → 約 0.29 秒(キャッシュあり)になりました。 - **新規作成ダイアログ**(`dcsmission/new_mission_dialog.py`、`geo.py`、`map_view.py`): DCS のインストール先を指定していると、地形はインストール済みの一覧から選べます。「DCS の標準の陣営に分ける」で赤・青の国 ID がまとめて入り、国名も表示します。ブルズアイと地図中心は、「位置」タブの地形の地図をクリックして置けます。インストールの一覧がないときは、地形を手で入力します。 ## 通信 通信するのは、オンライン地図をオンにしたときと、更新を確認するときだけです。0.4.0a5 から変わったのは、オンライン地図が接続を保って再利用する点と、User-Agent の版だけです。 - **オンライン地図(既定はオフ):** 表示している範囲の地図タイルを `tile.openstreetmap.org` から取得します。サーバーに送られるのは、タイルの番号、この PC の IP アドレス、User-Agent(`DcsMissionStudio/0.4.0a6 (+https://freedomflight.jp/dcs-mission-studio/)`)です。 - **更新の確認:** 「ヘルプ › 更新を確認...」を押したときと、起動時の確認をオンにしたときに、`https://freedomflight.jp/updates/dcs-mission-studio/update.json` を取得します(https だけ。パスやトークンは要りません)。新しい版を入れると決めたときだけ、同じフォルダーの `files/` から ZIP を取得します。サーバーに送られるのは、この PC の IP アドレスと User-Agent(`DcsMissionStudio-updater/0.4.0a6`)です。ミッションの内容、ファイル名、設定は送りません。 - 更新のログと結果は `%LOCALAPPDATA%\DcsMissionStudio\update` に書きます。 ## 0.4.0a6 でできないこと - DCS 本体での読込・再保存の確認(ネイティブゲート)は未通過です。編集したミッションが DCS の Mission Editor で開けること、飛行可能であることは確認していません。0.4.0a6 で置いた・複製した西側の国の航空機も、DCS ではまだ読み込んでいません。 - 0.4.0a4 までの版からの自動の更新(その版に機能が無いため)。更新の取り消し(入れ替えたあとに前の版へ戻す操作)。前の版に戻すには、配布ページの過去の版の ZIP を手で入れ直してください。 - 西側の国で、同じ国・同じ機種の機体がミッションにない場合の航空機・ヘリの配置。駐機・滑走路・空母からの開始の配置。航空機・ヘリ・艦船のユニット追加。 - ミッションにもともとある西側の国の空中開始グループの多くの複製(複製のほかの規則で拒否されます)。複製での BARO 高度の地形への合わせ(原文のまま写します)。 - 地図のドラッグは、地形の高さ・道路・障害物に合わせません。衛星画像や地形の起伏の表示はありません。 - 一部の拒否の理由(右の編集欄の理由など)は、英語の文のままです。 - トリガーの条件・アクション・トリガーの新規作成。生成済みの trig が再生成と一致しないミッションでのトリガーの編集。 - AI タスクの追加・削除・並べ替え、目標種別のオプション。無線チャンネルの追加・削除、変調・名称の変更。 - 保存値が規則と一致しない経路の ETA の再計算、離陸・着陸・駐機を含む経路の構造編集。`DictKey_` のローカライズ名を持つグループ・ユニットの名前変更と複製。 - 純正エディターの全機能(開発中です)。 ## DCS での確認の状況 - **Mission Editor での確認(未通過):** 原本から作った検証入力を DCS の Mission Editor で開き、別名で保存して比較する確認は、まだ実施していません。手順は [DCS_VALIDATION.md](DCS_VALIDATION.md) にあります。 - **専用サーバーでの読み込み(参考、0.4.0a2 以前の開発版):** 開発中の第9ラウンドのコードで出力した 37 ファイルを、開発者が運用する DCS の専用サーバーで1件ずつ読み込み、37 件とも読み込み・開始・30 秒の動作を確認しました。0.4.0a3 以降の機能で出力したファイルは、まだ読み込んでいません。Mission Editor での確認の代わりにはなりません([QA_RESULTS.md](QA_RESULTS.md))。 ## 起動 Windows 版は、ZIP を展開したフォルダー全体を残したまま、`DcsMissionStudio.exe` を起動します。フォルダーの中のファイルを個別に移動しないでください。0.4.0a5 を使っている場合は、「ヘルプ › 更新を確認...」から入れ替えられます。ソースから起動する場合は、[README](README.md) の手順に従ってください(Python 3.13、Tk 付き)。 ## 使う前の注意 - 原本は上書きしません。編集は必ず別名で保存し、DCS の Mission Editor で開いて内容を確認してから使ってください。 - サーバーで公開するミッションに使う場合は、特に、DCS で開いて保存し直したものを使ってください。西側の国の航空機を置いた・複製したミッションでは、呼出符号と AI の動作も確認してください。 - 0.4.0a2 で保存したミッションには、中のファイル名が書き換わる不具合の影響があることがあります(0.4.0a3 で修正。扱いは [0.4.0a3 のリリースノート](RELEASE_NOTES_0.4.0a3.md))。 - 読み込んだミッションや素材の権利は、元の権利者に帰属します。 ## 問題の報告 不具合や疑問は、配布ページの案内に従って報告してください。報告には、版(0.4.0a6)、Windows の版、操作手順、表示されたメッセージを含めると確認しやすくなります。報告に、ミッションの中身、利用者名、PC 内のパスなどの個人情報を含めないでください。 ## 配布物 `qa/package_release.py` で作成し、0.4.0a2 から同じ `validate_release_archives.py` で検証しました(CRC、全ファイルのハッシュ、安全な相対パス、個人の状態やミッションの混入なし。証跡: `a6-archive-verification.json`)。ZIP の中のこの文書は、ハッシュを記入する前の版です。 | ファイル | サイズ | SHA-256 | |---|---|---| | DcsMissionStudio-0.4.0a6-win64.zip | 16,806,523 バイト(980 ファイル) | `d6fb7c9f7c35cadcbd6956cc0ae8add70337814d17f5463aec0e96745c2a0c91` | | DcsMissionStudio-0.4.0a6-source.zip | 5,924,192 バイト(242 ファイル) | `09cf0fa0d6287c1faf04fa5b383cd5cb6c52ef1fa0f43c3b8d530eff97c557e9` | | SHA256SUMS.txt | 205 バイト | `7e55f57035048b3868e3d5de5e9e1778827233157624024e7cb4f1810028321b` | | release.json | 447 バイト | `14a96e8b53c909071e87b61c398a8042f48a63076efc35c804b3d492c16a9e6d` | 公開と外部配布、更新の取得元(`https://freedomflight.jp/updates/dcs-mission-studio/update.json`)の update.json の差し替えは、最終成果物(ページ、ZIP、ハッシュ、手順、更新の案内の文)について利用者の承認を得てから行います。差し替えるまでは、「更新を確認...」は 0.4.0a5 を最新と表示します。 ## 検証の記録 - 全体試験(GUI を含む): ビルド元 `400a60a` で 2,504 件を実行し、失敗 0、エラー 0、スキップ 3(シンボリックリンクの権限)、unraisable 0、tree_clean でした(証跡: `a6-400a60a-suite.json`、1,532 秒)。0.4.0a5 と同じ、ウィンドウを2台目のモニターに出して透明にする起動スクリプトで実行しました(アプリと試験のコードは変えていません)。 - 梱包監査: passed。ネイティブファイル 23(0.4.0a5 と同じ)、同梱ファイル 979、通知 13 件の一致、private findings 0、絶対パスのコード名 0、想定外の UCRT ファイル 0、コードオブジェクト 12,992 件(証跡: `a6-packaging-audit.json`)。 - 構成要素の目録: 16 件、ネイティブ成果物 23 件、ビルドタグ `v040a6-400a60a`(証跡: `a6-SBOM.json`)。 - 凍結実行ファイルの自己診断: 状態 pass、frozen true、11 項目(0.4.0a5 と同じ項目)、Python 3.13.5、Tk 8.6.15、OpenSSL 3.0.16(証跡: `a6-frozen-self-test.json`)。Windows ZIP を日本語と空白を含むフォルダーに展開した実行ファイルでも、同じ 11 項目が pass でした(証跡: `a6-frozen-self-test-from-zip.json`)。 - 更新の署名鍵: ビルドの出力で、本番の公開鍵 `ffs-update-2026a` が入っていることを確かめました。`qa/make_update_dist.py --release` は、この Windows ZIP の 979 ファイルを同梱の MANIFEST.json と照らして受け付けました(署名と配置はしていません)。 - 実地の更新の試験(ビルドの後): 公開している 0.4.0a5 の Windows ZIP を日本語と空白を含むフォルダーに展開し、上の表の 0.4.0a6 の Windows ZIP へ、アプリ内の更新で入れ替えました。0.4.0a5 の実地の試験で使った試験用の 0.4.0a6(公開しないビルド)ではなく、この公開候補の ZIP です。取得元はループバックの試験用の配信サーバーで、`qa/make_update_dist.py` で作った配信物に試験用の鍵で署名しました。16 項目すべて合格です: 署名した中身を書き換えた update.json は署名の誤りとして拒否し、ZIP を取得せず、インストール先も変えない。正しい update.json では、更新の案内、ZIP の取得、補助による入れ替え、新しい版の起動、一時フォルダーの後始末まで進み、インストール先は新しい版の MANIFEST.json と一致し、利用者が置いたファイルと設定のパスはそのまま残る。認証の情報は送らない(証跡: `a6-field-update.json`)。アプリと試験の道具は変えず、試験中はアプリのウィンドウを透明にしました。 - ビルド環境: 0.4.0a5 と同じ CPython 3.13.5 と PyInstaller 6.22.2(pyinstaller-hooks-contrib 2026.7)。パッケージの導入や更新はしていません。来歴は [PROVENANCE.md](PROVENANCE.md) にあります。 - `fix/map-speed-western` の全体試験(GUI を含む、`436366e`): 2,504 件、失敗 1、エラー 0、スキップ 3(シンボリックリンクの権限)、unraisable 0、tree_clean(証跡: `fix-436366e-suite.json`)。失敗は `test_updater` の `test_only_the_updater_imports_network_modules` で、`map_tiles.py` が接続の再利用のために `http.client`・`ssl`・`urllib.parse` を読み込むようになったためです。`d24028d` で許可に加え、`test_updater` の 81 件が成功しました。 - 西側の国の航空機の実データの確認(作業記録): 同梱ミッションの標本 120 件での配置のプレビュー(読み取りだけ)で、西側の国の機種と国の組 425 件のうち受け付けたものは 0 → 425 になりました。同梱の F-16C・A-10A のミッション 3 件と利用者のミッション 2 件の写しで、配置 → 複製 → 保存 → 読み直し → 取り消しを通し、呼出符号と機体番号の重複は新たに生じず、取り消しで元の文に戻りました([QA_RESULTS.md](QA_RESULTS.md))。 - ミッションの読み書きのモジュール(`archive.py`、`lua.py`)は 0.4.0a3 から変えていません。`editor.py` の変更は、西側の国の複製で callsign 表を振り直す部分だけです。 ## 関連文書 - [README](README.md) - [対応表](FEATURE_MATRIX.md) - [検証結果](QA_RESULTS.md) - [DCS 本体での確認手順](DCS_VALIDATION.md) - [来歴](PROVENANCE.md) - [同梱依存と配布条件](DEPENDENCIES.md) - [NOTICE](NOTICE.txt) - [Windows バイナリの配布条件](BINARY-DISTRIBUTION-TERMS.txt) - [ライセンス](LICENSE) - [0.4.0a5 のリリースノート](RELEASE_NOTES_0.4.0a5.md) ## 非公式の表示 DCS Mission Studio は、独立した非公式ツールです。DCS の開発元である Eagle Dynamics とは、提携、承認、後援の関係はありません。DCS と Eagle Dynamics の名称は、対象を示すためだけに使っています。DCS の地図、画像、ロゴ、公式ミッション、第三者のミッションは同梱していません。海岸線・陸上国境のデータは Natural Earth(パブリックドメイン)のものを無加工で同梱しています。オンライン地図の地図データは © OpenStreetMap contributors で、配布物には含めず、利用者がオンにしたときに取得します。