mcpField
U
Unreal Engine Generative AI Support Plugin

Unreal Engine Generative AI Support Plugin

本地服务
muddyterrain.comAI 与智能体67926 周前更新

关于 Unreal Engine Generative AI Support Plugin

Unreal Engine Generative AI Support Plugin 是一个免费开源的 UE 插件,用于在游戏项目中调用多家 LLM 与生成式 AI 模型,并提供 MCP 服务以便 AI 客户端控制 UE5 项目。项目面向希望在 Unreal Engine 中集成 AI 功能的开发者。

主要功能

  1. 01调用 OpenAI、Claude、Grok、DeepSeek 等模型的 Chat 接口
  2. 02OpenAI 结构化输出支持
  3. 03通过 MCP 服务控制场景对象与材质
  4. 04运行 Python 脚本与控制台命令
  5. 05支持 Ollama 等本地模型

适用场景

  1. 01在 UE5 项目中为 NPC 添加基于 LLM 的对话
  2. 02让 Claude Desktop 或 Cursor 协助搭建场景与蓝图
  3. 03通过 MCP 工具批量生成或修改项目内容

MCP 相关

该插件内置 MCP 服务 mcp_server.py,向 Claude Desktop、Claude Code、Cursor 等 MCP 客户端暴露对 UE 编辑器的控制能力。README 注明其 MCP 功能不再积极开发。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Unreal Engine Fab Plugins C++ Platform AI Models MCP License: MIT Discord

使用示例:

MCP 示例:

Claude 创建场景对象并控制其变换和材质、生成蓝图、函数和变量、添加组件、运行 Python 脚本等。

README 配图
API 示例:

一个名为 become human 的项目,其中的 NPC 是 OpenAI Agent 实例。该项目使用此插件构建。 Become Human

Unreal Engine 生成式 AI 支持插件:

每个月,各个组织都会发布数百种新的 AI 模型,让人难以跟上最新进展。

“Unreal Engine 生成式 AI 支持插件”让你可以专注于游戏开发,而无需担心 LLM/生成式 AI 集成层。

当前进展:

此插件将持续更新,加入最新功能和模型。欢迎贡献。 如需支持 200 多种 AI 模型、保证稳定性、自动化测试并支持 UE 5.1-5.7+ 的生产就绪替代方案,请查看下方的专业插件。 此免费插件可满足多种使用场景(包括上述示例),且可永久免费使用。

Fab.com 上的 Pro 插件
Gen AI for Unreal - OpenAI GPT Anthropic Claude Gemini Grok ElevenLabs

Gen AI Pro
gpt-5.4 claude-opus-4-6 gemini-3.1-pro grok-4.1 o3-pro eleven_v3
聊天、视觉、流式传输、实时交互、图像生成、TTS、结构化输出、工具调用

Gen AI Chinese Models - Alibaba Qwen DeepSeek Moonshot Kimi ByteDance ZhipuAI

Gen AI Pro China
qwen3.5-plus kimi-k2.5 glm-5 seed-2-0 ernie-5.0 seedream-4
全球支持、聊天、视觉、图像生成、TTS、推理

Gen AI Model Generator - Meshy Tripo Hunyuan3D Trellis Rodin 3D Generation

GenAI Model Generator
meshy-6 tripo-v2.5 hunyuan3d-v3.1 trellis-2 rodin-gen-2
文本转 3D、图像转 3D、重新网格化、PBR 纹理、重新贴图、自动绑定骨骼

Gen AI Llama - Ollama vLLM LM Studio GGUF Local LLMs Unreal Engine

Gen AI Llama
Ollama vLLM LM Studio GGUF Jan LocalAI GPT-oss LLaVA
在你的 Unreal Engine 游戏中运行本地大模型——无需 API 密钥


免费插件(本仓库)- LLM/GenAI API 支持:
  • OpenAI:聊天(gpt-4.1、gpt-4.1-mini、o4-mini、o3、o3-pro)、结构化输出
  • Anthropic Claude:聊天(claude-4-latest、claude-3-7-sonnet、claude-3-5-sonnet、claude-3-5-haiku)
  • XAI Grok:聊天(grok-3-latest、grok-3-mini-beta)
  • DeepSeek:聊天(deepseek-chat V3.1)、推理(deepseek-reasoning-r1)
  • 本地 AI:unreal-ollama (MIT) - gpt-oss、qwen3-vl 等
完整模型列表(所有插件共 200 多个模型) #### 生成式 AI 专业版 - **OpenAI**:`gpt-5.4`、`gpt-5.4-pro`、`gpt-5.3-codex`、`gpt-5.2`、`gpt-5.1`、`gpt-5`、`gpt-5-mini`、`gpt-5-nano`、`gpt-4.1`、`o4-mini`、`o3`、`o3-pro` | Responses API、视觉、Realtime(`gpt-realtime`)、图像生成(`gpt-image-1.5`、`dall-e-3`)、TTS(`gpt-4o-mini-tts`、`whisper-1`)、流式传输、函数调用、多模态 - **Anthropic**:`claude-opus-4-6`、`claude-sonnet-4-6`、`claude-4.5-opus`、`claude-4.5-sonnet`、`claude-4.5-haiku` | 扩展思考、视觉、工具使用 - **Google Gemini**:`gemini-3.1-pro`、`gemini-3.1-flash-lite`、`gemini-2.5-pro`、`gemini-2.5-flash` | Imagen(`imagen-4.0-generate`、`imagen-4.0-ultra`)、Realtime、TTS、多模态 - **XAI Grok**:`grok-4.1`、`grok-4`、`grok-4-eu`、`grok-code-fast-1`、`grok-3` | 视觉、流式传输、推理 - **ElevenLabs**:TTS(`eleven_v3`、`eleven_turbo_v2_5`)、转录(`scribe_v2`)、音效(`eleven_text_to_sound_v2`) - **Inworld AI**:TTS(`inworld-tts-1.5-max`、`inworld-tts-1.5-mini`) - **OpenAI 兼容模式**:Alibaba Qwen、Mistral、Groq、OpenRouter、Meta Llama、GLM-4、Ollama
生成式 AI 中国版
  • Alibaba Qwen:qwen3.5-plus、qwen3.5-flash、qwen3-max、qwen3-coder-plus | 多模态(qwen-omni-turbo、qwen-vl-max)、图像生成(qwen-image、wan2.2-t2i-plus)、TTS(qwen3-tts-flash)
  • Moonshot/Kimi:kimi-k2.5、kimi-k2-thinking、kimi-k2-thinking-turbo | 多模态(kimi-latest)
  • ByteDance:seed-2-0-mini、seed-1-8、skylark-pro-250415 | 视觉(skylark-vision)、图像生成(seedream-4-0-250828)
  • ZhipuAI:glm-5、glm-4.7、glm-4.7-flash | 多模态(glm-4.6v)
  • Baidu:ernie-5.0-8k、ernie-4.5-8k、ernie-x1-32k
生成式 AI 模型生成器(3D)
  • Meshy AI:meshy-6 - 文本转 3D、图像转 3D、重新纹理、自动绑定骨骼
  • Tripo AI:tripo-v2.5 - 文本转 3D、图像转 3D
  • Hunyuan3D(Tencent):hunyuan3d-v3.1-pro 文本转 3D、hunyuan3d-v2.1 图像转 3D
  • TripoSR:图像转 3D(快速,<1s)
  • Rodin(Hyper3D):rodin-gen-2 - 文本/图像转 3D,支持 PBR 材质
  • Trellis 2(Microsoft):图像转 3D,支持 PBR 材质
  • Google Gemini:gemini-3.1-flash - PBR 纹理生成
其他功能:
  • 插件示例项目见此处
  • 版本控制:支持 Git 子模块,Perforce(进行中)
  • 轻量级:无外部依赖,可从构建中排除 MCP
  • 跨平台和引擎版本测试(专业版插件提供)
Unreal MCP(Model Control Protocol):

**其他 MCP 选项:**Epic Games 正在为 UE 5.8+ 开发官方 Unreal MCP 集成。此外,Natfii 还开发了 UnrealClaude(MIT),这是一个独立的 Unreal MCP 实现,值得一试。此插件的 MCP 支持面向 UE 5.4-5.7+,并可与 Claude Desktop、Claude Code 和 Cursor 配合使用。**注意:**此免费插件中的 MCP 功能目前没有积极开发,下面列出的功能反映的是当前状态。

MCP 功能状态(✅ = 已完成,🛠️ = 进行中,🚧 = 计划中)
  • 客户端支持 ✅
    • Claude 桌面应用支持 ✅
    • Claude Code 命令行支持 ✅
    • Cursor IDE 支持 ✅
    • OpenAI Operator API 支持 🚧
  • 蓝图自动生成 🛠️
    • 创建指定类型的新蓝图 ✅
    • 添加新函数、函数/蓝图变量 ✅
    • 添加节点和连接 🛠️(存在错误,问题已公开)
    • 高级蓝图生成 🛠️
  • 面向大模型的关卡/场景控制 🛠️
    • 生成对象和形状 ✅
    • 移动、旋转和缩放对象 ✅
    • 更改材质和颜色 ✅
    • 高级场景功能 🛠️
  • 生成式 AI:
    • 根据提示词获取并生成 3D 模型 🛠️
  • 控制:
    • 运行 Python 脚本 ✅
    • 运行控制台命令 ✅
  • UI:
    • 控件生成 🛠️
    • UI 蓝图生成 🛠️
  • 项目文件:
    • 创建/编辑项目文件/文件夹 ️✅
    • 删除现有项目文件 ❌
  • 其他:
    • 项目清理 🛠️

目录

设置 API 密钥:

说明


在 Claude 应用中测试 MCP 功能无需设置 API 密钥。只有使用 Claude API 时才需要 Anthropic 密钥。

用于编辑器:

将环境变量 PS_<ORGNAME> 设置为你的 API 密钥。

对于 Windows:
setx PS_<ORGNAME> "your api key"
对于 Linux/MacOS:
  1. 在终端中运行以下命令,并将 yourkey 替换为你的 API 密钥。

    echo "export PS_<ORGNAME>='yourkey'" >> ~/.zshrc
    
  2. 使用新变量更新 shell:

    source ~/.zshrc
    

附注:设置环境变量后,别忘了重启编辑器,以及已连接的 IDE。

<ORGNAME> 可以是: PS_OPENAIAPIKEY、PS_DEEPSEEKAPIKEY、PS_ANTHROPICAPIKEY、PS_METAAPIKEY、PS_GOOGLEAPIKEY 等。

对于打包版本:

在打包版本中存储 API 密钥存在安全风险。OpenAI API 文档对此的说明如下:

"在浏览器或移动应用等客户端环境中暴露 OpenAI API 密钥,会让恶意用户获取该密钥并代表你发起请求,从而可能导致意外费用或泄露某些账户数据。请求应始终通过你自己的后端服务转发,以确保 API 密钥安全。"

此处可了解更多信息。

对于测试版本,你可以在打包版本中通过 c++ 或蓝图函数调用 GenSecureKey::SetGenAIApiKeyRuntime,并传入你的 API 密钥。

设置 MCP:

说明


如果你的项目只使用 LLM API,而不使用 MCP,可以跳过本节。

注意


免责声明:如果你使用此插件的 MCP 功能,Claude Desktop App 将能够直接控制你的 Unreal Engine 项目。 请确保你了解相关安全风险,并且只在受控环境中使用。

使用 MCP 功能前,请备份项目,并使用版本控制跟踪更改。

1. 安装以下任意一个客户端:
  • 从此处下载 Claude Desktop App。
  • 从此处下载 Claude Code CLI。
  • 从此处下载 Cursor IDE。
2. 设置 MCP 配置 JSON:
对于 Claude Desktop App:

Claude Desktop App 安装目录中的 claude_desktop_config.json 文件。(可以询问 Claude 该文件在你的平台上的位置!) 文件内容大致如下:

{
    "mcpServers": {
      "unreal-handshake": {
        "command": "python",
        "args": ["<your_project_directoy_path>/Plugins/GenerativeAISupport/Content/Python/mcp_server.py"],
        "env": {
          "UNREAL_HOST": "localhost",
          "UNREAL_PORT": "9877" 
        }
      }
    }
}
对于 Claude Code CLI:

项目根目录中的 .mcp.json 文件。文件内容大致如下:

{
    "mcpServers": {
      "unreal-handshake": {
        "type": "stdio",
        "command": "python",
        "args": ["<your_project_directoy_path>/Plugins/GenerativeAISupport/Content/Python/mcp_server.py"],
        "env": {
          "UNREAL_HOST": "localhost",
          "UNREAL_PORT": "9877"
        }
      }
    }
}
对于 Cursor IDE:

项目目录中的 .cursor/mcp.json 文件。文件内容大致如下:

{
    "mcpServers": {
      "unreal-handshake": {
        "command": "python",
        "args": ["<your_project_directoy_path>/Plugins/GenerativeAISupport/Content/Python/mcp_server.py"],
        "env": {
          "UNREAL_HOST": "localhost",
          "UNREAL_PORT": "9877"
        }
      }
    }
}
3. 安装 FastMCP。
pip install fastmcp
4. 在 Unreal Engine 中启用 Python 插件。(Edit -> Plugins -> Python Editor Script Plugin)
5. [可选] 启用编辑器打开时自动启动 MCP 服务
README 配图

将插件添加到项目:

使用 Git:
  1. 将插件仓库添加为项目仓库的子模块。

    git submodule add https://github.com/prajwalshettydev/UnrealGenAISupport Plugins/GenerativeAISupport
    
  2. 重新生成项目文件: 右键点击 .uproject 文件,然后选择 Generate Visual Studio project files。

  3. 在 Unreal Editor 中启用插件: 在 Unreal Editor 中打开项目。前往 Edit > Plugins。在列表中找到该插件并启用。

  4. 对于 Unreal C++ 项目,在项目的 Build.cs 文件中包含插件模块:

    PrivateDependencyModuleNames.AddRange(new string[] { "GenerativeAISupport" });
    
使用 Perforce:

仍在开发中……

使用 Fab(Unreal Marketplace):

此免费插件可通过 Git(见上文)获取。专业版插件请访问 Fab.com。

获取最新插件更改:

使用 Git:

你可以通过以下命令拉取最新更改:

cd Plugins/GenerativeAISupport
git pull origin main

或者更新项目中的所有子模块:

git submodule update --recursive --remote
使用 Perforce:

仍在开发中……

使用:

这里有一个已集成该插件的 Unreal 示例项目。你可以在此处找到它。

OpenAI:

目前,该插件支持 OpenAI API 的聊天和结构化输出功能,C++ 和蓝图均可使用。 已测试的模型:gpt-4.1、gpt-4.1-mini、gpt-4.1-nano、o4-mini、o3、o3-pro、o3-mini。

1. 聊天:
C++ 示例:
    void SomeDebugSubsystem::CallGPT(const FString& Prompt, 
        const TFunction<void(const FString&, const FString&, bool)>& Callback)
    {
        FGenChatSettings ChatSettings;
        ChatSettings.Model = TEXT("gpt-4o-mini");
        ChatSettings.MaxTokens = 500;
        ChatSettings.Messages.Add(FGenChatMessage{ TEXT("system"), Prompt });
    
        FOnChatCompletionResponse OnComplete = FOnChatCompletionResponse::CreateLambda(
            [Callback](const FString& Response, const FString& ErrorMessage, bool bSuccess)
        {
            Callback(Response, ErrorMessage, bSuccess);
        });
    
        UGenOAIChat::SendChatRequest(ChatSettings, OnComplete);
    }
蓝图示例:
README 配图
2. 结构化输出:
C++ 示例 1:

直接将自定义 schema JSON 发送到函数调用

FString MySchemaJson = R"({
"type": "object",
"properties": {
    "count": {
        "type": "integer",
        "description": "The total number of users."
    },
    "users": {
        "type": "array",
        "items": {
            "type": "object",
            "properties": {
                "name": { "type": "string", "description": "The user's name." },
                "heading_to": { "type": "string", "description": "The user's destination." }
            },
            "required": ["name", "role", "age", "heading_to"]
        }
    }
},
"required": ["count", "users"]
})";

UGenAISchemaService::RequestStructuredOutput(
    TEXT("Generate a list of users and their details"),
    MySchemaJson,
    [](const FString& Response, const FString& Error, bool Success) {
       if (Success)
       {
           UE_LOG(LogTemp, Log, TEXT("Structured Output: %s"), *Response);
       }
       else
       {
           UE_LOG(LogTemp, Error, TEXT("Error: %s"), *Error);
       }
    }
);
C++ 示例 2:

从文件发送自定义 schema JSON

#include "Misc/FileHelper.h"
#include "Misc/Paths.h"
FString SchemaFilePath = FPaths::Combine(
    FPaths::ProjectDir(),
    TEXT("Source/:ProjectName/Public/AIPrompts/SomeSchema.json")
);

FString MySchemaJson;
if (FFileHelper::LoadFileToString(MySchemaJson, *SchemaFilePath))
{
    UGenAISchemaService::RequestStructuredOutput(
        TEXT("Generate a list of users and their details"),
        MySchemaJson,
        [](const FString& Response, const FString& Error, bool Success) {
           if (Success)
           {
               UE_LOG(LogTemp, Log, TEXT("Structured Output: %s"), *Response);
           }
           else
           {
               UE_LOG(LogTemp, Error, TEXT("Error: %s"), *Error);
           }
        }
    );
}
蓝图示例:
README 配图 ### DeepSeek API:

目前,此插件支持通过 DeepSeek API 进行聊天和推理。C++ 和蓝图均支持。 注意事项:

  • 推理模型目前必须使用系统消息。否则,API 似乎会返回 null
  • 此外,根据文档:“请注意,如果输入消息序列中包含 reasoning_content 字段,API 将返回 400 错误。 点击此处了解更多信息”

警告


使用 R1 推理模型时,请确保 Unreal 的 HTTP 超时设置不是默认的 30 秒。 这些 API 调用的响应时间可能超过 30 秒。仅设置 HttpRequest->SetTimeout(<N Seconds>); 并不足够。 因此,需要将以下内容添加到项目的 DefaultEngine.ini 文件中:

[HTTP]
HttpConnectionTimeout=180
HttpReceiveTimeout=180
1. 聊天和推理:
C++ 示例:
 FGenDSeekChatSettings ReasoningSettings;
 ReasoningSettings.Model = EDeepSeekModels::Reasoner; // or EDeepSeekModels::Chat for Chat API
 ReasoningSettings.MaxTokens = 100;
 ReasoningSettings.Messages.Add(FGenChatMessage{TEXT("system"), TEXT("You are a helpful assistant.")});
 ReasoningSettings.Messages.Add(FGenChatMessage{TEXT("user"), TEXT("9.11 and 9.8, which is greater?")});
 ReasoningSettings.bStreamResponse = false;
 UGenDSeekChat::SendChatRequest(
     ReasoningSettings,
     FOnDSeekChatCompletionResponse::CreateLambda(
         [this](const FString& Response, const FString& ErrorMessage, bool bSuccess)
         {
             if (!UTHelper::IsContextStillValid(this))
             {
                 return;
             }

             // Log response details regardless of success
             UE_LOG(LogTemp, Warning, TEXT("DeepSeek Reasoning Response Received - Success: %d"), bSuccess);
             UE_LOG(LogTemp, Warning, TEXT("Response: %s"), *Response);
             if (!ErrorMessage.IsEmpty())
             {
                 UE_LOG(LogTemp, Error, TEXT("Error Message: %s"), *ErrorMessage);
             }
         })
 );
蓝图示例:
README 配图
Anthropic API:

目前,此插件支持通过 Anthropic API 进行聊天。C++ 和蓝图均支持。 已测试的模型:claude-4-latest、claude-3-7-sonnet-latest、claude-3-5-sonnet、claude-3-5-haiku-latest。

1. 聊天:
C++ 示例:
    // ---- Claude Chat Test ----
    FGenClaudeChatSettings ChatSettings;
    ChatSettings.Model = EClaudeModels::Claude_3_7_Sonnet; // Use Claude 3.7 Sonnet model
    ChatSettings.MaxTokens = 4096;
    ChatSettings.Temperature = 0.7f;
    ChatSettings.Messages.Add(FGenChatMessage{TEXT("system"), TEXT("You are a helpful assistant.")});
    ChatSettings.Messages.Add(FGenChatMessage{TEXT("user"), TEXT("What is the capital of France?")});
    
    UGenClaudeChat::SendChatRequest(
        ChatSettings,
        FOnClaudeChatCompletionResponse::CreateLambda(
            [this](const FString& Response, const FString& ErrorMessage, bool bSuccess)
            {
                if (!UTHelper::IsContextStillValid(this))
                {
                    return;
                }
    
                if (bSuccess)
                {
                    UE_LOG(LogTemp, Warning, TEXT("Claude Chat Response: %s"), *Response);
                }
                else
                {
                    UE_LOG(LogTemp, Error, TEXT("Claude Chat Error: %s"), *ErrorMessage);
                }
            })
    );
蓝图示例:
README 配图
XAI 的 Grok 3 API:

目前,此插件支持通过 XAI 的 Grok 3 API 进行聊天。C++ 和蓝图均支持。

1. 聊天:
	FGenXAIChatSettings ChatSettings;
	ChatSettings.Model = TEXT("grok-3-latest");
		ChatSettings.Messages.Add(FGenXAIMessage{
		TEXT("system"),
		TEXT("You are a helpful AI assistant for a game. Please provide concise responses.")
	});
	ChatSettings.Messages.Add(FGenXAIMessage{TEXT("user"), TEXT("Create a brief description for a forest level in a fantasy game")});
	ChatSettings.MaxTokens = 1000;

	UGenXAIChat::SendChatRequest(
		ChatSettings,
		FOnXAIChatCompletionResponse::CreateLambda(
			[this](const FString& Response, const FString& ErrorMessage, bool bSuccess)
			{
				if (!UTHelper::IsContextStillValid(this))
				{
					return;
				}
				
				UE_LOG(LogTemp, Warning, TEXT("XAI Chat response: %s"), *Response);
				
				if (!bSuccess)
				{
					UE_LOG(LogTemp, Error, TEXT("XAI Chat error: %s"), *ErrorMessage);
				}
			})
	);

模型控制协议(MCP):

目前仍在开发中。此插件支持多种客户端,例如 Claude 桌面应用、Cursor 等。

用法:
如果已启用 MCP 服务自动启动:(在插件设置中)
1. 打开 Unreal Engine 编辑器。
2. 打开 Claude 桌面应用、Claude Code 命令行或 Cursor IDE。

就是这样!现在你可以使用此插件的 MCP 功能了。

如果未启用 MCP 服务自动启动:
1. 从插件的 python 目录运行 MCP 服务。
python <your_project_directoy>/Plugins/GenerativeAISupport/Content/Python/mcp_server.py
2. 打开或重启 Claude 桌面应用或 Cursor IDE,以运行 MCP 客户端。
3. 打开一个新的 Unreal Engine 项目,并从插件的 python 目录运行以下 python 脚本。

工具 -> 运行 Python 脚本 -> 选择 Plugins/GenerativeAISupport/Content/Python/unreal_socket_server.py 文件。

4. 现在,你应该可以提示 Claude 桌面应用使用 Unreal Engine 了。

已知问题:

  • 节点无法通过 MCP 正常连接
  • MCP 不支持撤销和重做
  • Deepseek 推理模型不支持流式传输
  • 创建材质工具不支持生成复杂材质
  • 运行某些由大模型生成的有效 python 脚本时会出现问题
  • 大模型编译蓝图时,响应中没有适当的错误处理
  • 生成某些节点时会出现问题,尤其是 getter 和 setter
  • 编辑场景和项目文件时,不会打开正确的上下文窗口。
  • 在编辑器中无法正确停靠蓝图窗口。

贡献指南:

开发环境设置:
  1. 安装 unreal python 包,并设置 IDE 的 python 解释器,以获得正确的智能提示。
pip install unreal

很快会添加更多详情。

项目结构:

很快会添加更多详情。

参考资料:

快速链接:

支持本项目

如果您觉得 UnrealGenAISupport 对您有帮助,请考虑赞助我,让项目得以持续发展!点击上方的“赞助”按钮即可支持。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。