Crea tu primer nivel jugable de Unreal con Claude Opus 5.5
Un proceso por etapas para creadores independientes: comprobar la conexión real con Unreal, construir y probar un nivel con tres coleccionables, victoria y reinicio, y después decidir si Meshy y Blender aportan valor.
Índice

La recomendación práctica es no conectar Claude Code, Unreal, Meshy y Blender el primer día. Primero demuestra que Claude Code puede leer la instancia de Unreal Editor que está realmente abierta. Después crea un nivel gris que puedas recorrer, en el que recojas tres objetos, ganes y reinicies. Valida cada etapa personalmente en Play. Solo cuando ese ciclo sea estable conviene decidir si un recurso 3D generado o una limpieza en Blender justifican más complejidad.
Este es un proceso basado en documentación, no una afirmación de que el autor haya ejecutado tu proyecto. Epic todavía marca Unreal MCP como Experimental y advierte que las funciones, las API y los formatos de datos pueden cambiar. Por eso aquí una conexión MCP, un resultado correcto de una herramienta y un juego realmente funcional son tres evidencias distintas.
Decide si este método encaja contigo
Funciona mejor para una persona que ya entiende los conceptos básicos de Unreal, mantiene el proyecto bajo control de versiones y acepta probar en Play después de cada cambio pequeño. Claude puede acelerar una tarea que sabes describir e inspeccionar; no puede decidir por sí solo si el movimiento, la cámara, las colisiones o la sensación del juego son aceptables.
| Situación | Recomendación |
|---|---|
| Entiendes la estructura del proyecto, revisas cambios y pruebas en Play | Empieza por el prototipo mínimo de esta guía |
| Solo quieres validar el bucle jugable | Conserva los primitivos de Unreal; omite Meshy y Blender por ahora |
| No existe copia ni punto de restauración | Detente y crea una copia con checkpoints de versión |
| Esperas un juego acabado a partir de un prompt | Divide el objetivo en sistemas observables |
| Solo debes mover un Actor o cambiar un valor | Normalmente es más rápido hacerlo a mano |
Anthropic presenta Opus 5.5 para programación compleja y trabajo agéntico prolongado. Eso no convierte un resultado visual en algo que se valide solo. Deja que el modelo inspeccione, planifique y ejecute; conserva en manos humanas la aprobación, la observación y la prueba en Play.
Define el resultado mínimo antes de instalar más herramientas
El objetivo tiene solo cuatro requisitos:
- El jugador aparece en
Player Starty puede seguir una ruta clara hasta el final. - Tres coleccionables visibles incrementan el contador una sola vez, de 0 a 3.
- Llegar al final produce victoria únicamente después de recoger los tres.
- Pulsar
Rrestaura posición, contador, coleccionables y estado de victoria.
Escríbelos en el brief del proyecto. Para cada lote anota cambio, resultado esperado, resultado real y aprobado/rechazado. Connected no significa jugable. Compilado no significa jugable. Una petición aceptada por una herramienta no significa jugable. Solo una prueba manual en Play demuestra cada puerta.
Puerta 1: conecta Claude Code con el MCP oficial de Unreal
Crea primero un punto de recuperación
Guarda el proyecto y haz commit o shelve del estado actual. El plugin oficial de Epic ofrece a Claude acceso amplio y en vivo al editor, incluida la ejecución de Python dentro del proceso. Su README aconseja tratarlo como código arbitrario generado por un asistente, guardar antes de sesiones largas y revisar el diff.
No uses --dangerously-skip-permissions en un proyecto importante. Aprende en una copia, un sandbox o una rama desechable.
Activa los dos plugins de Unreal
Esta guía sigue la página oficial de Unreal MCP, publicada actualmente bajo Unreal Engine 5.8 Documentation. Da por hecho que tu compilación incluye de verdad Unreal MCP (ModelContextProtocol) y All Toolsets (AllToolsets). No deduzcas que todas las versiones de UE5 contienen los mismos plugins. Si falta cualquiera de ellos, detente y usa una compilación cubierta por la documentación de Epic, sin sustituirla por un MCP comunitario.
Sigue la configuración oficial:
- En Edit → Plugins, activa Unreal MCP.
- Activa también All Toolsets. El servidor puede existir sin exponer herramientas útiles si falta.
- Reinicia el editor.
- Activa Auto Start Server en Editor Preferences o ejecuta en la consola:
ModelContextProtocol.StartServer
El endpoint local predeterminado es http://127.0.0.1:8000/mcp. No tiene autenticación por defecto ni está pensado para acceso remoto. No publiques el puerto en Internet ni lo uses en un equipo compartido.
Genera la configuración de Claude Code
Ejecuta en la consola de Unreal:
ModelContextProtocol.GenerateClientConfig ClaudeCode
Una instalación del launcher suele escribir .mcp.json junto al .uproject; una compilación desde código puede colocarlo en la raíz del workspace junto a Engine/. Regénéralo si cambias el puerto. Inicia Claude Code desde la raíz que contiene esa configuración.
Instala el plugin oficial de Epic:
/plugin install unreal-engine-skills-for-claude-code@claude-plugins-official
Si falta el marketplace oficial, añádelo primero:
/plugin marketplace add anthropics/claude-plugins-official
Separa el acceso al modelo de Unreal y Meshy
Claude Code puede usar una cuenta Anthropic o una API compatible. Con BetterToken, su guía actual de Claude Code indica que ANTHROPIC_BASE_URL debe ser https://bettertoken.ai sin /v1, y que ANTHROPIC_AUTH_TOKEN se configura localmente. No pegues una clave real en el chat, el repositorio ni el paquete de materiales.
El ID oficial del modelo de Anthropic es claude-opus-5-5. Si enrutas mediante BetterToken, copia el ID exacto del Model Plaza vigente y confirma que esté disponible para el grupo de clave elegido; tras iniciar, verifica el enrutamiento real con /model y los registros del proveedor, no con una configuración antigua copiada.
Verifica una lectura real, no solo un indicador verde
Comprueba las cuatro capas:
/pluginmuestra el plugin oficial de Unreal;/mcpmuestraunreal-mcp;- Output Log no contiene errores de puerto o dependencias;
- un prompt de solo lectura devuelve el nombre real del nivel, los Actor principales y la existencia de
Player Start.
La última prueba demuestra que el editor responde. Epic señala que un proxy conectado o herramientas en caché no demuestran que una llamada viva a Unreal vaya a funcionar.
Puerta 2: construye solo un greybox recorrible
Parte de una base en tercera persona que ya sea jugable. Player Start marca una posición de aparición, pero no proporciona por sí solo personaje controlable, GameMode, entrada ni cámara. En un proyecto nuevo usa la plantilla Third Person de Unreal. En uno existente, verifica que el GameMode activo genera un pawn controlable en tercera persona, que el movimiento y la cámara de seguimiento funcionan y que el nivel contiene Player Start.
Antes de cambiar geometría mediante MCP, pulsa Play, no Simulate. Comprueba que aparece un personaje, que WASD lo mueve y que el ratón controla la cámara; después detén PIE. Si algo falla, repara primero esta base en lugar de ocultar el problema dentro del prompt del greybox.
Cuando pase la prueba, pide a Claude que lea el nivel, GameMode, personaje y toolsets disponibles, y que enumere el plan y los assets que modificará. La falta de una herramienta debe detener la tarea. Un límite útil es:
Sobre la base en tercera persona que ya superó Play, crea un greybox mínimo en el nivel actual. Conserva el personaje, GameMode, input mappings y cámara existentes; no los sustituyas ni los reconstruyas. Usa primitivos para el suelo, límites, una ruta clara y un marcador final. No añadas enemigos, assets artísticos ni UI compleja. Informa de cada asset creado o modificado. Detente si falta una herramienta, falla la compilación o el resultado no es un éxito explícito.
Durante la ejecución:
- Serializa los cambios dependientes sobre el mismo asset o estado del editor.
- Espera a que termine la compilación de C++, Blueprint o shader; una solicitud aceptada no es una compilación terminada.
- Lee el estado de cada resultado y detente ante cualquier cosa que no sea éxito explícito.
Prueba Play A: vuelve a pulsar Play, comienza con el personaje generado en Player Start y recorre toda la ruta. No debe salir de los límites, atascarse en un hueco ni saltar un obstáculo invisible. Corrige solo el fallo observado, sin rediseñar cámara, materiales o ruta.
Guarda, crea un commit y marca un punto de recuperación cuando pase.
Puerta 3: añade tres coleccionables
El siguiente lote añade solo las reglas de recogida y protege la ruta aprobada:
Añade tres coleccionables claramente visibles y separados a lo largo de la ruta. El contacto debe activarse una vez, ocultar o eliminar el objeto y llevar un contador legible de 0 a 3. No muevas Player Start, la ruta, los límites ni el final. Informa de Blueprints, variables, eventos y recursos de UI, y entrega una lista de pruebas Play.
Prueba Play B: recógelos en orden normal e inverso; cada uno suma una vez; la secuencia es 1, 2, 3; volver a una ubicación antigua no suma; una nueva sesión de Play empieza en 0.
Si Claude informa «terminado» pero el contador no cambia en Play, la puerta ha fallado. Registra el comportamiento y Output Log, pide diagnóstico y después una única corrección estrecha.
Puerta 4: victoria y reinicio
El último lote jugable añade solo finalización y reset:
Llegar al final muestra victoria solo cuando el contador es 3. Con menos objetos no debe ganar. Pulsar R reinicia el nivel y restaura posición, los tres coleccionables, contador y UI de victoria. Conserva ruta e input. Informa de los cambios y entrega una lista de cinco pasos para Play.
Prueba Play C:
- Llega con dos objetos: no hay victoria.
- Recoge tres y llega: aparece victoria.
- Pulsa
Ra mitad: todo se restaura. - Pulsa
Rtras ganar: todo se restaura. - Recoge en otro orden: el comportamiento sigue correcto.
Solo ahora tienes un primer nivel jugable. Guarda, haz commit y conserva una versión estable sin arte externo.
Añade Meshy o Blender solo después de aprobar el greybox
Son ramas opcionales, no requisitos iniciales.
Meshy solo cuando un objeto distintivo merece el coste
Sigue siendo una rama opcional. El servidor MCP oficial de Meshy requiere un MESHY_API_KEY válido; las claves API exigen un plan de pago elegible y las solicitudes usan credits API prepagados. El plan o saldo mostrado en la aplicación web no demuestra por sí solo que la API esté habilitada o tenga saldo. Antes de generar, llama a meshy_check_balance.
Para Claude Code en Bash, usa esta configuración local. Introduce la clave sin mostrarla y no la pegues en el chat ni hagas commit de la configuración local resultante:
read -rs MESHY_API_KEY && export MESHY_API_KEY
claude mcp add-json meshy "{\"command\":\"npx\",\"args\":[\"-y\",\"@meshy-ai/meshy-mcp-server\"],\"env\":{\"MESHY_API_KEY\":\"${MESHY_API_KEY}\"}}"
unset MESHY_API_KEY
Después usa /mcp para comprobar que meshy está conectado, pide la lista de herramientas y llama a meshy_check_balance. Estas comprobaciones no crean una tarea de generación. Detente si la clave, el plan o el saldo API no sirven.
Usa una sola ruta sencilla de text-to-3D para el coleccionable:
- Llama a
meshy_text_to_3dcon unpromptbreve y específico ytarget_formats: ["glb"]. Crea un preview sin textura. Usameshy_text_to_3d_refinesolo después de que el preview termine y únicamente si la textura justifica otra tarea. Refine devuelve un task ID nuevo: conserva los ID de preview y refine, y usa el ID de refine con task typetext-to-3dpara consultar el estado y descargar el resultado texturizado. - Guarda el task ID devuelto y el task type
text-to-3d. No conserves solo la respuesta en lenguaje natural. - Llama a
meshy_get_task_statuscon el mismo ID y type.PENDING,IN_PROGRESSo unTIMEOUTde la herramienta no son fallo. Tampoco lo son una desconexión,429o5xxal consultar: vuelve a consultar el mismo task ID más tarde, sin crear otra tarea de pago duplicada. - Descarga solo después de
SUCCEEDED. Leetask_errortrasFAILEDy detente trasCANCELED. Guarda el resultado en una ruta local explícita de assets fuente, por ejemplo:
meshy_download_model
task_id: <same task ID>
task_type: "text-to-3d"
format: "glb"
save_to: "<absolute-project-path>/SourceAssets/Props/CollectibleMarker/marker.glb"
Comprueba que el archivo existe antes de pasar a Blender o Unreal. Según Asset Retention, los assets API de clientes no Enterprise se conservan como máximo tres días; no guardes únicamente la URL.
Prueba de asset D, solo si eliges Meshy: el GLB local se abre de forma repetible y quedan registrados task ID, task type, prompt, estado final y ruta local. Aún no demuestra que el asset sea apto para Unreal.
Blender solo cuando la limpieza tenga una tarea concreta
La limpieza manual basta; no hace falta añadir otro MCP por defecto. Solo si eliges controlar Blender con Claude, instala el add-on, LLM client y MCP server oficiales desde la página de Blender MCP y empieza con un inventario read-only de los objetos de la escena. No mezcles puertos, nombres de herramientas ni pasos de ahujasid/blender-mcp. Blender advierte que su MCP ejecuta código generado por el LLM sin protecciones para los datos; usa una VM o un sistema sin información sensible.
Para un coleccionable estático, sigue esta ruta mínima:
- En Blender elige File → Import → glTF 2.0 (.glb/.gltf) y abre
marker.glb. Conserva solo el objeto deseado, elimina manualmente geometría sobrante y revisa escala, orientación, origen, nombres y materiales. - Guarda la fuente limpia como
<absolute-project-path>/SourceAssets/Props/CollectibleMarker/marker-clean.blendpara conservar una versión editable y recuperable. - Selecciona solo el objeto estático limpio, elige File → Export → glTF 2.0, fija el formato en glTF Binary (.glb), activa Selected Objects y Apply Modifiers y guarda
marker-clean.glbjunto al.blend. - En el Content Browser de Unreal crea o abre
/Game/Assets/Props/Collectibles/e importamarker-clean.glb. En la vista previa de importación de Interchange, confirma que la entrada prevista es un Static Mesh, importa solo ese objeto estático y guarda el asset. Revisa el tamaño en Static Mesh Editor; añade colisión simple solo si hace falta y evita que interfiera con el overlap trigger existente. - Abre el Blueprint o Actor coleccionable que ya pasó Play y sustituye únicamente la referencia del componente Static Mesh visible. Conserva trigger, evento de recogida única, contador, victoria, reinicio e instancias colocadas. Compila, guarda y vuelve a Play.
Prueba de asset E, solo si eliges Blender/importación: .blend, el .glb limpio y el Static Mesh se abren; escala, orientación, origen y colisión son explicables; cambia la malla visible sin cambiar la lógica; las pruebas Play A–C siguen pasando.
Diagnostica por capa de evidencia
| Síntoma | Comprueba primero | No lo confundas con |
|---|---|---|
/mcp está connected pero no lee el nivel | Editor abierto, Output Log, llamada read-only real | Conexión jugable |
| Hay servidor pero no herramientas | AllToolsets y, si procede, ModelContextProtocol.RefreshTools | Falta de capacidad del modelo |
| Las llamadas se bloquean | Compilación, carga de nivel o PIE activo | Necesariamente un problema de red |
| Responde Blueprint pero falla el juego | Estado, compilación, Output Log, Play manual | Trabajo terminado |
La consulta Meshy termina en timeout, desconexión, 429 o 5xx | Conserva task ID/type y consulta después la misma tarea | FAILED o motivo para crear otra tarea de pago |
| Caduca la URL | Copia local, task ID, periodo de retención | URL permanente |
| Escala o colisión incorrecta | Unidades, origen, export y ajustes de Unreal | Generación necesariamente mala |
Tras dos arreglos fallidos para el mismo síntoma, vuelve al último checkpoint aprobado y divide más la tarea. No apiles una tercera reparación especulativa sobre dos no verificadas.
Mantén tres libros de uso separados
No conviertas «19% de un Max semanal» en tokens API. Un creador informó de unas cuatro horas y cerca del 19% de su plan Max semanal para una primera construcción completa. Es un informe individual, no una promesa de tiempo, precio o cuota.
| Ruta | Elemento obligatorio que se verifica aparte | Qué no incluye | Evidencia |
|---|---|---|---|
| Claude Code con suscripción Claude | Nivel, límite de sesión/semana y modelo activo | Credits de Meshy o factura API | Vistas de modelo y uso de Claude Code |
| Claude Code con API de modelos | API key, modelo real, tokens de entrada/salida/caché, saldo | Uso semanal Max o Meshy | Registros y facturación; en BetterToken, modelo y tokens |
| Meshy opcional | MESHY_API_KEY, plan de pago elegible/acceso API, saldo API prepago y uso por tarea | Tokens de la API de modelos; el saldo de la app web no demuestra el saldo API | meshy_check_balance, tareas y facturación |
| Unreal, Blender, plugins y contenido | Licencias actuales, hardware, marketplace y plugins externos | Suposición de que todo es gratuito | Términos y compras de cada proveedor |
Antes de escalar, mide un nivel: prompts, reintentos, solicitudes de modelo, task ID opcionales de Meshy, archivos descargados y tiempo humano de Play. El núcleo debe repetir de forma estable las pruebas A–C; exige D solo si eliges Meshy y E solo si eliges Blender/importación. Amplía cuando sean estables las ramas que realmente uses.
Lista final
- Existe punto de rollback antes de la sesión y después de cada puerta aprobada.
- Además de
/mcp, ha funcionado una llamada real de solo lectura a Unreal. - En Play puedes recorrer, recoger exactamente tres objetos, ganar correctamente y reiniciar desde cualquier estado.
- PIE se detiene antes de cambiar recursos y la compilación termina antes del paso siguiente.
- Meshy y Blender siguen siendo opcionales hasta que funciona el greybox.
- Si usaste Meshy, el resultado está local y registraste task ID, task type y estado final.
- Si sustituiste un primitivo por un asset externo, repetiste las pruebas Play A–C.
- Modelo real, tokens del modelo, cuota de suscripción Claude y credits de Meshy se revisan por separado.
El resultado no es solo una demostración llamativa de IA, sino un proceso recuperable, observable y ampliable sin perder de vista qué funciona de verdad.