Files
MaaAssistantArknights/docs/ja-jp/develop/development.md
MistEO a5b6f17e83 feat(PC): 支持 PC 端明日方舟 (#15407)
* feat(controller): 集成 MaaWin32ControlUnit 支持 Win32 窗口截图与控制

- 提取公共滑动插值逻辑到 SwipeHelper.hpp,重构 Minitouch/PlayTools 控制器
- 新增 Win32ControlUnitLoader 动态加载 MaaWin32ControlUnit.dll
- 新增 Win32Controller 实现 ControllerAPI,适配 touch_down/move/up 接口
- 添加 AsstAsyncAttachWindow 公开 API 用于绑定 Win32 窗口
- 添加 Win32 截图/输入方式的类型定义和枚举常量

* feat(api): 增加同步版本的 AsstAttachWindow 接口

模仿 AsstConnect 实现同步绑定 Win32 窗口的接口,方便简单场景下直接调用。
该接口标记为 deprecated,建议使用异步版本 AsstAsyncAttachWindow。

* fix: can build MaaCore

* feat: 完成整体适配

* feat(ci): 添加 MaaFramework Win32ControlUnit 下载步骤

使用 robinraju/release-downloader 从 MaaFramework 最新 release 下载
win-x64 版本并提取 MaaWin32ControlUnit 到构建产物中

* docs: 添加 Win32Controller 调试所需 MaaWin32ControlUnit 的说明

在开发文档的环境配置步骤中说明调试 Win32Controller 需要手动下载
MaaWin32ControlUnit.dll,并欢迎社区贡献自动下载脚本

* fix(i18n): 修改 UseAttachWindowWarning 措辞为"仅供尝鲜"

* fix: 小细节修复

* ci: fix maafw filename

* feat: PC 移至连接配置

* feat: 调整描述

* chore: 调整 PC 在连接配置中的顺序

* feat: 设置指引和开始唤醒界面 PC 选项绑定

---------

Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-01-18 21:17:59 +08:00

186 lines
8.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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
```
::: 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
mkdir -p build
cmake -G "Visual Studio 18 2026" -B build -DBUILD_WPF_GUI=ON -DBUILD_DEBUG_DEMO=ON
```
7. `build/MAA.slnx` をダブルクリックで開き、Visual Studio にプロジェクトを自動ロード
8. VS の設定
- 上部設定バーで `Debug` `x64` を選択
- `MaaWpfGui` 右クリック → スタートアップ プロジェクトに設定
- F5 キーを押して実行
::: tip
Win32ControllerWindows ウィンドウ制御)関連機能をデバッグする場合は、[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
```
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
```
または
```bash
git merge
```
4. ステップ8、9、10、11 を繰り返し
::: tip
Visual Studio 起動後、Git 操作は「Git 変更」画面からコマンドライン不要で可能
:::
## 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`
を実行するだけです。