Você está na página 1de 9

Animação de Personagem

Animação Unidade do Sistema permite que você crie personagens animados pele bonita. O Sistema de
Animação suporta a mistura de animação, mixagem, animações aditivo, andar a sincronização do ciclo do
tempo, as camadas de animação, o controle sobre todos os aspectos da reprodução de animação (tempo,
velocidade, mistura-pesos), esfola malha com 1, 2 ou 4 ossos por vértice e finalmente, de base física
ragdolls.
Existem algumas boas práticas para a criação de um personagem equipado com um ótimo desempenho
na Unidade. É recomendado que você leia sobre estas técnicas na Optimizado Personagens
Modelagem página.
Fazer um personagem animado envolve duas coisas: que se deslocam -los pelo mundo e anima -los
adequadamente.
Esta página concentra-se na animação. Se você quiser saber mais sobre o movimento em torno de
personagens (para um estilo de jogo Super Mario Bros ou um jogo de tiro em primeira pessoa), dê uma
olhada na página do Controlador de caracteres .
Se você quiser, para saltar rapidamente para um dos temas abordados nesta página:

 Personagem Animações Importação


o Animação Divisão
o Múltiplos Arquivos
o Cinemática inversa
 Inserir em uma Unidade de Cena
 Animando o Personagem
o Misturando animação
o Animação Camadas
o Aditivo Animação

Você pode baixar um demo exemplo mostrar uma configuração pré-personagens animados aqui .
Importação As animações
Primeiro de tudo temos de importar o personagem. Unidade nativamente importações Maya (. Mb ou. Ma)
arquivos, Cinema 4D (. C4d) arquivos, e arquivos FBX que podem ser exportados a partir de pacotes
mais animação. Clique aqui para saber como exportar a partir do modelo / pacote de animação .
Importação de animações utilizando Animação Divisão
A maneira mais conveniente para os animadores a trabalhar é ter um modelo único de todas as
animações. Ao importar o modelo de animação, você pode definir os quadros que compõem cada parte
da animação. Unidade vai dividir automaticamente a animação para as partes individuais,
chamado clipes de animação .
Por exemplo:

 frames de animação durante a caminhada 1-33


 animação de correr durante os quadros 41-57
 animação retroceder durante quadros 81-97

Para importar as animações você simplesmente colocar o modelo em Ativos pasta do seu projeto. A
unidade irá automaticamente importar. Destaque-lo noProjeto Ver e editar as configurações de
importação no Inspector .
A importação de diálogo Configurações para uma malha
Nas configurações de importação, o Split Animações tabela é onde você diz que os quadros da Unidade
em seu arquivo de ativos que compõem clip de animação. Os nomes que você especificar aqui são
usadas para activá-los em seu jogo.
nome Define o clip de animação de nome dentro da Unidade.
início do frame O primeiro quadro da animação. O número do quadro refere-se ao mesmo quadro no
programa 3D usado para criar a animação.
stop frame O último quadro da animação.
WrapMode Define como se o tempo fora do alcance de reprodução do clipe de ser tratado (uma
vez, Loop, PingPong, ClampForever).
frame loop Se ativado, um extra frame loop é inserido no final da animação. Este quadro
corresponde ao primeiro quadro do clipe. Use isto se você quiser fazer uma animação
em loop ea última primeiros quadros e não correspondem exatamente.
Importando animações usando arquivos de modelo múltiplo
A outra maneira de importar animações é seguir o esquema de nomeação @ animação. Você pode criar
arquivos de modelo separados e usar esta convenção de nomenclatura:. Nome do modelo '@' nome
animação 'FBX

Um exemplo de quatro arquivos de animação para um personagem animado


Unidade importa automaticamente todos os quatro arquivos e recolhe todas as animações para o arquivo
sem o sinal @ pol No exemplo acima, o arquivo goober.mb será criada para fazer referência ocioso,
saltar, andar e walljump automaticamente.
Importando Cinemática Inversa
Ao importar personagens animados a partir de Maya que são criados usando IK, você tem que verificar
o IK Bake & simulação na caixa Configurações de importação. Caso contrário, seu personagem não vai
animar corretamente.
Trazer o personagem em cena
Quando você importou o modelo que você arrasta o objeto do ponto de vista do projeto na cena
visão ou hierarquia .

O personagem animado é adicionado arrastando-a para a cena


O personagem acima tem três animações na lista de animação e sem animação padrão. Você pode
adicionar mais animações para o personagem, arrastando clipes de animação da Visão do Projeto para o
personagem (em qualquer hierarquia ou visualizar a cena). Isso também irá definir o padrão de
animação. Quando apertei o play, a animação padrão será reproduzida.
DICA: Você pode usar isso para testar rapidamente se sua animação é reproduzida
corretamente. Também utilize o modo de quebra ver comportamentos diferentes da animação,
especialmente looping.
Animando o Personagem
A animação de personagens reais é feito através de interface de scripting Unity.
Misturando animação
Nos jogos de hoje, misturando animação é um elemento essencial para garantir que os personagens têm
animações. Animadores criar animações em separado, por exemplo, um ciclo de caminhada, o ciclo de
execução, animação ocioso ou animação atirar. Em qualquer ponto no tempo em seu jogo você precisa
ser capaz de transição entre a animação ociosa no ciclo de caminhada e vice-versa. Claro que você não
quer nenhum saltos repentinos no movimento, que a animação de fazer a transição.
Este é o lugar onde a mistura de animação vem dentro da Unidade Em que você pode ter uma
quantidade arbitrária de animações jogando no mesmo personagem. Todas as animações são misturados
ou somados para gerar a animação final.
Nosso primeiro passo será fazer um personagem bom misturar entre os ociosos e andar animações. A fim
de tornar nosso trabalho mais simples quando o script, vamos primeiro definir o modo de quebra da
animação para Loop . Então, vamos desligar tocar automaticamente para garantir que nosso script é a
única animação a jogar.
Nosso primeiro script para animar o personagem é bastante simples, só precisamos de alguma forma
para detectar o quão rápido a nossa personagem está se movendo, e então desaparecem entre a pé e
animação ocioso. Para este teste simples que utilizamos os eixos de entrada de pré-configuração.

function Update ()

if (Input.GetAxis("Vertical") > 0.2)

animation.CrossFade ("walk");

else

animation.CrossFade ("idle");

Para obter este script em execução:

1. Criar um javascript usando Activos-> Criar-> Outras Javascript .


2. Copie e cole o código em que
3. Arraste o roteiro para o personagem (ele precisa ser o mesmo GameObject como a animação)

Quando você pressiona o botão Play, o personagem vai começar a andar, mesmo quando você
mantenha pressionada a tecla de seta para cima e retornar à pose ocioso quando você liberá-lo.
Animação Camadas
Camadas são um conceito extremamente útil que permite que você animações grupo e ponderação
priorizar.
Na animação do sistema de Unity, você pode misturar entre clipes de animação como muitos como você
deseja. Você pode atribuir pesos mistura manualmente ou simplesmente usar animation.CrossFade () ,
que vai animar o peso automaticamente.
Blend pesos são sempre normalizada antes de ser aplicado
Vamos dizer que você tem um ciclo de caminhada e um ciclo de execução, ambos têm um peso de 1
(100%). Quando a unidade gera a animação final que irá normalizar o peso, o que significa andar vai
contribuir com 50% para a animação, o ciclo de execução também contribuem com 50%.
Isso tudo é muito bom, mas muitas vezes você desejar priorizar a animação que recebe maior peso
quando há duas animações jogar. Certamente você poderia apenas ter certeza de que o peso montantes
até 100% manualmente, mas é muito mais fácil de usar camadas para essa finalidade.
Exemplo de estratificação
Como exemplo, você pode ter uma animação de tiro, uma marcha lenta e um ciclo de caminhada. Você
vai querer continuamente fade entre o pé ea animação ocioso com base na velocidade do jogador. Mas
quando o jogador atira pretende apenas mostrar a animação atirar. Assim, a animação atirar
essencialmente uma prioridade mais elevada.
A maneira mais fácil de fazer isso é simplesmente continuar tocando as animações de andar e ocioso
durante as filmagens. Então nós precisamos ter certeza de que a animação é atirar em uma camada
superior de ociosos e andar. Isto significa que a animação atirar receberá mistura pesos em primeiro
lugar. A caminhada e animação ocioso receberá pesa somente se a animação tiro não usar todos os
100% de mistura de pesos. Então, quando Misturar a animação atirar dentro, o peso vai começar a zero e
em um curto período passam a ser 100%. No início da camada de pé e ociosa ainda receberá mistura
pesos, mas quando a animação é atirar completamente desbotadas, eles não receberão pesos em
tudo. Este é exatamente o que precisamos!

function Start (){

/ / Set todas as animações para loop animation.wrapMode = WrapMode.Loop;

/ / exceto tiro animation["shoot"].wrapMode = WrapMode.Once;

/ / Coloque ocioso e caminhar para as camadas inferiores


(Acamada padrão é sempre 0)
/ / Isto irá fazer duas coisas
/ / - Como parte aérea e inativo / caminhada estão em
camadasdiferentes que não afetará
/ / um do outro a reprodução quando chamado crossfade.
/ / - Como é filmar em uma camada superior, a animação
vaisubstituir idle / caminhada
/ / animações quando desapareceu dentro

animation["shoot"].layer = 1;

/ / Stop animações que já estão jogando


/ / (No caso do usuário esqueceu de jogar desativarautomaticamente)
animation.Stop();

}
function Update () {

/ / Com base na tecla que é pressionada,


/ / reproduzir a animação a pé ou a animação ocioso
if (Mathf.Abs(Input.GetAxis("Vertical")) > 0.1)

animation.CrossFade("walk");

else

animation.CrossFade("idle");

// Shoot

if (Input.GetButtonDown ("Fire1"))

animation.CrossFade("shoot");

Por padrão, o animation.Play () e animation.CrossFade () irá parar ou fade out animações que estão na
mesma camada. Este é exatamente o que queremos, na maioria dos casos. Na nossa, ocioso correr,
atirar exemplo, jogando ocioso e executar não afetará a animação da parte aérea e vice-versa (você pode
alterar esse comportamento com um parâmetro opcional para animation.CrossFade se você quiser).
Animações Aditivo e Animação de mistura
Aditivo Animações e Animação mistura permitem reduzir o número de animações que você tem que criar
para o seu jogo, e são importantes para a criação de animações faciais.
Digamos que você queira criar um personagem que se inclina para os lados durante a execução e
girando.
Você já fez um ciclo de caminhar e correr, agora você pode fazer cada andar magra esquerdo, pé-direito
magra, magra executar a esquerda, correr animações magra direito.
Mas isso significa que você simplesmente quadruplicou a quantidade de trabalhos de animação! Criando
uma enorme quantidade de animações não é feasiable. Aditivo animações e Mistura para o resgate!
Exemplo de animação Aditivo
animações Aditivo permitem sobrepor os efeitos de animação em cima de qualquer outro que pode estar
jogando. Ao fazer animações aditivo, Unidade irá calcular a diferença entre o primeiro quadro do clipe de
animação e do quadro atual. Em seguida, ele vai aplicar essa diferença em cima de todas as animações
jogar outro.
Agora você só tem que fazer uma animação magra e magra esquerda-direita. Unidade então esta
camada de animação em cima do passeio, ocioso ou executado ciclo.
Aqui está o código para fazer isso acontecer:
private var leanLeft : AnimationState;

private var leanRight : AnimationState;

function Start ()

leanLeft = animation["leanLeft"];

leanRight = animation["leanRight"];

/ / Coloque a animação encostado em uma camada separada


/ / Para que outras chamadas para CrossFade não irá afetá-lo. leanLeft.layer = 10;

leanRight.layer = 10;

/ / Define a animação magra para seraditivo leanLeft.blendMode =


AnimationBlendMode.Additive;

leanRight.blendMode = AnimationBlendMode.Additive;

/ / Define a animação magra ClampForever


/ / Com ClampForever animação não irá automaticamente
/ / parar quando atingir o final do clipe leanLeft.wrapMode = WrapMode.ClampForever;

leanRight.wrapMode = WrapMode.ClampForever;

/ / Ativar a animação e desaparecer completamente em


/ / Nós não usamos animation.Play aqui porque nós ajustar manualmente o tempo
/ / na função de atualização.
/ / Em vez disso, basta ativar a animação e defini-la com o pesototal leanRight.enabled
= true;

leanLeft.enabled = true;
leanRight.weight = 1.0;

leanLeft.weight = 1.0;

/ / Para testar apenas jogar animação correr e loop-lo animation["walk"].wrapMode =


WrapMode.Loop;

animation.Play("walk");

/ / Cada frame apenas definir o tempo normalizado


/ / baseado em quanto magra queremos aplicarfunction Update ()

var lean = Input.GetAxis("Horizontal");

/ normalizedTime / é 0 no primeiro quadro e 1 no último quadro noclipe


leanLeft.normalizedTime = -lean;

leanRight.normalizedTime = lean;

Dica:

Ao utilizar animações Aditivo é fundamental que você também está tocando algumas outras animações
não-aditivos em cada transformação que é também utilizada na animação aditivo, caso contrário, irá
adicionar as animações em cima do resultado do quadro anterior. Esta não é certamente o que você quer.
Processualmente animar personagens
Às vezes você deseja animar os ossos de seu caráter processual. Por exemplo, você pode querer a
cabeça de seu personagem a olhar para um ponto específico no espaço 3D. Este é o melhor feito com um
script. Felizmente, a união faz isto muito fácil. Na Unidade todos os ossos são apenas transformações
que levam a malha pele. Assim você pode ossos script de um personagem como qualquer outra
GameObject.
Uma coisa importante a saber é que o sistema atualiza a animação Transformações após o Update
() função e antes LateUpdate () função é chamada.Assim, se você quiser fazer uma LookAt () função
que você tem que fazer no LateUpdate () para ter certeza de que você realmente está substituindo a
animação.
Ragdolls são criados da mesma forma. Você simplesmente tem que anexar Rigidbodies, personagem
Articulações e Capsule aceleradores para os ossos diferentes. Este, então, fisicamente animar seu
personagem pele.
Finalmente
Você aprendeu como fazer uma animação de caráter básico consulte os projetos para a profundidade
exemplos de animação de personagens e dainterface de script de animação .

Você também pode gostar