1. Como Animar um Personagem no Unreal Engine 5 com Animation Blueprints e Blendspaces [0]

Para animar um personagem no Unreal Engine 5, é necessário criar um Animation Blueprint e um Blend Space para gerenciar as transições de animação com base na velocidade do personagem.

1.1. Criando um Blend Space 1D para Transições de Animação [8]

  1. Um Animation Blend Space permite transições suaves entre diferentes animações, dependendo de um valor, como a velocidade do personagem [8].
    1. Para movimentos simples (parado, andando, correndo) sem diagonais ou movimentos para trás, é recomendado usar o Blend Space 1D [11].
    2. Ao criar o Blend Space 1D, é preciso selecionar o esqueleto do personagem ao qual as animações serão aplicadas [16].
  2. Configurando o eixo horizontal do Blend Space 1D para a velocidade [22].
    1. O eixo horizontal deve ser nomeado "Speed" (Velocidade) [22].
    2. O valor máximo do eixo deve ser a velocidade máxima do personagem (por exemplo, 500 para um jogo de terceira pessoa padrão), e o mínimo deve ser zero [23].
  3. Adicionando animações ao Blend Space 1D [26].
    1. A animação de idle (parado) é colocada no ponto onde a velocidade é zero [26].
    2. A animação de walk (andando) é adicionada em um ponto de velocidade mais alta; se houver uma animação de corrida, o Unreal Engine fará a transição de andar para correr [29].
    3. Ao mover o cursor sobre a linha do tempo enquanto segura Ctrl, é possível visualizar a transição suave do personagem entre as animações de parado e andando conforme a velocidade aumenta [32].

1.2. Integrando o Blend Space em um Animation Blueprint [35]

  1. Criando o Animation Blueprint para o personagem [35].
    1. Clique com o botão direito, selecione "Animation Blueprint" e escolha o esqueleto do personagem [35].
    2. Nomeie o Animation Blueprint (por exemplo, "For Creators") e salve-o [36].
  2. Entendendo as seções do Animation Blueprint [37].
    1. O AnimGraph é onde as animações e os slots são conectados a uma pose de saída [38].
    2. O Event Graph funciona como um mini blueprint para o Animation Blueprint, permitindo obter informações do personagem, como velocidade, velocidade, pulo ou se está no ar, para controlar as transições no AnimGraph [39].
  3. Conectando o Blend Space ao AnimGraph [42].
    1. Arraste o Blend Space criado do Content Browser para o AnimGraph [43].
    2. Conecte o nó do Blend Space diretamente à "Output Pose" [47].
    3. Ao compilar, o personagem estará na animação de idle; alterar manualmente o valor da velocidade no Blend Space (por exemplo, para 500) fará com que ele mude para a animação de caminhada [48].
  4. Automatizando a velocidade do personagem no Animation Blueprint [51].
    1. Para que a velocidade do Blend Space mude dinamicamente com a velocidade do personagem no jogo, clique com o botão direito no pino de entrada de velocidade do Blend Space e promova-o a uma variável [51].
    2. No Event Graph, adicione um nó "Initialize Animation" e "Blueprint Initialized Animation" [55].
    3. Faça um "Cast to BP Third Person Character" (ou o nome do seu personagem) e promova o resultado a uma variável para armazenar uma referência ao personagem [57].
    4. No evento "Update Animation", obtenha a variável do personagem, então obtenha sua "Velocity" (velocidade) [59].
    5. Use o nó "Vector Length" para converter o vetor de velocidade em um valor float (número decimal) [62].
    6. Conecte a saída "Length" à variável de velocidade criada anteriormente, que agora controlará a velocidade no Blend Space [63].

2. Ajustes e Funcionalidades Avançadas do Animation Blueprint [65]

Após configurar as animações básicas, é possível refinar o comportamento do personagem e adicionar funcionalidades mais complexas, como Animation Montages e State Machines.

2.1. Ajustando a Velocidade do Personagem e Adicionando Slots de Animação [65]

  1. Configurando o Mesh e a Anim Class do personagem [65].
    1. Abra o Blueprint do personagem (por exemplo, "BP Third Person Character") [65].
    2. Selecione o componente "Mesh" e atribua o modelo do seu personagem (por exemplo, Kratos) [67].
    3. Na seção "Anim Class", defina o Animation Blueprint que você acabou de criar [70].
  2. Ajustando a velocidade de caminhada para corresponder à animação [74].
    1. Se o personagem estiver se movendo muito rápido para a animação de caminhada, selecione o "Character Movement Component" [78].
    2. Diminua o valor de "Max Walk Speed" (Velocidade Máxima de Caminhada) (por exemplo, para 400) [79].
    3. No Blend Space, ajuste o ponto da animação de caminhada para corresponder à nova velocidade máxima de caminhada (por exemplo, 400) [81].
  3. Adicionando um Default Slot para Animation Montages [87].
    1. Para que as Animation Montages possam ser reproduzidas, é necessário adicionar um nó "Default Slot" no AnimGraph [87].
    2. O "Default Slot" é o slot padrão que as Animation Montages usarão para serem reproduzidas, garantindo que elas não sejam sobrescritas por outras animações [89].

2.2. Utilizando State Machines para Gerenciar Estados de Animação [95]

  1. Criando uma State Machine para organizar os estados de animação [95].
    1. No AnimGraph, adicione um nó "State Machine" e renomeie-o (por exemplo, "Locomotion") [96].
    2. Mova o Blend Space de idle/walk para dentro do estado "Locomotion" da State Machine [101].
    3. Isso ajuda a organizar melhor as animações, especialmente quando há muitos estados [103].
  2. Adicionando novos estados e transições [106].
    1. Dentro da State Machine, é possível adicionar novos estados, como "Crouching" (agachando) [106].
    2. Para criar uma transição entre estados (por exemplo, de "Idle/Walk" para "Crouching"), arraste uma seta de um estado para o outro [110].
    3. Para a transição de volta (de "Crouching" para "Idle/Walk"), arraste uma seta no sentido inverso [112].
  3. Definindo condições para as transições [113].
    1. Clique na seta de transição para abrir suas propriedades e adicione uma condição, como uma variável booleana "IsCrouching" (Está Agachando) [113].
    2. Se "IsCrouching" for verdadeiro, a transição para o estado de agachamento ocorrerá [115].
    3. Para a transição de volta, a condição seria "NOT IsCrouching", ou seja, se o personagem não estiver agachando, ele retornará ao estado de idle/walk [116].
  4. Conectando as variáveis da State Machine ao Event Graph [118].
    1. No Event Graph, acesse as variáveis de animação do personagem (como "IsCrouching") [118].
    2. Defina essas variáveis com base nas ações do personagem no código do seu Blueprint, permitindo que as transições da State Machine funcionem dinamicamente [118].