VibeUE
Unreal Engine MCP
Documentación
VibeUE — Desarrollo de Unreal Engine impulsado por IA
🧩 Expansión MCP + Conjunto de Herramientas de IA para Unreal Engine 5.8+
VibeUE es la Expansión MCP + Conjunto de Herramientas de IA para Unreal Engine 5.8+. Unreal 5.8 añadió un
servidor MCP integrado y conjuntos de herramientas de IA; VibeUE es una Expansión MCP que se conecta directamente a ellos y
añade un Conjunto de Herramientas de IA profundo — una biblioteca de capacidades del editor — Blueprints, materiales, paisajes, follaje, animación, Niagara, UMG, audio, StateTree,
Árboles de Comportamiento y Blackboards, etiquetas de juego, entrada, UVs, rendimiento/perfilado, y más — registradas en el propio
servidor ToolsetRegistry y ModelContextProtocol del motor, además de habilidades de dominio enriquecidas servidas a través
del sistema nativo AgentSkill de Unreal. Cualquier agente compatible con MCP (Claude Code, Cursor, Copilot, …) controla
tu editor a través del endpoint MCP estándar de Unreal.
⚠️ VibeUE requiere que el MCP nativo de Unreal esté configurado primero — habilita el plugin Unreal MCP (que auto-habilita Toolset Registry) y el plugin Editor Tools, luego inicia el servidor MCP. Sigue la guía de Epic: Unreal MCP en el Unreal Editor. VibeUE luego expande ese endpoint — sin servidor separado y sin chat en el editor. Una clave API gratuita (configurada en Editor Preferences → Plugins → VibeUE) desbloquea las herramientas de terreno del mundo real; todo lo demás funciona sin una.
✨ Lo que añade VibeUE
Unreal 5.8 incluye sus propios conjuntos de herramientas de IA (Blueprints, materiales, actores, assets, mallas, tablas de datos, …). VibeUE los complementa — se centra en los dominios y la profundidad que el motor no cubre:
- Terreno y mundo — Esculpido de paisajes/heightmaps/splines, auto-materiales de paisaje + RVT, Follaje, Map Blockout FPS procedural, y terreno del mundo real (heightmaps + agua desde GPS).
- Audio — Autoría de gráficos MetaSound y SoundCue.
- Assets de animación — Edición de keyframes de AnimSequence, autoría de AnimMontage, máquinas de estado de AnimBP, edición de huesos/sockets/retarget/perfiles de blend del esqueleto.
- Profundidad de FX — Autoría de color/curvas de emisores Niagara y módulos Custom-HLSL scratch-pad.
- UI — Widgets UMG con enlaces MVVM, autoría de animaciones, y validación de vista previa/PIE.
- Autoría de Blueprints de orden superior — líneas de tiempo, event dispatchers, delegados, pines de eventos personalizados,
cajas de comentarios, y un constructor por lotes
build_graph. - Autoría de comportamiento de IA — Edición de nodos/decoradores/servicios de Behavior Tree por ruta estructural con enlace de claves de blackboard, round-trips de árboles JSON, y validar/reparar; CRUD completo de assets de Blackboard + claves. Las escrituras pasan por el EdGraph del editor con guardas de rechazo conscientes de PIE y editores abiertos.
- Seguridad del editor —
TransactionServiceenvuelve el búfer de transacciones del editor (deshacer / rehacer / checkpoints) para que un agente pueda agrupar y revertir sus propias ediciones — los conjuntos de herramientas del motor no exponen ninguna. - Flujos de trabajo verificados —
WorkflowServiceañade un manifiesto autoritativo de motor/compilación, diarios de tareas duraderos con procedencia de assets afectados, escenarios PIE asíncronos (compilar → entrada → aserción → captura → teardown garantizado), y mantenimiento masivo reanudable con dry-run primero. - ⚡ Rendimiento y perfilado — El destacado de VibeUE: consulta la sección dedicada abajo.
- Acceso Python primero — ejecuta cualquier Python
unreal.*en el editor e inspecciona toda la API. - Investigación web — búsqueda / fetch / geocodificación para investigación en contexto y flujos de trabajo de terreno.
Deliberadamente no duplica las herramientas generales del motor (CRUD básico de assets/actores/blueprints/materiales, capturas de pantalla, logs, PIE) — los agentes usan los conjuntos de herramientas nativos de Unreal para eso.
⚡ Rendimiento y Perfilado (buque insignia)
Los conjuntos de herramientas de IA nativos de Unreal tienen cero herramientas de rendimiento — pueden iniciar PIE/Simulate pero no pueden
medir nada. El PerformanceService de VibeUE llena ese vacío para que un agente pueda realmente diagnosticar y
corregir la tasa de fotogramas:
frame_timing()— División de hilos Game/Render/GPU/RHI + un veredicto de cuello de botella CPU-vs-GPU y una pista concreta de siguiente paso. Ejecuta esto primero — optimizar la GPU no hace nada en un fotograma limitado por CPU.- Captura de Unreal Insights —
start_trace/stop_trace/get_trace_status, con marcadoresbookmarkyregion_start/region_end. analyse()— lee el trace y el log de vuelta y devuelve un resumen de rendimiento (estadísticas de fotogramas, peores fotogramas, tirones, líneas de log notables).start_standaloneadjunto a trace — perfila una compilación independiente representativa, no solo el viewport del 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", ""))
Combina con las habilidades profiling y frame-rate para el análisis completo de CPU/GPU.
🏗️ Arquitectura
VibeUE se conecta a tres sistemas nativos de UE 5.8+:
- Toolsets (
ToolsetRegistry) — Los servicios de VibeUE se registran comoUToolsetDefinitions, por lo que sus métodos se convierten en herramientas AICallable en el endpoint MCP. También sonBlueprintCallable, por lo que los mismos métodos son llamables desde Python comounreal.<Name>Service.<method>(). - Servidor MCP (
ModelContextProtocol) — un pequeño conjunto de herramientas de utilidad de VibeUE se registran directamente en el endpoint:execute_python_code,discover_python_module/_class/_function,list_python_subsystems,deep_research,terrain_data. - Habilidades (
AgentSkillToolset) — ~36 paquetes de habilidades markdown se registran comoUAgentSkills nativos, descubribles víaListSkillsy cargados perezosamente víaGetSkills, junto a las habilidades del propio motor.
Uso eficiente (para agentes): execute_python_code es el caballo de batalla — agrupa una tarea completa de
múltiples pasos en un solo round-trip y alcanza cada servicio de VibeUE más la API completa de unreal.*. Usa
call_tool solo para habilidades y los pocos toolsets del motor sin ruta Python (capturas de pantalla, etc.). Consulta
Content/samples/AGENTS.md.sample para la guía completa del agente.
🚀 Instalación y configuración
Requisitos: Unreal Engine 5.8+ · Git
Paso 1 — Configura el MCP nativo de Unreal (haz esto PRIMERO)
VibeUE es una expansión del soporte MCP integrado de Unreal, así que habilita eso primero. Detalles completos en la guía de Epic: Unreal MCP en el Unreal Editor.
- Edit → Plugins → habilita Unreal MCP (esto auto-habilita Toolset Registry) y Editor Tools (los toolsets de IA del propio motor, para que los agentes obtengan ambos). Son Experimentales. Reinicia cuando se te solicite.
- Edit → Editor Preferences → General → Model Context Protocol → habilita Auto Start Server
(o ejecuta el comando de consola
ModelContextProtocol.StartServer). Endpoint predeterminadohttp://127.0.0.1:8000/mcp(puerto/ruta configurables). Habilitar Tool Search mantiene el contexto de un agente pequeño — velist_toolsets/describe_toolset/call_tooly carga herramientas bajo demanda.
Paso 2 — Instala VibeUE
cd /path/to/YourProject/Plugins
git clone https://github.com/kevinpbuckley/VibeUE.git
Compila con el script del proyecto:
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)
En Linux o macOS, usa el script de shell que detecta la 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
Luego Edit → Plugins → habilita VibeUE y reinicia. Sus servicios, herramientas y habilidades ahora se registran en el mismo endpoint, junto a los del motor.
Paso 3 — Conecta tu agente
Dos comandos de consola desde el editor (abre la consola con `):
1. Escribe la configuración del servidor MCP (.mcp.json en la raíz del proyecto):
ModelContextProtocol.GenerateClientConfig ClaudeCode
(soporta ClaudeCode, Cursor, VSCode, Gemini, Codex, o All.)
2. Escribe la guía del agente de VibeUE para que el asistente use los patrones eficientes:
VibeUE.GenerateAgentConfig ClaudeCode
Esto escribe la guía en el archivo correcto para tu agente — CLAUDE.md (Claude Code), GEMINI.md
(Gemini), AGENTS.md (Codex / Hermes / Cursor), o .github/copilot-instructions.md (Copilot) — o pasa
All para escribir CLAUDE.md + GEMINI.md + AGENTS.md a la vez. Resuelve la ubicación del plugin
automáticamente, por lo que funciona tanto si VibeUE se instaló desde FAB o Git. La guía va en un
bloque gestionado, así que puedes re-ejecutar en cualquier momento para actualizar sin perturbar tus propias notas. Pasa import para enlazar
la guía con un @import de una línea en lugar de copiarla (solo Claude Code / Gemini — otros agentes
no resuelven imports, por lo que siempre reciben una copia).
El servidor MCP es solo loopback sin autenticación — uso solo en la misma máquina (según la documentación de Epic).
La guía enseña: descubre antes de llamar (discover_python_class), agrupa con execute_python_code,
carga habilidades vía ListSkills/GetSkills, y cuándo recurrir a deep_research / terrain_data.
🎯 Habilidades
Las habilidades son conocimiento de dominio cargado perezosamente (flujos de trabajo, trampas, formatos de propiedades) servido por el
AgentSkillToolset nativo de 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 es la fuente de verdad en vivo para lo que está disponible (lee el SKILL.md de cada paquete).
Las habilidades te dicen qué hacer y por qué; usa discover_python_class('unreal.<Name>Service', method_filter='…')
para firmas exactas antes de escribir código.
🔧 Dependencias del plugin
Requisitos nativos del motor (habilita en el Paso 1 — el stack MCP de Epic):
| Plugin | Propósito |
|---|---|
Unreal MCP (ModelContextProtocol) | El endpoint del servidor MCP nativo |
Toolset Registry (ToolsetRegistry) | Registro nativo de toolsets de IA + AgentSkill (auto-habilitado por Unreal MCP) |
Editor Tools (EditorToolset) | Los toolsets de IA del propio motor — VibeUE los complementa |
Habilitados automáticamente por VibeUE: PythonScriptPlugin (la API unreal.*),
EditorScriptingUtilities, y los plugins de dominio que sus servicios necesitan — Niagara, MetaSound,
EnhancedInput, ModelViewViewModel, StateTree, MeshModelingToolset,
GameplayTagsEditor. (VibeUE también depende de
ToolsetRegistry + ModelContextProtocol, por lo que habilitar VibeUE los incluye — pero aún así habilitas
Editor Tools e inicias el servidor según el Paso 1.)
🛠️ Script de compilación y lanzamiento
BuildAndLaunchGame.ps1 (raíz del proyecto o Plugins/VibeUE/) detiene el editor en ejecución, compila y
relanza:
-StrictRebuild— recompilación completa del plugin con warnings-as-errors-Clean— borra intermediate/binaries primero-SkipBuild— solo relanzar
📚 La API en vivo
VibeUE mantiene intencionalmente sin catálogo estático de métodos en este README — la superficie evoluciona con el motor. Las referencias autoritativas y siempre actuales son:
ListSkills→ qué dominios existen y cuándo usarlos.discover_python_class('unreal.<Name>Service')→ firmas de métodos exactas.describe_toolset('VibeUE.<Name>Service')→ las herramientas del toolset + esquemas JSON (pesado en tokens; prefiere habilidades + descubrimiento).
Licencia
MIT — consulta LICENSE. Hogar del proyecto: https://www.vibeue.com/