← Back to list

Unreal Engine: Third Person Player & Animações

Modificando o modelo do personagem third person e gerenciando animações com uma máquina de estados

Vini Cassol · 2022-04-19 02:29 · 1 claps · 5.3 min read
#ue4 #unreal-engine #third-person-shooter-game #game-development #desenvolvimento-de-jogos
Open on Medium ↗
Wiki topics: 🎮 · Gaming

Unreal Engine: Third Person Player & Animações

Modificando o modelo do personagem third person e gerenciando animações com uma máquina de estados

Este passo a passo tem como ojetivo a configuração de um personagem em terceira pessoa que represente o jogador em um level utilizando a Unreal Engie. Quando utilizamos o template de terceira pessoa da Unreal, por padrão, o personagem do player é o manequim default da UE; entretanto, na grande maioria das vezes, ao desenvoler um jogo, precisamos trabalhar com nosso próprio personagem.

UE Manequim, padrão no templade para jogos de terceira pessoa.

UE Manequim, padrão no templade para jogos de terceira pessoa.

Para que possamos trazer o nosso personagem para dentro do jogo que estamos desenvolvendo, é necessário que tal personagem seja desenvolvido considerando a presença de:

  • Um modelo 3D (malha) do personagem
  • Esqueleto — Rigging
  • Animações correspondentes ao esqueleto do personagem

Considerando que tais elementos estejam presentes no personagem, você pode usar tanto personagens autorais, produzidos em algum software de modelagem / animação (por exemplo o Blender), bem como personagens disponívies no market place ou até mesmo em sites externos. Neste exemplo, vamos seguir com personagens e animações coletadas no site mixamo.com e que são facilmente importáveis para nosso projeto de Third Person Game na UE.

Ponto de Partida

Para começar, precisamos então criar um projeto utilizando o template para third person. A seguir, podemos importar para o projeto o modelo do personagem (com esqueleto) e também as animações que queremos utilizar.

Assets necessários para um novo player em third person: Modelo 3D (+ texturas, etc) com o respectivo esqueleto e animações desejadas

Assets necessários para um novo player em third person: Modelo 3D (+ texturas, etc) com o respectivo esqueleto e animações desejadas

Após importar os devidos assets, o passo seguinte consiste em localizar na aba Content Browser a blue print ThirdPersonCharacter. Precisamos duplicar esta blue print, pois como ela já está preparada para um personagem em terceira pessoa, será a base para a configuração do nosso player. Vamos chamar a BP duplicada de BP_Jolleen. Por questão de organização, podemos mover a BP_Jollenn para para o diretório onde guardamos os demais elementos de nosso personagem.

A blue print ThirdPersonCharacter foi duplicada e servirá de base para nosso novo personagem.

A blue print ThirdPersonCharacter foi duplicada e servirá de base para nosso novo personagem.

Agora sim estamos com tudo pronto para trazer nosso personagem para o jogo!

Customização da Blueprint

Para customizar a bluprint de nosso personagem, o primeiro passo é entrar na blueprint e acessar a viewport. Nela, vamos atulizar os detalhes do componente Mesh e trocar o manequim defaul da UE pelo nosso novo personagem.

Substituição da malha do UE manequim pelo nosso novo personagem

Substituição da malha do UE manequim pelo nosso novo personagem

Porém, neste momento, o personagem ainda não está animado. Para que possamos controlar as animações, precisamos que o personagem possua tamém uma Animation Blueprint.

Animation Blueprint

Para a criação de uma animation blueprint, basta um clique com o botão direito na área de content browser e então, selecionar a opção Animation -> Animation Blueprint. Ao criar uma nova animation blueprint, será necessário selecionar o esqueleto correspondente ao personagem que queremos animar. Vamos criar a ABP_Jolleen.

Cuidado para não selecionar o UE_Manekin. Atente para selecionar o esqueleto de seu novo personagem.

Além de criar a ABP, precisamos especificar que nosso personagem irá utilizá- la. Esta associação é feita através do componente Animation.

ABP referenciada à Skeleton Mesh do Personagem

ABP referenciada à Skeleton Mesh do Personagem

Após criada e referenciada, quando acessarmos a respectiva ABP, será possível fazer suas devidas configurações. Observe que ao acessar a ABP, na aba Asset Browser, verificamos todas as animações que importamos e são relacionadas ao esqueleto que estamos trabalhando dentro da ABP.

ABP da da skeletal mesh com as respectivas animações referenciadas.

ABP da da skeletal mesh com as respectivas animações referenciadas.

Máquina de Estados

Para que possamos gerenciar as transições de uma animação para a outra, é necessário criar uma máquina da estados. Para isso, basta clicar com botão direito e buscar por Add New State Machine. Em seguida podemos conectar nossa State Machine (SM) com o Output Pose.

AM responsável por controlar as transições entre as animações do personagem.

AM responsável por controlar as transições entre as animações do personagem.

A máquina de estados que acabamos de criar é responsável por atualizar a pose que será executada pelo personagem a cada atualização. Porém, para que isso aconteça, precisamos acessar nossa SM e especificar as transações entre os estados representados por cada animação.

Neste primeiro momento, vamos considerar que o personagem inicia parado (idle) e ao se mover, precisa mudar seu estado para andando (walking). Da mesma forma, quando parar de andar, é necessário que a animação de idle seja executada. Para esta definição na SM, basta trazer as animações para o grafo e conectá-las conforme a imagem a seguir:

SM considerando que o personagem pode estar parado ou andando

SM considerando que o personagem pode estar parado ou andando

Porém, neste momento, o personagem fica sempre na animação de Idle, pois ainda não definimos as condições para que a transição entre Idle e Walking (e vice-e-versa) possa acontecer. Para isso vamos criar uma variável bool, chamada canWalk. O objetivo é que quando esta variável for verdadeira, a transição para a animação Walking aconteça e, no momento em que for definida como falsa, a animação de Idle seja retomada.

Após criar a variável, vamos editar as condições para a transição Idle to Walking através do icone circular com duas setas entre as respectivas animações. Nesse momento basta conectar a variável com o resultado que permite a transição.

Quando a varivel CanWalk for verdadeira, a transição de animação será executada

Quando a varivel CanWalk for verdadeira, a transição de animação será executada

Agora, precisamos fazer o contrário. Na transição da volta, Walking to Idle, precisamos especificar que o critério para que tal transição aconteça, é caso a variável esteja falsa.

Quando CanWalk for falso, a transição para Idle será reaizada.

Quando CanWalk for falso, a transição para Idle será reaizada.

Movimentação afetando Animação do Personagem

Como o estamos utilizando como base a blueprint padrão do third person character, já temos o módulo de movimentação (usando WASD) especificado no Event Graph de nossa BP. Assim, vamos seguir a mesma lógica da movimentação para que possamos atualizar as animações no momento devido.

Essa verificação é feita a cada frame. Para isso, vamos adicionar o nodo Event Tick, que será responsável por, a cada frame, verificar se o jogador está se movendo ou está parado. Para esta verificação utilizamos também os nodos Move Right e Move Forward, que mapeiam se o personagem está se deslocando nos eixos do plano.

A cada frame, verificamos se o personagem se moveu. Sabendo isso podemos setar a animação específica.

A cada frame, verificamos se o personagem se moveu. Sabendo isso podemos setar a animação específica.

Com o componente Mesh, selecinado, podemos inserar o nodo Get Anim Instace (mesh). Com este nodo, conseguiremos acessar a BPA de nosso personagem e definir o valor para a variavel CanWalk.

Get Anim Instance: Nos permite acessar a BPA relacionada ao nosso modelo 3D

Get Anim Instance: Nos permite acessar a BPA relacionada ao nosso modelo 3D

A partir da Malha (mesh) relacionado à BPA do personagem, podemos atualizar a variavel CanWalk da seguinte forma:

Atualização da variável CanWalk.

Atualização da variável CanWalk.

Não esqueça de compilar e salvar as alterações!

Inserção no Level

Para que possamos substituir o UE_Manekin pelo nosso personagem, precisamos atualizar as configs do projeto para que a BPA_Jolleen seja utilizada. Para isso, devemos acessar: Settings Project SettingsMaps and Modes.

Pronto, agora basta dar play e seu personagem já estará na cena!

Resultado final!

Resultado final!


메타데이터
post_id
5cf3cad03af7
slug
unreal-engine-third-person-player-animações-5cf3cad03af7
url
https://medium.com/@vinicassol/unreal-engine-third-person-player-anima%C3%A7%C3%B5es-5cf3cad03af7
canonical_url
https://medium.com/@vinicassol/unreal-engine-third-person-player-anima%C3%A7%C3%B5es-5cf3cad03af7
author_url
https://medium.com/@vinicassol
status
ok
fetched_at
2026-06-14 11:28:49