Você pode usar uma combinação dos ativos equivalentes, de tabela equivalente e de tabela seletora para compilar uma lógica dinâmica de seleção de ativos e acionar animações com base em variáveis no projeto. Por exemplo, você pode usar ativos equivalentes e de tabela equivalente para selecionar que tipo de conjunto de animações deve ser carregado e usado para o seu personagem, como diferentes conjuntos de armas. Você também pode usar tabelas seletoras para selecionar dinamicamente ativos de animação individuais, como reações a impactos diferentes com base na posição em que o personagem é atingido, usando variáveis contextuais do projeto.
Você pode usar o documento a seguir para saber mais sobre como configurar um sistema de seleção de animação dinâmico na Unreal Engine.
Embora o foco desta documentação seja o uso de seletores e tabelas equivalentes para selecionar ativos relacionados à animação, como sequências de animação, montagens ou classes, o sistema em si é genérico e pode ser usado para selecionar qualquer tipo de ativo, objeto ou classe.
Pré-requisitos
Habilite o plugin Chooser. Vá para Editar > Plugins na barra de menus e localize o Selecionador na seção Animação ou use a barra de pesquisa. Habilite o plugin e reinicie o editor.
Seu projeto contém um conjunto de animações que você deseja selecionar dinamicamente com base na situação contextual no tempo de execução. Pode ser conjuntos de animações únicos, animações de jogabilidade relevantes, como sinos de animação contextuais, ou conjuntos de animações relevantes para itens equipáveis, como armas.
Seu projeto contém um Blueprint de animação funcional no qual você pode compilar uma lógica de seleção de animação dinâmica.
Configure um sistema de seleção de animação
Aqui, você pode ler sobre como definir um sistema de seleção de animação no projeto para selecionar dinamicamente a reprodução da animação de reação a impactos com base no contexto do projeto em tempo de execução.
Crie um ativo equivalente
Um ativo equivalente é usado para armazenar as informações de contexto que indicam o ativo de tabela equivalente que está ativo e outras variáveis relevantes.
Para criar um ativo equivalente, use (+) Adicionar no Navegador de Conteúdo e vá para Diversos > Ativo equivalente.
Crie um ativo equivalente para cada conjunto de animações no qual você deseja selecionar dinamicamente animações para mover o personagem, como um conjunto de animações de ociosidade, caminhada ou corrida.
Depois de criar os ativos equivalentes, abra-os para acessar as configurações de cada um deles.
Para cada ativo equivalente, defina a propriedade Tipo como o tipo de ativo de animação que você está usando, neste caso AnimSequenceBase.
Defina a propriedade Dados de contexto como a opção Blueprint de animação ao adicionar uma nova matriz Índice por meio de ( +) Adicionar e a opção Classe do tipo de objeto de contexto .
Expanda as configurações da matriz Índice e defina a propriedade Classe para usar seu Blueprint de animação ABP_Manny. Confirme se a propriedade Direção foi definida como Leitura.
Configuração de Blueprint de animação
Após configurar o ativo equivalente, crie uma variável no Blueprint de animação do personagem para armazenar a tabela equivalente ativa durante o tempo de execução. Para criar essa variável, abra o Blueprint de animação do personagem e crie uma nova variável no painel Meu Blueprint usando (+) Adicionar. Em seguida, defina o tipo Variável como Referência de objeto de tabela equivalente. Após criar a variável, salve e compile o Blueprint de animação.
A variável "Tabela equivalente" será usada no gráfico de animação por um nó Evaluate Proxy para determinar a tabela equivalente ativa no tempo de execução.
Crie ativos de tabela equivalente
Um ativo de tabela equivalente é usado para armazenar os conjuntos de ativos de animação, que podem ser selecionados dinamicamente em tempo de execução. Por exemplo, uma tabela equivalente pode armazenar as animações de ociosidade de um personagem, enquanto outra pode armazenar o seu conjunto de animações de caminhada ou corrida.
Para criar um ativo de tabela equivalente, use (+) Adicionar no Navegador de Conteúdo e vá para Diversos > Tabela equivalente.
Crie um ativo de tabela equivalente para cada situação contextual em que um conjunto de animações diferente seja necessário, como conjuntos de animações de locomoção para personagens desarmados e personagens que empunham uma pistola ou fuzil.
Depois de criar um ativo de tabela equivalente, abra o ativo para acessar os valores da tabela.
Na tabela equivalente, adicione uma entrada para cada ativo equivalente usando (+) Adicionar linha e selecionando o ativo. Em seguida, você pode atribuir o ativo de animação associado do conjunto usando a coluna Valor.
No exemplo de fluxo de trabalho a seguir, um ativo ProxyTable_Unarmed recebe a atribuição das animações Unarmed_Idle e Unarmed_Walk nas linhas ProxyAsset_Idle e ProxyAsset_Walk respectivamente. Em um ativo ProxyTable_Pistol, as mesmas linhas do ativo equivalente recebem a atribuição das animações Pistol_Idle e Pistol_Walk, respectivamente.
A coluna Valor também pode armazenar uma referência de classe, um ativo de seleção ou um equivalente de consulta para obter sistemas de seleção de animação mais dinâmicos.
Uso de tabelas equivalentes em tempo de execução
Você pode usar ativos de tabela equivalente no tempo de execução por meio de uma função de nó de animação em um nó Sequence Player. Para criar uma função para selecionar um ativo de tabela equivalente, selecione o nó Sequence Player e adicione uma função na vinculação Ao atualizar.
Adicione um nó Evaluate Proxy a partir do nó On Update.
Em seguida, selecione o nó e o ativo equivalente na propriedade Equivalente por meio do menu suspenso .
Em seguida, promova o resultado a uma variável e conecte a saída ao nó Sequence Player.
Em seguida, você pode definir o ativo da tabela equivalente no nó Evaluate Proxy usando diversos métodos, como uma tabela de seleção, para alterar dinamicamente o conjunto de animações que aciona o personagem.
Crie um ativo de tabela de seleção
Um ativo de seletor é usado para armazenar conjuntos de dados de animação que incluem várias iterações de uma animação, que podem ser selecionados e reproduzidos com base no contexto. Por exemplo, uma tabela de seletor pode conter um conjunto de animações de reação a impactos, em que cada entrada é uma animação que reage com base em uma parte diferente do corpo sendo atingida (braços, pernas, tórax, cabeça), que pode ser selecionada com base em uma variável contextual, como o local do impacto.
Para criar um ativo de tabela de seleção, use (+) Adicionar no Navegador de Conteúdo e vá para Diversos > Tabela de seleção.
Depois de criar uma tabela de seleção, você pode abrir o ativo para acessar as propriedades dele.
Crie um novo elemento de matriz na propriedade "Dados de contexto" usando (+) Adicionar e defina a propriedade como a opção Classe de tipo de objeto. Em seguida, expanda a matriz Índice e defina a propriedade Classe como o Blueprint de animação do seu personagem e verifique se a propriedade Direção foi definida como Leitura. Em seguida, você pode definir o tipo de objeto de saída como o ativo de animação que está sendo usado. Como este exemplo de fluxo de trabalho usa sequências de animação, foi selecionada a opção de classe AnimSequenceBase.
No painel Tabela de Seleção, você pode começar a adicionar colunas para definir as variáveis do Blueprint de animação que deseja influenciar no processo de seleção usando o botão (+) Adicionar coluna. Depois de criar uma coluna, você pode definir qual variável de Blueprint de animação pode influenciar a seleção e os valores ou estados da variável que devem ser alcançados para selecionar o ativo de sequência de animação em cada linha.
Neste exemplo de fluxo de trabalho, a variável booleana IsCrouching selecionará a animação MM_HangingIdle quando o valor for falso e selecionará MM_Rifle_Walk_Left quando o valor for verdadeiro. A variável MoveemntAngle selecionará a animação MM_HangingIdle quando o valor estiver entre -100 e 100 e a animação MM_Rilfe_Walk_Left só será selecionada quando o valor for 0,0.
Para controlar as animações dos personagens usando esse processo de seleção, defina a entrada da tabela equivalente para Avaliar seletor e atribua o ativo de tabela de seleção.
A animação selecionada será alterada com base no ativo de tabela equivalente ativo e na seleção feita pela tabela de seleção.