36
Animação Animação Computação Gráfica Computação Gráfica Prof. Luiz Marcos Prof. Luiz Marcos www.dca.ufrn.br/~lmarcos/courses/ www.dca.ufrn.br/~lmarcos/courses/ compgraf compgraf

Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Embed Size (px)

Citation preview

Page 1: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

AnimaçãoAnimação

Computação GráficaComputação Gráfica

Prof. Luiz MarcosProf. Luiz Marcos

www.dca.ufrn.br/~lmarcos/courses/www.dca.ufrn.br/~lmarcos/courses/compgrafcompgraf

Page 2: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Animação versus Animação versus modelagemmodelagem

São altamente acopladasSão altamente acopladas Modelagem: o que são os pontos de controle e o Modelagem: o que são os pontos de controle e o

que eles fazem?que eles fazem? Animação: como variar pontos de controle para Animação: como variar pontos de controle para

gerar movimento desejado?gerar movimento desejado? Construção de modelos fáceis de controlar Construção de modelos fáceis de controlar

é super importante: modelagem hierárquicaé super importante: modelagem hierárquica Onde termina modelagem e começa Onde termina modelagem e começa

animação?animação? Meio confuso!Meio confuso!

Page 3: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

OverviewOverview

Técnicas de animaçãoTécnicas de animação Animação tradicional (quadro a quadro, Animação tradicional (quadro a quadro,

manual), Keyframing (comp.), Procedimental manual), Keyframing (comp.), Procedimental (procedural, comp.), Comportamental (procedural, comp.), Comportamental (behavior based, comp.), Baseada em (behavior based, comp.), Baseada em performance (motion capture, comp.), performance (motion capture, comp.), Baseada em física (dinâmica, comp.), High-Baseada em física (dinâmica, comp.), High-level animation (scripts, comp.)level animation (scripts, comp.)

Problemas em modelagem:Problemas em modelagem: Rotações, cinemática inversaRotações, cinemática inversa

Page 4: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Animação tradicionalAnimação tradicional

Filme resultante deve rodar a 24 Filme resultante deve rodar a 24 quadros por segundo (fps)quadros por segundo (fps) São 1440 quadros para renderizar por São 1440 quadros para renderizar por

minutominuto 1800 fpm para vídeo digital1800 fpm para vídeo digital

Fatores da produçãoFatores da produção Organizado por razões de eficiência e Organizado por razões de eficiência e

custocusto Renderizar quadros sistematicamenteRenderizar quadros sistematicamente

Page 5: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Animação tradicionalAnimação tradicional

Fatores artísticosFatores artísticos Visão artística deve ser convertida numa Visão artística deve ser convertida numa

seqüência de quadros estáticosseqüência de quadros estáticos Quadros estáticos devem ser corretos também Quadros estáticos devem ser corretos também

em movimentoem movimento Difícil de ver o movimento dados os estáticos Difícil de ver o movimento dados os estáticos

(assista um vídeo quadro a quadro e vê se (assista um vídeo quadro a quadro e vê se entende o que ocorre)entende o que ocorre)

Convenções estilísticas seguidas pelos Convenções estilísticas seguidas pelos animadores de Disney e outrosanimadores de Disney e outros Outros lados interessantes, claroOutros lados interessantes, claro

Page 6: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

O processo de animação O processo de animação tradicionaltradicional

Story boardStory board Seqüência de desenhos com descriçõesSeqüência de desenhos com descrições Descrição baseada em históriaDescrição baseada em história

Key frames (quadros chaves)Key frames (quadros chaves) Desenhar uns poucos quadros importantesDesenhar uns poucos quadros importantes

Início de um movimento, final de um movimentoInício de um movimento, final de um movimento

Quadros intermediáriosQuadros intermediários Desenhar o resto dos quadros (ganha pouco $)Desenhar o resto dos quadros (ganha pouco $)

PinturaPintura Redesenha (acetato) e colore (ganha muito Redesenha (acetato) e colore (ganha muito

menos $)menos $)

Page 7: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

““Bugs life” (story board)Bugs life” (story board)

Page 8: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Princípios da animação Princípios da animação tradicionaltradicional

Encolhe-estica – representar personalidadeEncolhe-estica – representar personalidade Temporização – velocidade representa massa, Temporização – velocidade representa massa,

personalidadepersonalidade Antecipação – prepara a platéiaAntecipação – prepara a platéia Prosseguimento (followthrough) e overlap – Prosseguimento (followthrough) e overlap –

continuidade com próxima açãocontinuidade com próxima ação Câmera lenta e rápida – velocidade de Câmera lenta e rápida – velocidade de

transição representa momentos importantestransição representa momentos importantes Arcos – movimento é geralmente curvoArcos – movimento é geralmente curvo Exageração - enfatiza conteúdo emocionalExageração - enfatiza conteúdo emocional Ação secundária – movimento como Ação secundária – movimento como

conseqüênciaconseqüência Apelo – platéia deve gostar de assistirApelo – platéia deve gostar de assistir

Page 9: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Squash-stretchSquash-stretch

Page 10: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

SquashSquash StretchStretch

Page 11: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

AntecipaçãoAntecipação

Page 12: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf
Page 13: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf
Page 14: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Movimento em camadasMovimento em camadas

Quando se tem varias camadas de Quando se tem varias camadas de animaçãoanimação Objeto mover na frente do backgroundObjeto mover na frente do background Uma camada p/ background, outra p/ objetoUma camada p/ background, outra p/ objeto Múltiplos animadores ao mesmo tempoMúltiplos animadores ao mesmo tempo

Acetato transparente em várias camadasAcetato transparente em várias camadas Desenha cada um separadamenteDesenha cada um separadamente Empilha todos juntos (em certa ordem)Empilha todos juntos (em certa ordem) Transfere para a película (fotografa a pilha)Transfere para a película (fotografa a pilha)

Page 15: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Animação assistida por Animação assistida por computadorcomputador

Pintura de células computadorizadaPintura de células computadorizada Digitaliza linhas, colore usando sementeDigitaliza linhas, colore usando semente Elimina pintores de célula (que são Elimina pintores de célula (que são

muitos)muitos) Largamente usado em produçõesLargamente usado em produções Pouca pintura (retoques) manuaisPouca pintura (retoques) manuais Exemplo: Rei LeãoExemplo: Rei Leão

Page 16: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Animação assistida por Animação assistida por computadorcomputador

Inserção automática de quadros Inserção automática de quadros intermediáriosintermediários

Interpola automaticamente entre Interpola automaticamente entre desenhos de linhasdesenhos de linhas

Difícil conseguir coisa certaDifícil conseguir coisa certa Intermediários não parecem naturalIntermediários não parecem natural Que parâmetros interpolar?Que parâmetros interpolar? Técnica não muito usadaTécnica não muito usada

Page 17: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Animação por Animação por computadorcomputador

Visão unificadaVisão unificada Modelos tem parâmetros: posição dos Modelos tem parâmetros: posição dos

polígonos, normais, pontos de controle de polígonos, normais, pontos de controle de splines, ângulos de juntas, parâmetros de splines, ângulos de juntas, parâmetros de câmera, iluminação, corcâmera, iluminação, cor

Parâmetros definem um espaço de Parâmetros definem um espaço de estadosestados Se uma cena tiver Se uma cena tiver nn parâmetros parâmetros Valores dos parâmetros em um dado instante Valores dos parâmetros em um dado instante

são um ponto neste espaço de estadossão um ponto neste espaço de estados

Page 18: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Animação por Animação por computadorcomputador

Animar é seguir um caminho no espaço de Animar é seguir um caminho no espaço de estadosestados 1) começa no início do caminho1) começa no início do caminho 2) define valores dos parâmetros do seu modelo2) define valores dos parâmetros do seu modelo 3) renderiza a imagem3) renderiza a imagem 4) move para o próximo ponto do caminho4) move para o próximo ponto do caminho

Caminho pode ser um conjunto de curvasCaminho pode ser um conjunto de curvas Uma curva para cada parâmetroUma curva para cada parâmetro

Definir a animação é especificar uma Definir a animação é especificar uma trajetória no espaço de estadostrajetória no espaço de estados

Page 19: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

True computer True computer animationanimation

Gerar imagens por renderização do modelo Gerar imagens por renderização do modelo 3D3D

Variar parâmetros para produzir animaçãoVariar parâmetros para produzir animação Força bruta:Força bruta:

Acerta parâmetros manualmente (todo quadro)Acerta parâmetros manualmente (todo quadro) Para Para nn parâmetros, 1440 parâmetros, 1440nn valores por minuto valores por minuto

Key framing tradicionalKey framing tradicional Animadores desenham quadros importantesAnimadores desenham quadros importantes Pessoal mal pago desenha os intermediáriosPessoal mal pago desenha os intermediários

Keyframing por computadorKeyframing por computador Animadores criam quadros chaves com modelos Animadores criam quadros chaves com modelos

3D3D Computadores desenham os intermediáriosComputadores desenham os intermediários Modelo de produção dominanteModelo de produção dominante

Page 20: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

InterpolaçãoInterpolação

Como interpolar quadro feito Como interpolar quadro feito manualmente?manualmente? Computadores não ajudam muitoComputadores não ajudam muito

Diferente em animação por computadorDiferente em animação por computador Cada keyframe é definido por Cada keyframe é definido por nn parâmetros parâmetros Seqüência de keyframes = pontos num Seqüência de keyframes = pontos num

espaço de estados de alta dimensãoespaço de estados de alta dimensão Computador interpola estes pontos: Computador interpola estes pontos:

intermediáriosintermediários Como fazer isso? SplinesComo fazer isso? Splines

Page 21: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Idéias básicas do Idéias básicas do keyframingkeyframing

Apesar do nome, não são keyframes em Apesar do nome, não são keyframes em sísí

Para cada variável, especificar seu valor Para cada variável, especificar seu valor em quadros realmente importantes (nem em quadros realmente importantes (nem todas as variáveis têm valores todas as variáveis têm valores importantes no mesmo quadro)importantes no mesmo quadro)

Então, key-values ao invés de key-framesEntão, key-values ao invés de key-frames Criar caminho para cada parâmetro para Criar caminho para cada parâmetro para

interpolação desses valoresinterpolação desses valores

Page 22: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

KeyframingKeyframing

Page 23: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Aspectos do keyframingAspectos do keyframing

O que devem ser os key-values?O que devem ser os key-values? Quando os key-values devem ocorrer?Quando os key-values devem ocorrer? Como especificar os key-values?Como especificar os key-values? Como interpolar os key-values?Como interpolar os key-values? Que tipo de COISA ERRADA pode Que tipo de COISA ERRADA pode

ocorrer no processo de interpolação?ocorrer no processo de interpolação? Configurações inválidas (atravessar Configurações inválidas (atravessar

paredes)paredes) Movimentos não naturaisMovimentos não naturais

Page 24: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Keyframing: aspectos de Keyframing: aspectos de produçãoprodução

Como aprender a fazerComo aprender a fazer Aprender com um animadorAprender com um animador Praticar muitoPraticar muito

Dá um bom controle ao longo do movimentoDá um bom controle ao longo do movimento Elimina metade do trabalho no tradicionalElimina metade do trabalho no tradicional

Ainda é trabalhoso (mesmo para computadores)Ainda é trabalhoso (mesmo para computadores) Impraticável para cenas muito complexas, Impraticável para cenas muito complexas,

com todas as coisas se movendo com todas as coisas se movendo

Page 25: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Problemas com Problemas com interpolaçãointerpolação

Interpoladores não fazem sempre a coisa Interpoladores não fazem sempre a coisa certacerta

Problemas clássicos:Problemas clássicos: Restrições importantes quebradas entre quadrosRestrições importantes quebradas entre quadros

Pés entram no soloPés entram no solo Mãos entram em paredesMãos entram em paredes

Rotações 3DRotações 3D Ângulos de Euler não interpolam naturalmenteÂngulos de Euler não interpolam naturalmente

SoluçõesSoluções Mais keyframesMais keyframes Uso de quaternions ajuda melhorar rotaçõesUso de quaternions ajuda melhorar rotações

Page 26: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Ainda interpolando Ainda interpolando rotaçõesrotações

P: Que tipo de rotação composta se consegue girando em torno de cada um dos 3 eixos com velocidade constante?R: Não a que voce quer

Interpolação funciona bem para rotações simples (eixo-ângulo)Ruim para outras rotações

Page 27: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Animação procedimentalAnimação procedimental

Define movimento usando funções Define movimento usando funções (fórmulas)(fórmulas) Funções feitas (implementadas) manualmenteFunções feitas (implementadas) manualmente Funções podem seguir leis da Física ou outras Funções podem seguir leis da Física ou outras

artísticasartísticas Animador deve ser um programadorAnimador deve ser um programador Keyframing torna-se procedimental se Keyframing torna-se procedimental se

expressões são adicionadasexpressões são adicionadas Em algum nível de complexidade, melhor e Em algum nível de complexidade, melhor e

mais eficiente que keyframing.mais eficiente que keyframing.

Page 28: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Animação Física Animação Física (dinâmica)(dinâmica)

Gerar movimento definindo massa e Gerar movimento definindo massa e força e restrições da Física (Newton, força e restrições da Física (Newton, Euler)Euler) GravidadeGravidade Momento (inércia)Momento (inércia) ColisõesColisões FricçãoFricção Fluxo de fluídos (turbulência, na água)Fluxo de fluídos (turbulência, na água) Solidez, flexibilidade, elasticidadeSolidez, flexibilidade, elasticidade FraturaFratura

Page 29: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Exemplo simples de Exemplo simples de dinâmicadinâmica

Solução numérica para equação diferencialSolução numérica para equação diferencial Exemplo de algoritmo usando Euler para Exemplo de algoritmo usando Euler para f = f =

mama::Inicialize Inicialize dxdx e e xx (posição e velocidade) (posição e velocidade)

loop eterno (integrador de Euler):loop eterno (integrador de Euler):ddx = fddx = f()()/m /m ( (ddxddx é aceleração, é aceleração, ff() é uma função, atualiza () é uma função, atualiza

força)força)

dx += ddx*dtdx += ddx*dt ( (dxdx = velocidade) = velocidade)

x += dx*dtx += dx*dt ( (xx = posição) = posição)

t += dtt += dt

ff() pode ser gravidade ou qq outra função que () pode ser gravidade ou qq outra função que atualiza força em função de tempo, posição, etcatualiza força em função de tempo, posição, etc

Page 30: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Física/dinâmica na Física/dinâmica na práticaprática

Varia desde “objetos não entram em Varia desde “objetos não entram em paredes” até dinâmica de fluídos completa paredes” até dinâmica de fluídos completa e modelagem com elementos finitose modelagem com elementos finitos

Ou pode-se animar sem realismo físicoOu pode-se animar sem realismo físico Em geral, coisas tem que rodar rápidoEm geral, coisas tem que rodar rápido

Convergência rápida em cálculos iterativosConvergência rápida em cálculos iterativos Algoritmos de aproximação ótimosAlgoritmos de aproximação ótimos

Platéia pode ser tolerante a coisas como Platéia pode ser tolerante a coisas como batidas incorretas ou entrar ligeiramente batidas incorretas ou entrar ligeiramente em paredes.em paredes.

O mudar de “precisão” para “fast-and-O mudar de “precisão” para “fast-and-looks-good” distingue CG baseada Física de looks-good” distingue CG baseada Física de ciências numéricas ciências numéricas

Page 31: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Cinemática e cinemática Cinemática e cinemática inversainversa

CinemáticaCinemática Provê movimento em termos de juntas, ângulos, Provê movimento em termos de juntas, ângulos,

velocidades e posiçõesvelocidades e posições Usado também em keyframing e procedimentalUsado também em keyframing e procedimental

Cinemática inversaCinemática inversa Determina ângulos e juntas a partir de posiçãoDetermina ângulos e juntas a partir de posição Calcula parâmetros de rotação para o ombro, cotovelo, Calcula parâmetros de rotação para o ombro, cotovelo,

pulso para colocar as mãos ali.pulso para colocar as mãos ali. Bom para iteraçãoBom para iteração Configurações podem ser sub ou sobre-determinadas (sem Configurações podem ser sub ou sobre-determinadas (sem

configuração ou várias para atingir o mesmo objetivo)configuração ou várias para atingir o mesmo objetivo) Muito usada em RobóticaMuito usada em Robótica

Otimização restrita: ir de A até B com menor Otimização restrita: ir de A até B com menor trabalhotrabalho

Page 32: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Animação Animação comportamentalcomportamental

Define regras p/ comportamento dos Define regras p/ comportamento dos objetos objetos Modelos respondem à mudanças no ambienteModelos respondem à mudanças no ambiente Programas implementam as regrasProgramas implementam as regras

Exemplo clássico “boids” (Craig Reynolds)Exemplo clássico “boids” (Craig Reynolds) Movimento é função dos objetos ao redorMovimento é função dos objetos ao redor Comportamento emergente: nevascaComportamento emergente: nevasca Rei Leão: estourada de animais foi feita assimRei Leão: estourada de animais foi feita assim

Sistema de partículas: usualmente Sistema de partículas: usualmente comportamentos simplescomportamentos simples

Smart Objects: agentes autônomos Smart Objects: agentes autônomos (comportamentos sofisticados) (comportamentos sofisticados)

Page 33: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Baseada em performanceBaseada em performance Grava animação de ações da vida realGrava animação de ações da vida real

Usa vídeos reais e tira movimento de objetosUsa vídeos reais e tira movimento de objetos Usa dispositivos que pegam posição/orientaçãoUsa dispositivos que pegam posição/orientação

Motion capture (nova indústria)Motion capture (nova indústria) Acompanha movimento de pontos no espaço, por meio Acompanha movimento de pontos no espaço, por meio

magnético, ótico, etc (exo-esqueletos, face ou rosto)magnético, ótico, etc (exo-esqueletos, face ou rosto) Converte para espaço ângulo-juntasConverte para espaço ângulo-juntas Usa ângulos para derivar modelo 3D articuladoUsa ângulos para derivar modelo 3D articulado Caminhos do movimento podem ser modificadosCaminhos do movimento podem ser modificados

Exemplos: Guerra nas Estrelas (Jajá), Exemplos: Guerra nas Estrelas (Jajá), Trezentos, Beowulf.Trezentos, Beowulf.

Page 34: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Motion captureMotion capture

Page 35: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Animação em “alto nível”Animação em “alto nível”

Idéia principal: juntar animações Idéia principal: juntar animações complexas de uma biblioteca de complexas de uma biblioteca de movimentosmovimentos

Linguagens de scriptLinguagens de script Descreve os eventosDescreve os eventos Descreve suas seqüênciasDescreve suas seqüências

Animação a “nível de tarefa”Animação a “nível de tarefa” Vá à cozinha para um bolo, beba líquido, faça Vá à cozinha para um bolo, beba líquido, faça

o cachorro andaro cachorro andar Ótimo, em princípio, mas como fazer?Ótimo, em princípio, mas como fazer?

Juntar IA com animação comportamental?Juntar IA com animação comportamental?

Page 36: Animação Computação Gráfica Prof. Luiz Marcos lmarcos/courses/compgraf

Hierarquia da animaçãoHierarquia da animação