Você está na página 1de 44

UFABC

Animação 3D
ESZI034 Jogos
Digitais, Aspectos
Técnicos e Aplicações
Prof. Mário Minami

UFABC - ESZI034 - Jogos Digitais - Minami 1


High x Low Resolution 3D
• Refere-se à quantidade de polígonos e o tamanho das texturas usadas
para descrever as superfícies destes polígonos
• Custo Computacional x “perfeição das imagens e detalhes”
• Alta resolução 3D (High-Rez 3D)
• High-Rez é usual em TV, filmes, games de alta performance
• Baixa resolução 3D (Low-Rez 3D)
• Low-Rez é para games leves (várias plataformas)

UFABC - ESZI034 - Jogos Digitais - Minami 2


1. Ideia

4. Nova Ciclo de Trabalho 2. Esboço


Inspiração da Animação 3D

3. Muita
Muita
Muita Muita
Pesquisa Pesquisa
Pesquisa Pesquisa

UFABC - ESZI034 - Jogos Digitais - Minami 3


Fluxo de
Animação no
Maya

UFABC - ESZI034 - Jogos Digitais - Minami 4


Modelagem: dar formas 3D com triângulos

Forma ganha definição, mas o tom de cinza deixa-a com aspecto plástico...

UFABC - ESZI034 - Jogos Digitais - Minami 5


Layout UV –
anexar texturas
às partes modeladas
• O Sistema de coordenadas
UV é aquele que “desdobra”
(unfolded) o modelo 3D nos
espaços de texturas.
• Mapeamento UV (3D → 2D)
• Um bom layout UV garante
que um bom modelo 3D
“vista-se” bem

UFABC - ESZI034 - Jogos Digitais - Minami 6


Textura
• Depois da modelagem e do layout UV
• Aqui aparecem textures, materials, shaders, etc.
• Ideia básica da “texturização” é a adequada
definição dos atributos das superfícies do
modelo:
• Liso ou rugoso?
• Qual a cor?
• Qual a transparência?
• Com alguns truques de textura, pode-se inclusive
dar outra nuancia à geometria

UFABC - ESZI034 - Jogos Digitais - Minami 7


Rigging e Skinning
• Processos que definem e organizam as deformações que os
objetos sofrerão para permitir deformações geométricas.
• Objetos em Animação são feitos por Componentes (Maya).
• É um procedimento para animação de caracteres.
• Tecnicamente:
• Rigging – processo de criação da organização ou
objetos que deformam as fusões (meshes)
• Skinning – processo que anexa os polígonos aos
objetos deformados

UFABC - ESZI034 - Jogos Digitais - Minami 8


Animação: a recompensa
final!
• Quando o trabalho de modelagem ganha vida
• Quando modelos, formas e texturas, com
cuidadosos riggs e skins assumem
“keyframes” que terão depois “twennings”
• Alto custo computacional
• Maior recompensa da árdua modelagem!

UFABC - ESZI034 - Jogos Digitais - Minami 9


Iluminação e
Renderização
(Lighting and Rendering)
• Lighting é a colocação de
iluminação artificial que
iluminarão as formas criadas
• Rendering é o processo de
finalização de todo o cálculo do
desenho gráfico, incluindo as
formas, as texturas, a animação e
também lighting

UFABC - ESZI034 - Jogos Digitais - Minami 10


Outros Conceitos no Unity e no Maya

UFABC - ESZI034 - Jogos Digitais - Minami 11


4 Sistemas • Coordenadas Screen são 2D, medidas em pixels e iniciam no
canto esquerdo inferior (0,0) e vão para (Screen.width,
de Screen.height) até o canto direito superior. Coordenadas
Screen mudam de resolução com o device, e mesmo de
Coordenadas orientação (se o app permite isso) nos dispositivos móveis.
• Coordenadas GUI são usadas pelo GUI system. São idênticas às
no Unity3D: coordenadas Screen exceto que iniciam em (0,0) no canto
esquerdo superior indo para (Screen.width, Screen.height) no
* Screen, canto direito inferior.
• Coordenadas Viewport são as mesmas, não importando qual
* World, seja a resolução. Se são 2D, iniciam em (0,0) no canto
esquerdo inferior indo até (1,1) no superior direito. A
* Viewport, coordenada (0.5, 0.5) no viewport será sempre o centro da
tela, independente da resolução ou orientação

* GUI. • Coordenadas World são coordenadas em 3D e onde todos os


objetos estão.

UFABC - ESZI034 - Jogos Digitais - Minami 12


• Global (x,y,z) space, denominado de world space ;
possui origem (0, 0, 0) no centro do grid space do
Maya.
• Object space: espaço (x, y, z) de um objeto no global
space. O object space possui uma origem (0, 0, 0)
associada com o objeto.
Mundo 3D no • Local space é uma coordenada (x, y, z) associada a
Maya cada objeto, e permite colocar objetos
hierarquicamente para controle e movimentação de
múltiplos objetos ou objetos relacionados. O local
space de um objeto é o Object space de seu pai
imediato na hierarquia.
• (u, v) space é um espaço 2D e refere-se às
superfícies dos objetos.
Modelagem 3D no Maya
• Polígonos em 3D, em geral triângulos ou quadrados
• NURBS: (Non-Uniform Rational B-Splines) geometrias usadas para criar
curvas 3D e superficies em Maya.
• Não-Uniforme refere-se à parametrização de uma curva. Curvas Não-Uniformes
permitem a presença de múltiplos nós (usam-se curvas de Bezier).
• Racional refere-se à representação matemática. Uso de cônicas (parábolas, círculos e
elipses) junto com curvas de livre forma.
• B-splines são curvas polinomiais em pontos (splines) as quais possuem representação
paramétrica.
• NURBS são úteis na construção de formas 3D orgânicas devido à suavidade de
natureza minimalista nestas superfícies.
• De forma geral, um modelo no Maya é um conjunto de arquivos com uma
raiz e alguma hierarquia no Outliner.

UFABC - ESZI034 - Jogos Digitais - Minami 14


Bezier, polinômios e curva

UFABC - ESZI034 - Jogos Digitais - Minami 15


Hierarquia do Esqueleto
• “Coração” são os ossos
• Em geral, organização em árvore, onde
cada osso tem pai único
• Cada osso pode ter vários ossos filhos,
mas apenas um pai (via de regra).

• A cada osso está associada uma transformação.


• Em geral apenas osso raiz não tem pai
UFABC - ESZI034 - Jogos Digitais - Minami 16
Computação da Animação
• Muda as transformações de cada osso no tempo, criando movimento
• Codificar a transformação de um osso relativo ao seu pai em geral é eficaz e
também coincide como as pessoas se movem, chamada de Cinemática
Posterior ou Forward Kinematic (FK), isto é, transmitir o movimento para “a
frente”.
• O inverso, ou seja, fixar a posição de um osso de extremidade e mover os ossos
superiores na hierarquia, para mantê-lo na posição desejada é a Cinemática
Inversa ou Inverse Kinematic (IK).
• Os movimentos devidos à IK são mais raros do que FK e portanto
costuma-se armazenar movimentos FK e recalcular IK, para ganhar
eficiência.

UFABC - ESZI034 - Jogos Digitais - Minami 17


RIG (armação, esqueleto)
• É a organização dos ossos e como estão unidos uns aos outros.
• Muitos jogos usam um único Rig para todos os movimentos, mas
podem-se ter múltiplos rigs de um mesmo personagem (caminhar,
rolar, dialogar etc.).
No corpo humano (real) nem todos os
ossos possuem pais, como p.ex. a
omoplata (escápula), que não está
associada à caixa toráxica do mesmo modo
que o osso da coxa (fêmur) se articula com
o osso do quadril (bacia) com a rótula. Esta
associação é feita por músculos, para dar
maior flexibilidade de movimentos, que
nenhum osso permitiria.

UFABC - ESZI034 - Jogos Digitais - Minami 18


Animação vs Deformação: CPU e GPU
• As transformações coletivas de um rig num instante é uma pose.
• Animação: mudança da pose ao longo do tempo.
• Uma pose não pode ser renderizada diretamente na tela, pois ela é apenas
uma lista de transformações.
• Deformação: processo de selecionar uma pose definida pela
animação e aplicá-la aos vértices de uma malha, e movê-los, para
serem renderizados.
• Num jogo, via de regra, a animação nem deforma nem renderiza, ou seja em
geral só se preocupa com rigs e poses.
• O Motor do Game (Unity) efetua as animações na CPU e as tarefas de
deformação e posterior renderização são encarregadas à GPU.

UFABC - ESZI034 - Jogos Digitais - Minami 19


Demonstração CPU x GPU
https://www.youtube.com/watch?v=-P28LKWTzrI

UFABC - ESZI034 - Jogos Digitais - Minami 20


Keyframes

UFABC - ESZI034 - Jogos Digitais - Minami 21


Da Animação original:
Keyframes e tweening
• Em animação normalmente se desenham
apenas ½ dos fps.
• Dos desenhados, cerca de 20% são keyframes,
artista principal
• Artistas auxiliares fazem tweening, ou seja,
elaboram os frames entre os keyframes.

UFABC - ESZI034 - Jogos Digitais - Minami 22


• Quatérnios são mais eficientes
computacionalmente, mas:
• Cada vez que se interpola, um quatérnio deve
ser normalizado, para que não ocorram defeitos
de cisalhamento e escala
• Ângulos de Euler (matrizes) não apresentam
Quatérnios e esse problema
• Mesmo assim, frames tweening ficam melhor
Interpolação computados com quatérnios.
Linear • Dependendo do tipo das animações, a taxa de
keyframes varia:
• Pás de helicóptero girando, Pessoa dormindo,
Bola quicando, etc.
• 30 fps, em média podem ser reduzidos a 10 fps.

UFABC - ESZI034 - Jogos Digitais - Minami 23


Animação de Caracteres 3D no Unity com
Mecanim

Criar Avatares e gravar ou


adaptar clipes para novos
movimentos não serão
objeto deste curso

UFABC - ESZI034 - Jogos Digitais - Minami 24


Fluxo

UFABC - ESZI034 - Jogos Digitais - Minami 25


1. Clipes de Animação são importados de uma fonte externa ou
criados no Unity. Neste exemplo, foram importados.
2. Os clipes de animação são dispostos num Animator Controller.
Permite uma visualização na janela Animator. Os Estados (os quais
podem representar animações ou máquinas de sub-estado
aninhadas) aparecerão como nós conectados por linhas. O
Animator Controller existirá como um asset na janela de Project.
3. O modelo do esqueleto do caractere (neste caso, a astronauta
“Astrella”) tem uma configuração particular de ossos os quais são
mapeados para o Unity num formato comum Avatar. Este
Fases: mapeamento é armazenado como um asset Avatar, como parte
de um modelo de caractere, e também aparecerá na janela de
Project.
4. Quando anima-se o modelo de caractere, ele terá um componente
Animator anexado. No Inspector, será visto Animator
Component o quell terá tanto o Animator Controller e o Avatar. O
Animator usa-os conjuntamente para animar o modelo. A
referência ao Avatar somente é necessária na animação de um
humanóide. Para outros tipos de animação, somente um Animator
Controller basta.

UFABC - ESZI034 - Jogos Digitais - Minami 26


Associação de um Avatar a um filme
• Uma característica que torna o Mecanim flexível e poderoso é a
facilidade de associação de um clipe (filme) de animação de um
caractere a outro. Isto é possível pelos Avatares, os quais são
basicamente uma camada entre o esqueleto de nosso caractere
original (RIG) e o Sistema Animator do Unity.

UFABC - ESZI034 - Jogos Digitais - Minami 27


Rig Preview da
Animação (Clipe)

UFABC - ESZI034 - Jogos Digitais - Minami 28


Criando Estados em Animator Controller

Ou pode-se apenas arrastar os clipes...


UFABC - ESZI034 - Jogos Digitais - Minami 29
Blend Tree 4, Parameter associado ao movimento

2, Campos (Fields), onde os clipes serão 1, Botão +, para


atribuídos aos movimentos adicionar Movimentos
3, marca de seleção de Automate Thresholds
UFABC - ESZI034 - Jogos Digitais - Minami 30
• 1D: Uma Blend Tree simples usando só um parâmetro de
ponderação para definir a atuação da animação.
• 2D Simple Directional: Usa dois parâmetros para ponderar a
mistura das animações, p.ex. Eixos X e Y axis. Ótima para
movimentos em diferentes direções, mas melhor não usar
para variações na mesma direção (andar e correr para frente
p.ex).
Tipos de • 2D Freeform Directional: Recomendada para múltiplas
animações na mesma (p.ex. Andar e corer). Deve-se adicionar
Blend Tree: uma animação na posição (0, 0), tal como “idle”.
• 2D Freeform Cartesian: É similar à anterior, mas usada em
animações que não movimentam em diferentes direções.
Pode ser usada na mistura de múltiplas versões de uma
animção idle, por exemplo.
• Direct: Pode-se controlar o peso de cada um dos nós (Motion
fields) diretamente. É usado na mistura de expressões faciais.

UFABC - ESZI034 - Jogos Digitais - Minami 31


Body Transform

➢ A Body Transform é o centro de massa do


caractere. Ela é usada no Mecanim
redirecionando a engine para fornecer um
Movendo o deslocamento mais estável para o modelo.

Caractere pelas ➢ A Body Orientation é uma média entre as


Blend Tree’s, orientações inferior e a superior do Avatar na T-
Pose. A Body Transform e a Body Orientation
com Root estão armazenados no Animation Clip (usando
Motion
as pré-definições da Muscle definitions no
Avatar). Ambos estão apenas nas curvas do
(Trajetória) “world-space” do Animation Clip.

➢ Curvas dos músculos e destinos das Inverse


Kinematic’s, IKs, (Mãos e Pés) estão
armazenadas relativas ao body transform.

UFABC - ESZI034 - Jogos Digitais - Minami 32


Root Transform
➢ A Root Transform é uma projeção no plano Y da Body Transform, calculada em tempo
de execução (quando possível, na GPU). Em cada frame, uma mudança na Root
Transform é calculada. Esta mudança na transformação é então aplicada ao Game
Object para movê-lo.

➢ Frames de uma animação de corrida usando root motion.


➢ O caractere é animado pela translação do nó raiz (root node)
UFABC - ESZI034 - Jogos Digitais - Minami 33
Direcionando Animações com Root Motion

UFABC - ESZI034 - Jogos Digitais - Minami 34


Usando Curvas de Animação

UFABC - ESZI034 - Jogos Digitais - Minami 35


Máscara:
permite o
descarte de uma
parte do clip de
animação

Parâmetros:

UFABC - ESZI034 - Jogos Digitais - Minami 36


Adicionando um clipe Grenade (toss_grenate.fbx)
e transição pelo parâmetro Bool Fire:

UFABC - ESZI034 - Jogos Digitais - Minami 37


Animation Rigging
Animation Rigging pode ser usado para criar e organizar animation
rigs, ou conjuntos de restrições para adicionar movimentos a objetos
animados:

• Deformation rigs controlam animações secondárias de armaduras


de caracteres, propriedades, e acessórios.
• World Interaction rigs (conjuntos de IK e Aim constraints) para
ajustes de interatividade com alvos ou para correção de animações.

UFABC - ESZI034 - Jogos Digitais - Minami 38


Componentes principais
• Animator: adicionado a um GameObject root, este componente
estabelece a hierarquia da animação. Animation Rigging trabalha no
topo deste Sistema a de animação e requer um Animator.
• Rig Builder: quando adicionado ao GameObject root, permite que a
animação seja modificada por um ou mais Rigs, que são montados
em camadas (layers).
• Rig: quando adicionado aos GameObjects numa hierarquia animável,
os Rigs atuam como containers para os objetos fonte e Restrições
(Constraints) que modificam as poses.
• Constraints: quando adicionados aos Rigs dos GameObjects ou seus
filhos, especificam as operações que um Rig pode fazer.

UFABC - ESZI034 - Jogos Digitais - Minami 39


Workflow para Rigging
https://www.youtube.com/watch?v=DzW_jQGO1dc

UFABC - ESZI034 - Jogos Digitais - Minami 40


Rig Setup

UFABC - ESZI034 - Jogos Digitais - Minami 41


Two Bone IK constrain

UFABC - ESZI034 - Jogos Digitais - Minami 42


Rig Builder

UFABC - ESZI034 - Jogos Digitais - Minami 43


Exemplo
• https://www.youtube.com/watch?v=Htl7ysv10Qs

UFABC - ESZI034 - Jogos Digitais - Minami 44

Você também pode gostar