Aprenda a controlar a janela de visualização do seu jogo com ações de panorâmica, zoom e dimensionamento.

Um sistema de câmera bem projetado pode ajudar a imergir os jogadores no mundo do jogo e dar uma melhor noção de localização. A câmera atua como os olhos do jogador, permitindo que ele navegue e interaja com o mundo do jogo.

Criar um sistema de câmera no Godot é simples, mas poderoso. Você pode facilmente configurar a câmera para seguir o jogador, restringir seus movimentos à área do jogo e até mesmo adicionar zoom e dimensionamento dinâmicos com base nos eventos do jogo.

Criando um jogo simples

Antes de começar, você precisa criar um mundo de jogo 2D e um personagem em seu Motor de Jogo Godot que a câmera pode seguir.

Crie uma nova cena 2D e adicione um CharacterBody2D nó. Isso servirá como nosso personagem do jogador. Dentro do CharacterBody2D, adicione um CollisionShape2D e definir a sua forma para RetânguloForma2D para fornecer a presença física do jogador no mundo.

O código usado neste artigo está disponível neste

instagram viewer
Repositório GitHub e é gratuito para você usar sob a licença do MIT.

Além disso, dentro do CharacterBody2D, adicione um Sprite2D node e atribua a imagem do sprite do jogador a ele. Crie um novo script anexado ao nó CharacterBody2D e adicione o seguinte código:

extends CharacterBody2D

var speed = 200

func _physics_process(delta):
var velocity = Vector2()

if Input.is_action_pressed('ui_right'):
velocity.x += 1

if Input.is_action_pressed('ui_left'):
velocity.x -= 1

if Input.is_action_pressed('ui_down'):
velocity.y += 1

if Input.is_action_pressed('ui_up'):
velocity.y -= 1

velocity = velocity.normalized() * speed
move_and_collide(velocity * delta)

Com este código, o personagem do jogador agora pode se mover nas quatro direções e colidir com as plataformas.

Implementando um sistema de câmera de acompanhamento

O próximo passo é criar uma câmera que acompanhe os movimentos do jogador. Adicionar um Camera2D nó como um filho do seu CharacterBody2D nó. Isso garante que a câmera sempre seguirá o jogador. Para tornar o movimento mais suave, habilite a propriedade de suavização de posição do Camera2D nó.

$Camera2D.enabled = true
$Camera2D.position_smoothing_enabled = true

Implementando Limites e Restrições da Câmera

Geralmente é importante restringir a visão do jogador à área do jogo. Se você não lidar com isso corretamente, no entanto, a câmera pode revelar áreas que estão fora do escopo do jogo. Estes podem incluir espaços ou áreas incompletas.

Godot fornece uma maneira fácil de definir os limites da câmera e restringir seus movimentos dentro da área do jogo.

No Camera2D propriedades do nó, há quatro variáveis: limit_left, limit_top, limit_right, e limit_bottom. Estes determinam os limites da câmera. Você pode definir esses valores de acordo com o tamanho do mundo do jogo.

$Camera2D.limit_left = 0
$Camera2D.limit_top = 0
$Camera2D.limit_right = your_game_area_width
$Camera2D.limit_bottom = your_game_area_height

Substituir your_game_area_width e your_game_area_height com a largura e a altura do seu mundo de jogo. Este script efetivamente restringe a câmera dentro da área desejada, proporcionando uma experiência de jogo limpa e focada para o jogador.

Manuseio de zoom e dimensionamento da câmera

O zoom dinâmico e o dimensionamento podem ser fundamentais para criar momentos impactantes no jogo. Por exemplo, você pode querer ampliar o personagem do jogador durante uma ação poderosa ou diminuir o zoom para revelar um grande inimigo ou uma visão panorâmica do mundo do jogo.

Crédito da imagem: Xbox Game Studios/orithegame.com

Godot facilita o zoom e o dimensionamento com o ampliação propriedade do Camera2D nó. Esta propriedade é um Vector2, com (1, 1) sendo o nível de zoom padrão. Valores mais altos diminuirão o zoom, fazendo com que os objetos visualizados pareçam menores, enquanto valores mais baixos aumentarão o zoom, fazendo com que os objetos pareçam maiores.

Para aumentar o zoom, você pode usar:

$Camera2D.zoom = Vector2(0.7, 0.7)

E para redefinir o zoom, use:

$Camera2D.zoom = Vector2(1, 1)

Os valores que você passa para Vector2() determinam o nível de zoom nos eixos X e Y. Um valor de zoom de (0,7, 0,7) significa que a câmera aumentará o zoom, enquanto um valor de (1,5, 1,5) reduziria o zoom da câmera.

Normalmente, você deve manter o mesmo valor para ambos os eixos para manter a proporção, mas pode experimentar valores diferentes para obter efeitos exclusivos.

Incluindo Recursos Adicionais

Ao criar um sistema de câmera para o seu jogo, existem vários recursos adicionais que você pode incorporar para aprimorar a experiência.

câmera tremendo

Um efeito comum usado em muitos jogos, especialmente jogos de plataformas, é a trepidação da câmera. Isso normalmente é usado para transmitir impacto ou intensidade durante certos momentos do jogo, como uma explosão ou um ataque poderoso de um personagem.

Você pode facilmente adicionar esta função no Godot criando um sacudir() função. Você pode especificar a duração e a intensidade do efeito de vibração de acordo com o evento específico do jogo.

Os sons podem aumentar muito a sensação de lugar e movimento em um jogo. Isso pode ser tão simples quanto tocar um swoosh efeito sonoro quando a câmera se move ou gira rapidamente, ou tão complexo quanto modificar o volume ou tom de sons ambientes ou faixas de música com base na localização da câmera ou nível de zoom.

Por exemplo, você pode querer diminuir o volume de uma música enquanto a câmera diminui o zoom para dar uma sensação de distância.

Iluminação dinâmica

Você também pode vincular efeitos de iluminação dinâmicos à sua câmera. À medida que sua câmera se move pelo mundo do jogo, você pode alterar as condições de iluminação para refletir os novos ambientes ou destacar áreas ou objetos específicos.

Isso pode incluir coisas como escurecer gradualmente a cena conforme a câmera mergulha em uma caverna ou destacar um objeto-chave com um holofote.

Efeitos de Transição de Câmera

Você pode criar vários efeitos de transição ao alternar entre as câmeras. Pode ser um corte simples em que a visualização salta instantaneamente de uma câmera para outra ou um fade em que a visualização passa gradualmente de uma câmera para outra.

Você pode usar transições mais complexas, como limpeza, slide ou íris, com codificação e animação adicionais.

Práticas recomendadas para adicionar sistema de câmera

Ao adicionar um sistema de câmera ao seu jogo, há várias práticas recomendadas a serem lembradas para garantir a melhor experiência de jogo possível.

Evite movimentos bruscos da câmera

Mudanças repentinas na perspectiva da câmera podem desorientar os jogadores e atrapalhar o jogo. Sempre busque transições de câmera suaves para manter a imersão.

Limitar a vibração da câmera

Embora a vibração da câmera possa adicionar impacto a certos eventos, muito pode tornar o jogo difícil de seguir e desconfortável de jogar. Use este efeito com moderação.

Teste Diferentes Níveis de Zoom

Diferentes jogos e diferentes situações dentro de um jogo podem exigir diferentes níveis de zoom. Teste minuciosamente para encontrar o nível de zoom mais adequado para cada situação.

Considere cuidadosamente os limites da câmera

Os limites da câmera devem ser cuidadosamente definidos para se adequar ao design de seus níveis. Você não quer que o jogador veja fora do mundo do jogo ou perca elementos importantes fora da tela.

Priorize a experiência do jogador

O principal objetivo do sistema de câmera deve ser sempre aprimorar a experiência do jogador. Seja fornecendo a melhor visão da ação, enfatizando momentos-chave ou ajudando o jogador a navegar pelo ambiente, a câmera deve sempre contribuir para uma melhor experiência de jogo.

Tornando os jogos Godot mais envolventes com o sistema de câmera

Um sistema de câmera bem implementado pode melhorar a experiência geral do jogo. Ele pode enfatizar a ação, ajudar na narrativa e proporcionar uma experiência mais imersiva.

Ao controlar o que o jogador vê e quando ele vê, você pode guiar sua jornada pelo mundo do jogo e tornar a jogabilidade mais dinâmica e envolvente.