Gerando terrenos para jogos com Python

A criação de terrenos para jogos digitais ou projetos relacionados com arquitetura pode envolver o uso de modelagem poligonal, escultura digital ou texturas. As texturas são de longe a forma mais eficiente para gerar esse tipo superfície. A dificuldade relacionada com as texturas está na sua criação, mas hoje você vai conhecer uma ferramenta que pode ajudar nesse processo.

Um desenvolvedor de jogos chamado MacroPolo compartilhou um script em Python que pode ajudar na criação de mapas normais para uso em cenários de jogos. Com o script é possível gerar mapas com base em informações de georeferenciamento. As imagens geradas pelo script são em 4K com extensão PNG, o que torna o uso dos mapas muito simples em game engines.

Mas, o que são mapas normais e como eles podem ajudar na criação de projetos de jogos?

Os mapas normais são ferramentas fantásticas para criação de superfícies em relevo com o objetivo de usar o material em jogos. Com base nas cores do mapa gerado, o software interpreta o relevo da superfície e gera os mais diversos tipos de relevos.

Isso facilita de maneira significativa o processo de modelagem e configuração de cenários relacionados com jogos, pois você não precisa dedicar muito tempo na construção de polígonos complexos. Boa parte do processo pode ser trabalhada usando apenas imagens.

Com o uso dessa ferramenta, você terá apenas o trabalho de localizar boas referências em imagens oriundas de sistemas GIS. No caso de jogos que pretendem apresentar cenários ou terras ficcionais, o script pode não ser dos mais úteis.

Mas, se o objetivo for apresentar projetos de visualização em tempo-real para terrenos ou conteúdo relacionado com arquitetura ou loteamentos a opção pode ser mostrar incrivelmente útil. Como a ferramenta é um script em Python, é até possível deixar o processo de criação dos mapas normais automatizado. Você só precisa instalar a ferramenta em um servidor web.

Aprenda a fazer modelagem para jogos e arquitetura

Quer aprender como usar mapas normais ou outras tecnologias usadas em jogos digitais em arquitetura? No EAD – Allan Brito você encontra diversos cursos e treinamentos relacionados com esses temas que podem ajudar você. Seja com a criação de modelos 3D próprios para arquitetura ou então animação interativa no Unity ou Unreal Engine:

Criando spritesheets com Python

A criação de jogos 2D em engines modernas demanda que os artistas digitais façam uso de recursos como spritesheets para organizar suas animações, e facilitar o processo de criação. Mas, como você pode gerar seu próprio spritesheets caso tenha disponível apenas os frames individuais das animações? A primeira abordagem pode ser a de construir manualmente o quadro, organizando todas as imagens manualmente.

Funciona? Claro que sim, mas irá consumir um bom tempo de trabalho. E se existisse uma maneira rápida de criar um spritesheets apenas com um script? Usando Python você consegue esse tipo de edição usando apenas algumas linhas de código.

Foi exatamente o que um desenvolvedor chamado Jan Gross fez e compartilhou o código no seu site pessoal. Ao visitar o link você terá acesso ao código completo para fazer a criação de spritesheets com Python.

spritesheet_python_500_px_85

Um dos pontos familiares desse pequeno tutorial é o uso de uma biblioteca do Python chamada de PIL. Ela é a responsável por boa parte da manipulação de imagens com Python, sendo ao mesmo tempo versátil e poderosa. É algo que considero fundamental para qualquer artista digital conhecer, pois ao mesmo tempo liberta você da dependência de ferramentas como o Photoshop e permite expandir seus projetos.

Como o Python e essas bibliotecas são gratuitas e funcionam muito bem como serviços sendo executados de modo remoto, você pode começar a fazer a gestão de suas imagens e animações usando apenas Python. O curso sobre manipulação de imagens com Python do EAD – Allan Brito é todo baseado nessa biblioteca.

Caso você tenha interesse em aprender a usar essa ferramenta junto com Python, recomendo muito uma visita à página do curso para conferir mais detalhes. Além de ajudar você na criação de um spritesheet que pode ser aplicado em jogos 2D, será possível manipular as imagens das mais diversas formas possíveis. Você poderá redimensionar, otimizar, editar e fazer montagens com imagens das mais variadas formas.

Quando você adiciona bibliotecas como o OpenCV é possível até mesmo fazer reconhecimento de imagens, e instruir o script a localizar formas específicas dentro das imagens. Quer uma estimativa de quantos frames são usados para exibir um detalhe específico na sua animação? Usando Python é possível processar as imagens e descobrir essas informações.

Aproveite para começar já visitando a página do tutorial e contemplar a simplicidade e eficiência dos scripts.

Aprendendo animação para jogos e Python

No EAD – Allan Brito você encontra diversos cursos relacionados não só com animação para jogos usando spritesheets dentro do Unity, mas também cursos sobre o uso de Python. Aqui está a lista com os cursos que podem ser do seu interesse:

Curso e oficina de Python para a Blender Game Engine

Com a Game Engine embutida no Blender é possível trabalhar com uma boa parcela de interatividade para produção de jogos e animações interativas, usando nada mais do que os blocos de lógica do software. Esses blocos de lógica são uma maneira visual de criar interatividade e possibilitam aos artistas 3d a criação de jogos, sem a necessidade de usar nenhuma linguagem de script. É grande a quantidade de pessoas que gostaria de trabalhar com desenvolvimento de jogos, mas acaba esbarrando na necessidade de estudar lógica ou alguma linguagem de script. É perfeitamente possível criar jogos usando nada mais do que os blocos de lógica.

Mas, em determinados momentos o processo acaba exigindo um pouco mais de interação ou a execução de tarefas que os blocos de lógica simplesmente não conseguem resolver. Como resolver esse tipo de situação no Blender? A solução é usar Python para a Blender Game Engine! Apesar de parecer intimidador, o uso de Python é muito simples de aplicar quando conhecemos a API do Blender e também as características da linguagem Python. Para ajudar nesse tipo de tarefa, acabei de lançar no EAD – Allan Brito o Curso e oficina de Python para a Blender Game Engine que ensina exatamente a aplicação do Python na Game Engine.

069-500

Ao longo do curso você conhece os meios de aplicação de scripts em projetos de jogos, e também as características da API do Blender específicas para jogos. Com o curso você vai aprender que os blocos de lógica não são excluídos do processo, mas você terá mais opções de controle dos blocos usando Python!

Essa é a lista de aulas do curso:

  • Aula 01 – Python na Game Engine do Blender
  • Aula 02 – Integrando Python com jogos
  • Aula 03 – Manipulando sensores e atuadores
  • Aula 04 – Controlando objetos em jogos com Python
  • Aula 05 – Configurando um jogo de nave
  • Aula 06 – Movimentos dos objetos
  • Aula 07 – Finalizando o jogo com Python

No final do curso você aprende a criar um jogo de nave usando controles avançados para o posicionamento de objetos dentro da área do jogo.

Esse curso funciona em paralelo ao Curso e oficina de Python com Blender que aborda o Python no Blender, sem o foco no desenvolvimento de jogos.

Desenvolvimento de jogos no Blender

Tem interesse no desenvolvimento de jogos e animações interativas com o Blender? No EAD – Allan Brito você encontra os seguintes cursos que ajudam você a desenvolver essas habilidades:

Curso e oficina de Python com Blender

Os softwares chamados de suítes 3d são complexos e oferecem uma grande quantidade de opções para os seus usuários em termos de ferramentas, mas algumas vezes você precisa de algo especializado em uma determinada tarefa ou percebe que está trabalhando em algo repetitivo e poderia automatizar o processo. É por esse motivo que na grande maioria desses softwares existe a opção de usar linguagens de script como MAXScript no 3dsmax ou MEL no Maya. Com o Blender não é diferente, sendo que a linguagem usada por ele é o Python. Você já teve curiosidade de aprender sobre Python?

No EAD – Allan Brito você encontra agora o Curso e oficina de Python com Blender que ensina exatamente o processo de configuração, uso e criação de scripts em Python no Blender. Como o curso usa o modelo de oficina do EAD – Allan Brito você passa por uma apresentação inicial do Python e a sua sintaxe, para depois aplicar na pratica os conhecimentos na criação do seu próprio Addon para o Blender.

Curso e oficina de Python com Blender

Mas, o que são Addons? Essa é a forma com que são chamados os scripts criados em Python que se integram na interface ou estão configurados de maneira mais integrada com o Blender. Por exemplo, você pode criar uma rotina que seja útil o suficiente para que a mesma seja necessária sempre que você abrir o Blender. Isso pode gerar um Addon, que pode inclusive ser distribuído na web!

Ficou interessado? Essa é a lista de conteúdos do curso divididos por aula:

  • Aula 01 – Blender e Python
  • Aula 02 – Variáveis e dados com Python
  • Aula 03 – Controle de fluxo com IF e FOR
  • Aula 04 – Funções
  • Aula 05 – Usando a API do Python
  • Aula 06 – Transformações com Python
  • Aula 07 – Usando operadores
  • Aula 08 – Criando seu próprio Addon

Aprendendo mais sobre Addons no Blender

Ficou interessado em saber mais sobre Addons? No EAD – Allan Brito você encontra os seguintes cursos relacionados com Addons e Blender que podem ajudar você:

Scripts adicionam ferramentas de CAD ao Blender como Fillet

A modelagem voltada para arquitetura é um pouco diferente do que estamos acostumados a encontrar na maioria dos projetos, pois é necessário focar nas dimensões e em opções que ofereçam controle sobre a forma dos objetos. A modelagem poligonal ajuda nessa tarefa, mas sempre é possível adicionar alguma coisa a mais usando scripts ou ferramentas personalizadas. Um desenvolvedor e usuário do Blender publicou uma série de Add-ons (Scripts em Python), que podem ser de grande interesse para a maioria dos usuários do Blender que gostariam de modelar para arquitetura.

As ferramentas personalizadas adicionam muitas opções ao Blender que encontramos com mais frequência em softwares de CAD.

Scripts adicionam funções de CAD ao Blender para modelagem 3D

No total temos seis Add-ons:

  • Vertex Align: Alinha vértices do mesmo objeto poligonal
  • Object Align: Permite alinhar no mesmo eixo vários objetos
  • Arbitrary Rotate: Atribui uma rotação aleatória a vários objetos
  • Fillet: Faz ligação entre duas arestas se transformar em um arco
  • Fillet Multiple: Aplica o mesmo efeito do Fillet em múltiplas arestas
  • Inset edge chain loop: Essa opção funciona de maneira muito semelhante a um Offset dos softwares de CAD

Essas ferramentas adicionam muito mais flexibilidade na modelagem com o Blender, principalmente as opções relacionadas com Fillet. Para quem não conhece a ferramenta, o Fillet permite conectar duas arestas usando um arco, o que facilita bastante a modelagem de alguns tipo de objetos e principalmente paredes para arquitetura.

Opção Fillet no Blender para modelagem

Quer conhecer um pouco do que é possível fazer com os Add-ons? Abaixo você encontra uma rápida demonstração de como funciona a opção Fillet desse conjunto de Add-ons.

Os Add-ons ainda estão em desenvolvimento, mas você já pode fazer o download imediato do material e aproveitar essas facilidades no seu Blender. Como todo o procedimento gera polígonos nativos do Blender, você não precisa ficar preocupado com possíveis problemas de compatibilidade no futuro, pois mesmo que o plugin pare de funcionar, poderemos editar o resultado da modelagem.

Nesse link, você encontra todos os plugins reunidos para download, e caso queira o código atualizado, recomendo visitar essa discussão nos fórums Blenderartists. Os arquivos para download não foram reunidos por mim, mas por um usuário chamado tungee.