 
使用示例:
MCP示例:
Claude生成场景对象并控制其变换和材质,生成蓝图、函数、变量,添加组件,运行python脚本等。
API示例:
一个名为“成为人类”的项目,其中NPC是OpenAI代理实例。使用此插件构建。 Become Human
虚幻引擎生成AI支持插件:
每个月,各种组织都会发布数百种新的人工智能模型,这使得很难跟上最新的进展。
“虚幻引擎生成AI支持插件”允许您专注于游戏开发,而无需担心LLM/GenAI集成层。
当前进展:
此插件将继续获得最新功能和型号的更新。欢迎捐款。 对于具有200多个AI模型、有保证的稳定性、自动化测试和UE 5.1-5.7+支持的生产就绪替代品,请查看下面的专业插件。 这个免费插件涵盖了许多用例(包括上面的示例),你可以永远免费使用它。
Fab.com上的专业插件
Gen AI Pro
gpt-5.4 claude-opus-4-6 gemini-3.1-pro grok-4.1 o3-pro eleven_v3
Chat, Vision, Streaming, Realtime, Image Gen, TTS, Structured Output, Tool Use
Gen AI Pro China
qwen3.5-plus kimi-k2.5 glm-5 seed-2-0 ernie-5.0 seedream-4
Worldwide support, Chat, Vision, Image Gen, TTS, Reasoning
GenAI Model Generator
meshy-6 tripo-v2.5 hunyuan3d-v3.1 trellis-2 rodin-gen-2
Text-to-3D, Image-to-3D, Remesh, PBR Textures, Retexture, Auto-Rigging
Gen AI Llama
Ollama vLLM LM Studio GGUF Jan LocalAI GPT-oss LLaVA
Local LLMs inside your Unreal Engine game - no API keys needed
______________________________________________________________________
免费插件(此Repo)-LLM/GenAI API支持:
- 开放人工智能:聊天(
gpt-4.1,gpt-4.1-mini,o4-mini,o3,o3-pro),结构化输出 - 安thropic克劳德:聊天(
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-chatV3.1),推理(deepseek-reasoning-r1) - 本地AI: 麻省理工学院(MIT) -
gpt-oss,qwen3-vl以及更多
Full Model List (200+ models across all plugins)
Gen AI Pro
- 开放人工智能:
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|响应API、愿景、实时(gpt-realtime),图像生成器(gpt-image-1.5,dall-e-3),TTS(gpt-4o-mini-tts,whisper-1),流媒体,函数调用,多模式 - 人类:
claude-opus-4-6,claude-sonnet-4-6,claude-4.5-opus,claude-4.5-sonnet,claude-4.5-haiku|扩展思维、愿景、工具使用 - 谷歌双子座:
gemini-3.1-pro,gemini-3.1-flash-lite,gemini-2.5-pro,gemini-2.5-flash|图像(imagen-4.0-generate,imagen-4.0-ultra)、实时、TTS、多模式 - XAI Grok:
grok-4.1,grok-4,grok-4-eu,grok-code-fast-1,grok-3|视觉、流媒体、推理 - 十一实验室:TTS(
eleven_v3,eleven_turbo_v2_5),转录(scribe_v2),音效(eleven_text_to_sound_v2) - 全球人工智能:TTS(
inworld-tts-1.5-max,inworld-tts-1.5-mini) - OpenAI兼容模式:阿里巴巴Qwen、Mistral、Groq、OpenRouter、Meta Llama、GLM-4、Ollama
Gen AI Pro中国
- 阿里巴巴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) - 登月计划/基米:
kimi-k2.5,kimi-k2-thinking,kimi-k2-thinking-turbo|多式联运(kimi-latest) - 字节跳动:
seed-2-0-mini,seed-1-8,skylark-pro-250415|愿景(skylark-vision),图像生成器(seedream-4-0-250828) - 智普艾:
glm-5,glm-4.7,glm-4.7-flash|多式联运(glm-4.6v) - 百度:
ernie-5.0-8k,ernie-4.5-8k,ernie-x1-32k
GenAI模型生成器(3D)
- 网格AI:
meshy-6-文本转3D,图像转3D,重新组合,自动装配 - Tripo AI:
tripo-v2.5-文本转3D,图像转3D - 浑源3D (腾讯):
hunyuan3d-v3.1-pro文本转3D,hunyuan3d-v2.1图像转3D - 三脚架:图像转换为3D(快速,\
附加功能:
- 插件示例项目 这里
- 版本控制:Git子模块支持,Perforce(进行中)
- 轻量级:无外部依赖,从构建中排除MCP
- 跨平台和引擎版本的测试(在专业插件中可用)
虚幻MCP(模型控制协议):
其他MCP选项: Epic Games正在为UE 5.8+开发虚幻MCP官方集成。还有 不合理的赞美 Natfii(麻省理工学院)-一个值得一试的独立虚幻MCP实现。此插件的MCP支持针对UE 5.4-5.7+,可与Claude Desktop、Claude Code和Cursor配合使用。 注: 这个免费插件中的MCP没有得到积极开发——下面列出的功能反映了当前的状态。
MCP Feature Status (✅ = Done, 🛠️ = In Progress, 🚧 = Planned)
- 客户支持✅
- Claude桌面应用程序支持✅ - Claude代码CLI支持✅ - 游标IDE支持✅ - OpenAI运营商API支持🚧
- 蓝图汽车生成🛠️
- 创建新的类型蓝图✅ - 添加新函数、函数/蓝图变量✅ - 添加节点和连接🛠️ (有问题,问题未解决) - 高级蓝图生成🛠️
- LLM的级别/场景控制🛠️
- 生成物体和形状✅ - 移动、旋转和缩放对象✅ - 更改材质和颜色✅ - 高级场景功能🛠️
- 生成型人工智能:
- 提示获取和生成3D模型🛠️
- 控制:
- 能够运行Python脚本✅ - 能够运行控制台命令✅
- UI:
- 小部件生成🛠️ - UI蓝图生成🛠️
- 项目文件:
- 创建/编辑项目文件/文件夹️✅ - 删除现有项目文件❌
- 其他:
- 项目清理🛠️
目录
- 使用Git - 与Perforce - Fab(虚幻市场)
- 开放人工智能 - 1.聊天 - 2.结构化输出 - DeepSeek API - 1.聊天和推理 - 无烟煤API - 1.聊天 - XAI的Grok 3 API - 1.聊天 - 模型控制协议(MCP)
设置API密钥:
\[!注意\]\ 不需要设置API密钥来测试Claude应用程序中的MCP功能。只有Claude API需要使用无烟煤钥匙。
对于编辑:
设置环境变量 PS_ 到您的API密钥。
对于Windows:
setx PS_ "your api key"对于Linux/MacOS:
- 在终端中运行以下命令,将您的密钥替换为API密钥。
echo "export PS_='yourkey'" >> ~/.zshrc- 使用新变量更新shell:
source ~/.zshrcPS:设置环境变量后,不要忘记重新启动编辑器和连接的IDE。
哪里 ` 可以是: PS_OPENAIAPIKEY, PS_DEEPSEEKAPIKEY, PS_ANTHROPICAPIKEY, PS_METAAPIKEY, PS_GOOGLEAPIKEY` 等等
对于打包构建:
将API密钥存储在打包的构建中是一个安全风险。以下是OpenAI API文档对它的描述:
“在浏览器或移动应用程序等客户端环境中暴露您的OpenAI API密钥会让恶意用户获取该密钥并代表您提出请求,这可能会导致意外收费或某些帐户数据泄露。请求应始终通过您自己的后端服务器进行路由,在那里您可以确保API密钥的安全。”
阅读更多 这里.
对于测试构建,您可以调用 GenSecureKey::SetGenAIApiKeyRuntime 使用打包构建中的API键,使用c++或blueprint函数。
设置MCP:
\[!注意\]\ 如果您的项目只使用LLM API而不使用MCP,则可以跳过本节。
\[!小心\]\ Discalimer:如果你使用的是插件的MCP功能,它将直接让Claude Desktop App控制你的虚幻引擎项目。 确保您了解安全风险,并且只在受控环境中使用它。 请在使用MCP功能之前备份您的项目,并使用版本控制来跟踪更改。
1.安装以下任一客户端:
2.设置mcp配置json:
对于Claude桌面应用程序:
claude_desktop_config.json Claude Desktop App安装目录中的文件。(可能会问克劳德,你的平台在哪里!) 文件看起来像这样:
{
"mcpServers": {
"unreal-handshake": {
"command": "python",
"args": ["/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": ["/Plugins/GenerativeAISupport/Content/Python/mcp_server.py"],
"env": {
"UNREAL_HOST": "localhost",
"UNREAL_PORT": "9877"
}
}
}
}对于游标IDE:
.cursor/mcp.json 项目目录中的文件。文件看起来像这样:
{
"mcpServers": {
"unreal-handshake": {
"command": "python",
"args": ["/Plugins/GenerativeAISupport/Content/Python/mcp_server.py"],
"env": {
"UNREAL_HOST": "localhost",
"UNREAL_PORT": "9877"
}
}
}
}3.安装FastMCP。
pip install fastmcp4.在虚幻引擎中启用python插件。(编辑->插件->Python编辑器脚本插件)
5.\[可选\]在编辑器打开时启用AutoStart MCP服务器
将插件添加到您的项目中:
使用Git:
- 将插件库作为子模块添加到项目的存储库中。
git submodule add https://github.com/prajwalshettydev/UnrealGenAISupport Plugins/GenerativeAISupport- 重新生成项目文件:
右键单击.uproject文件,然后选择“生成Visual Studio项目文件”。
- 在虚幻编辑器中启用插件:
在虚幻编辑器中打开您的项目。转到编辑>插件。在列表中搜索插件并启用它。
- 对于虚幻C++项目,将插件的模块包含在项目的Build.cs文件中:
PrivateDependencyModuleNames.AddRange(new string[] { "GenerativeAISupport" });使用Perforce:
仍在开发中。.
Fab(虚幻市场):
这个免费插件可以通过Git(上图)获得。对于专业插件,请检查 Fab.com.
获取最新插件更改:
使用Git:
您可以通过以下方式获取最新更改:
cd Plugins/GenerativeAISupport
git pull origin main或者更新项目中的所有子模块:
git submodule update --recursive --remote使用Perforce:
仍在开发中。.
用途:
有一个示例虚幻项目已经实现了该插件。你可以找到它 这里.
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& 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);
}蓝图示例:
2.结构化输出:
C++示例1:
将自定义模式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:
从文件发送自定义模式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);
}
}
);
}蓝图示例:
DeepSeek API:
目前该插件支持DeepSeek API的聊天和推理。既适用于C++,也适用于蓝图。 注意事项:
- 系统消息目前对推理模型是强制性的。API似乎返回null
- 此外,在文档中:“请注意,如果输入消息序列中包含reasoning_content字段,API将返回400错误。
阅读更多 这里"
\[!警告\]\ 在使用R1推理模型时,确保虚幻引擎的HTTP超时不是30秒的默认值。 因为这些API调用可能需要30秒以上的时间才能响应。只需设置HttpRequest->SetTimeout();不够 因此,需要将以下行添加到您的项目中DefaultEngine.ini文件: ``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);
}
})
);蓝图示例:
无烟煤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);
}
})
);蓝图示例:
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 Desktop App、Cursor等。
用途:
如果启用了自动启动MCP服务器:(在插件的设置中)
1.打开虚幻引擎编辑器。
2.打开克劳德桌面应用程序、克劳德代码CLI或光标IDE。
就是这样!现在,您可以使用该插件的MCP功能。
如果禁用自动启动MCP服务器:
1.从插件的python目录运行MCP服务器。
python /Plugins/GenerativeAISupport/Content/Python/mcp_server.py2.通过打开或重新启动Claude桌面应用程序或Cursor IDE来运行MCP客户端。
3.打开一个新的虚幻引擎项目,并从插件的python目录运行以下python脚本。
工具->运行Python脚本->选择 Plugins/GenerativeAISupport/Content/Python/unreal_socket_server.py 文件。4.现在,您应该能够提示Claude桌面应用程序使用虚幻引擎。
已知问题:
- 节点无法与MCP正确连接
- MCP不支持撤消重做
- Deepseek推理模型不支持流媒体
- 创建材质工具不支持复杂的材质生成
- 运行一些llm生成的有效python脚本时出现问题
- 当LLM编译蓝图时,其响应中没有适当的错误处理
- 生成某些节点的问题,尤其是使用getter和setter时
- 在编辑场景和项目文件时,不会打开正确的上下文窗口。
- 无法在蓝图编辑器中正确停靠窗口。
贡献指南:
为发展而设立:
- 安装
unrealpython包,并设置IDE的python解释器以实现适当的智能感知。
pip install unreal更多细节将很快添加。
项目结构:
更多细节将很快添加。
参考文献
- 环境变量集逻辑
发件人: KellanM的OpenAI Api虚幻
- MCP服务器灵感
发件人: ahujasid的混合机MCP
快速链接:
支持这个项目
如果你觉得UnrealGenAISupport有帮助,可以考虑赞助我继续这个项目!点击上面的“赞助商”按钮进行贡献。

