Aprenda a fazer seus próprios efeitos de iluminação para iluminar seus jogos.
Iluminação e sombras dinâmicas podem elevar a qualidade visual e a experiência de jogo de seus jogos Godot. Eles adicionam profundidade, atmosfera e realismo, tornando o mundo do jogo mais envolvente e envolvente.
Com os poderosos recursos de Godot, como CanvasModulate e PointLight2D, criar e personalizar iluminação e sombras dinâmicas é uma tarefa fácil.
Configurando o jogo Godot
Antes de mergulhar na iluminação dinâmica, configure um jogo 2D básico em motor de jogo Godot. Crie uma nova cena e adicione um CharacterBody2D para o jogador.
O código usado neste artigo está disponível neste Repositório GitHub e é gratuito para você usar sob a licença do MIT.
Dentro de CharacterBody2D, adicione um CollisionShape2D com formato retangular e Sprite2D para representar o personagem do jogador. Além disso, crie algumas plataformas usando StaticBody2D nós.
Agora, implemente o movimento do jogador e a colisão com os limites da tela usando o GDScript:
extends CharacterBody2D
var speed = 200
func _physics_process(delta):
var velocity = Vector2()if Input.is_action_pressed('ui_right'):
velocity.x += 1if Input.is_action_pressed('ui_left'):
velocity.x -= 1if Input.is_action_pressed('ui_down'):
velocity.y += 1if Input.is_action_pressed('ui_up'):
velocity.y -= 1
velocity = velocity.normalized() * speed
move_and_collide(velocity * delta)
Com esse código, o jogador pode se mover para a esquerda, para a direita, para cima e para baixo enquanto fica restrito aos limites da tela.
Escureça o resto da cena
Para obter o efeito de iluminação dinâmica, você precisa escurecer o restante da cena, exceto as áreas iluminadas pelas fontes de luz. Você pode fazer isso usando Godot's CanvasModulate recurso.
extends Node2D
const DARKNESS = 0.7
func _ready():
var canvas_modulate = CanvasModulate.new()
canvas_modulate.color = Color(0, 0, 0, DARKNESS)
add_child(canvas_modulate)
Anexe este script a um novo Nó 2D adicionado na raiz da cena. O CanvasModulate O nó aplicará uma sobreposição preta semitransparente, escurecendo toda a cena, exceto as áreas iluminadas por luzes.
Crie uma variável constante ESCURIDÃO, que determina a intensidade da escuridão aplicada à cena. Ajustando o valor de ESCURIDÃO, você pode controlar o quão escura a cena se torna quando não está iluminada por luzes. Um valor mais alto resultará em uma cena mais escura, enquanto um valor mais baixo tornará a cena menos escura.
Lançar luz sombra
Para lançar sombras, você precisa configurar LightOccluder2D nós em obstáculos que devem bloquear a luz. Por exemplo, se você tiver paredes, plataformas ou outros objetos que devem projetar sombras, adicione um LightOccluder2D a cada um.
Crie um novo LightOccluder2D nó e ajuste sua forma para corresponder à forma do obstáculo em seu jogo. Você também pode ajustar as propriedades do oclusor como polígonos e segmentos para ajustar o comportamento de projeção de sombras.
Adicionar luzes omnidirecionais
Agora, adicione um PointLight2D nó com uma textura para representar sua fonte de luz. As luzes pontuais emitem luz em todas as direções e criam um efeito de iluminação realista.
extends PointLight2D
var light_color = Color(1, 1, 0.8)
func _ready():
energy = 2.5
color = light_color
Você pode personalizar as propriedades para controlar o alcance e a cor da luz emitida pelo PointLight2D.
Você também pode criar ou importar uma textura de luz personalizada para definir a forma e a aparência de sua fonte de luz. Pode ser um círculo simples ou uma forma mais complexa, dependendo da atmosfera que você deseja criar.
Para aplicar a textura ao PointLight2D nó, siga estas etapas:
- Selecione os PointLight2D nó na árvore de cena.
- No painel Inspetor, localize a propriedade Textura sob o Textura seção.
- Clique na caixa de textura vazia e selecione a textura de luz desejada no navegador de arquivos.
Agora, sua fonte de luz emitirá luz com a forma e cor definidas, adicionando um toque visualmente atraente à sua iluminação dinâmica e sombras.
Incluindo Recursos Adicionais
Além da configuração básica de iluminação dinâmica e sombras, você pode introduzir vários recursos adicionais para elevar ainda mais o apelo visual e a experiência de jogo. Aqui estão algumas ideias para considerar:
Animações de luz
Dê vida às suas fontes de luz adicionando animações a elas. Por exemplo, você pode criar luzes bruxuleantes para tochas ou velas, simular o movimento de uma fogueira ou até adicionar um efeito pulsante a esferas mágicas.
Ciclo Dia-Noite
Implemente um ciclo diurno-noturno dinâmico que muda gradualmente a intensidade e a cor das luzes à medida que o tempo do jogo avança. Esse recurso pode aumentar a imersão e criar diferentes humores dependendo da hora do dia.
Desvanecimento claro
Crie transições suaves para mudanças de intensidade de luz para evitar mudanças abruptas que possam interromper a imersão. Ao aumentar e diminuir gradualmente as luzes, você pode obter um efeito mais natural e visualmente agradável.
Sombras dinâmicas
Em vez de usar sombras estáticas, considere adicionar sombras dinâmicas a objetos ou personagens em movimento. Você pode fazer isso usando fontes de luz adicionais que seguem o movimento dos personagens, dando a ilusão de atualizações de sombra em tempo real.
Efeitos Sonoros Livres de Direitos Autorais
Os efeitos sonoros desempenham um papel crucial em tornar o mundo do jogo vivo e dinâmico. Considere incorporar efeitos sonoros sem direitos autorais para complementar sua iluminação e sombras dinâmicas.
Melhores práticas para iluminação dinâmica e sombras
Embora a iluminação e as sombras dinâmicas possam melhorar muito o seu jogo, a implementação inadequada pode afetar negativamente o desempenho e a qualidade visual. Aqui estão algumas práticas recomendadas a serem lembradas:
Otimize as fontes de luz
Limite o número de fontes de luz ativas ao mínimo necessário para o efeito visual desejado. Luzes excessivas podem afetar significativamente o desempenho, especialmente em dispositivos de baixo custo.
Use Forno Leve
Para cenas ou objetos estáticos, considere criar as informações de iluminação para melhorar o desempenho. O Light Baking pré-computa os dados de iluminação, reduzindo a necessidade de cálculos em tempo real durante o jogo.
Opte por oclusores simples
Ao configurar LightOccluder2D nós, opte por formas simples sempre que possível. Oclusores complexos com muitos vértices podem levar a problemas de desempenho. Use polígonos simples ou segmentos de linha para oclusores sempre que possível.
Seleção e camadas
Utilize o sistema de visibilidade e camadas da Godot para garantir que as luzes e sombras sejam calculadas apenas para áreas visíveis. A seleção de luzes e sombras fora da tela pode melhorar significativamente o desempenho.
Seguindo essas práticas recomendadas e implementando cuidadosamente recursos adicionais, você pode criar iluminação e sombras dinâmicas impressionantes e cativantes que elevam a qualidade geral de seu jogo de plataforma.
Tornando os jogos Godot mais envolventes com iluminação e sombras dinâmicas
Iluminação dinâmica e sombras dão vida ao seu mundo de jogo. Eles criam um ambiente mais imersivo e atmosférico, atraindo os jogadores para uma experiência de jogo mais profunda. A interação de luz e sombra pode invocar emoções, definir o tom e aprimorar a narrativa visual do seu jogo.
Seja uma masmorra escura misteriosa ou uma noite serena de luar, a iluminação dinâmica enriquece a jogabilidade e deixa uma impressão duradoura nos jogadores.