Compilación personalizada

En esta página, repasaremos el proceso de instalación de Dash en una compilación personalizada de UE5. Algunas cosas a tener en cuenta:

  • Dash solo es compatible con UE5.1 y versiones superiores.

  • En la mayoría de los casos, el proceso debería ser bastante sencillo, pero si tu compilación personalizada de UE5 ha sido modificada drásticamente respecto al código fuente base del motor, podrían surgir algunos inconvenientes, y recomendamos que te pongas en contacto con [email protected]

  • Normalmente invitamos a las empresas a un canal compartido de Slack en el que podemos proporcionarles orientación en directo y hablar directamente con sus artistas para solicitudes de feedback. ¡Por favor, contáctanos!

  • Para desactivar el informe de fallos, la analítica, las funciones de IA, etc., puedes establecer ciertas Variables de Entorno. Más información sobre este tema más abajo.

Con eso fuera del camino, vamos a profundizar.

Hay dos métodos de compilación, el primero es Compilación por Plugin y el otro es Compilación por Código Fuente. Los archivos para ambos se encuentran en este Google Drive: polygonflow.io/latest-source-build, y puedes elegir tu método de compilación preferido consultando las diferentes instrucciones a continuación.

Métodos de compilación:

Opción 1: Instrucciones de Compilación por Plugin

Este es el modo de despliegue más directo, ya que es una estructura normal de plugin de Unreal Engine. guía de plugins de Epic Games puede aplicarse con normalidad.

Comienza abriendo la carpeta Plugin Build en el Google Drive y luego abre la carpeta correspondiente a la versión de Dash que deseas instalar. Aquí encontrarás un zip para cada versión de UE que soportamos, por lo que solo tienes que descargar el zip para tu versión específica de UE.

Una vez que el zip se haya descargado y extraído, la carpeta Dash puede colocarse en PROJECT_ROOT/Plugins o ENGINE_ROOT/Engine/Plugins como se describe en la guía de plugins.

Instalación de dependencias de Python

El código Python de Dash se encuentra en PLUGIN_ROOT/Content/Python Lo cual está automáticamente disponible para el Python de Unreal. init_unreal.py no necesita modificaciones y siempre es válido para todos los usuarios.

Cuando Unreal Engine se inicia por primera vez después de la instalación del plugin Dash, Dash instalará las dependencias de Python en PLUGIN_ROOT/Content/Python/Plugins/UnrealEngineContext/Imports/311/ para Unreal Engine 5.4+, y en PLUGIN_ROOT/Content/Python/Plugins/UnrealEngineContext/Imports/39/ para Unreal Engine 5.1-5.3

Esto ocurre una vez por proyecto (en caso de que Dash se instale por proyecto). O una vez por versión del motor (en caso de que Dash se instale en el motor). Para ahorrar espacio en disco, se recomienda instalar Dash en Engine/Plugins. Rutas de ejemplo del motor: ENGINE_ROOT/Engine/Plugins/GraphNUnrealPlugin, ENGINE_ROOT/Engine/Plugins/Polygonflow/GraphNUnrealPlugin, ENGINE_ROOT/Engine/Plugins/Whatever/GraphNUnrealPlugin.

Consumo de espacio en disco

El tamaño del plugin Dash es ~1GB justo después de que se instala. Una vez que las dependencias de Python están instaladas, el tamaño total es ~3GB. Además, Dash descarga metadatos de los activos como imágenes en miniatura para los assets, lo que puede aumentar un poco el tamaño.

Compilación

El plugin Dash cumple con la estructura normal de plugins de código de Unreal Engine, y puede compilarse dentro de un proyecto C++, o usando scripts de automatización de unreal, o usando el botón “Package” desde Herramientas→Plugins menú. Esto permite a los usuarios compilar Dash para motores personalizados

Desinstalación

Simplemente elimina la carpeta GraphNUnrealPlugin de Engine/Plugins o PROJECT_ROOT/Plugins

También elimina Documents/Polygonflow carpeta

Opción 2: Instrucciones de Compilación por Código Fuente

Para esta opción de compilación, comienza abriendo la carpeta Source Build en el Google Drive y luego descargando el zip de la versión de Dash que desees instalar.

Este archivo ZIP, que contiene:

  • Dash: Esta carpeta contiene los archivos copiados desde el instalador. Te permite distribuir el plugin sin instalación, mediante control de versiones o una carpeta compartida.

  • GraphNUnrealPlugin: Este directorio contiene el código C++ necesario para integrar Dash en tu compilación personalizada del motor.

  • init_unreal.py: Si optas por no instalar Dash en la máquina de cada artista, este archivo de desarrollador sirve como punto de entrada para iniciar la parte Python del plugin.

¡Entonces es hora de compilar!

  1. Crea un nuevo proyecto Unreal en C++

  2. Coloca el plugin en la carpeta Plugins del proyecto (crea la carpeta Plugin si aún no existe). El resultado debe ser Plugins\\GraphNUnrealPlugin

  3. Copia el init_unreal.py incluido en el ZIP dentro de tu proyecto Plugins/GraphNUnrealPlugin/Content/Python para permitir que el plugin vea Dash y sus bibliotecas, o recibirás errores como ModuleNotFoundError: No module named 'GN'

  4. Edita la ruta al final delinit_unreal.py archivo, con la ubicación donde colocaste tu carpeta Dash si quieres distribuir el plugin, o con el directorio de instalación, si estás usando el instalador.

  5. Genera el proyecto de Visual Studio haciendo clic derecho en el explorador sobre el archivo .uproject y seleccionando “Generate Visual Studio project files”

Haz clic derecho para generar los archivos del proyecto
  1. Abre la solución en Visual Studio o Rider y compílala desde ahí Encuentra más información en la documentación oficial.

Usar desde Python

El plugin expone algunas funcionalidades al intérprete de python, y puedes hacer que unreal genere los stubs de python por ti, para que puedas cargarlos en nuestro IDE.

  1. Abre Unreal Engine y activa el plugin. Esto activará Plugin de scripts Python y utilidades de scripting del Editor plugins

  2. Ve a la configuración del proyecto y habilita el modo desarrollador

El modo desarrollador generará stubs de python para el autocompletado
  1. Reinicia el editor.

  2. Comprueba PROJECT_ROOT/Intermediate/PythonStub/unreal.py

  3. Añade este archivo a tu IDE para tener el autocompletado con las funciones exportadas

Exclusiones del control de versiones

Archivos posibles para excluir del control de versión/fuente para ambos tipos de compilación:
  • Plugins/UnrealEngineContext/Imports/thirdparty (~2 GB) - Esta carpeta se creará y poblará por máquina de usuario y contendrá paquetes de Python

  • Modules/GN/ContentLibrary/Backends/IESLibrary/IesLibraryContents (~28 MB) - Esta carpeta se extraerá desde IesLibraryContents.zip ubicado en la misma carpeta

  • ThirdPartyLicenses - Esto no afecta la funcionalidad, opcional

  • __pycache__ - Generado por Python

  • *.pyc - Generado por Python

  • *.pdf - Documentos legales como EULA, opcional

  • *.md - Documentos legales y documentación interna, opcional

Variables de entorno de Dash

Instrucciones de variables de entorno de Dash

Al establecer ciertas Variables de Entorno, puedes controlar si ciertas funciones y opciones están disponibles en Dash. El uso de "1", "yes" o "true" todos responden a true.

DASH_CRASH_REPORT_ENABLED

Habilita o deshabilita el informe de fallos que podría incluir rutas de archivos. Valor por defecto = habilitado.

DASH_UPDATE_CHECK_ENABLED

Habilita o deshabilita las comprobaciones de actualización al inicio. Las comprobaciones de actualización ocurren una vez por sesión del editor de Unreal cuando Dash aparece por primera vez. Dash realiza una solicitud a nuestro servidor de Cloudflare para obtener la información de la última versión. Valor por defecto - habilitado

DASH_ANALYTICS_ENABLED

Habilita o deshabilita la telemetría de uso de Dash. Dash envía datos de uso periódicamente a nuestro clúster de MongoDB. Valor por defecto - habilitado

DASH_REGISTER_PREFERENCES_FOR_ANALYTICS

Si está habilitado, el interruptor para controlar la opción de analítica se añadirá a la interfaz de preferencias de Dash. Valor por defecto - habilitado

DASH_OPEN_AI_ENABLED

Habilita o deshabilita el asistente de IA y el etiquetado de assets con IA a través de nuestra cuenta de API OpenAI Enterprise. Valor por defecto - habilitar

DASH_REGISTER_PREFERENCES_FOR_OPEN_AI

Si está habilitado, la opción de alternar para habilitar funciones de IA usando la API de OpenAI Enterprise se añadirá a la interfaz de preferencias de Dash. Valor por defecto - habilitado

Preguntas frecuentes

Permiso denegado / solo lectura / archivo protegido contra escritura - Problema de control de revisiones

Si ves un error relacionado con permiso denegado o lectura/escritura, por ejemplo, respecto al archivo metadata.json, puedes intentar dos cosas:

  1. Desactiva la protección de escritura automática en la carpeta Documentos que Windows Defender añade en Windows 11. Es una "Carpeta protegida"

  2. Puedes marcar el metadata.json u otros archivos de Dash bajo control de revisiones como siempre escribibles a través de Perforce, etc., y luego realizar el proceso de instalación de nuevo desde el principio.

¿Necesitamos compilar el plugin en cada máquina?

No. Puedes distribuir el plugin C++ precompilado en cada máquina que utilice la misma versión del motor contra la que lo compilaste.

¿Necesitamos instalar el plugin en la máquina de cada artista?

Para ejecutarse, Dash necesitará 2 componentes:

  • El plugin C++ de Unreal

  • El plugin Python de Dash

Puedes instalar el plugin en la máquina de cada artista, o distribuirlo directamente con tu control de versiones, junto con el plugin C++ compilado a medida.

¿Cuáles son las dependencias del plugin C++?

A continuación una lista de las dependencias de la capa C++:

Librería de memoria de Microsoft (unreal también la usa)

  • mimalloc.lib

Dependencias de Dash (Internas)

  • IndexMeshSymbols.lib

  • _math.lib

  • _array.lib

  • meshoptimizer.lib

  • _gnmesh.lib

¿Cuáles son las dependencias del plugin Python de Dash?

Dash depende de una serie de librerías internas y de terceros. La siguiente lista puede cambiar, pero en el momento de escribir esto estas son las librerías de terceros usadas:

  • abseil

  • eigen

  • embree

  • OpenSubdiv

  • Physix

  • tbb

  • robin-hood-hasing

  • tinyspline

  • FastNoise2

  • fast_obj

  • unordered_dense

  • blinker

  • boto3

  • botocore

  • certifi

  • dateutil

  • jmespath

  • orjson

  • pytz

  • semver

  • s3transfer

  • sentry_sdk

  • urllib3

  • numpy

  • PIL

  • PySide6

  • scipy

  • sklearn

  • shiboken6

  • torch_redstone

Algunas son módulos Python puros, otras son librerías C++ que usamos dentro de nuestros módulos Python.

¿Tendré que recompilar el plugin en cada nueva versión?

Sí. Si estás usando una versión personalizada de Unreal, serás responsable de recompilar el plugin C++ y redistribuir el plugin Python de Dash correspondiente junto con él. Una vez que ya tengas la estructura en su lugar, debería ser tan simple como regenerar el proyecto y compilar. Asegúrate también de actualizar init_unreal.py ya que puede cambiar entre versiones.

Cuando hay una nueva versión de Dash disponible, recibirás una notificación directamente en Dash, y una vez que la recibas siempre encontrarás el ZIP más reciente para descargar aquí: https://www.polygonflow.io/download-latest-source-build

Cuando compilo el plugin C++ obtengo algunas advertencias, ¿cómo puedo solucionarlas?

Dash está en constante evolución, y nuestra máxima prioridad es ofrecer a los artistas y estudios actualizaciones constantes y nuevas herramientas para mejorar su flujo de trabajo. Este ritmo acelerado de desarrollo a veces dejará advertencias de compilación que conocemos y que no son críticas. Pueden corregirse al avanzar, pero si tienes una política de cero advertencias, desafortunadamente podrías tener que abordar las que te aparezcan.

¿Cuántas licencias Enterprise necesito?

Solo necesitas licencias para aquellos artistas que quieran acceso a las herramientas y la capacidad de ajustar parámetros. Tampoco necesitas licencias para las Máquinas de Compilación.

Error de recurso - No se pueden copiar archivos en tu proyecto

Si estás usando Perforce u otro software de control de versiones y, al abrir Dash, ves nuestro popup de actualización de recursos y falla mostrando un Error de recurso, esto es lo que necesitas hacer:

  1. Si estás en Dash 1.9.2 o superior, pasa al paso 5

  2. Cierra UE,

  3. Abre esta ruta en el explorador de carpetas de tu PC: DASH_INSTALL_ROOT\Plugins\UnrealEngineContext\Imports\GN,

  4. Y luego reemplaza este archivo ContentUtils.py con el que está disponible aquí: https://drive.google.com/drive/folders/129GZoD6borfOGJ4-sGD_VTAdVMtMgbKr?usp=sharing

  5. Luego abre UE e ignora el popup de actualización, es decir, ciérralo en lugar de hacer clic en actualizar

  6. Luego, abre las preferencias de Dash a través del menú principal de Dash y marca la nueva opción "Omitir adquisición de recursos" que está disponible en la sección Configuración de Contenido

  7. Entonces no deberías ver el popup de actualización la próxima vez que abras Dash

  8. Más tarde, cuando haya una actualización de Dash, una persona (la persona que configuró el proyecto y los plugins, quizás) necesita hacer estos pasos para obtener los nuevos datos de recursos y compartirlos con todos a través de Perforce:

    1. Instala la nueva versión de Dash

    2. Desbloquea la carpeta Polygonflow dentro de la carpeta Content del proyecto a través de Perforce para que sea escribible.

    3. Vuelve a activar la adquisición de recursos en las preferencias de Dash

    4. Abre el Proyecto y Dash, y ejecuta la actualización a través del popup

    5. Ahora, los nuevos archivos de la actualización se han agregado a Perforce y están listos para ser utilizados por todos en el equipo.

Última actualización

¿Te fue útil?