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 es compatible únicamente 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 brindarles orientación en vivo y hablar directamente con sus artistas para solicitudes de retroalimentación. ¡Por favor contáctanos!

  • Para desactivar el reporte 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 adelante.

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 desde el Código Fuente. 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 revisando las distintas instrucciones a continuación.

Métodos de compilación:

chevron-rightOpción 1: Instrucciones para Compilación por Pluginhashtag

Este es el modo de despliegue más sencillo, 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 ubicarse en 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 bajo 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 inició por primera vez después de la instalación del plugin Dash, Dash instalará las dependencias de Python bajo PLUGIN_ROOT/Content/Python/Plugins/UnrealEngineContext/Imports/311/ para Unreal Engine 5.4+, y bajo PLUGIN_ROOT/Content/Python/Plugins/UnrealEngineContext/Imports/39/ para Unreal Engine 5.1-5.3

Esto sucede 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 bajo 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 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 de activos, lo que puede sumar un poco más.

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 en C++, o usando scripts de automatización de unrealarrow-up-right, o usando el botón “Package” desde Tools→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 Compilación desde el Código Fuentehashtag

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 de 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 cada máquina de los artistas, este archivo de desarrollador sirve como punto de entrada para iniciar la porción Python del plugin.

¡Entonces es hora de compilar!

  1. Crea un nuevo proyecto Unreal en C++

  2. Coloca el plugin en la Plugins carpeta 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 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 para ti, para que puedas cargarlos en nuestro 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. Revisa 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 versiones/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 establecer ciertas Variables de Entorno, puedes controlar si ciertas funciones y opciones están disponibles en Dash. El uso de "1", "yes" o "true" responden a true.

DASH_CRASH_REPORT_ENABLED

Habilita o deshabilita el reporte 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, el interruptor para controlar la opción de analítica se añadirá a 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 la API OpenAI Enterprise. Valor predeterminado - habilitar

DASH_REGISTER_PREFERENCES_FOR_OPEN_AI

Si está habilitado, la opción de alternar para activar 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 acerca de permiso denegado o lectura/escritura, por ejemplo, relacionado con el 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 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 nuevamente 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 compilaste.

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

Para ejecutarse, Dash necesitará 2 componentes:

  • El plugin Unreal en C++

  • El plugin Dash en Python

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 personalizado.

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

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

Library 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

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

Dash depende de una serie de librerías internas y de terceros. La siguiente lista puede cambiar, pero en el momento de escribir estas son las librerías 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 puramente Python, algunas son librerías C++ que usamos dentro de nuestros módulos Python.

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

Sí. Si estás usando una versión personalizada de Unreal, estarás a cargo de recompilar el plugin C++ y redistribuir el plugin Dash Python 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 podría 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 brindar a los artistas y estudios actualizaciones constantes y nuevas herramientas para mejorar su flujo de trabajo. Este ritmo rápido de desarrollo a veces dejará advertencias de compilación que conocemos y que no son críticas. Pueden corregirse con el tiempo, pero si tienes una política de cero advertencias, desafortunadamente podrías tener que abordar las que aparezcan.

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

Solo necesitas licencias para los 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 recurso - 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 nuestro popup de actualización de recursos y falla mostrando un Error de Recurso, esto es lo que debes 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 archivos de tu PC: DASH_INSTALL_ROOT\Plugins\UnrealEngineContext\Imports\GN,

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

  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 configuración "Skip Resource Acquisition" que está disponible en la sección Content Settings

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

  8. Más adelante, 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 bajo 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 actualización se han agregado a Perforce y están listos para ser utilizados por todo el equipo.

Última actualización

¿Te fue útil?