Existem muitas maneiras diferentes de trabalhar com uma câmera em jogos, e isso pode variar muito dependendo do tipo de jogo que você está criando. Na Unreal Engine, as câmeras são normalmente compostas de um ator com um componente de braço de mola e um componente de câmera, que renderiza a visualização. Consulte detalhes sobre a configuração básica da câmera em Como usar câmeras na Unreal Engine.
Neste documento, os desenvolvedores abordarão como decidiram implementar a câmera especificamente para o Parrot e quaisquer configurações importantes que valem a pena destacar.
Subsistema de câmera Parrot
Para começar, cada mapa que pode ter configurações de câmera específicas para o mundo foi identificado.
Os desenvolvedores criaram o UParrotCameraSubsystem que compartilha o tempo de vida do mundo e inicializa a câmera com essas configurações em BeginPlay. As configurações específicas do mapa são armazenadas em AParrotWorldSettings, o que é útil para armazenar quaisquer dados por mapa. Para a câmera, esta é a classe de câmera desejada, o modo de movimento e o limite superior/inferior em Z, em que não se deseja mais que a câmera siga o jogador. A classe em si é opcional e não fornecê-la é um caminho válido. Isso é feito no menu principal.
Para entender melhor a escolha de usar um subsistema, consulte a documentação Subsistemas no Parrot.
As configurações do mundo podem ser encontradas no painel Configurações do Mundo no editor.
Câmera Parrot
AParrotCamera é onde a maior parte da lógica acontece. Quando a câmera é inicializada pelo subsistema, são fornecidos: o jogador a ser seguido, o modo de movimento e os limites das configurações do mundo.
A câmera tem três modos de movimento possíveis: Nenhum, Fixo e Seguir.
Nenhum é exatamente como descrito. A câmera não fará nada.
O modo de movimento Fixo é simples. Quando o jogador entra em um volume limitado, o subsistema da câmera fornece um local fixo à câmera, interpolando para este local. O jogador fica então livre para se movimentar até que o modo de movimento seja atualizado.
O modo de movimento Seguir é mais complexo e pode ser melhor compreendido consultando Content/Blueprints/BP_PlatformerCamera para melhor referência visual. AParrotCamera tem uma caixa sensível a movimento e uma malha de bloqueio como subobjetos padrão. Isso significa que eles são adicionados automaticamente na hierarquia de cada instância do AParrotCamera. Ambos estão alinhados com o frustum da câmera, braço de mola e perspectiva para o efeito desejado. Ambos os componentes são anexados ao ator da câmera e o seguem dentro do mundo.
A malha de bloqueio impede que o jogador se mova para trás ao colidir com o jogador no mundo.
Quando o jogador sobrepõe a caixa sensível a movimento, a câmera tentará interpolar para o valor X do jogador em uma velocidade definida. A velocidade também é multiplicada pela distância do jogador além da extensão mais à esquerda do volume de disparador. Dessa forma, quanto mais o jogador estiver no volume, mais rápido a câmera deverá se mover para alcançá-lo.
O resultado é que o jogador pode andar livremente no lado esquerdo da tela até a malha de bloqueio, mas a câmera se moverá com o jogador quando ele passar do limite. Isso proporciona um efeito agradável à medida que o jogador se move pelo mundo no eixo X.
Outra área digna de nota no modo de movimento Seguir é que a última localização conhecida do jogador é rastreada. Se o Z do jogador ultrapassar as delimitações do mundo, ou o personagem do jogador for destruído, interpolamos a câmera para a última localização conhecida do jogador. Isso evita qualquer comportamento de câmera instável com base no movimento/estado do jogador.
Por fim, o próprio Componente de Câmera em BP_PlatformerCamera tem algumas configurações que vale a pena destacar. O Modo de Projeção é Perspectiva com um campo de visão de 90 graus e uma proporção de 1,77, que é o padrão HD. Em Opções da câmera, restringimos a proporção para que a câmera sempre pareça correta, independentemente da resolução do aplicativo em execução.