--- order: 1 icon: iconoir:developer --- # 開発ガイド ::: tip 本ページは主に PR プロセスおよび MAA のファイルフォーマット要件について説明します。MAA の実行ロジックを変更する具体的な方法については、[プロトコル文書](../protocol/)を参照してください。 ::: ::: tip [DeepWiki に質問して](https://deepwiki.com/MaaAssistantArknights/MaaAssistantArknights)、MAA プロジェクトの全体的なアーキテクチャを概要的に理解することができます。 ::: ## プログラミングの仕方がわからないので、JSONファイルやドキュメントなどを少し変更したいのですが、どうすればいいですか? [「パラスちゃん」も理解できるGitHubのPull Requestの使用ガイド](./pr-tutorial.md)へようこそ(純WebサイトのPRチュートリアル) ## 数行のコードを少しだけ変更したいが、環境設定が面倒。純粋なWeb編集も使いにくい。どうすればよいですか? [GitHub Codespaces](https://github.com/codespaces)オンライン開発環境をご利用ください! 次のような、異なる開発環境を事前に準備しています: - 空白環境(裸のLinuxコンテナ)(デフォルト) [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MaaAssistantArknights/MaaAssistantArknights?devcontainer_path=.devcontainer%2Fdevcontainer.json) - 軽量環境:ドキュメントサイトのフロントエンド開発に適している [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MaaAssistantArknights/MaaAssistantArknights?devcontainer_path=.devcontainer%2F0%2Fdevcontainer.json) - 完全環境:MAA Core関連の開発に適している(使用は推奨しません。ローカル開発を推奨します。関連環境を完全に設定。次のセクションを参照) [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MaaAssistantArknights/MaaAssistantArknights?devcontainer_path=.devcontainer%2F1%2Fdevcontainer.json) ## 完全な環境セットアップ(Windows) 1. かなり前にフォークした場合は、まず自分のリポジトリの `Settings` の一番下で削除します 2. [MAA メインリポジトリ](https://github.com/MaaAssistantArknights/MaaAssistantArknights)を開き、`Fork` → `Create fork` をクリック 3. 自身のリポジトリの dev ブランチをクローン(サブモジュール含む) ```bash git clone --recurse-submodules <リポジトリの git リンク> -b dev-v2 --single-branch ``` ::: tip `--single-branch` で取得されるのは `dev-v2` の履歴だけです。あとで別のブランチに切り替えたい場合は、先に `git remote set-branches origin '*'` を実行してから再度 fetch するか、`--single-branch` なしでリポジトリを再度クローンして不足しているブランチ情報を取得してください。 ::: ::: warning Visual Studio など `--recurse-submodules` パラメータに対応していない Git GUI を使用する場合、クローン後に以下を実行: ```bash git submodule update --init ``` ::: 4. 事前ビルド済みサードパーティライブラリのダウンロード **Python環境が必要(インストール方法は各自検索)** _(tools/maadeps-download.py はプロジェクトルートに配置)_ ```cmd python tools/maadeps-download.py ``` 5. 開発環境の設定 - `CMake` をダウンロードしてインストール - `Visual Studio 2026 Community` をインストール時、`C++ によるデスクトップ開発` と `.NET デスクトップ開発` を選択必須 6. cmake プロジェクト設定を実行 ```cmd cmake --preset windows-x64 ``` 7. `build/MAA.slnx` をダブルクリックで開き、Visual Studio にプロジェクトを自動ロード 8. VS の設定 - 上部設定バーで `Debug` `x64` を選択 - `MaaWpfGui` 右クリック → スタートアップ プロジェクトに設定 - F5 キーを押して実行 ::: tip Win32Controller(Windows ウィンドウ制御)関連機能をデバッグする場合は、[MaaFramework Releases](https://github.com/MaaXYZ/MaaFramework/releases) から対応プラットフォームのアーカイブをダウンロードし、`bin` ディレクトリ内の `MaaWin32ControlUnit.dll` を MAA の DLL と同じディレクトリ(例:`build/bin/Debug`)に配置してください。自動ダウンロードスクリプトの PR 歓迎! ::: 9. これで自由に ~~改造~~ 開発を始められます 10. 一定量の変更ごとにコミット(メッセージ記入必須) Git 未経験者は dev ブランチ直接変更ではなく新規ブランチ作成推奨: ```bash git branch your_own_branch git checkout your_own_branch ``` これで dev の更新影響を受けずに開発可能 11. 開発完了後、変更をリモートリポジトリへプッシュ: ```bash git push origin dev-v2 ``` 12. [MAA メインリポジトリ](https://github.com/MaaAssistantArknights/MaaAssistantArknights) で Pull Request を提出(master ではなく dev ブランチを指定) 13. 上流リポジトリの更新を同期する場合: 1. 上流リポジトリを追加: ```bash git remote add upstream https://github.com/MaaAssistantArknights/MaaAssistantArknights.git ``` 2. 更新を取得: ```bash git fetch upstream ``` 3. リベース(推奨)またはマージ: ```bash git rebase upstream/dev-v2 ``` または ```bash git merge ``` 4. ステップ8、9、10、11 を繰り返し ::: tip Visual Studio 起動後、Git 操作は「Git 変更」画面からコマンドライン不要で可能 ::: ## VSCodeでの開発(オプション) ::: warning **Visual Studio での開発を推奨します。** MAA プロジェクトは主に Visual Studio をベースに構築されており、上記の完全な環境セットアップですべての開発ニーズをカバーし、すぐに使える最高の体験を提供します。VSCode ワークフローは、VSCode + CMake + clangd に精通した開発者向けの代替手段としてのみ提供されており、設定のハードルが比較的高くなります。 ::: VSCodeを好む場合、CMake、clangdなどの拡張機能でコード補完、ナビゲーション、デバッグが可能です。前述の手順1~6(クローン、依存関係、CMake設定)を完了した後、以下の手順で設定できます。 ### 推奨拡張機能 VS Code Marketplace からインストール: | 拡張機能 | 用途 | | --------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | | [CMake Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools) | CMake の設定、ビルド、デバッグ統合 | | [clangd](https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd) | C++ インテリセンス、コードナビゲーション、診断(LSPベース) | | [C/C++](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools) | C++ プログラムのデバッグ(CMake Tools または launch.json と連携) | ::: tip clangd を使用する場合、C/C++ 拡張機能の IntelliSense を無効化(`C_Cpp.intelliSenseEngine` を `disabled` に設定)することを推奨します。競合を避けるためです。 ::: ### 設定手順 1. VS Code でプロジェクトルートを開く 2. **CMake Tools**:ステータスバーで Configure Preset(例:`windows-x64`、`linux-x64`)を選択し、Build Preset でビルドを実行 3. **clangd**:Linux/macOS ではプリセットで `CMAKE_EXPORT_COMPILE_COMMANDS` が有効となり、clangd は `build/compile_commands.json` を自動使用。Windows で clangd の補完・ナビゲーションを使う場合は、まず `compile_commands.json` を生成する必要があります: ::: warning Windows での clangd 設定 - VS Installer で **C++ Clang コンパイラ for Windows**(clang-cl)をインストールに含める - `windows-x64-clang` プリセットに切り替えて Configure を1回実行すると `build/` に `compile_commands.json` が生成され、clangd が利用可能になります - **このプリセットは clang-cl を使用するため MSVC と異なり、ビルド成果物を直接生成できません**。実際のビルド時は `windows-x64` に切り替えてください - clangd は clang-cl のコンパイル情報で解析するため、一部コード(MSVC 専用拡張など)でエラー表示が出る場合がありますが、無視して問題ありません。実際の MSVC ビルドには影響しません **コマンドラインでのプリセット切り替え例**(プロジェクトルートで実行): ```cmd rem compile_commands.json を生成(Configure のみ、ビルドなし) cmake --preset windows-x64-clang rem MSVC に戻して実際のビルドを行う cmake --preset windows-x64 cmake --build --preset windows-x64-RelWithDebInfo ``` ::: 4. **デバッグ**:プロジェクトには `.vscode/launch.json` が含まれており、MaaWpfGui や Debug Demo の起動が可能 ### ビルドとデバッグのショートカット - **ビルド**:`Ctrl+Shift+B` または CMake Tools ステータスバー - **デバッグ**:F5 または Run and Debug パネルで設定を選択 ## MAAのファイルフォーマット要件 MAAは、リポジトリ内のコードとリソースファイルが美しく統一されるよう、一連のフォーマットツールを使用してメンテナンスと読み取りを容易にしています。 提出する前にフォーマットするか、または[Pre-commit Hooksを使用してコードを自動フォーマット](#pre-commit-hooksを使用してコードを自動フォーマット)してください。 現在有効になっているフォーマットツールは次のとおりです: | ファイルタイプ | フォーマットツール | | -------------- | --------------------------------------------------------------- | | C++ | [clang-format](https://clang.llvm.org/docs/ClangFormat.html) | | JSON/YAML | [Prettier](https://prettier.io/) | | Markdown | [markdownlint](https://github.com/DavidAnson/markdownlint-cli2) | ### Pre-commit Hooksを使用してコードを自動フォーマット 1. コンピュータにPython環境とNode環境があることを確認してください。 2. プロジェクトのルートディレクトリで次のコマンドを実行します: ```bash pip install pre-commit pre-commit install ``` pipインストール後もPre-commitを実行できない場合は、PIPインストールパスがPATHに追加されていることを確認してください。 次に、提出するたびにフォーマットツールが自動的に実行され、コード形式がスタイルガイドに準拠していることを確認します。 ### Visual Studioでclang-formatを有効にする 1. clang-format バージョン20.1.0以上をインストールします。 ```bash python -m pip install clang-format ``` 2. 'Everything'などのツールを使用して、clang-format.exeのインストール場所を見つけます。参考までに、Anacondaを使用している場合、clang-format.exeはYourAnacondaPath/Scripts/clang-format.exeにインストールされます。 3. Visual Studioで、 Tools-Optionsで 'clang-format'を検索します。 4. `clang-formatサポートを有効にする` をクリックし、下の `カスタムのclang-format.exeファイルを使用する` を選択し、最初取得した `clang-format.exe` を選択します。 ![Visual Studioでclang-formatを有効にする](/images/zh-cn/development-enable-vs-clang-format.png) そうすれば、 Visual Studio は c++20 構文をサポートする clang-format を問題なく使用できます! `tools\ClangFormatter\clang-formatter.py` を使用して、clang-formatを直接呼び出して書式設定することもできます。プロジェクトのルートディレクトリで - `python tools\ClangFormatter\clang-formatter.py --clang-format=PATH\TO\YOUR\clang-format.exe --input=src\MaaCore` を実行するだけです。