Este é um artigo convidado escrito pelo Leonardo Thurler sobre a câmera ortográfica na game engine Unity.
Leonardo é um cientista da computação que atualmente trabalha como analista de sistemas e desenvolve games no seu tempo livre. Ele é membro da Academia de Produção de Jogos, nosso treinamento online com cursos, entrevistas e uma comunidade incrível de desenvolvedores de games.
Neste artigo o Leonardo Thurler vai te ensinar a calcular o tamanho adequado de visão da câmera ortográfica no Unity – algo essencial para jogos 2D.
Sem mais delongas, deixo você com o ótimo artigo do Leonardo.
Com vocês, Leonardo Thurler
Olá, pessoal!
Acredito que a maioria das pessoas que utilizam o Unity já passaram pela situação de importar um Sprite no Unity e ele ficar gigante ou muito pequeno em relação ao tamanho da câmera.
Nessa situação, muitas acabam modificando a escala do objeto, dentro do próprio Unity, para que o seu tamanho fique adaptado ao resultado esperado dentro da câmera.
Só que ao fazer isso muitas vezes a aparência do Sprite acaba perdendo a qualidade por essa modificação na escala. Por isso, esse artigo tem como objetivo mostrar como calcular corretamente o tamanho da visão de uma câmera ortográfica no Unity e com isso resolver o problema de ter que redimensionar os Sprites correndo o risco dos mesmos perderem a qualidade.
Então, mãos à obra…
Quando iniciamos um novo projeto 2D no Unity, ele já carrega uma “Scene” somente com um objeto instanciado nela e ele contém o componente que faz dele a nossa câmera do jogo. Essa câmera vem configurada com o atributo Projection no valor Ortographic (que é indicado para jogos 2D), e o atributo Size no valor 5, conforme pode ser visto na imagem abaixo:
Até aí tudo bem, mas o que esse Size com o valor 5 significa e quantos pixels isso representa?
Sprites e a propriedade Pixels Per Unit
Antes de saber o quanto em pixels esse valor irá representar é preciso se atentar a mais um detalhe quando se fala de Sprites no Unity.
Para o nosso teste, eu criei uma imagem toda vermelha com as bordas verdes com o tamanho de 1280x720px.
Todo Sprite no Unity tem um atributo chamado “Pixels Per Unit” e que por default vem no valor de 100, como pode ser visto na imagem abaixo:
Esse atributo indica exatamente quantos pixels cada unidade do atributo Size da câmera irá representar, no caso por padrão uma unidade representaria 100 pixels. Com isso em mente, voltamos ao cálculo do Size da câmera ortográfica.
Calculando o tamanho da visão da Câmera Ortográfica no Unity
O valor que se encontra no atributo Size da câmera representa a metade da quantidade de unidades de sua altura. Por exemplo, o valor 5 indica que a visão da câmera terá uma altura de 10 unidades.
A largura da câmera é definida pelo aspecto da tela em que o jogo está sendo rodado. No caso de um aspecto 16:9 a largura seria de 16 unidades de largura para cada 9 unidades de altura.
Então, como podemos obter uma câmera com uma visão de 1280x720px? O cálculo para isso agora é simples, uma vez que sabemos que cada unidade representa 100px, dividimos a altura da resolução desejada por 100, no caso 720/100. Isso será igual a 7.2, mas sabemos também que o valor do atributo Size da câmera ortográfica do Unity é a metade de sua altura então dividimos 7.2 por 2. Logo, chegamos ao valor 3.6.
Quando colocamos esse valor no atributo da câmera podemos ver que a parte superior e a inferior da câmera ficaram exatamente no limite da imagem gerada para o teste. Conforme pode ser observado abaixo:
Note na imagem a seguir que eu não precisei alterar o valor da escala do objeto que possui o Sprite, porque a câmera está com a visão no tamanho correto.
Porém, é possível observar que a lateral da aba “Game” está com a cor azul. Isso ocorre porque a câmera está com a visão em “Free Aspect” e a câmera possui Skybox na cor azul como background. Para que as laterais fiquem exatamente nas extremidades que queremos é preciso colocar o aspecto que condiz com a resolução desejada, no caso o aspecto é 16:9. Ao alterarmos a visão para este aspecto temos o resultado desejado.
Conclusão
Acredito que esse artigo possa te ajudar tanto na hora de criar os Sprites para o jogo, quanto na hora de pensar nos desafios que você enfrentará dentro da visão da câmera.
Se você também quer começar a desenvolver jogos, eu sempre recomendo começar dos mais simples para ir ganhando experiência. Eu criei um ebook com uma seleção de 16 jogos simples para você ter como uma referência sobre o tipo de jogo que eu acredito ser ideal para quem está começando.
Além disso, também incluí a quantidade de cópias vendidas de cada um desses jogos (dados reais vazados da Steam). Baixe o ebook gratuitamente no botão abaixo:
Chessarama redesenhado: uma olhadinha na nossa nova interface
Tons de progresso — Renovando as cores dos dioramas do Dragon Slayers
Peças de xadrez têm um humor? — Moodboard e design de personagens no Chessarama
Do rascunho ao resultado final — Como criamos os dioramas para o Street Soccer
Opa,
qual foi a maior sacada que você teve? Conte nos comentários.