Pesquisar
Close this search box.

Mini-Tutorial de Criação de Instâncias no Godot

Continuando nossas aulas de Godot, entenda a Criação de Instâncias no Godot

Falamos em um texto anterior sobre o Godot, sobre como criar as cenas e nodes no Godot Engine (site oficial) e agora, vamos continuar nossos tutoriais, traduzidos diretamente do site oficial, com a Criando Instâncias no Godot.

Com as instâncias, você tem a liberdade de construir ambientes interativos, onde cada árvore, pedra ou criatura é única e pode ser manipulada conforme sua vontade. Com o Godot Engine, você tem controle total sobre cada instância, podendo personalizá-las com propriedades específicas e definir comportamentos distintos para cada uma.

À medida que você se aprofunda no Godot, verá suas ideias se transformarem em experiências de jogo envolventes e memoráveis. O Godot está pronto para ajudá-lo a transformar sua criatividade em realidade digital.

Por meio das instâncias, você pode dar vida a uma infinidade de elementos em seu jogo, desde heróis corajosos até terríveis inimigos, e tudo o que sua imaginação permitir. Mas isso é apenas o começo de sua jornada no mundo fascinante do desenvolvimento de jogos.

Se você já imaginou criar seus próprios mundos virtuais cheios de aventura e emoção, o Godot é a ferramenta perfeita para você, então embarque nesta jornada emocionante para criar os jogos dos seus sonhos e, se você ficar com dúvidas, é só deixar um comentário.

Domine a Godot

🎮 Deixe Sua Criatividade Ganhar Vida! 🌍

Não é apenas sobre aprender técnicas; é sobre transformar suas ideias únicas em jogos que cativam corações em todo o mundo. Com as estratégias e ferramentas mais avançadas ao seu alcance, prepare-se para transformar sua visão em realidade. Comece agora e seja o criador de jogos que você sempre sonhou em ser!

👾 Este é o Momento: Dê o Primeiro Passo Rumo ao Sucesso! 🌟

A jornada para se tornar um desenvolvedor de jogos profissional começa aqui e agora. Com um futuro brilhante e cheio de possibilidades emocionantes no desenvolvimento de jogos à sua frente, por que esperar? Clique e descubra como nosso curso pode ser o trampolim para o seu sucesso na indústria de jogos.

O que são Instâncias?

No Godot, instâncias são objetos que você cria em seu jogo. Cada instância representa um elemento específico, como um personagem, um inimigo, um objeto do cenário, uma luz, entre outros. Elas são baseadas em classes e são instanciadas a partir de cenas. Uma cena é basicamente um conjunto de nós, que podem ser qualquer coisa, desde sprites a scripts, organizados hierarquicamente.

Quando você instancia uma cena em seu jogo, está criando uma cópia dessa cena que pode ser manipulada separadamente. Por exemplo, se você tiver uma cena que representa um inimigo e instanciá-la várias vezes, cada instância representará um inimigo separado, com suas próprias propriedades e comportamentos.

As instâncias podem ser adicionadas dinamicamente durante a execução do jogo, o que é útil para criar elementos que aparecem e desaparecem conforme a necessidade, como inimigos que surgem quando o jogador alcança uma certa área do mapa.

Além disso, as instâncias podem ser organizadas em uma hierarquia, onde uma instância pode conter outras instâncias como filhas. Isso é útil para criar composições complexas de elementos, como um personagem que possui uma arma que, por sua vez, possui uma partícula de efeito associada.

Criando instâncias

Na parte anterior, vimos que uma cena é uma coleção de nós organizados em uma estrutura em árvore, com um único nó como raiz. Você pode dividir seu projeto em qualquer número de cenas. Este recurso ajuda você a dividir e organizar os diferentes componentes do seu jogo.

Você pode criar quantas cenas quiser e salvá-las como arquivos com a .tscn extensão, que significa “cena de texto”. O label.tscn arquivo da lição anterior foi um exemplo. Chamamos esses arquivos de “Cenas compactadas”, pois eles contêm informações sobre o conteúdo da sua cena.

Aqui está um exemplo de uma bola. É composto por um nó RigidBody2D como sua raiz chamada Ball, que permite que a bola caia e quique nas paredes, um nó Sprite2D e um CollisionShape2D .

Criação de instâncias no godot
Criação de Instâncias no Godot

Depois de salvar uma cena, ela funciona como um modelo: você pode reproduzi-la em outras cenas quantas vezes quiser. A replicação de um objeto de um modelo como esse é chamada de instanciação .

Criação de instâncias no godot
Criação de Instâncias no Godot

Como mencionamos na parte anterior, as cenas instanciadas se comportam como um nó: o editor oculta seu conteúdo por padrão. Ao instanciar a Bola, você verá apenas o nó Bola. Observe também como cada duplicata tem um nome exclusivo.

Cada instância da cena Ball começa com a mesma estrutura e propriedades de ball.tscn. No entanto, você pode modificar cada um de forma independente, como alterar a forma como eles saltam, o peso deles ou qualquer propriedade exposta pela cena de origem.

Criação de Instâncias no Godot na prática

Vamos usar a instanciação na prática para ver como funciona no Godot. Convidamos você a baixar o projeto de amostra da bola que preparamos para você: instancing_starter.zip .

Extraia o arquivo no seu computador. Para importá-lo, você precisa do Gerente de Projeto. O Gerenciador de Projetos é acessado abrindo o Godot, ou se você já tiver o Godot aberto, clique em Project -> Quit to Project List (Ctrl + Shift + QCtrl + Option + Cmd + Q no macOS)

No Gerenciador de Projetos, clique no botão Importar para importar o projeto.

../ ../_images/instancing_import_button .png

No pop-up que aparece, clique no botão Procurar e navegue até a pasta que você extraiu.

../ ../_images/instancing_import_browse .png

Clique duas vezes no project.godot arquivo para abri-lo.

../ ../_images/instancing_import_project_file .png

Por fim, clique no botão Importar e editar.

../ ../_images/instancing_import_and_edit_button .png

O projeto contém duas cenas compactadas: main.tscn, contendo paredes contra as quais a bola colide, e ball.tscn. A cena principal deve abrir automaticamente. Se você estiver vendo uma cena 3D vazia em vez da cena principal, clique no botão 2D na parte superior da tela.

../ ../_images/instancing_2d_scene_select .webp../ ../_images/instancing_main_scene .png

Vamos adicionar uma bola como filha do node Principal. Na doca Cena, selecione o node Principal. Em seguida, clique no ícone do link na parte superior do encaixe da cena. Este botão permite adicionar uma instância de uma cena como filha do nó atualmente selecionado.

../ ../_images/instancing_scene_link_button .png

Clique duas vezes na cena da bola para instancia-la.

../ ../_images/instancing_instance_child_window .png

A bola aparece no canto superior esquerdo da janela de visualização.

../ ../_images/instancing_ball_instanced .png

Clique nele e arraste-o em direção ao centro da visualização.

../ ../_images/instancing_ball_moved .png

Jogue pressionando F5 (no macOS). Você deveria vê-lo cair com o Cmd + B

Agora, queremos criar mais instâncias do nó Ball. Com a bola ainda selecionada, pressione ( no macOS) para chamar o comando duplicado. Clique e arraste para mover a nova bola para um local diferente com Ctrl + D Cmd + D

../ ../_images/instancing_ball_duplicated .png

Você pode repetir esse processo até ter vários na cena.

../ ../_images/instancing_main_scene_with_balls .png

Jogue o jogo novamente. Agora você deve ver todas as bolas caindo independentemente umas das outras. Isto é o que as instâncias fazem. Cada um é uma reprodução independente de uma cena modelo.

Editando cenas e instâncias

Há mais instâncias. Com esse recurso, você pode:

  1. Altere as propriedades de uma bola sem afetar as outras usando o Inspetor.
  2. Altere as propriedades padrão de cada Bola abrindo a cena ball.tscn e fazendo uma alteração no node Bola. Ao salvar, todas as instâncias da Bola no projeto terão seus valores atualizados.

Observação: Alterar uma propriedade em uma instância sempre substitui os valores da cena compactada correspondente. Vamos tentar isso. Abra ball.tscn e selecione o node Bola. No Inspetor à direita, clique na propriedade PhysicsMaterial para expandi-la.

../ ../_images/instancing_physics_material_expand .webp

Defina sua propriedade Bounce 0.5 clicando no campo numérico, digitando 0.5 e pressionando Enter.

../ ../_images/instancing_property_bounce_updated .webp

Jogue pressionando F5 (no macOS) e observe como todas as bolas agora quicam muito mais. Como a cena Ball é um modelo para todas as instâncias, modificá-la e salvá-la faz com que todas as instâncias sejam atualizadas de acordo Cmd + B. Vamos agora ajustar uma instância individual. Volte para a cena principal clicando na guia correspondente acima da janela de visualização.

../ ../_images/instancing_scene_tabs .png

Selecione um dos nós Ball instanciados e, no Inspetor, defina seu valor de Escala de Gravidade como 10.

../ ../_images/instancing_property_gravity_scale .png

Um botão cinza “reverter” aparece próximo à propriedade ajustada.

../ ../_images/instancing_property_revert_icon .png

Este ícone indica que você está substituindo um valor da cena compactada de origem. Mesmo se você modificar a propriedade na cena original, a substituição do valor será preservada na instância. Clicar no ícone de reversão restaurará a propriedade para o valor da cena salva. Execute novamente o jogo e observe como esta bola agora cai muito mais rápido que as outras.

Observação: Você pode perceber que não consegue alterar os valores da PhysicsMaterial bola. Isso ocorre porque PhysicsMaterial é um recurso e precisa ser exclusivo antes que você possa editá-lo em uma cena vinculada à cena original. Para tornar um recurso exclusivo para uma instância, clique com o botão direito nele no Inspetor e clique em Tornar Único no menu contextual. Os recursos são outro elemento essencial dos jogos Godot que abordaremos em uma lição posterior.

Instâncias de cena como linguagem de design

Instâncias e cenas em Godot oferecem uma excelente linguagem de design, diferenciando o motor de outros por aí. Projetamos Godot em torno desse conceito desde o início. Recomendamos descartar padrões de código arquitetônico ao criar jogos com Godot, como diagramas Model-View-Controller (MVC) ou Entidade-Relacionamento. Em vez disso, você pode começar imaginando os elementos que os jogadores verão em seu jogo e estruturar seu código em torno deles.

Por exemplo, você poderia dividir um jogo de tiro assim:

../ ../_images/instancing_diagram_shooter .png

Você pode criar um diagrama como este para quase qualquer tipo de jogo. Cada retângulo representa uma entidade visível no jogo da perspectiva do jogador. As setas indicam qual cena possui qual.

Depois de ter um diagrama, recomendamos criar uma cena para cada elemento listado nele para desenvolver seu jogo. Você usará instâncias, por código ou diretamente no editor, para construir sua árvore de cenas.

Os programadores tendem a gastar muito tempo projetando arquiteturas abstratas e tentando encaixar componentes nelas. Projetar com base em cenas torna o desenvolvimento mais rápido e direto, permitindo que você se concentre na própria lógica do jogo.

Como a maioria dos componentes do jogo são mapeados diretamente para uma cena, usar um design baseado na instanciação de cena significa que você precisa de poucos outros códigos de arquitetura. Aqui está o exemplo de um diagrama de cena para um jogo de mundo aberto com vários recursos e elementos aninhados:

../ ../_images/instancing_diagram_open_world .png

Imagine que começamos criando a sala. Poderíamos fazer algumas cenas de ambientes diferentes, com arranjos exclusivos de móveis. Mais tarde, poderíamos fazer uma cena de casa que utilizasse múltiplas instâncias de cômodos para o interior. Criaríamos uma cidadela com muitas casas e um grande terreno onde colocaríamos a cidadela. Cada uma delas seria uma cena que instancia uma ou mais subcenas.

Mais tarde, poderíamos criar cenas representando guardas e adicioná-los à cidadela. Eles seriam adicionados indiretamente ao mundo geral do jogo.

Com Godot, é fácil iterar seu jogo dessa maneira, pois tudo o que você precisa fazer é criar e instanciar mais cenas. Projetamos o editor para ser acessível a programadores, designers e artistas. Um processo típico de desenvolvimento de equipe pode envolver artistas 2D ou 3D, designers de níveis, designers de jogos e animadores, todos trabalhando com o editor Godot.

FAQ Rápido

O que são instâncias no Godot?

Instâncias são objetos que você cria em seu jogo. Elas representam elementos específicos, como personagens, inimigos, objetos do cenário, entre outros.

Como as instâncias são criadas no Godot?

As instâncias são criadas a partir de cenas, que são conjuntos de nós hierarquicamente organizados. Você pode instanciar uma cena para criar uma cópia dela em seu jogo.

Qual é a diferença entre uma cena e uma instância no Godot?

Uma cena é um conjunto de nós no Godot, enquanto uma instância é uma cópia dessa cena em execução no jogo. Você instancia uma cena para criar uma ou mais cópias dela como instâncias.

Como as propriedades das instâncias podem ser personalizadas no Godot?

As propriedades das instâncias podem ser personalizadas diretamente no editor do Godot ou por meio de scripts. Você pode definir valores específicos para as propriedades de cada instância.

Fale conosco nos comentários e diga oque achou dessa matéria e aproveite para ler mais notícias e matérias, como por exemplo, nosso guia para criar jogos, no nosso site.

Saiba se vale a pena jogar Fabledom
Quer dar vida aos seus modelos 3D com texturas impressionantes? Continue lendo para aprender tudo sobre o processo de mapeamento UV do Blender!
Saiba mais sobre a espetacular memória RAM DELTA TUF RGB DDR5
Quer saber se vale a pena jogar a última obra de Akira Toryama? Então veja nossa analise de Sand Land
Conheça o robusto HD portátil SSD T-FORCE M200
Aprenda como enviar comandos aos personagens do seu jogo com o Signals no Godot