VibeUE
Unreal Engine MCP
Documentação
VibeUE — Desenvolvimento de Unreal Engine com IA
🧩 Expansão MCP + Conjunto de Ferramentas de IA para Unreal Engine 5.8+
VibeUE é a Expansão MCP + Conjunto de Ferramentas de IA para Unreal Engine 5.8+. O Unreal 5.8 adicionou um
servidor MCP integrado e conjuntos de ferramentas de IA; o VibeUE é uma Expansão MCP que se conecta diretamente a eles e
adiciona um Conjunto de Ferramentas de IA profundo — uma biblioteca de capacidades do editor — Blueprints, materiais, paisagem, folhagem, animação, Niagara, UMG, áudio, StateTree,
Behavior Trees e Blackboards, tags de gameplay, entrada, UVs, desempenho/perfilamento, e mais — registradas no próprio
servidor ToolsetRegistry e ModelContextProtocol do motor, além de habilidades de domínio ricas servidas através
do sistema nativo AgentSkill do Unreal. Qualquer agente compatível com MCP (Claude Code, Cursor, Copilot, …) controla
seu editor através do endpoint MCP padrão do Unreal.
⚠️ O VibeUE requer que o MCP nativo do Unreal seja configurado primeiro — habilite o plugin Unreal MCP (que ativa automaticamente o Toolset Registry) e o plugin Editor Tools, depois inicie o servidor MCP. Siga o guia da Epic: Unreal MCP no Unreal Editor. O VibeUE então expande esse endpoint — sem servidor separado e sem chat no editor. Uma chave de API gratuita (definida em Editor Preferences → Plugins → VibeUE) desbloqueia as ferramentas de terreno do mundo real; todo o resto funciona sem ela.
✨ O que o VibeUE adiciona
O Unreal 5.8 inclui seus próprios conjuntos de ferramentas de IA (Blueprints, materiais, atores, assets, malhas, tabelas de dados, …). O VibeUE os complementa — ele foca nos domínios e na profundidade que o motor não cobre:
- Terreno e mundo — Escultura de Landscape/heightmaps/splines, auto-materiais de Landscape + RVT, Folhagem, Map Blockout procedural para FPS, e terreno do mundo real (heightmaps + água via GPS).
- Áudio — Criação de gráficos MetaSound e SoundCue.
- Assets de animação — Edição de keyframes de AnimSequence, criação de AnimMontage, máquinas de estado de AnimBP, edição de ossos/sockets/retarget/perfis de blend do Skeleton.
- Profundidade de FX — Criação de cores/curvas de emissores Niagara e módulos Custom-HLSL scratch-pad.
- UI — Widgets UMG com bindings MVVM, criação de animações e validação de preview/PIE.
- Criação de Blueprints de ordem superior — timelines, event dispatchers, delegates, pinos de custom events,
caixas de comentários e um construtor em lote
build_graph. - Criação de comportamento de IA — Edição de nós/decorators/services de Behavior Tree por caminho estrutural com vinculação de chaves de blackboard, round-trips de árvores JSON e validação/reparo; CRUD completo de assets de Blackboard + chaves. As gravações passam pelo EdGraph do editor com guardas de recusa cientes de PIE e editores abertos.
- Segurança do editor —
TransactionServiceenvolve o buffer de transações do editor (desfazer / refazer / checkpoints) para que um agente possa agrupar e reverter suas próprias edições — os conjuntos de ferramentas do motor não expõem nada disso. - Fluxos de trabalho verificados —
WorkflowServiceadiciona um manifesto autoritativo de motor/build, diários de tarefas duráveis com proveniência de assets afetados, cenários PIE assíncronos (compilar → entrada → asserção → captura → teardown garantido) e manutenção em massa retomável com dry-run primeiro. - ⚡ Desempenho e perfilamento — o destaque do VibeUE: veja a seção dedicada abaixo.
- Acesso Python-first — execute qualquer Python
unreal.*no editor e inspecione toda a API. - Pesquisa na web — busca / fetch / geocodificação para pesquisa em contexto e fluxos de trabalho de terreno.
Ele deliberadamente não duplica as ferramentas gerais do motor (CRUD básico de assets/atores/blueprints/materiais, capturas de tela, logs, PIE) — os agentes usam os conjuntos de ferramentas nativos do Unreal para isso.
⚡ Desempenho e Perfilamento (destaque)
Os conjuntos de ferramentas de IA nativos do Unreal têm zero ferramentas de desempenho — eles podem iniciar PIE/Simulate, mas não podem
medir nada. O PerformanceService do VibeUE preenche essa lacuna para que um agente possa realmente diagnosticar e
corrigir a taxa de quadros:
frame_timing()— Divisão de threads Game/Render/GPU/RHI + um veredito de gargalo CPU-vs-GPU e uma dica concreta de próximo passo. Execute isso primeiro — otimizar a GPU não faz nada em um quadro limitado pela CPU.- Captura Unreal Insights —
start_trace/stop_trace/get_trace_status, com marcadoresbookmarkeregion_start/region_end. analyse()— lê o trace e o log de volta e retorna um resumo de desempenho (estatísticas de quadros, piores quadros, hitches, linhas de log notáveis).start_standaloneanexado ao trace — perfile um build standalone representativo, não apenas o viewport do editor.
import unreal
print(unreal.PerformanceService.frame_timing()) # CPU vs GPU bound — diagnose FIRST
unreal.PerformanceService.start_trace("cap", "") # Insights trace
# … reproduce the workload (ideally under PIE / standalone) …
unreal.PerformanceService.stop_trace()
print(unreal.PerformanceService.analyse("both", ""))
Combine com as habilidades profiling e frame-rate para o drill-down completo de CPU/GPU.
🏗️ Arquitetura
O VibeUE se conecta a três sistemas nativos do UE 5.8+:
- Toolsets (
ToolsetRegistry) — Os serviços do VibeUE se registram comoUToolsetDefinitions, então seus métodos se tornam ferramentas AICallable no endpoint MCP. Eles também sãoBlueprintCallable, então os mesmos métodos são chamáveis a partir do Python comounreal.<Name>Service.<method>(). - Servidor MCP (
ModelContextProtocol) — um pequeno conjunto de ferramentas utilitárias do VibeUE é registrado diretamente no endpoint:execute_python_code,discover_python_module/_class/_function,list_python_subsystems,deep_research,terrain_data. - Habilidades (
AgentSkillToolset) — ~36 pacotes de habilidades em markdown se registram comoUAgentSkills nativos, descobríveis viaListSkillse carregados lentamente viaGetSkills, junto com as habilidades do próprio motor.
Uso eficiente (para agentes): execute_python_code é o cavalo de batalha — ele agrupa uma tarefa inteira
de várias etapas em uma única round-trip e alcança todos os serviços do VibeUE além da API completa unreal.*. Use
call_tool apenas para habilidades e os poucos toolsets do motor sem caminho Python (capturas de tela, etc.). Veja
Content/samples/AGENTS.md.sample para o guia completo do agente.
🚀 Instalação e configuração
Requisitos: Unreal Engine 5.8+ · Git
Passo 1 — Configure o MCP nativo do Unreal (faça isso PRIMEIRO)
O VibeUE é uma expansão do suporte MCP integrado do Unreal, então habilite isso primeiro. Detalhes completos no guia da Epic: Unreal MCP no Unreal Editor.
- Edit → Plugins → habilite Unreal MCP (isso ativa automaticamente o Toolset Registry) e Editor Tools (os conjuntos de ferramentas de IA do próprio motor, para que os agentes tenham ambos). Eles são Experimentais. Reinicie quando solicitado.
- Edit → Editor Preferences → General → Model Context Protocol → habilite Auto Start Server
(ou execute o comando de console
ModelContextProtocol.StartServer). Endpoint padrãohttp://127.0.0.1:8000/mcp(porta/caminho configuráveis). Habilitar Tool Search mantém o contexto de um agente pequeno — ele vêlist_toolsets/describe_toolset/call_toole carrega ferramentas sob demanda.
Passo 2 — Instale o VibeUE
cd /path/to/YourProject/Plugins
git clone https://github.com/kevinpbuckley/VibeUE.git
Compile com o script do projeto:
Plugins/VibeUE/BuildAndLaunchGame.ps1 # builds + launches the editor
Plugins/VibeUE/BuildAndLaunchGame.ps1 -StrictRebuild # full recompile (warnings-as-errors)
Plugins/VibeUE/BuildAndLaunchGame.ps1 -Map /Game/Maps/MyMap # open a specific map (issue #554)
No Linux ou macOS, use o script de shell com detecção de plataforma:
Plugins/VibeUE/BuildAndLaunchGame.sh --engine /path/to/UE5
Plugins/VibeUE/BuildAndLaunchGame.sh --engine /path/to/UE5 --strict-rebuild
Plugins/VibeUE/BuildAndLaunchGame.sh --engine /path/to/UE5 --map /Game/Maps/MyMap
Depois Edit → Plugins → habilite VibeUE e reinicie. Seus serviços, ferramentas e habilidades agora se registram no mesmo endpoint, junto com os do motor.
Passo 3 — Conecte seu agente
Dois comandos de console do editor (abra o console com `):
1. Escreva a configuração do servidor MCP (.mcp.json na raiz do projeto):
ModelContextProtocol.GenerateClientConfig ClaudeCode
(suporta ClaudeCode, Cursor, VSCode, Gemini, Codex ou All.)
2. Escreva o guia do agente do VibeUE para que o assistente use os padrões eficientes:
VibeUE.GenerateAgentConfig ClaudeCode
Isso escreve o guia no arquivo correto para seu agente — CLAUDE.md (Claude Code), GEMINI.md
(Gemini), AGENTS.md (Codex / Hermes / Cursor) ou .github/copilot-instructions.md (Copilot) — ou passe
All para escrever CLAUDE.md + GEMINI.md + AGENTS.md de uma vez. Ele resolve a localização do plugin
automaticamente, então funciona se o VibeUE foi instalado via FAB ou Git. O guia vai em um
bloco gerenciado, então execute novamente a qualquer momento para atualizar sem perturbar suas próprias anotações. Passe import para vincular
o guia com um @import de uma linha em vez de copiá-lo (apenas Claude Code / Gemini — outros agentes
não resolvem imports, então eles sempre recebem uma cópia).
O servidor MCP é somente loopback, sem autenticação — uso apenas na mesma máquina (conforme a documentação da Epic).
O guia ensina: descubra antes de chamar (discover_python_class), agrupe com execute_python_code,
carregue habilidades via ListSkills/GetSkills e quando usar deep_research / terrain_data.
🎯 Habilidades
Habilidades são conhecimento de domínio carregado lentamente (fluxos de trabalho, pegadinhas, formatos de propriedades) servido pelo
AgentSkillToolset nativo do Unreal:
# discover (summaries only — cheap)
call_tool(tool_name="ListSkills", toolset_name="ToolsetRegistry.AgentSkillToolset")
# load the packs you need (full markdown, lazy)
call_tool(tool_name="GetSkills", toolset_name="ToolsetRegistry.AgentSkillToolset",
arguments={"skillPaths": ["/VibeUE/Python/init_unreal_PY.VibeUE_blueprints"]})
ListSkills é a fonte de verdade ao vivo para o que está disponível (ele lê o SKILL.md de cada pacote).
As habilidades dizem o que fazer e por quê; use discover_python_class('unreal.<Name>Service', method_filter='…')
para assinaturas exatas antes de escrever código.
🔧 Dependências do plugin
Pré-requisitos nativos do motor (habilite no Passo 1 — a pilha MCP da Epic):
| Plugin | Propósito |
|---|---|
Unreal MCP (ModelContextProtocol) | O endpoint do servidor MCP nativo |
Toolset Registry (ToolsetRegistry) | Registro nativo de toolset de IA + AgentSkill (auto-habilitado pelo Unreal MCP) |
Editor Tools (EditorToolset) | Os conjuntos de ferramentas de IA do próprio motor — o VibeUE complementa estes |
Habilitados automaticamente pelo VibeUE: PythonScriptPlugin (a API unreal.*),
EditorScriptingUtilities e os plugins de domínio que seus serviços precisam — Niagara, MetaSound,
EnhancedInput, ModelViewViewModel, StateTree, MeshModelingToolset,
GameplayTagsEditor. (O VibeUE também depende de
ToolsetRegistry + ModelContextProtocol, então habilitar o VibeUE os puxa — mas você ainda habilita
Editor Tools e inicia o servidor conforme o Passo 1.)
🛠️ Script de build e inicialização
BuildAndLaunchGame.ps1 (raiz do projeto ou Plugins/VibeUE/) para o editor em execução, compila e
reinicia:
-StrictRebuild— recompilação completa do plugin com warnings-as-errors-Clean— limpa intermediate/binaries primeiro-SkipBuild— apenas reinicia
📚 A API ao vivo
O VibeUE intencionalmente mantém nenhum catálogo estático de métodos neste README — a superfície evolui com o motor. As referências autoritativas e sempre atuais são:
ListSkills→ quais domínios existem e quando usá-los.discover_python_class('unreal.<Name>Service')→ assinaturas exatas de métodos.describe_toolset('VibeUE.<Name>Service')→ as ferramentas do toolset + schemas JSON (pesado em tokens; prefira habilidades + descoberta).
Licença
MIT — veja LICENSE. Página inicial do projeto: https://www.vibeue.com/