2 minuto(s) de leitura

Neste projeto serão apresentados os elementos necessários para a construção de simulação de comportamentos, como por exemplo, busca e detecção de jogadores bem como configurar o personagem controlado pela IA em diferentes estados de comportamento.

1. Preparando o projeto

Em este passo iremos preparar as pastas, configuração inicial do projeto e Character do jogador. Vamos criar o projeto AulaIA, considere a estrutura de pastas Estrutura do Projeto.

Crie um novo level de nome LevelTeste e salvar na pasta Maps, logo em seguida configure o projeto para que o levelTeste seja inicializado ao abrir o projeto usando Project Settings > Maps & Mods.

A seguir vamos criar os Blueprints dos personagens e os controles.

  • BP_PlayerController do tipo PlayerController;
  • BP_GameMode do tipo GameMode;
  • BP_CharacterBase do tipo Character (vamos duplicar e utilizar o existente no projeto);
  • BP_NPC_Controller do tipo AIController;
  • BP_HumanBase do tipo BP_CharacterBase.
  • BP_NPC do tipo BP_CharacterBase.
  • BH_NPC do tipo Behaivor Tree;
  • BB_NPC do tipo Blackboard;

Configure World Settings adicionando as classes de controle de jogador BP_PlayerController, modo do jogo BP_GameMode e o personagem BP_HumanBase;

1.1. Vídeo preparando o projeto de IA

2. NPC básico

A classe Blueprint BP_NPC do tipo Character/BP_CharacterBase e logo em seguida adicionar a malha do esqueleto (Skeletal mesh) e as animações do manequim padrão do Engine.

Figura: AutoPossessAI e AI Controller Class -
Figura: Alterando os parâmetros da classe em Details.

AutoPossesAI - Determina quando o Peão é criado e possuído por um Controlador AI (no início do nível, quando gerado, etc).

Opções Descrição
Placed in World Apenas possuído por um AI Controller se o Pawn for colocado no mundo;
Placed in World or Spawned O peão é automaticamente possuído por um AI Controller sempre que é criado;
Spawner Possuir apenas por um controlador AI se o peão for gerado após o carregamento do mundo.

AI Controller Class - É a classe base de controladores para peões controlados por IA. Os controladores são atores não físicos que podem ser anexados a um peão para controlar suas ações. AIControllers gerenciam a inteligência artificial para os peões que controlam.

Informação: Em jogos em rede, eles existem apenas no servidor.

2.1. Vídeo implementando o NPC

2.2. Alterando velocidade

Implementando uma função para alterar a velocidade do NPC.

Figura: Função : NPC > Update Walk Speed -
Figura: Lógica para alterar a movimentação.

3. AI MoveTo

O “AI Move To” é uma função projetada para permitir que personagens controlados por inteligência artificial (AI) naveguem pelo ambiente do jogo até um destino específico.

Figura: AI MoveTo -
Figura: Movimenta o peão com AIController para um local específico.

4. NavMesh

Permite que os peões encontrem seu caminho através de obstáculos, rampas ou saltos de saliências. Enquanto estiver no editor e com um NavMeshBoundsVolume colocado no nível, pressionar a tecla P mostrará/ocultará a área que o NavMesh cobre.

Figura: NavMeshBoundsVolume -
Figura: Adicione o componente NavMeshBoundVolume para definir fronteiras de movimentação do NPC.

Você pode pressionar a tecla P para apresentar a NavMesh no ViewPort (áreas verdes indicam os locais de navegação).

5. Movimentação

Neste passo iremos suavizar a movimentação do NPC configurando os controles de rotação.

Na classe principal BP_NPC configure :

  • Use Controller Rotation Yaw = False para que o personagem não utilize o controlador na rotação ;

  • No Componente CharacterMovement configure Rotation Rate Z=540

Aumenta a taxa de rotação;

  • Em Orient Rotation to Movement = true;

Seu personagem se volta para a direção da viagem. Não importa para que lado a câmera esteja.

5.1. Vídeo Implementando a movimentação do NPC