Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

Cave é um Motor de Jogo, o que significa que permite que você transforme suas ideias em jogos de vídeo reais. É um meio para você juntar tudo, criar seus designs de níveis, interfaces e lógica. Mas para a criação da arte real, como texturas, modelos 3D, animações, sons e música, você pode preferir usar uma ferramenta especializada para isso. Ferramentas como Blender, 3Ds Max, Maya, Sketchup para 3D, Adobe Photoshop, GIMP, Krita para manipulação de imagens ou Audacity para som. Claro, você pode usar qualquer outra ferramenta externa para esse propósito. O que é importante aqui é:

A maioria dos jogos usa conteúdo criado fora do motor.

Não é diferente no Cave. Isso significa que você precisará importar esses arquivos para o motor, então é essencial que você entenda como e quais são as boas e más práticas. A importação é a etapa que traz esses arquivos para o Cave para que eles possam se tornar parte do seu projeto.

Esta lição apresenta o fluxo de importação para iniciantes.

Você aprenderá:

  • Quais tipos de arquivos o Cave pode importar.
  • O que arquivos importados se tornam dentro do Cave.
  • Por que importações simples são melhores do que grandes pacotes de ativos.
  • Como imports de modelos podem gerar vários tipos de ativos.
  • O que verificar após a importação.

O objetivo é ajudar você a entender o que acontece quando arquivos externos se tornam ativos do Cave.

O que Pode Ser Importado?

Cave pode importar vários tipos de conteúdo externo.

Tipo de Arquivo Importado Torna-se
Imagens (vários formatos) ativos de textura.
áudio OGG ativos de áudio.
fontes TTF ativos de fonte.
arquivos .cavePkg pacotes de ativos do Cave importados.
modelos 3D malhas, materiais, texturas, esqueletos, animações e templates, dependendo do arquivo.

Após a importação, esses arquivos se tornam ativos do Cave no Asset Browser.

Isso significa que eles podem ser usados em cenas, materiais, entidades e templates de entidades, UI, sistemas de áudio, scripts, lógica, em qualquer lugar! Arquivos importados não são mais apenas arquivos soltos no disco. Eles se tornam conteúdo do projeto que o Cave pode referenciar, salvar, organizar e reutilizar.

Cave usa seus próprios formatos

Ao importar QUALQUER arquivo para o Cave (imagens, texturas, áudios, modelos 3D, etc), o ativo é convertido para o formato proprietário e customizado do Cave Engine. Isso é importante porque esse formato interno é muito mais rápido para ser analisado e utilizado pelo motor para fornecer o melhor desempenho possível para o seu jogo. Muitas otimizações internas e caching são realizadas automaticamente pelo motor para garantir que seus ativos estejam prontos para a produção do jogo.

> Tudo isso é interno e você não precisa se preocupar com isso, mas é essencial que você entenda que esse processo acontece e como ele afeta você (e por que é bom).

Se você importar um arquivo de imagem .png para o Cave, ele não usará o arquivo png real em seu jogo final. Ele passa por um rápido processo de conversão assim que você o solta no motor, então o formato do Cave é usado em vez disso. O mesmo acontece quando você importa um áudio ou um modelo 3D. Essa informação é especialmente importante para ativos 3D também: o Cave não usa formatos DCC brutos como .fbx, .obj, .glb. Ele pode importá-los, mas eles são convertidos para o formato do motor.

A razão pela qual isso ocorre é porque, embora esses formatos sejam populares, analisar algo como um fbx ou mesmo um png em um jogo é custoso e pode afetar o desempenho. Portanto, o Cave extrai todos os dados necessários, como malhas, materiais, animações, texturas, e depois converte e armazena-os no formato do motor.

Isso tem três implicações importantes:

  • Seu jogo será mais rápido e pesa menos no disco.
  • A importação de ativos é destrutiva: o Cave não mantém uma referência original do seu ativo BRUTO, então se você fizer uma alteração externa nele, terá que importá-lo novamente.
  • Algumas funcionalidades podem não estar disponíveis: Embora alguns formatos de ativos sejam suportados, algumas funcionalidades nesse formato podem não ser suportadas pelo Cave. Nesse caso, você será notificado e o processo de importação não incluirá esses recursos nos ativos finais.

Agora que você está ciente do processo de importação, vamos aprendê-lo.


Importando Imagens por Arrastar e Soltar

Você pode importar imagens arrastando-as para o Asset Browser.

Cave suporta a maioria dos formatos de imagem comuns, como:

  • PNG.
  • JPG e JPEG.
  • TGA.
  • BMP.
  • HDR.
  • PSD.
  • PNM.
  • GIF.
  • PIC.
  • DDS.

Imagens importadas tornam-se Ativos de Textura e podem ser usadas por materiais, elementos de UI, configurações do céu e outros sistemas que precisam de dados de imagem. Por exemplo, uma textura pode se tornar o mapa de cor de um material de rocha, um ícone na UI ou uma imagem de skybox para uma cena.

Para um primeiro teste, mantenha simples: importe uma textura, atribua-a a um material, coloque esse material em uma malha que está na cena e verifique o resultado na 3D View.

Importando Arquivos de Áudio

Áudio também pode ser importado arrastando para o projeto. Atualmente, Cave importa arquivos de áudio OGG. Se você tiver áudio em outro formato, converta-o para OGG antes de importar. Você pode encontrar ferramentas online para essa conversão, mas também recomendamos o software Audacity, que é gratuito e extremamente fácil de entender e salvar o áudio em ogg.

Um arquivo OGG é um formato de contêiner multimídia livre e de código aberto desenvolvido pela Fundação Xiph.Org. Ele é usado principalmente para transmitir e armazenar áudio digital de alta qualidade, muitas vezes alcançando melhor qualidade de som em tamanhos de arquivo menores do que os MP3s tradicionais. ref

O áudio importado se torna um ativo de áudio que pode ser usado em qualquer lugar no motor, por exemplo, por Componentes de Player de Áudio, blocos de lógica ou chamado através de código Python. Exemplo:

cave.playSound("Meu Arquivo de Áudio")

Boas primeiras importações de áudio são curtas e fáceis de testar:

  • Um levantamento de moeda.
  • Um clique de botão.
  • Uma porta abrindo.
  • Um loop de ambiente simples.
  • Uma música para a trilha sonora do seu jogo.

Importando Fontes e Pacotes Cave

Cave pode importar arquivos de fonte TTF. TTF (TrueType Font) é um formato de arquivo de fonte originalmente desenvolvido pela Apple e posteriormente adotado pela Microsoft, tornando-se um dos formatos padrão usados hoje para renderização de texto digital escalável.

As fontes são usadas principalmente pelo Componente de Elemento UI, permitindo que você crie HUD de jogos, texto, menus, botões, legendas, créditos, interfaces de diálogo, etc. A escolha da fonte pode fazer uma grande diferença, mesmo em um menu simples.

Importando Pacotes Cave

Cave também pode importar arquivos .cavePkg. Um pacote Cave é um pacote de ativos do Cave que pode ser trazido para outro projeto.

Se você clicar com o botão direito em uma pasta ou arquivo no Asset Browser, você poderá exportá-lo como um pacote cave. Ao exportar um pacote, você poderá importá-lo mais tarde em outros projetos. Isso é muito útil para compartilhar lógica comum entre seus diferentes projetos. Lembre-se de que, ao exportar um pacote, apenas o que estiver dentro da pasta ou ativo que você clicou com o botão direito será incluído. Portanto, se você quiser exportar, por exemplo, um material que usa um conjunto de texturas, é importante colocar tudo junto em uma pasta e depois exportar a pasta. Caso contrário, se você apenas importar o material, as texturas não serão incluídas.

Quando você arrasta e solta um pacote cave no Asset Browser do CaveEngine, ele será importado e a estrutura de arquivos original exportada será recriada em seu projeto existente. Muito útil, novamente, para compartilhar ativos reutilizáveis, trazer conteúdo padrão para um novo projeto ou mover partes de projetos entre diferentes projetos.


Importando Modelos 3D

Agora chegamos a uma das partes mais importantes de um motor de jogo 3D, que é importar modelos 3D. O Cave usa assimp para suportar a importação de uma ampla gama de formatos de modelos 3D através de seu importador de modelos.

Ele suporta múltiplos formatos de modelo através do importador, mas FBX é o formato principal recomendado para o Cave.

As importações de modelos podem gerar vários tipos de ativos de uma só vez:

  • Malhas.
  • Materiais.
  • Texturas.
  • Esqueletos.
  • Animações.
  • Templates de Entidade.

O resultado exato depende do arquivo original.

Uma caixa simples pode gerar apenas uma malha, material, textura e template. Um personagem animado pode gerar malhas, um esqueleto, animações, materiais, texturas e um template mais complexo.

Importações Iniciais Recomendadas

Para seus primeiros testes de importação, use ativos simples e limpos. Pacotes de Ativos Kenney (CC0) são uma boa escolha para iniciantes, pois geralmente são bem organizados, leves e fáceis de entender. Você também pode conferir Ativos Quaternius (CC0) ou navegar na FAB Asset Store.

Boas primeiras importações podem ser uma caixa, uma rocha, uma árvore de baixo polígono, um edifício simples ou um personagem. Evite começar com um grande pacote de personagens ou um grande arquivo de ambiente. Ativos simples tornam mais fácil entender o que o Cave cria, quais configurações importam e como o conteúdo importado aparece no Asset Browser. Então você pode passar para configurações mais complexas.

Importando um Modelo Passo a Passo

Ao arrastar e soltar um ativo (como FBX) no Asset Browser do Cave, você verá uma janela como esta:

image.png

Ele suporta arrastar e soltar vários arquivos ao mesmo tempo, e uma aba para cada arquivo será criada. Para cada aba, você poderá selecionar os ativos que deseja importar. Isso também mostrará quais tipos de ativos, e se você expandir o cabeçalho de cada tipo de ativo, quais ativos foram reconhecidos e convertidos pelo Importador do Cave. Ele também permitirá que você selecione individualmente o que deseja importar ou não, e renomeie os arquivos de acordo. Você pode mudar os nomes dos ativos importados mais tarde também.

No topo, antes de cada aba de arquivo, você encontrará duas opções globais (por importação de ativo):

  • As Configurações, que permitem selecionar se você deseja criar uma subpasta para o ativo importado ou não, ou se deseja gerar física automaticamente no template da entidade que será gerada pelo motor.
  • E também as opções de Filtros, que são úteis quando você está importando dezenas de ativos e nós, e você só se importa com uma coisa específica no arquivo, como a malha.

Uma importação de modelo básica geralmente se parece com isto:

  1. Crie ou escolha uma pasta no Navegador de Ativos.
  2. Arraste o arquivo do modelo para essa pasta.
  3. Aguarde o Cave analisar o arquivo.
  4. Revise as opções de importação.
  5. Escolha quais ativos gerados devem ser importados.
  6. Ajuste a escala de importação se necessário.
  7. Confirme a importação.
  8. Inspecione os ativos gerados no Navegador de Ativos.

As opções de importação podem mostrar ativos gerados agrupados por tipo.

Isso permite que você decida o que deve ser importado em vez de aceitar tudo cegamente. Isso é útil porque arquivos de modelo podem conter mais dados do que você realmente precisa.

DICA IMPORTANTE:

Se você está baixando centenas de ativos ou um pacote de ativos, como o pacote de ativos Kenney ou Quaternius, você notará que esses pacotes geralmente têm um arquivo FBX diferente por objeto, e dentro de cada arquivo FBX, há uma cópia do material e às vezes até da textura que será usada em todos esses ativos.

Se você arrastar e soltar todos esses ativos contendo uma cópia do mesmo material em cada arquivo, o Cave, como esperado, também importará todas as cópias, gerando um monte de dados desnecessários em seu projeto e, eventualmente, tornando o desempenho do seu jogo ineficiente. Isso não é culpa do motor; é simplesmente porque há uma cópia dos materiais em cada arquivo FBX.

A melhor prática, nesse caso, é primeiro importar um único arquivo FBX para o motor, verificando o que está dentro desse arquivo, confirmando o material nele. Depois que este primeiro arquivo for importado e o material estiver em seu projeto, você importa todos os outros, usando os filtros para desativar a importação de materiais e texturas, uma vez que já foi importado pelo motor para o seu primeiro arquivo. Então, quando você clica em importar, o Cave tentará localizar este material já importado pelo nome e usá-lo em vez disso.

Entendendo Malhas Importadas

Um modelo importado pode gerar uma malha ou várias malhas. Isso depende de como o modelo foi construído na ferramenta DCC original.

Por exemplo:

Modelo Fonte Resultado Possível da Importação
Caixa simples Uma malha, um Material, um Template de Entidade.
Objeto com partes separadas Múltiplas malhas e Materiais, um Template de Entidade.
Personagem animado Malhas, Armature e animações, um Template de Entidade.

Após a importação, inspecione os ativos de malha gerados e o Template de Entidade gerado.

Observe que para cada importação, um template de entidade será gerado.

O template de entidade tenta replicar as configurações de cena construídas por você em sua ferramenta DCC, como Blender. Então, se você criou um layout em seu software de modelagem, colocando objetos em certos lugares, etc., isso estará lá como um template de entidade. Você geralmente não usará o template de entidade bruto, mas ele é útil para você soltar os objetos em sua cena para identificá-los rapidamente ou para torná-los locais em vez de usar um template e começar a editar no Cave.

Uma vez que você importe seu ativo, verifique se há problemas comuns:

  • O objeto é muito pequeno?
  • É muito grande?
  • Está girado incorretamente?
  • Foi dividido de maneira inesperada?
  • O template gerado parece correto?

É melhor detectar esses problemas imediatamente em vez de depois que você já usou o ativo em um nível.

Se você encontrar algum problema com os ativos que importa, vale a pena abri-los no Blender ou em qualquer DCC que você queira ver se estão corretos. Também recomendamos que você triangule as malhas dos ativos antes de importá-los para o Cave.

IMPORTANTE: Quando você importa um modelo 3D para o Cave, ele tenta automaticamente triangulizar as faces. Mas às vezes, pode haver erros de triangulação, causando "buracos" ou faces mal criadas em seu modelo 3D. Para evitar isso, sempre recomendamos que você vá para sua ferramenta de modelagem DCC e triangule as faces você mesmo.


Entendendo Materiais e Texturas

Modelos importados também podem gerar materiais e texturas.

Um material controla como uma superfície se parece. Uma textura fornece dados de imagem usados pelo material.

Após a importação, sempre verifique o material:

  • A textura de albedo está atribuída?
  • Os mapas normais estão atribuídos corretamente?
  • Os mapas de rugosidade ou metálico foram importados?
  • O material parece correto no viewport?

As importações são úteis, mas não são mágicas.

É normal ajustar materiais após a importação. Por exemplo, você pode precisar ajustar a rugosidade, corrigir uma textura faltante ou escolher uma configuração de material melhor para o estilo visual do seu jogo.

Malhas Multimateriais

No Cave, uma malha usa um material. Se um objeto em sua ferramenta DCC usa múltiplos materiais, o Cave representa isso como múltiplas malhas.

Uma entidade ainda pode ter múltiplos Componentes de Malha, então o objeto final pode parecer o mesmo na cena. A estrutura é apenas diferente:

Objeto Com Vários Materiais
  Componente de Malha usando Material A
  Componente de Malha usando Material B
  Componente de Malha usando Material C

Isso dá ao Cave uma relação limpa de uma malha para um material, enquanto ainda permite que objetos complexos importados apareçam corretamente.

Devido ao funcionamento do Cave, se você importar uma malha multimateriais para o seu projeto, você notará que no navegador de ativos, a malha será dividida em diferentes partes. Mas o Cave tentará recriar a entidade final no Template de Entidade para você, com todas as malhas combinadas.

Template de Entidade Importado

Ao importar um modelo, o Cave criará um Template de Entidade que representa a configuração original. Este template é útil porque preserva a composição pretendida tanto quanto possível.

Por exemplo, um edifício importado pode gerar:

  • Vários ativos de malha.
  • Vários ativos de material.
  • Ativos de textura.
  • Um Template de Entidade que junta as partes.

Esse template é geralmente o ativo mais fácil de arrastar para a cena.

Se o objeto importado parecer correto como um template, você pode reutilizá-lo como qualquer outro template do Cave. O objetivo é trazer esses ativos para as cenas e transformá-los em espaços jogáveis.

Dicas Básicas de Importação

Mantenha as importações limpas:

  • Prefira FBX para modelos.
  • Triangule as Faces antes.
  • Use OGG para áudio.
  • Mantenha os nomes dos ativos legíveis.
  • Prefira nomes com espaços ou PascalCase.
  • Importe em pastas organizadas.
  • Verifique a escala de importação.
  • Inspecione os materiais gerados.
  • Teste o template importado no viewport.
  • Salve após a importação.

Importar é uma parte normal do desenvolvimento.

Faça isso em pequenos passos, inspecione o resultado e continue construindo. Um fluxo de trabalho de importação limpo vai economizar muito tempo assim que seu projeto começar a usar mais conteúdo personalizado.