O que são packages
Um package é um ativo que foi convertido em uma instância reutilizável. Uma instância é uma cópia e posicionamento de algo que compartilha dados subjacentes idênticos. Conceitualmente, eles são muito semelhantes aos Blueprints no Unreal ou Prefabs no Unity.
Os package podem existir em muitos lugares, grupos, equipes, etc. diferentes.
Os packagetêm algumas propriedades muito especiais e úteis, como:
- Atualize facilmente TODAS as cópias de um pacote para a versão mais recente (ou escolha uma versão específica).
- Isso é comumente conhecido como “controle de versão”.
- Eles podem ser configurados para atualização automática, de modo que quando você publicar alterações em um pacote, todas as outras instâncias receberão essas alterações imediatamente.
- Você pode controlar quais colegas de equipe e colaboradores têm permissão para editar ou usar determinados pacotes.
- E muito mais!
Não sei como as pessoas conseguem fazer conteúdo sem package. Como alguém que originalmente desenvolveu jogos fora da plataforma, tenho que dizer que trabalhar com pacotes é uma OBRIGAÇÃO ABSOLUTA para um desenvolvimento eficaz.
No Roblox Studio, a instanciação de pacotes é um aspecto fundamental e essencial da criação eficiente. Então, vamos mergulhar no que isso significa e tornar sua vida como desenvolvedor INFINITAMENTE MAIS FÁCIL ao iterar e gerenciar conteúdo.
Criando package
“Crie um package ‘caixa’, coloque-o em toda a cena e atualize mais tarde com um recurso polido.”
Nesta seção, criaremos um asset empacotado do zero para demonstrar como é fácil configurar, iterar, atualizar automaticamente suas instâncias e preencher uma cena ou mundo inteiro com assets. Neste exemplo, uma caixa simples servirá como nosso conceito de amostra – mas imagine esse mesmo processo aplicado a paredes, pisos, tetos, iluminação, adereços, equipamentos, itens e QUALQUER COISA que você tenha mais de um em seu mundo. Em vez do antigo fluxo de trabalho, quando você precisasse atualizar um asset, você teria que caçar cada posicionamento dele no mundo (ou no Explorer) e atualizar manualmente propriedades, texturas, etc., TUDO pode ser feito automaticamente por meio do uso de pacotes.
- Em um mundo em branco, crie um cubo com 6x6x6 pinos.
- Mova o pivô para a parte inferior da peça.
- Nomeie-o como Crate_A_Part
- Agrupe a peça em um modelo e nomeie o modelo como ‘Crate_A’
- No modelo – defina a peça primária como Crate_A_Part, para que o grupo do modelo herde o pivô da peça (na parte inferior da peça).
- Converter o modelo Crate_A em pacote
- Definir para atualização automática .
- Em seguida, copie ou duplique o novo pacote pela cena algumas vezes, dê a ele diferentes locais, posições e até mesmo altere a escala do pacote.
- Importe uma malha de caixa legal com 6x6x6 unidades [exemplo: rbxassetid://15929906696 ]
- Nomeie-o como Crate_A_Mesh.
- Mova o pivô para a parte inferior da malha da caixa.
- Mova a malha para o mesmo local de um dos seus pacotes de caixa
- Arraste o objeto de malha para o modelGroup do pacote .
- Exclua a parte (ou apenas torne o Crate_A_Part transparente, sua escolha)
- Observe como o ícone muda para indicar que o pacote tem trabalho não publicado.
- Publique o pacote e veja a malha da caixa se propagar pelo nível.
Aninhar um package
“Criar um pacote SurfaceAppearance, aninhá-lo dentro de uma malha. Mostrar fluxo de trabalho para atualizar pacotes aninhados complexos.”
Pacotes de aninhamento permitem que você trate pacotes não apenas como modelos finalizados, mas como blocos de construção para modelos mais complicados. Você pode criar um pacote de malha e colocar uma aparência de superfície empacotada nele para que você possa atualizar suas texturas de forma independente e elas se propagarão pelo mundo em todas as malhas com pouco ou nenhum atrito.
- Crie um objeto SurfaceAppearance .
- Importe suas texturas para sua caixa ou use as texturas de exemplo abaixo:
- Mapa de cores: rbxassetid://15562221699
- normalMapa: rbxassetid://15562224053
- Mapa de rugosidade: rbxassetid://15562225077
- metalMap: rbxassetid://15229111004
- Configure o SurfaceAppearance com as texturas e converta-o em um pacote.
- Nomeie-o como “SA_Crate_A”
- Arraste-o para a malha dentro do pacote, criando um pacote aninhado.
- Como essas caixas são todas instâncias do mesmo pacote, não importa para qual delas você arrasta o SurfaceAppearance: atualizar qualquer uma delas permite que você atualize todas elas.
- Publique a atualização e veja todas as caixas aparecerem com um material legal agora. Além disso, você pode usar o mesmo SurfaceAppearance em outros pacotes, alterá-lo em um lugar e atualizá-lo em todos os lugares.
** Nota – aninhar pacotes pode resultar em algum comportamento de atrito esperado. Se você modificar um pacote que está aninhado dentro de outro pacote, isso faz com que o pacote pai entre em um estado modificado. Portanto, republicar manualmente o pacote pai também é necessário. Este é um ponto problemático conhecido dentro do sistema e soluções estão sendo projetadas para ele. Portanto, não adie a adoção do fluxo de trabalho, as soluções estão chegando!
Controle de versão
“Meu colaborador redimensionou a caixa e aplicou a cor errada ao objeto. Volte o relógio neste ativo para uma versão anterior.”
Neste exemplo, atualizei a cena para que várias outras iterações de pacote fossem feitas e publicadas, mas fiz com que a caixa ficasse em um estado realmente estranho para simular o que pode acontecer se um colaborador publicar algumas atualizações não intencionais.
- Para reverter este ativo para uma versão anterior, clique com o botão direito do mouse no pacote e selecione Comparar versões do pacote .
- No canto superior direito da caixa de diálogo, alterne entre a versão atual e algumas das iterações anteriores até que a janela de visualização mostre o resultado que você está procurando.
- Feche a janela Comparar pacotes .
- Clique com o botão direito do mouse no pacote novamente. Selecione Package Details e, em seguida, a aba Versions .
- Selecione a versão desejada (neste exemplo, a versão 3) e marque a caixa Restaurar .
- Pressione Salvar .
Conclusão
USE PACKAGE! NÃO SEI COMO ALGUM DE VOCÊS FAZ ALGUMA COISA SEM ELES!!!
Falando sério, os pacotes e seus recursos são um elemento absolutamente crucial para gerenciar a complexidade e os ativos no Roblox Studio. Eles oferecem instanciação, recursos de controle de versão e muito mais! Os pacotes têm toneladas de novos recursos planejados para o futuro, então você deve começar a usá-los hoje.