内容
# UE5 文档 — 离线文档和LLM上下文,用于虚幻引擎5.7
[](https://github.com/chcardenasto/DocUnrealEngine/actions/workflows/deploy.yml)
[](https://dev.epicgames.com/documentation/en-us/unreal-engine)
[](docs-md-py/en-us/unreal-engine)
[](LICENSE)
[](https://python.org)
> **3,444页的虚幻引擎5.7官方文档,以干净的Markdown格式呈现 — 专为LLM、RAG流水线、离线阅读和AI辅助开发而设计。**
---
## 为什么要创建这个项目?
官方的虚幻引擎文档位于一个大量使用JavaScript的网页界面中。本项目下载了整个文档库,并将其转换为干净、结构化的Markdown格式 — 这是LLM和嵌入式模型的首选格式。
| 格式 | 用例 |
|--------|----------|
| 3,444个单独的`.md`文件 | RAG流水线、AI代码助手、语义搜索 |
| `GUIDE_BOOK.md` (~30 MB) | 全文上下文、本地LLM输入、`Ctrl+F`搜索 |
| `GUIDE_INDEX.md` | 分层概述、LLM导航提示 |
| MkDocs网站 | 具有全文搜索的交互式离线浏览器 |
| **MCP服务器** | 与Claude Code和任何MCP兼容的LLM直接集成 |
---
## 快速入门
### 选项1 — MCP服务器(适用于Claude Code用户)
安装MCP服务器,以便Claude可以在任何会话中搜索和阅读UE5文档:
```bash
# 1. 克隆仓库
git clone https://github.com/chcardenasto/DocUnrealEngine.git
cd DocUnrealEngine
# 2. 安装MCP服务器包
pip install -e ".[mcp]"
# 3. 在Claude Code中注册它
claude mcp add --transport stdio ue5-docs -- python -m mcp_server.server --docs-dir ./docs-md-py
```
然后在任何Claude Code会话中:
```
什么是虚幻引擎中的游戏玩法能力系统?
如何为自定义Actor实现复制?
```
Claude将自动查询MCP服务器以获取相关文档。
### 选项2 — 交互式网页浏览器(MkDocs)
```bash
pip install -r requirements.txt
python scripts/build_guide.py --mode mkdocs --docs-dir docs-md-py
mkdocs serve
# 打开 http://127.0.0.1:8000
```
### 选项3 — RAG流水线输入
`docs-md-py/en-us/unreal-engine/`目录包含3,444个干净的Markdown文件,准备好嵌入:
```python
from langchain_community.document_loaders import DirectoryLoader
from langchain_text_splitters import MarkdownHeaderTextSplitter
loader = DirectoryLoader("./docs-md-py", glob="**/*.md", show_progress=True)
docs = loader.load()
splitter = MarkdownHeaderTextSplitter(headers_to_split_on=[("#", "H1"), ("##", "H2")])
chunks = [chunk for doc in docs for chunk in splitter.split_text(doc.page_content)]
# 将块送入ChromaDB、Pinecone、FAISS等
```
### 选项4 — 离线索引(无服务器)
```bash
python scripts/build_guide.py --mode index --docs-dir docs-md-py
# 在任何Markdown查看器中打开GUIDE_INDEX.md(VS Code、Obsidian等)
```
---
## MCP服务器详情
包含的MCP服务器向任何MCP兼容的LLM公开三个工具:
| 工具 | 描述 |
|------|-------------|
| `search_docs` | 按关键词、主题或类名搜索文档 |
| `get_doc` | 读取特定页面的完整内容 |
| `list_sections` | 浏览顶级文档类别 |
**安装选项:**
```bash
# stdio传输(本地)
claude mcp add --transport stdio ue5-docs -- python -m mcp_server.server
# 使用自定义文档路径
claude mcp add --transport stdio ue5-docs -- python -m mcp_server.server --docs-dir /path/to/docs-md-py
# 通过pip(发布后)
pip install ue5-docs-mcp
claude mcp add --transport stdio ue5-docs -- python -m ue5_docs_mcp
```
---
## 双MCP设置 — 文档 + 虚幻编辑器(UE 5.8+)
> 虚幻引擎5.8自带一个内置的MCP服务器,位于编辑器中。将它与这个文档服务器结合使用,创建一个完整的AI辅助工作流程。
**同时启用两个服务器,Claude可以:**
1. **查找文档**(此服务器) — *"SpawnActorDeferred的参数是什么?"*
2. **控制虚幻编辑器**(Epic的服务器) — *"在(100, 0, 500)处生成一个PointLight,并将强度设置为5000"*
**设置:**
1. 在UE 5.8+中启用`Unreal MCP`插件
2. 在输出日志中运行`ModelContextProtocol.GenerateClientConfig ClaudeCode`
3. 将我们的文档服务器添加到生成的`.mcp.json`中 — 参见[`.mcp.json.template`](.mcp.json.template)
在[`LLM_INTEGRATION.md`](LLM_INTEGRATION.md)中查看完整设置指南。
---
## LLM集成指南
在[`LLM_INTEGRATION.md`](LLM_INTEGRATION.md)中查看详细策略:
- **Cursor / GitHub Copilot / Cline** — 将`docs-md-py`文件夹索引为工作区
- **Google NotebookLM / 自定义GPT / Claude项目** — 上传`docs-md-py`的ZIP文件
- **RAG流水线(LangChain、LlamaIndex)** — 嵌入单个`.md`文件
- **大型上下文模型(Gemini 1.5 Pro、Claude)** — 先馈送`GUIDE_INDEX.md`,然后是特定页面
---
## 版本控制
每个虚幻引擎版本都会冻结为一个**git标签**。`main`始终包含最新版本。
| 标签 | 虚幻引擎版本 | 状态 |
|-----|-----------|--------|
| `v5.7` | 虚幻引擎5.7 | 当前(3,444页) |
| `v5.8` | 虚幻引擎5.8 | 计划中 |
```bash
# 使用UE 5.7文档(冻结)
git checkout v5.7
# 使用最新文档
git checkout main
```
---
## 更新或抓取新版本
```bash
# 抓取UE 5.8(发布时)
python scripts/scrape_epic_docs.py --out-dir docs-md-py --workers 4 --application-version 5.8
# 恢复中断的下载
python scripts/scrape_epic_docs.py --out-dir docs-md-py --workers 4 --skip-existing
# 强制重新下载所有页面
python scripts/scrape_epic_docs.py --out-dir docs-md-py --force
```
**抓取器功能:**
- 多线程(可配置的工作线程)
- 可恢复 — 跳过已下载的页面
- 失败时的指数退避
- 完成后生成`INDEX.md`、`FAILURES.md`和`pending-routes.json`
---
## 仓库结构
```
DocUnrealEngine/
├── docs-md-py/
│ └── en-us/unreal-engine/ ← 3,444个Markdown文件(文档库)
│ ├── INDEX.md ← 分层页面索引
│ ├── FAILURES.md ← 26个返回404的页面
│ └── mkdocs.yml ← 自动生成的MkDocs配置
├── mcp_server/
│ ├── __init__.py
│ └── server.py ← MCP服务器(搜索 + 检索)
├── scripts/
│ ├── scrape_epic_docs.py ← 网络抓取器(HTML → Markdown)
│ └── build_guide.py ← 编译器(索引 / 书 / mkdocs)
├── .github/workflows/deploy.yml ← CI/CD → GitHub Pages
├── GUIDE_BOOK.md ← 完整文档库为单个文件(~30 MB)
├── GUIDE_INDEX.md ← 分层索引
├── LLM_INTEGRATION.md ← 详细的LLM使用指南
├── llms.txt ← LLM发现元数据
├── pyproject.toml ← MCP服务器的包配置
├── requirements.txt ← Python依赖项
└── README.md
```
---
## 文档覆盖率
| 指标 | 值 |
|--------|-------|
| 虚幻引擎版本 | 5.7 |
| 下载的页面 | 3,444 |
| 失败的页面(404) | 26(已弃用工具/已删除章节) |
| 成功率 | 99.25% |
| 文档库大小 | ~40 MB(单个文件) |
| GUIDE_BOOK.md | ~30 MB |
26个失败的页面都是确认已弃用或从Epic服务器删除的章节(例如,`vertex-sculpt-tool`、`dynamic-sculpt-tool`、`variant-manager-template-overview`)。
---
## 贡献
在[`CONTRIBUTING.md`](CONTRIBUTING.md)中查看指南。简而言之:
- 在实施大型更改之前打开一个问题
- 保持PR聚焦和小型
- 在处理脚本之前运行`pip install -r requirements.txt`
---
## 法律通知
`docs-md-py/`中的文档内容是**Epic Games, Inc.**的知识产权,并受Epic Games的使用条款和版权约束。该仓库为离线访问和个人/教育使用提供开源工具(抓取器、构建器、MCP服务器),不分发商业内容或声称原创文档。
---
## 许可证
此仓库中的**脚本和工具**(`docs-md-py/`目录除外)根据[MIT License](LICENSE)许可。
`docs-md-py/`中的**文档内容**仍然是Epic Games, Inc.的财产。