Build Personalizado

Nesta página, vamos percorrer o processo de instalação do Dash em uma build personalizada do UE5. Algumas coisas a ter em mente:

  • O Dash é compatível apenas com UE5.1 e versões superiores.

  • Na maioria dos casos, o processo deve ser bastante direto, mas se sua build personalizada do UE5 foi drasticamente alterada em relação ao código-fonte base do motor, pode haver alguns problemas, e recomendamos que você entre em contato com [email protected]

  • Geralmente convidamos empresas para um canal compartilhado no Slack no qual podemos fornecer orientação ao vivo e falar diretamente com seus artistas para solicitações de feedback. Por favor, entre em contato!

  • Para desativar relatórios de falhas, analytics, recursos de IA, etc., você pode definir certas Variáveis de Ambiente. Mais informações sobre este tópico mais adiante.

Com isso fora do caminho, vamos começar.

Existem dois métodos de build, o primeiro sendo Plugin Build e o outro sendo Source Build. Os arquivos para ambos estão localizados neste Google Drive: polygonflow.io/latest-source-buildarrow-up-right, e você pode escolher seu método de build preferido verificando as diferentes instruções abaixo.

Métodos de Build:

chevron-rightOpção 1: Instruções para Plugin Buildhashtag

Este é o modo de implantação mais direto, pois é uma estrutura normal de plugin do Unreal Engine. guia de plugins da Epic Gamesarrow-up-right pode ser aplicado normalmente.

Comece abrindo a pasta Plugin Build no Google Drivearrow-up-right e então abrindo a pasta correspondente à versão do Dash que você deseja instalar. Aqui você encontrará um zip para cada versão do UE que suportamos, então você só precisa baixar o zip para sua versão específica do UE.

Uma vez que o zip tenha sido baixado e extraído, a pasta Dash pode ser colocada em PROJECT_ROOT/Plugins ou ENGINE_ROOT/Engine/Plugins conforme descrito no guia de pluginsarrow-up-right.

Instalação de Dependências Python

O código Python do Dash vive sob PLUGIN_ROOT/Content/Python O que está automaticamente disponível para o Python do Unreal. init_unreal.py não precisa de modificações e é sempre válido para todos os usuários.

Quando o Unreal Engine for iniciado pela primeira vez após a instalação do plugin Dash, o Dash instalará dependências Python em PLUGIN_ROOT/Content/Python/Plugins/UnrealEngineContext/Imports/311/ para Unreal Engine 5.4+, e em PLUGIN_ROOT/Content/Python/Plugins/UnrealEngineContext/Imports/39/ para Unreal Engine 5.1-5.3

Isso acontece uma vez por projeto (caso o Dash seja instalado por projeto). OU uma vez por versão do motor (caso o Dash seja instalado no motor). Para economizar espaço em disco, é recomendado instalar o Dash sob Engine/Plugins. Exemplos de caminhos do motor: ENGINE_ROOT/Engine/Plugins/GraphNUnrealPlugin, ENGINE_ROOT/Engine/Plugins/Polygonflow/GraphNUnrealPlugin, ENGINE_ROOT/Engine/Plugins/Whatever/GraphNUnrealPlugin.

Consumo de espaço em disco

O tamanho do plugin Dash é ~1GB logo após ser instalado. Uma vez que as dependências Python estejam instaladas, o tamanho total é ~3GB. Além disso, o Dash baixa metadados de ativos como imagens em miniatura para os ativos, o que pode aumentar um pouco mais.

Compilação

O plugin Dash cumpre a estrutura normal de plugin de código do Unreal Engine, e pode ser compilado dentro de um projeto C++, ou usando scripts de automação do unrealarrow-up-right, ou usando o botão “Package” em Tools→Plugins menu. Isso permite que os usuários construam o Dash para motores personalizados

Desinstalação

Apenas remova a pasta GraphNUnrealPlugin de Engine/Plugins ou PROJECT_ROOT/Plugins

Também remova Documents/Polygonflow pasta

chevron-rightOpção 2: Instruções para Source Buildhashtag

Para esta opção de build, comece abrindo a pasta Source Build no Google Drivearrow-up-right e então baixe o zip da versão do Dash que você deseja instalar.

Este arquivo ZIP, que contém:

  • Dash: Esta pasta contém os arquivos copiados do instalador. Ela permite que você distribua o plugin sem instalação, através de controle de versão ou uma pasta compartilhada.

  • GraphNUnrealPlugin: Este diretório contém o código C++ necessário para integrar o Dash à sua build personalizada do motor.

  • init_unreal.py: Caso você opte por não instalar o Dash na máquina de cada artista, este arquivo de desenvolvedor serve como ponto de entrada para iniciar a parte Python do plugin.

Então é hora de construir!

  1. Crie um novo projeto Unreal C++

  2. Coloque o plugin na pasta Plugins do projeto (crie a pasta Plugin se ela ainda não existir). O resultado deve ser Plugins\\GraphNUnrealPlugin

  3. Copie o init_unreal.py enviado no ZIP dentro do seu projeto Plugins/GraphNUnrealPlugin/Content/Python para permitir que o plugin veja Dash e suas bibliotecas, ou você receberá erros como ModuleNotFoundError: No module named 'GN'

  4. Edite o caminho no final doinit_unreal.py arquivo, com a localização onde você colocou sua pasta Dash se quiser distribuir o plugin, ou com o diretório de instalação, se você estiver usando o instalador.

  5. Gere o projeto do Visual Studio clicando com o botão direito no .uproject no Explorer e selecionando “Generate Visual Studio project files”

Clique com o botão direito para gerar os arquivos do projeto
  1. Abra a solução no Visual Studio ou Rider e compile-a de lá. Encontre mais informações na documentação oficialarrow-up-right.

Usar a partir do Python

O plugin expõe algumas funcionalidades ao interpretador python, e você pode fazer com que o unreal gere os stubs python para você, assim você pode carregá-los em nossa IDE.

  1. Abra o Unreal Engine e ative o plugin. Ele ativará Python Script Plugin e Editor scripting utilities plugins

  2. Vá para as configurações do projeto e habilite o modo desenvolvedor

O modo desenvolvedor irá gerar stubs python para autocompletar
  1. Reinicie o editor.

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

  3. Adicione este arquivo à sua IDE para ter o autocompletar com as funções exportadas

Exclusões do Controle de Versão

chevron-rightPossíveis arquivos a serem excluídos do controle de versão/fonte para ambos os tipos de build:hashtag
  • Plugins/UnrealEngineContext/Imports/thirdparty (~2 GB) - Esta pasta será criada e populada por máquina do usuário e conterá pacotes Python

  • Modules/GN/ContentLibrary/Backends/IESLibrary/IesLibraryContents (~28 MB) - Esta pasta será extraída de IesLibraryContents.zip localizado na mesma pasta

  • ThirdPartyLicenses - Isso não afeta a funcionalidade, opcional

  • __pycache__ - Gerado pelo Python

  • *.pyc - Gerado pelo Python

  • *.pdf - Documentos legais como EULA, opcional

  • *.md - Documentos legais e documentos internos, opcional

Variáveis de Ambiente do Dash

chevron-rightInstruções sobre Variáveis de Ambiente do Dashhashtag

Ao definir certas Variáveis de Ambiente, você pode controlar se certos recursos e opções estão disponíveis no Dash. O uso de "1", "yes" ou "true" todos respondem a true.

DASH_CRASH_REPORT_ENABLED

Ativa ou desativa o relatório de falhas que pode incluir caminhos de arquivos. Valor padrão = ativado.

DASH_UPDATE_CHECK_ENABLED

Ativa ou desativa verificações de atualização na inicialização. As verificações de atualização acontecem uma vez por sessão do editor Unreal quando o Dash aparece pela primeira vez. O Dash faz uma requisição ao nosso servidor Cloudflare para buscar as informações da versão mais recente. Valor padrão - ativado

DASH_ANALYTICS_ENABLED

Ativa ou desativa a telemetria de uso do Dash. O Dash envia dados de uso periodicamente para nosso cluster MongoDB. Valor padrão - ativado

DASH_REGISTER_PREFERENCES_FOR_ANALYTICS

Se ativado, o interruptor para controlar a opção de analytics será adicionado à UI de preferências do Dash. Valor padrão - ativado

DASH_OPEN_AI_ENABLED

Ativa ou desativa o assistente de IA e a etiquetagem de ativos por IA através da nossa conta OpenAI Enterprise API. Valor padrão - ativar

DASH_REGISTER_PREFERENCES_FOR_OPEN_AI

Se ativado, a opção de alternância para habilitar recursos de IA usando a OpenAI Enterprise API será adicionada à UI de preferências do Dash. Valor padrão - ativado

FAQ

chevron-rightPermissão Negada / somente leitura / arquivo protegido contra gravação - Problema de Controle de Revisãohashtag

Se você vir um erro relacionado a permissão negada ou leitura/gravação, por exemplo, relacionado ao arquivo metadata.json, você pode tentar duas coisas:

  1. Desative a proteção automática contra gravação na pasta Documents que o Windows Defender adiciona no Windows 11. Ela é uma "Pasta protegida"

  2. Você pode marcar o metadata.json ou quaisquer outros arquivos do Dash sob controle de revisão como sempre graváveis através do Perforce, etc., e então refazer o processo de instalação desde o início.

chevron-rightPrecisamos compilar o plugin em cada máquina?hashtag

Não. Você pode distribuir o plugin C++ pré-compilado em cada máquina que use a mesma versão do motor contra a qual você compilou.

chevron-rightPrecisamos instalar o plugin em cada máquina do artista?hashtag

Para funcionar, o Dash precisará de 2 componentes:

  • O plugin Unreal C++

  • O plugin Dash Python

Você pode instalar o plugin em cada máquina do artista, ou distribuí-lo diretamente com seu controle de versão, junto com o plugin C++ customizado compilado.

chevron-rightQuais são as dependências do plugin C++?hashtag

A seguir uma lista das dependências da camada C++:

Biblioteca Memory da Microsoft (o unreal também a usa)

  • mimalloc.lib

Dependências do Dash (Internas)

  • IndexMeshSymbols.lib

  • _math.lib

  • _array.lib

  • meshoptimizer.lib

  • _gnmesh.lib

chevron-rightQuais são as dependências do plugin Dash Python?hashtag

O Dash depende de uma série de bibliotecas internas e de terceiros. A lista a seguir pode mudar, mas no momento da escrita estas são as bibliotecas de terceiros 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

Algumas são módulos Python puros, outras são bibliotecas C++ que usamos dentro de nossos módulos python.

chevron-rightVerei que preciso recompilar o plugin a cada nova versão?hashtag

Sim. Se você estiver usando uma versão personalizada do Unreal, você será responsável por recompilar o plugin C++ e redistribuir o plugin Dash Python correspondente junto com ele. Uma vez que você já tenha a estrutura no lugar, deve ser tão simples quanto regenerar o projeto e compilar. Certifique-se também de atualizar o init_unreal.py, pois ele pode mudar entre versões.

Quando uma nova versão do Dash estiver disponível, você receberá uma notificação diretamente no Dash, e quando isso acontecer você sempre encontrará o ZIP mais recente para download aqui: https://www.polygonflow.io/download-latest-source-buildarrow-up-right

chevron-rightAo compilar o plugin C++ eu recebo alguns avisos, como posso resolvê-los?hashtag

O Dash está em constante evolução, e nossa principal prioridade é fornecer aos artistas e estúdios atualizações constantes e novas ferramentas para melhorar seu fluxo de trabalho. Esse ritmo acelerado de desenvolvimento às vezes deixará para trás alguns avisos de compilação dos quais estamos cientes e que não são críticos. Eles podem ser corrigidos conforme avançamos, mas se você tiver uma política de zero avisos, infelizmente talvez precise resolver os avisos que aparecerem.

chevron-rightQuantas Licenças Enterprise eu preciso?hashtag

Você só precisa de licenças para os artistas que desejam acesso às ferramentas e a capacidade de ajustar parâmetros. Você também não precisa de licenças para Máquinas de Build.

chevron-rightErro de Recurso - Incapaz de copiar arquivos no seu projetohashtag

Se você estiver usando Perforce ou outro Software de Controle de Versão e, ao abrir o Dash, vir nosso popup de atualização de recursos e ele falhar mostrando um Erro de Recurso, aqui está o que você precisa fazer:

  1. Se você estiver no Dash 1.9.2 ou superior, passe para o passo 5

  2. Feche o UE,

  3. Abra este caminho no explorador de pastas do seu PC: DASH_INSTALL_ROOT\Plugins\UnrealEngineContext\Imports\GN,

  4. E então substitua este arquivo ContentUtils.py pelo disponível aqui: https://drive.google.com/drive/folders/129GZoD6borfOGJ4-sGD_VTAdVMtMgbKr?usp=sharingarrow-up-right

  5. Então abra o UE e ignore o popup de atualização, ou seja, feche-o em vez de clicar em atualizar

  6. Em seguida, abra as preferências do Dash através do menu principal do Dash e marque a nova configuração "Skip Resource Acquisition" que está disponível na seção Content Settings

  7. Então você não deve ver o pop-up de atualização da próxima vez que abrir o Dash

  8. Mais tarde, quando houver uma atualização do Dash, uma pessoa (a pessoa que configurou o projeto e os plugins, talvez) precisará executar estes passos para obter os novos dados de recurso e compartilhá-los com todos através do Perforce:

    1. Instale a nova versão do Dash

    2. Desbloqueie a pasta Polygonflow sob a pasta Content no projeto através do Perforce para que ela seja gravável.

    3. Ative novamente a aquisição de recursos nas preferências do Dash

    4. Abra o Projeto e o Dash, e execute a atualização através do pop-up

    5. Agora, os novos arquivos de atualização foram adicionados ao Perforce e estão prontos para serem usados por toda a equipe.

Last updated

Was this helpful?