terça-feira, 6 de janeiro de 2015

Mapeamento de Input em Blueprints

Usando Blueprints é possível criar eventos de Input que estão ligados diretamente a teclas e botões. Entretanto existe uma forma melhor de fazer o Mapeamento de Input em Blueprints.

Para a lógica do jogo é melhor criar novos eventos de Input que representem ações que fazem sentido no jogo. Por exemplo, ao invés de criamos um evento de Input para o botão esquerdo do mouse que irá disparar uma arma, é melhor criarmos um evento chamado "Fire" e mapear todas as opções de teclas e botões que podem acionar este evento.

Para fazer o mapeamento de Input, acesse no editor o menu "Edit-> Project Settings..." e na categoria Engine escolha a opção Input. A imagem abaixo mostra o mapeamento de Input de um projeto novo sem usar Templates. Não existe nenhum "Action Mappings" e "Axis Mapping" criado, mas já existe uma configuração padrão para o "Axis Config".


Os controles do tipo "Axis" (eixo) variam dentro de uma faixa de valores ao invés de serem como simples botões e teclas. A movimentação do mouse e os direcionais analógicos de um Gamepad são exemplos de controles do tipo "Axis".

Para ver um exemplo de "Action Mappings" e "Axis Mapping", crie um novo projeto Blueprints usando o template "First Person". Acesse a opção de Input do projeto e veja dois "Action Mappings" criados com os nomes "Jump" e "Fire".


A movimentação em primeira pessoa está representada no "Axis Mapping":


As teclas e botões também podem ser usadas no "Axis Mapping". No exemplo acima temos o "MoveForward" (mover em frente) que está mapeado com a tecla "W" com a escala "1.0" e também com a tecla "S" com escala "-1.0" que representa o sentido inverso.

Todos os "Action Mappings" e "Axis Mapping" estão disponíveis como eventos no editor de Blueprints, assim como as funções que podem ser usadas para consultar os valores dos Eixos mapeados:


Um evento do tipo "Action Mappings" é gerado quando as teclas/botões associados a ele são pressionados ou liberados. Um evento do tipo "Axis Mapping" informa o valor atual do eixo. A imagem abaixo mostra a diferença:


A classe "Pawn" possui algumas funções relacionadas a movimentação e rotação. A classe "Character" é uma extensão da classe "Pawn" na Unreal Engine 4, por isso estas funções também podem ser usadas na classe "Character":


Os termos Yaw, Pitch e Roll representam a rotação ao redor de cada um dos três eixos de um Actor.

O script abaixo mostra como é feita a movimentação do jogador para frente/trás e para direita/esquerda.


O controle da visão do jogador usando o Mouse é mostrado nesta imagem:



Próximo: Salvar e Carregar em Blueprints
Anterior: Controle de Fluxo em Blueprints 
Sumário