Como parte do processo de empacotamento, a ferramenta de automação (às vezes abreviada como UAT para a ferramenta de automação da Unreal) é usada para analisar um conjunto de scripts utilitários para manipular projetos da Unreal Engine (UE). Para o processo de empacotamento, a ferramenta de automação usa um comando específico chamado BuildCookRun. Esse comando pode preparar o conteúdo para uma plataforma, empacotá-lo em um formato nativo da plataforma para distribuição, implementá-lo no dispositivo e executar o projeto automaticamente (quando aplicável). No entanto, empacotar seu projeto não exige apenas o uso direto do UAT. Use o botão Plataformas localizado na barra de ferramentas da UE para selecionar uma plataforma disponível, ou a linha de comando para preparar e empacotar o conteúdo para uma plataforma.
Como parte do comando BuildCookRun no UAT, os estágios a seguir descrevem os diferentes estágios do pipeline de empacotamento:
- Compilação: esse estágio compila os executáveis para a plataforma selecionada.
- Preparação: este estágio prepara o conteúdo executando a UE em um modo especial.
- Estágio: esse estágio copia os executáveis e o conteúdo para uma área de teste: um diretório autônomo fora do diretório de desenvolvimento.
- Empacotamento: essa etapa empacota o projeto em um formato de distribuição nativo da plataforma.
- Implementação: esse estágio implementa a compilação em um dispositivo de destino.
- Execução: essa etapa inicia os pacotes do projeto na plataforma de destino.
Para obter uma lista de tarefas predefinidas, leia a página de referência de Tarefas com scripts BuildGraph.
Métodos de empacotamento
Como você pode implantar conteúdo de várias maneiras diferentes em uma plataforma de destino para teste, depuração ou preparação para o lançamento, você pode testar seus pacotes de várias maneiras diferentes:
- Use a barra de ferramentas da UE para testar rapidamente uma parte do seu nível atualmente carregado para teste e depuração.
- Use o Inicializador de Projetos para usar um perfil padrão ou crie um personalizado para executar ações como criação de perfil ou depuração para a compilação mais recente do seu projeto.
- Use um jogo já empacotado e implemente-o em uma plataforma, como um console ou um dispositivo móvel.
Leia as seções abaixo para saber mais sobre esses métodos de empacotamento e como você pode empacotar seus jogos usando-os.
Barra de ferramentas da UE
Use o botão Plataformas localizado na barra de ferramentas da UE para selecionar uma plataforma para a qual você empacotará seus projetos. Quando você envia um projeto usando esta opção, ela salvará o projeto empacotado em uma pasta que você selecionar, mas não o implantará no dispositivo.
No menu suspenso, em Plataformas, você pode realizar as seguintes ações:
-
Crie e inicialize um projeto no dispositivo disponível de que você precisa. Ao clicar, o processo de inicialização prepara automaticamente o conteúdo necessário, compila o código e inicializa na plataforma selecionada. A compilação oferece uma maneira rápida de testar a funcionalidade durante o desenvolvimento ativo, sem a necessidade de compilar e executar o projeto inteiro sempre que for necessário testar algo.
-
Escolha a plataforma de destino e ajuste a configuração da compilação para ela (Desenvolvimento, Envio e assim por diante).
Na UE 5.4.0, há um problema conhecido em que, se você tentar empacotar com a opção "Usar configurações de projeto", será usada a configuração definida em Configurações de projeto > Empacotamento no momento em que o editor for inicializado, mesmo se você alterá-la. Para remediar isso, reinicie o editor para garantir que a nova configuração de compilação terá efeito, ou escolha uma das configurações binárias no menu Plataformas em vez de usar as configurações do projeto. Esse problema é resolvido na UE 5.4.1."
-
Acesse o Inicializador de Projetos, Gerenciador de Dispositivos, Configurações de Empacotamento e Plataformas Compatíveis.
Se você não vir a plataforma na qual deseja implantar ou ela estiver esmaecida neste menu, aqui estão algumas coisas que você pode verificar:
- Certifique-se de que você tem o SDK correto instalado para essa plataforma (se necessário) e ele é compatível com a versão da engine que você está usando atualmente. Geralmente, isso pode ser verificado no arquivo UEBuild.cs da plataforma, localizado em Engine/Source/Programmings/UnrealBuiltTools/Platforms. Por exemplo, se você precisa ver qual SDK é suportado pelo Android, pode procurar no arquivo UEBuildAndroid.cs.
- Certifique-se de que todas as extensões do Visual Studio ou os arquivos necessários estão instalados.
- Algumas plataformas (como consoles) requerem uma ferramenta externa para conectar o dispositivo. Certifique-se de que está funcionando corretamente e o dispositivo foi detectado.
- Use o Gerenciador de Dispositivos localizado na engine para "reivindicar" qualquer dispositivo conforme necessário, o que garante que ele só poderá ser usado para sua máquina local.
Inicializador de Projetos
O Inicializador de Projetos oferece a capacidade de implantar para diferentes plataformas, tudo a partir de um local e até mesmo a partir de um único perfil de inicialização. Para abrir o Inicializador de Projetos, clique em Plataformas > Inicializador de Projetos.
Cada plataforma implementada tem seu perfil de inicialização padrão de proprietário (listado na janela principal). Você também pode optar por criar um personalizado que permita criar um projeto de uma maneira específica com muitas configurações avançadas. As mudanças incluem a capacidade de aplicar argumentos de linha de comando, testar conteúdo para download (DLC) e lançamentos de patchs e muito mais.
Para obter mais informações, consulte a página de referência do Inicializador de Projetos.
Perfil de inicialização personalizado
No Inicializador de Projetos, você pode criar um Perfil de inicialização personalizado que pode ser usado em todas as plataformas ou até mesmo nas que você especificar. Esses perfis permitem que você crie seu conteúdo de maneiras específicas definindo como ele é preparado, empacotado e implementado usando a operação de compilação disponível.
Para adicionar seu perfil de início personalizado, clique no botão Adicionar no lado direito da janela.
Depois de fazer isso, o perfil de inicialização personalizado será aberto imediatamente. Forneça um Nome e uma Descrição para que você possa identificá-lo rapidamente mais tarde.
Linha de comando
A Ferramenta de automação permite que você prepare e empacote seu jogo usando a linha de comando e, como todas as operações de compilação são executadas pelo UAT, ela pode ser executada diretamente na linha de comando com o arquivo RunUAt.bat quando fornecido com um argumento válido.
Os arquivos RunUAt podem ser encontrados em "Engine/Build/BatchFiles". Para o Windows, use o arquivo RunUAt.bat e, para Mac/Linux, use o **RunUAt.SH.
Uma preparação básica pode ser executada usando os seguintes argumentos de linha de comando após o arquivo UnrealEditor.exe ou UnrealEditor-cmd.exe:
UnrealEditor.exe [GameName or .uproject] -run=cook -targetplatform=[Platform] -cookonthefly -map=[Map Name]
O commandlet deve ser especificado por meio de -run=cook, e uma plataforma para preparação deve ser especificada. Isso irá gerar os dados preparados para a plataforma especificada e os salvará no seguinte local:
[UnrealEditor Project]/Saved/Sandboxes/Cooked-[Platform]
Criar seu argumento de linha de comando manualmente pode ser bastante complicado e tem mais potencial para criar erros acidentais. Por causa disso, é recomendável usar um Perfil de Inicialização Personalizado para gerar com precisão uma linha de comando para sua compilação. Qualquer parâmetro inserido no perfil de inicialização personalizado gerará automaticamente a linha de comando e a exibirá na janela Log de saída quando for usado para preparar e compilar o projeto. Qualquer texto depois de BuildCookRun poderá ser transmitido diretamente como seu argumento de linha de comando usando RunUAT.bat**.
Veja a seguir um exemplo da saída gerada pelo Inicializador de Projetos e a linha de comando equivalente que precisaria ser criada manualmente para ser usada para RunUAt.bat:
-
Janela de log do Inicializador de Projetos
Automation.ParseCommandLine: Parsing Command Line: -ScriptsForProject=MyProject.uproject BuildCookRun -project=MyProject.uproject -clientconfig=Development -
Criada manualmente
[UnrealEngineRoot]/Engine/Build/BatchFiles/RunUAT.bat BuildCookRun -project=MyProject.uproject -clientconfig=Development
Para obter mais informações, consulte a página Preparação de conteúdo.
Preparação de conteúdo
Na UE, o conteúdo é armazenado em formatos específicos que são suportados (PNG para dados de textura ou WAV para áudio) por uma plataforma. No entanto, esse conteúdo pode não estar em um formato que possa ser usado pela plataforma para a qual você está desenvolvendo. O processo de Preparação converte os *ativos usados pela UE naqueles que podem ser lidos na plataforma em que estão sendo implementados. Em alguns casos, o conteúdo preparado é convertido em um formato proprietário (como com console), que só pode ser lido por essa plataforma.
A preparação de conteúdo para diferentes plataformas pode ser feita usando a linha de comando ou usando o Inicializador de Projetos e sua interface da UE. Para algumas plataformas, todo o conteúdo deve ser preparado antes de poder ser usado no dispositivo para que funcione corretamente. Pode ser necessário verificar com a plataforma para a qual você está desenvolvendo se esse for o caso.
Há duas maneiras de preparar o conteúdo do seu projeto: Como manda o protocolo e em tempo real.
Preparação como manda o protocolo
Preparar como manda o protocolo (Cook By the book - CBTB) executa todo o processo de preparação com antecedência, permitindo que a compilação implemente o ativo preparado de uma só vez, em vez de conforme necessário durante a reprodução do nível (se você estiver usando um servidor de preparação). Essa opção é útil para desenvolvedores que não iteram em ativos individuais ou para aqueles que desejam que o jogo seja executado em velocidade total sem esperar que o servidor entregue o conteúdo preparado necessário. Normalmente, os testes de desempenho e de jogo vão querer usar esse método.
Ao realizar um CBTB, não há configuração extra necessária para a compilação. Use o Inicializador de Projetos para criar um perfil de inicialização personalizado e, na seção Preparação, use o menu suspenso para escolher Como manda o protocolo.
Se você tiver alguma linha de comando específica do jogo para adicionar, poderá expandir as Configurações avançadas e adicionar o argumento às opções adicionais do preparador.
Um exemplo seria:
-nomcp
Para obter informações adicionais sobre este método de preparação e suas configurações disponíveis, consulte a página de referência do Inicializador de Projetos.
Preparação em tempo real
Quando você escolhe preparar o conteúdo em tempo real (Cook on the fly - COTF), a preparação será atrasada até depois que o jogo for implementado na plataforma. Apenas o executável e alguns outros arquivos básicos são instalados, que usam a comunicação de rede com um servidor de preparação para fazer solicitações sob demanda conforme o conteúdo for necessário. O COTF permite uma iteração mais rápida para os desenvolvedores que farão alterações no conteúdo regularmente ou para aqueles que explorarão apenas a seção do jogo.
Para a preparação em tempo real, primeiro você precisará inicializar um servidor de preparação em uma máquina que tenha o projeto completo disponível. Pode ser sua máquina local ou um servidor remoto que executa a preparação. O servidor de preparação pode ser executado iniciando a UE no modo de linha de comando, usando o seguinte argumento com UnrealEditor-cmd.exe:
UnrealEditor-cmd.exe [FullAbsolutePathToProject.uproject]-run=cook -targetplatform=Windows -cookonthefly
Na máquina local do desenvolvedor, acesse um Perfil de Inicialização Personalizado do Inicializador de Projetos e, na seção Implantação, defina o método como File Server (Servidor de Arquivo). Opcionalmente, você pode usar a plataforma de implementação padrão para selecionar uma única plataforma, ou usar os botões de alternância para habilitar múltiplas plataformas para compilação e implementação.
Para que o executável saiba de onde carregar o conteúdo, ele precisa conhecer o endereço IP da máquina que está executando o servidor de preparação. Para fazer isso, você precisará passar o seguinte argumento de linha de comando na linha de comando do cliente (em que x** representa o IP do host):
-filehostip=123.456.78.90
O argumento pode ser especificado em seu perfil de inicialização personalizado, na seção Iniciar, na caixa de texto Parâmetro de linha de comando adicional. Se o endereço IP não for especificado, a compilação será carregada a partir do arquivo local existente e não tentará se conectar ao servidor de preparação.
Para obter informações adicionais sobre este método de preparação e suas configurações disponíveis, consulte a página de referência do Inicializador de Projetos.
Como implantar uma compilação
Para implantar uma compilação do Inicializador de Projetos, você deve ter um projeto preparado e empacotado. Existem algumas maneiras de implantar esse tipo de compilação em uma plataforma. No seu Perfil de Inicialização Personalizado, na seção Implantação, defina a maneira como você deseja implantar a compilação.
- O *servidor de arquivo** prepara e implanta o conteúdo no tempo de execução, conforme necessário para o dispositivo.
- Copiar para dispositivo copia toda a compilação empacotada para o dispositivo.
- Não implantar não implanta a compilação em nenhum dispositivo quando a preparação e o empacotamento forem concluídos.
- Copiar repositório copia uma compilação de um arquivo em um local especificado para implantar em qualquer dispositivo.
Para obter informações adicionais sobre esse método de implantação e suas configurações disponíveis, consulte a página de referência Inicializador de Projetos