Oi Gustavo, tudo bem?
Fico feliz que deu tudo certo.
Agora você precisa criar os controles do usuário porque é ele que executa as ações, então, precisa estar configurado para clicar e o código que identifica o clique estará dentro dele.
Porém, para fazer isso é necessário criar 3 Blueprints, um para controlar a aplicação interativa (Game), outro para definir os movimentos, visão e dimensões do personagem, mesmo que não tenha Mesh anexado como será o nosso caso, e mais um Blueprint com os controladores do personagem.
Segue o passo a passo:
1 - Primeiro de tudo vamos definir as teclas que controlam o personagem, então, acesse o menu Edit > Project Settings ou o ícone Settings acima da Viewport que também aparece o Project Settings.
Dentro dele acesse o item Input como mostra a primeira imagem em anexo.
Clique no sinal de "+" do Axis Mapping para criar um novo item, que aparecerá logo abaixo, coloque o nome FrenteTras ou outro que quiser para definir o movimento para frente e para trás do personagem.
Inicialmente ele terá apenas um campo para tecla, clicando no sinal de "+" na frente dele vai adicionar mais uma, como aparece na imagem.
Clique no campo da primeira tecla e digite W para filtrar, depois encontre o item "W" na lista com o iconezinho do teclado, essa é a tecla que vai mover para frente, se quiser pode colocar a setinha do teclado em vez do W.
Na segunda tecla você adiciona o "S" ou a setinha para baixo do teclado, pois essa é a tecla que vai mover para trás.
O mais importante de tudo é colocar -1.0 no valor dela, como mostra a imagem.
Em seguida precisa fazer o mesmo procedimento para as teclas que movimentam o personagem para a direita e para a esquerda, como está na imagem.
Eu usei as teclas A e D, pois fica mais confortável, já que a outra mão estará controlando o mouse, mas você pode colocar as setinhas para a direita e esquerda se preferir.
O importante é colocar o valor -1.0 na tecla usada para o movimento para a esquerda.
Depois precisa criar o giro da cabeça, que é controlado com o mouse, assim, também vai controlar a direção do personagem, pois o movimento para frente será sempre no sentido para onde a cabeça estiver virada.
Então, adicione mais um item na lista de Inputs e coloque o nome GiraCabeca ou o que preferir.
Clique no campo da tecla e digite Mouse para filtrar os itens relacionados com o mouse, escolha o MouseX como mostra a imagem.
Por fim, crie um novo item e coloque o nome CimaBaixo ou o que preferir, esse será usado para olhar para cima e para baixo.
No lugar da tecla coloque o MouseY e mude o valor para -1.0, como mostra a imagem.
2- Agora precisamos criar os Blueprints, então, primeiro crie um Blueprint do tipo Character e coloque o nome que quiser, apenas salve se quiser, pois vamos usá-lo depois.
Em seguida crie um Blueprint do tipo Player Controller, coloque o nome que quiser, eu usei Teste_PlayerCtrl.
Abra este Blueprint e marque as opções Show Mouse Cursor e Enable Click Events como mostra a segunda imagem em anexo.
É muito importante clicar no ícone Compile e só depois no Save, não funciona se não compilar.
OBS: Pode aparecer apenas os parâmetros do painel lateral Details em vez do gráfico completo igual está na minha imagem, é normal e tem um link azul na parte superior da tela para abrir o gráfico completo quando exibir só os parâmetros.
3- Crie um novo Blueprint do tipo GameMode e coloque o nome que quiser, eu usei Teste_GameMode.
Abra o Blueprint GameMode e adicione no Classes os Blueprints que criou para o Character e o Player Controller, como mostra a terceira imagem em anexo.
É só clicar na setinha do lado direito da lista de cada um.
No item Default Pawn Class vai o Blueprint do Character e no item Player Controller Class vai o Blueprint do Player Controller.
É muito importante compilar antes de salvar.
4- Agora abra o Blueprint do Character que criou primeiro, o meu chama Teste_Character, clique com o botão direito no gráfico para abrir a lista de Nodes e digite o nome que definiu para as teclas de movimento para frente e para trás, no meu caso foi FrenteTras.
Assim vai aparecer dois Nodes com este nome, você deve escolher o primeiro que está dentro do Axis Events, como mostra a quarta imagem em anexo.
5- Arraste o Pin de Execução dele, o primeiro na cor branca em forma de seta, para abrir a lista de Nodes, digite Movement para filtrar e escolha o Node Add Movement Input, como mostra a quinta imagem em anexo.
Agora ligue o Axis Value do Node FrenteTras no Scale Value do Node Add Movement Input, como mostra a imagem, assim, quando teclar vai acioná-lo.
Mas para ele aplicar o movimento você precisa definir o vetor de direção chamado World Direction no Node.
Então, precisamos criar um vetor que determine a direção do personagem e isso é fácil de fazer através do Node Get Forward Vector, pois ele vai identificar qual é o lado da frente do personagem para que, quando aplicar o movimento ele ande para frente, ou então para trás, no caso de usar a segunda tecla onde colocamos o valor de -1.0.
É só arrastar o Pin do item World Direction do Node Add Movement Input para abrir a lista de Nodes já neste contexto, dai digite Forward que o Node Get Forward Vector aparece.
6- Para o Get Forward Vector funcionar ele precisa saber a rotação atual do personagem, então, clique com o botão direito em qualquer área do gráfico para abrir a lista de Nodes e digite Control Rotation para aparecer o Node Get Control Rotation, como mostra a sexta imagem em anexo.
Arraste o Pin Control Value dele para abrir a lista de Nodes já neste contexto e selecione o Break Rotator que está no final da lista, como mostra a imagem.
Este Node separa os valores da rotação em seus eixos porque nós só queremos usar a rotação em Z.
7- Porém, para poder aplicar o valor coletado do Z do Control Rotation no Forward Vector vamos precisar montar o vetor novamente, pois ele exige os 3 eixos.
Então, é só arrastar o Pin In Rot do Get Forward Vector para abrir a lista de Nodes e escolher o Make Rotator que aparece no final da lista, como mostra a sétima imagem em anexo.
Em seguida, conecte apenas o Pin do eixo Z do Break Rotator no Pin do eixo Z do Make Rotator, como mostra a imagem.
8- Agora é só fazer a mesma coisa para o movimento para a direita e esquerda.
Primeiro você vai pegar o Event que criou para as teclas A e D ou setinhas laterais, vai criar outro Node Add Movement Input e ligar o Pin Scale Value dele no Pin Axis Value do Event, como mostra a oitava imagem em anexo.
Também vai fazer a mesma coisa no Pin do World Direction, mas em vez de usar o Node Get Forward Vector, vai usar o Get Right Vector, pois agora precisamos saber para onde está virado o lado direito do personagem e não a frente.
Em seguida, você pode conectar o mesmo Make Vector que usou para o Forward porque o personagem é o mesmo e a rotação também, então, cada Node vai calcular o vetor para o lado que desejamos.
9- Os giros da cabeça são os mais fáceis, é só pegar os Events que criou para eles, arrastar o Pin de execução de cada um e adicionar um Controller.
No Event para girar a cabeça para os lados, que eu chamei de GiraCabeça, você vai adicionar o Node Add Controller Yaw Input e conectar o Pin Val com o Axis Value do Event, como mostra a nona imagem em anexo.
No Event para olhar para cima e para baixo, que eu chamei de CimaBaixo, você vai adicionar o Node Add Controller Pitch Input e conectar o Pin Val com o Axis Value do Event, igual está na imagem.
Lembre-se de compilar antes de salvar.
10- Agora precisa configurar a cena para usar este personagem e o seu Game Mode, então, acesse o World Settings pelo ícone Settings acima das Viewports ou no menu Window, normalmente a gente coloca o World Settings do lado do painel Details como mostra a última imagem em anexo, pois é onde também estão as configurações de renderização.
Adicione o GameMode que criou no campo Game Mode Override como mostra a imagem, no caso o nome do meu é Teste_GameMode.
Agora acione o Play para rodar a aplicação interativa e veja se consegue se movimentar corretamente pela cena, veja se as teclas que definiu correspondem aos movimentos do personagem, assim como o controle da cabela pelo mouse.
É comum algum movimento não funcionar, ir apenas para um lado ou para o lado contrário do que deveria, se isso acontecer provavelmente é porque o valor do Scale está errado ou invertido na definição das teclas que fizemos no primeiro passo.
Se tudo funcionar bem podemos prosseguir para definir e identificar o clique.
Abração e tudo de bom.
André Vieira