Compilación personalizada

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

  • Dash es compatible solo 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 cambiada drásticamente respecto al código fuente base del motor, podrían surgir algunos problemas, 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 ofrecerles orientación en vivo y hablar directamente con sus artistas para solicitudes de retroalimentación. ¡Por favor, contáctanos!

  • Para desactivar el informe de fallos, la analítica, las funciones de IA, etc., puedes configurar determinadas variables de entorno. Más información sobre este tema más adelante.

Con eso fuera del camino, vamos a profundizar.

Hay dos métodos de compilación: el primero es Plugin Build y el otro es Source Build. Los archivos de ambos están ubicados en este Google Drive: polygonflow.io/latest-source-buildarrow-up-right, y puedes elegir tu método de compilación preferido consultando las diferentes instrucciones a continuación.

Métodos de compilación:

chevron-rightOpción 1: Instrucciones para Plugin Buildhashtag

Este es el modo de implementación más directo, ya que es una estructura normal de plugin de Unreal Engine. guía de plugins de Epic Gamesarrow-up-right se puede aplicar normalmente.

Comienza abriendo la carpeta Plugin Build en el Google Drivearrow-up-right 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 bajo PROJECT_ROOT/Plugins o ENGINE_ROOT/Engine/Plugins como se describe en la guía de pluginsarrow-up-right.

Instalación de dependencias de Python

El código Python de Dash vive en PLUGIN_ROOT/Content/Python que está automáticamente disponible para el Python de Unreal. init_unreal.py no necesita ninguna modificación 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 esté instalado por proyecto). O una vez por versión del motor (en caso de que Dash esté instalado en el motor). Para ahorrar espacio en disco, se recomienda instalar Dash bajo Engine/Plugins. Ejemplos de rutas 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 inmediatamente después de instalarlo. Una vez que se instalan las dependencias de Python, el tamaño total es ~3GB. Además de eso, Dash descarga metadatos de activos como imágenes en miniatura para los activos, lo que puede incrementar un poco más 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 unrealarrow-up-right, 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

chevron-rightOpción 2: Instrucciones para Source Buildhashtag

Para esta opción de compilación, comienza abriendo la carpeta Source Build en el Google Drivearrow-up-right y luego descargando el zip de la versión de Dash que deseas instalar.

Este archivo ZIP, que contiene:

  • Dash: Esta carpeta contiene los archivos copiados desde el instalador. Te permite distribuir el plugin sin instalación, a través del 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 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 obtendrás errores como ModuleNotFoundError: No module named 'GN'

  4. Edita la ruta al final del archivoinit_unreal.py , 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 y genera los archivos del proyecto
  1. Abre la solución en Visual Studio o Rider y compílala desde allí. Encuentra más información en la documentación oficialarrow-up-right.

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 tu IDE.

  1. Abre Unreal Engine y activa el plugin. 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. Agrega este archivo a tu IDE para tener el autocompletado con las funciones exportadas

Exclusiones del control de versiones

chevron-rightPosibles archivos para excluir del control de versión/fuente para ambos tipos de compilación:hashtag
  • 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

chevron-rightInstrucciones de variables de entorno de Dashhashtag

Al configurar determinadas 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 predeterminado = 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 versión más reciente. Valor predeterminado - 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 predeterminado - habilitado

DASH_REGISTER_PREFERENCES_FOR_ANALYTICS

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

DASH_OPEN_AI_ENABLED

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

DASH_REGISTER_PREFERENCES_FOR_OPEN_AI

Si está habilitado, la opción para activar las funciones de IA usando la API OpenAI Enterprise se añadirá a la interfaz de preferencias de Dash. Valor predeterminado - habilitado

Preguntas frecuentes

chevron-rightPermiso denegado / solo lectura / archivo protegido contra escritura - Problema de control de revisioneshashtag

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 automática de escritura en la carpeta Documents que Windows Defender añade en Windows 11. Es una "carpeta protegida"

  2. Puedes marcar metadata.json o cualquier otro archivo de Dash bajo control de revisiones como siempre escribible a través de Perforce, etc., y luego volver a realizar el proceso de instalación desde el principio.

chevron-right¿Necesitamos compilar el plugin en cada máquina?hashtag

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

chevron-right¿Necesitamos instalar el plugin en cada máquina de los artistas?hashtag

Para ejecutarse, Dash necesitará 2 componentes:

  • El plugin Unreal C++

  • El plugin Python de Dash

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

chevron-right¿Cuáles son las dependencias del plugin C++?hashtag

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

Biblioteca memory de Microsoft (Unreal también la usa)

  • mimalloc.lib

Dependencias de Dash (Internas)

  • IndexMeshSymbols.lib

  • _math.lib

  • _array.lib

  • meshoptimizer.lib

  • _gnmesh.lib

chevron-right¿Cuáles son las dependencias del plugin Python de Dash?hashtag

Dash depende de una serie de bibliotecas internas y de terceros. La siguiente lista puede cambiar, pero en el momento de escribir esto son las bibliotecas de terceros utilizadas:

  • 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 puros de Python, otras son bibliotecas C++ que usamos dentro de nuestros módulos Python.

chevron-right¿Tendré que recompilar el plugin en cada nueva versión?hashtag

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-buildarrow-up-right

chevron-rightCuando compilo el plugin C++ obtengo algunas advertencias, ¿cómo puedo solucionarlo?hashtag

Dash está en constante evolución, y nuestra máxima prioridad es ofrecer a artistas y estudios actualizaciones constantes y nuevas herramientas para mejorar su flujo de trabajo. Este ritmo rápido de desarrollo a veces dejará atrás algunas advertencias de compilación que conocemos y que no son críticas. Pueden corregirse con el tiempo avanzando, pero si tienes una política de cero advertencias, desafortunadamente es posible que tengas que abordar las que te aparezcan.

chevron-right¿Cuántas licencias Enterprise necesito?hashtag

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.

chevron-rightError de recursos - No se pueden copiar archivos en tu proyectohashtag

Si estás usando Perforce u otro software de control de versiones y, al abrir Dash, ves nuestra ventana emergente de actualización de recursos y falla mostrando un Error de Recursos, 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=sharingarrow-up-right

  5. Luego abre UE e ignora la ventana emergente de actualización, es decir, ciérrala 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 recibir la ventana emergente 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 realizar estos pasos para obtener los nuevos datos de recursos y compartirlos con todos a través de Perforce:

    1. Instalar la nueva versión de Dash

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

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

    4. Abre el proyecto y Dash, y ejecuta la actualización mediante la ventana emergente

    5. Ahora, los nuevos archivos de actualización han sido añadidos a Perforce y están listos para ser usados por todos en el equipo.

Última actualización

¿Te fue útil?