Unity + Blender MCP 管线自主制作
Convención de rutas: todos los
scripts/,references/yassets/de este archivo son relativos al directorio donde se encuentra este SKILL.md. Al cambiar a otro anfitrión o directorio de trabajo, primero resuelve la ruta absoluta del directorio de SKILL.md antes de invocar. Al ejecutar scripts desde la línea de comandos, incluye siempre--python-exit-code 1: Blender por defecto devuelve código de salida 0 incluso en fallos; si omites este parámetro, una auditoría fallida podría reportarse como exitosa.
Resumen
Este skill permite que una IA, a través de MCP (Model Context Protocol), opere Blender y Unity de forma autónoma para producir activos 3D con un enfoque Asset-First (activos primero): primero busca y reutiliza, luego genera con IA, y solo modela desde cero como último recurso, convirtiendo cada activo en un producto listo para importar en el motor gráfico.
Principio central: árbol de decisión de activos primero
Ante cualquier solicitud de "un modelo/activo XX", sigue estrictamente este orden, prohibido empezar modelando directamente:
- Fuentes de activos integradas en MCP (lo más rápido, sin descargas ni traslados):
search_sketchfab_models/search_polyhaven_assets(HDRI, texturas PBR, modelos realistas) de Blender MCP;import_model(Sketchfab) de Unity MCP. - Sitios de activos CC0 para juegos: Kenney, Quaternius, KayKit, Poly Haven, Poly Pizza: estilos coherentes, listos para motor, sin riesgo comercial.
- Zonas gratuitas de grandes mercados: Sketchfab (filtrar CC0/CC-BY y descargables), TurboSquid, CGTrader, Fab (Megascans), BlenderKit.
- Sitios chinos: 3d66, Moxing Wu, Aigei Wang, etc. – verificar licencia y formato uno por uno (muchos archivos
.maxno se abren en Blender, ver 03). - Personajes/animaciones: esqueleto y animaciones prioritarias desde Mixamo (rigging gratuito + miles de animaciones), paquetes de personajes animados de Quaternius.
- Generación por IA: Hyper3D Rodin / Hunyuan3D de Blender MCP, Tripo/Meshy de Unity MCP – solo para objetos individuales claros, no para escenas completas o terrenos.
- Modelado en Blender (último recurso): solo si nada de lo anterior funciona, o si se necesita una estructura funcional precisa o activos de marca personalizados, usar bpy/flujo de modelado.
Cualquier activo, sin importar su origen, debe pasar por la auditoría y limpieza en Blender (paso 5) antes de entrar en Unity. Prohibido arrastrar el FBX original descargado directamente a Unity.
Antes de empezar: conexión MCP y descubrimiento de herramientas (obligatorio cada sesión)
Los nombres de las herramientas MCP varían según la implementación (en Blender es común ahujasid/blender-mcp; en Unity, CoplayDev/unity-mcp o el com.unity.ai.assistant oficial de Unity). No asumas que los nombres son fijos.
- Primero verifica qué herramientas MCP están realmente expuestas en la sesión actual y compáralas con la "tabla de capacidades estándar" en
references/00-mcp-connection.md. - Comprueba el estado de conexión:
- Blender: llama a herramientas de inspección de escena (ej.
get_scene_info) para confirmar que Blender está abierto y el plugin conectado. - Unity: llama a herramientas de estado del editor/consola (ej.
manage_editor/read_console) para confirmar que el puente está en ejecución.
- Blender: llama a herramientas de inspección de escena (ej.
- Si faltan herramientas o no hay conexión: sigue la tabla de resolución de problemas en 00, o degrada a procesamiento por lotes desde línea de comandos (
blender --background --python, modo batch de Unity). No finjas que la llamada tuvo éxito. - Al conectarse por primera vez, confirma el render pipeline del proyecto (Built-in / URP / HDRP) y la versión de Unity: los shaders de materiales y la forma de empaquetar los canales de máscara varían.
Ciclo de trabajo estándar (se aplica a cada operación)
Comprobar estado (scene_info / consola) → Capturar pantalla/lectura como evidencia → Ejecutar un solo cambio pequeño
→ Verificar con captura o lectura → Guardar/registrar → Pasar al siguiente paso
- Leer antes de escribir: antes de modificar cualquier cosa, obtén información de la escena/objeto; en Blender, antes de modificar, haz
bpy.ops.wm.save_as_mainfilepara hacer una copia de seguridad. - Ejecutar en bloques pequeños:
execute_blender_codede Blender MCP tiene un tiempo de espera (aprox. 180 s); divide tareas complejas en varios bloques de código. Cada bloque debe ser autocontenido (importarbpy, seleccionar objetos por nombre, sin depender de variables de memoria de bloques anteriores). - El resultado debe ser visible: después de cada importación/colocación/exportación en Blender, verifica con
get_viewport_screenshot; en Unity, tras cada paso, verifica errores conread_consoley confirma resultados con consultas de jerarquía/escena. - No forzar tras fallos: si una operación similar falla dos veces, cambia de método o de canal, registra el fenómeno y no intentes la misma llamada repetidamente.
Tres flujos de trabajo
Flujo A: Obtener un activo existente (el más común)
Lee references/04-asset-reuse-workflow.md y sigue los 9 pasos:
Hoja de requisitos → Buscar activos → Evaluar candidatos (incluyendo licencia) → Descargar a temporal → Auditar en Blender → Limpiar y estandarizar → Exportar FBX → Control de calidad con renderizado visual → Importar y aceptar en Unity.
- Auditoría:
scripts/blender_asset_audit.py(genera un informe JSON con conteo de polígonos, materiales, UV, transformaciones, esqueleto y animaciones; compáralo con el presupuesto para decidir si conservar o descartar). - Limpieza + exportación:
scripts/blender_prep_unity.py(aplica transformaciones, centra origen, recalcula normales, unifica nombres y exporta FBX con los parámetros correctos para Unity). - Renderizado de control de calidad:
scripts/blender_asset_qa_render.py(después de exportar, genera automáticamente una imagen de calidad con iluminación estándar/enfoque; revisa texturas, metal/rugosidad, normales y forma; con--turntable Npuedes obtener múltiples ángulos; solo se considera aprobado si los datos auditados y la inspección visual coinciden). - Licencias: los activos que no sean CC0 deben registrarse uno por uno en
assets/asset-ledger.csv(tipo de licencia, URL de origen, requisitos de atribución).
Flujo B: Crear un activo desde cero
Lee references/05-model-from-scratch.md: imagen de referencia/dimensiones → modelado low-poly → detalle high-poly → UV → hornear normales/PBR → autocomprobación de presupuesto de polígonos y texel → seguir los pasos de exportación/importación del flujo A. Primero evalúa si la generación por IA puede sustituirlo; los activos generados por IA también deben auditarse y retopologizarse.
Flujo C: Configuración dentro del motor Unity (Blender → Unity)
Lee references/06-blender-to-unity.md: configuración de importación de modelos/materiales/animaciones → LOD → colisiones → mapeo de canales de textura de materiales (diferente para URP/HDRP) → generar Prefab → colocar en escena/hornear iluminación → compilar.
- Para importaciones por lotes, coloca
assets/unity/Editor/AssetPostprocessor.csen la carpetaAssets/Editor/del proyecto de Unity (con control de directorio, solo procesa los directorios de importación especificados, sin contaminar todo el proyecto).
Scripts y activos
| Archivo | Propósito | Modo de ejecución |
|---|---|---|
scripts/blender_asset_audit.py | Auditar la escena actual o un archivo de modelo específico, genera un informe JSON de estado | MCP: pegar el código y ejecutar; o blender --background --python scripts/blender_asset_audit.py -- ruta_del_modelo |
scripts/blender_prep_unity.py | Limpiar el activo seleccionado y exportar FBX estándar para Unity (con horneado de animación opcional) | MCP: pegar el código y llamar a prep_and_export(); o línea de comandos -- ruta_de_salida |
scripts/blender_asset_qa_render.py | Renderizado de control de calidad de activos: encuadre automático, iluminación HDRI/de tres puntos, AgX, fondo neutro para imagen de calidad; soporta --turntable N para múltiples ángulos | blender --background --python ... -- ruta_del_modelo salida.png [--hdri ruta] [--turntable 3]; MCP: pegar y renderizar la escena actual |
assets/unity/Editor/AssetPostprocessor.cs | Postprocesado de importación en Unity: configurar texturas por sufijo (sRGB/normal/máscara), escalado de modelos/normales/configuración de mallas | Copiar a Assets/Editor/ del proyecto de Unity |
assets/asset-ledger.csv | Plantilla de registro de licencias de activos | Registrar una fila por cada activo no CC0 |
Índice de documentos de referencia (cargar según necesidad)
references/00-mcp-connection.md: Conexión MCP / descubrimiento de herramientas / reglas de seguridad / degradación a línea de comandos sin MCPreferences/01-blender-mcp-playbook.md: Tabla de herramientas de Blender MCP + biblioteca de fragmentos de código bpy comunes (importación/limpieza/materiales/LOD/exportación/capturas)references/02-unity-mcp-playbook.md: Tabla de herramientas de Unity MCP + operaciones de escena/objetos/activos/materiales/scripts/compilaciónreferences/03-asset-libraries.md: Enciclopedia de bibliotecas de activos (licencias / formatos / selección / palabras clave de búsqueda / problemas de sitios chinos como 3d66)references/04-asset-reuse-workflow.md: Flujo de 9 pasos para reutilización de activos y lista de verificación de aceptaciónreferences/05-model-from-scratch.md: Cuándo modelar desde cero, pipeline de generación de activos de juego en Blender, manejo de activos generados por IAreferences/06-blender-to-unity.md: Pipeline estándar Blender → Unity (ejes/escala/parámetros FBX/canales de materiales/LOD/colisiones/Humanoid)references/07-troubleshooting.md: Tabla de síntomas → causas → soluciones (materiales rosas / escala / normales / objetos tumbados / sin colisiones / T-pose / deslizamiento de pies, etc.)
Reglas de seguridad
- Antes de modificar la escena de Blender o la escena de Unity del usuario, guarda una copia de seguridad en otro lugar; las importaciones y limpiezas deben realizarse en escenas de Blender independientes y en el directorio temporal
Assets/Imports/de Unity; solo después de la aceptación se mueven al directorio final. - No elimines ni sobrescribas los archivos fuente del usuario; conserva los originales descargados en el área temporal y guarda los productos limpios por separado.
execute_blender_codeyexecute_codede Unity pueden ejecutar código arbitrario; prohibido hacer operaciones no relacionadas con la tarea actual; para operaciones peligrosas (eliminación, renombrado masivo, sobrescritura de exportaciones), primero lista los objetos afectados antes de ejecutar.- Los activos con licencia poco clara (especialmente NC, solo para uso educativo, descargas gratuitas de 3d66, piezas de membresía de pago) nunca deben usarse en proyectos comerciales; mejor cambia a fuentes CC0 o modela desde cero.
- Todos los nombres de materiales/texturas/modelos deben seguir las convenciones (
SM_/SK_/T_BC/N/RMA/M/M_/MI_); los nombres de archivo y rutas de texturas en chino deben convertirse a inglés antes de exportar.
Definición de terminado (DoD a nivel de activo)
Cada activo entregado a Unity debe cumplir:
- Licencia registrada (incluso CC0 debe indicar origen), sin bloqueos para uso comercial
- Informe de auditoría: conteo de polígonos dentro del presupuesto, tiene UV, sin problemas de N-gon, transformaciones aplicadas
- Escala correcta en la escena (personaje aprox. 1.7 m, proporción realista con objetos circundantes), orientación correcta
- Materiales sin rosa, texturas presentes (incluidas en el paquete/dentro del proyecto), canales correctos para URP/HDRP
- Colisionador adecuado, personajes/activos con animación tienen Avatar configurado y animaciones funcionando
- Prefab generado, LOD configurado según requisitos, sin errores en la consola
- Imagen de calidad desde el ángulo clave generada por
blender_asset_qa_render.pyy aprobada visualmente (texturas/normales/metal-rugosidad/forma), antes de entregar al usuario para confirmación