O cinema de animação e a matemática (vol. 5, n. 1, 2017)
Quando as ciências exatas e a arte se unem para produzir coisas incríveis.
Os filmes de animação evoluíram muito nos últimos anos. São muitas as técnicas utilizadas nesse campo e elas podem envolver o uso materiais diversos. Mas o principio básico de qualquer animação é o mesmo. Partindo de uma imagem inicial, o animador faz pequenas alterações nessa imagem e as coloca em sequência, para provocar a sensação de movimento.
Isso pode ser feito com modelos de massinha de modelar e fotografando seus movimentos quadro a quadro. Essa técnica é chamada stop motion.
Se você assistiu Frankenweenie, A Noiva Cadáver, O Estranho Mundo de Jack, O Fantástico Senhor Raposo, entre outros, você viu excelentes trabalhos em stop motion.
Também é comum ver esse princípio sendo usado nos chamados flipbooks (ou folioscópios).
Para chegar ao resultado esperado, o animador desenha sucessivas poses-chave de cada personagem. Depois, constrói as poses intermediárias que as conectam.
Quando os desenhos são colocados em sequência e folheamos as páginas do flipbook, vemos esse efeito de animação.
Modelagem de ambiente
Todo o ambiente de uma animação é construído através de um processo chamado modelagem, que nesse caso podemos entender como
a aplicação de modelos matemáticos e estatísticos e técnicas computacionais na construção de objetos digitais, que podem ou não ser animados.
Para exemplificar, vamos pegar um elemento bem simples de um ambiente: A grama.
Repare que toda folha de grama começa em um ponto, termina em outro ponto e tem uma inclinação.
Esse formato é muito similar a uma curva bem conhecida na matemática: a chamada parábola. Mais especificamente, um arco de parábola.
Ok, conseguimos descrever um elemento do ambiente através da matemática. Agora, como faço para armazenar essa informação no meu computador?
Eu posso fazer isso utilizando a equação de uma parábola, que será fácil para o computador entender. Mas não será nem um pouco agradável desenhar um gramado virtual usando várias equaçõezinhas diferentes.
A Pixar, uma das maiores empresas de animação do mundo, resolveu esse problema de um jeito muito simples. É possível obter uma parábola definindo apenas três pontos no espaço:
Dois deles informarão o ponto inicial e final da minha curva (no caso, da minha grama) e o terceiro ponto, informará a sua curvatura. Como você pode ver ao lado.
E, além desse arco parabólico, também podemos utilizar outros dois parâmetros para compôr o desenho: a espessura da folha de grama e a sua tonalidade.
E com essas 5 informações – a posição de três pontos no espaço, e mais dois parâmetros (de espessura e tonalidade) – o meu computador consegue armazenar a minha folha de grama.
Esse é o grande trunfo da modelagem: utilizar uma linguagem que possa ser entendida e manipulada tanto pelos artistas quanto pelos computadores.
De uma graminha para um gramado
Depois de construído o meu modelo de grama, eu preciso transformá-lo em um gramado cheio de folhas e que se movimente.
Para animar uma grama individualmente é preciso informar ao computador onde estará cada um dos três pontos de referência, em cada quadro da animação. E para que isso vire um gramado, eu apenas multiplico o número de folhas:
É claro que esse conjunto de graminhas não está nem um pouco realista. Na vida real, as folhas de grama não se comportam da mesma forma, como se estivessem sincronizadas.
Para resolver esse problema basta adicionar um parâmetro de atraso ao movimento de cada folhinha individual e, então, elas parecerão estar se movendo de modo aleatório (embora o movimento de vai-e-vem seja igual para todas).
Modelagem de personagens
A construção digital de personagens não é tão simples quanto a de gramas. Não é viável fazer um desenho com formas complexas usando arcos de parábola. É por isso que, para modelar personagens, é comum a utilização de uma técnica chamada sub-divisão.
Vamos tentar desenhar uma boca sorrindo. Para isso, nós começaremos com uma figura geométrica que qualquer computador entende e manipula muito bem: o quadrado.
Você consegue, apenas movendo os quatro vértices desse quadrado, chegar ao formato de um sorriso (o mesmo que está dentro do quadrado, na cor cinza)?
Bom, é impossível fazer isso, porque o sorriso não tem pontas, nem retas, apenas curvas.
Vamos fazer o seguinte então:
Em primeiro lugar, nós marcamos o ponto médio de cada lado do quadrado (agora temos 8 pontos marcados).
Em seguida, arrastamos cada um desses 8 pontos para a direita, até a metade do caminho para chegar no próximo ponto (como vemos no gif ao lado).
Agora nós temos um octógono, que por ter o dobro de vértices, nos oferece mais possibilidades de montar algum desenho. Mas ainda assim não é o suficiente.
Vamos, então, repetir esse processo de novo, e de novo, e de novo. Até obter uma forma praticamente circular (que na verdade ainda é um polígono, mas agora de infinitos lados, ao invés dos 4 lados que tínhamos no início).
Agora, você tem uma espécie de círculo que pode ser definido com apenas 4 pontos. E ao movimentar esses pontos, nós poderemos, finalmente, tentar chegar no formato de sorriso que queríamos inicialmente:
É possível obter contornos diferentes, com outras possibilidades de formatos, partindo de figuras geométricas diferentes.
Além disso, também é possível criar mais pontos de referência para fazer desenhos mais complexos, como uma mão.
E, no final, basta apenas dizer ao computador para fazer esse processo de sub-divisão (marcar os pontos médios, arrastá-los para a direita, ligar os pontos – e repetir isso várias vezes) para transformar as retas e quadrados em curvas suaves, como mostra o gif.
Animação de personagens
Em uma animação virtual usa-se a mesma lógica de uma animação com flipbook ou stop motion. O animador movimenta um modelo digital criando várias poses sequenciais. Essas poses são interpretadas pelo computador, que as armazena na forma de números em uma planilha. E, a partir dessas poses-chave e através de uma ferramenta matemática chamada interpolação, o próprio computador preenche os quadros intermediários entre as poses-chave.
Embora esse “meio do caminho” seja facilmente preenchido por um computador, ele é essencial para a compreensão da cena.
Um computador, por padrão, completa esse meio do caminho por interpolação linear, com isso, o movimento de cada ponto se dá com uma velocidade constante. Mas na vida real as coisas não se movem sempre com a mesma velocidade.
Quando um corpo está caindo, por exemplo, ele começa com uma velocidade mais lenta e, devido à ação da gravidade, vai aumentando sua velocidade até chegar no chão. Se esse corpo for feito de um material com boa elasticidade, ele vai bater no chão e subir de novo. Se for uma bola de boliche, ela provavelmente vai bater e ficar no chão.
A maneira como um objeto se move diz muito sobre como ele é. Compare essas duas cenas protagonizadas pelo Senhor Incrível:
Na primeira, o trem é levantado com muita facilidade, indicando que: ou o Senhor Incrível é realmente muito forte, ou o trem nem é tão pesado assim. A segunda cena passa uma impressão totalmente diferente. Por mais forte que o Senhor Incrível seja, levantar esse trem não é uma tarefa tão fácil.
Por isso é muito importante que um profissional faça os ajustes necessários na interpolação feita pelo computador para gerar o efeito que deseja.
Como são feitas as multidões, como funciona uma câmera virtual, como inserir texturas, efeitos, cores, etc., o que é acontece no processo de renderização de uma animação?
Como podem ver, ainda existem muitos outros assuntos que podem ser abordados. Quem sabe num próximo post falamos disso? Se você não aguenta de curiosidade, leia até o final e descubra onde encontrar essas respostas!
—
Esse post foi inspirado no curso Pixar in a Box, oferecido pela Khan Academy. Se gostou do assunto, pode entrar no link e fazer o curso também. É totalmente gratuito e as video-aulas estão todas dubladas. O conteúdo desse post não tem nem 10% do que o curso completo oferece, então corre lá!
Os gifs que usei nesse post foram gerados pelo ezgif a partir das video-aulas e dos simuladores do curso que mencionei.
Aproveite para ver o vídeo introdutório do curso Pixar in a box:
Muito bom!
Obrigado Magno! 🙂
Que incrível!!! Fiquei com muita vontade de aprender mais sobre isso!! E isso ainda me fez pensar sobre o quanto seria interessante aprender essas coisas na prática nas escolas... com certeza ia fazer muito mais sentido aprender determinadas fórmulas matemáticas a partir de exemplos como esse! Começar um curso ensinando conceitos básicos e ir evoluindo no grau de dificuldade até conseguir atingir o resultado final, que seria a invenção e a animação do seu próprio personagem! Imagina só que incrível??? Com certeza ia motivar muita gente a querer aprender!
Nossa, Lucas, acabei de responder e já me veio outra ideia!!! Seus posts sempre têm esse efeito em mim! hahahaha Eles sempre me fazem pensar, e me abrem a mente!!
Fiquei pensando na aplicação disso que eu falei no projeto Nas Asas do Dragão!! Aqui no curso de Ciências Biológicas vamos tentar utilizar uma estratégia semelhante a essa que eu falei na resposta anterior: vamos começar o curso discutindo e analisando o que vamos precisar aprender para poder criar um dragão. No nosso caso, os alunos vão precisar estudar as bases moleculares do desenvolvimento animal que possibilitariam as mudanças morfológicas em embrião para que ele se tornasse um dragão. Não teríamos como criar o dragão de verdade (até porque envolveria vários problemas hehehe aliás, a ideia é que os próprios alunos percebam isso), mas imagina só que legal seria poder fazer o projeto em conjunto com o pessoal dessa área de animações para poder fazer a modelagem do dragão que os grupos querem criar? Eles teriam que partir de informações de um animal já conhecido, e aí teriam que tentar prever o que determinadas modificações genéticas causariam no formato final do animal, traduzindo isso em fórmulas matemáticas. Imagina só que incrível?? Nossa, seria muito show tentarmos amadurecer essa ideia!! Você teria alguma sugestão??
Poxa, fico feliz que meus posts têm esse efeito hehehe. Eu tento escrever só coisas que me fazem pensar e ter novas ideias tb 🙂
Então, essa sua ideia é excelente, eu adoraria ter uma aula dessas!! Algumas observações que pensei aqui:
- Eu, particularmente, não tenho contatos com ninguém dessa área em Campinas, mas com certeza tem gente interessada nessa interface entre educação e tecnologia, e que domine bem essa área de animação. Teria é que ir atrás de alguém e ver se a pessoa topa esse desafio;
- Existem muitos softwares gratuitos pra trabalhar com modelagem, isso é um ponto positivo. Também é possível encontrar na internet diversos modelos já prontos (de animais, inclusive, deve ter uma variedade boa). Seria mais viável partir de um modelo de um animal (um lagarto, por ex.) e ir fazendo alterações nele, do que partir do zero.
- Teria que ver, com alguém que trabalha com isso, o nível de dificuldade de fazer uma coisa dessas né rsrs. Esse é um trabalho que exige uma habilidade artística que nem todo mundo tem. É bom ver isso, porque às vezes vai ser tão mais difícil mexer com os modelos 3D do que entender a matéria em si, e essa dificuldade vai acabar roubando a cena (e o tempo, que muitas vezes é um limitante pro professor). Tem que pôr isso na balança e ver se vale a pena.
- Eu escrevo sobre muitos assuntos diferentes aqui no CN, mas computação não é uma área que eu domino. Biologia então, eu nem me arrisco a escrever sobre isso aqui no blog hahaha. Então minha ajuda é muito limitada.
Talvez o primeiro passo pra começar a materializá-la e amadurecê-la melhor seja conversando com alguém da área. Aí daria pra ter uma noção melhor da viabilidade dessa ideia e de possíveis alternativas à ideia inicial.
Só não deixe essa ideia morrer hehe 🙂
Como você disse, acho que a primeira coisa realmente seria encontrar esse profissional da área de animações para consultar! Mas pensando aqui com meus botões... o que eu acho que seria o mais legal seria a interação de diferentes turmas (por exemplo, uma turma da Biologia e outra da Computação). Seria mais como uma interação profissional multidisciplinar, sabe?? Que é o que eu acho que aconteceria no caso de profissionais da área de animações quererem tornar seus modelos mais realistas, por exemplo, porque aí imagino que eles iriam querer trabalhar em conjunto com biólogos.
Partindo de um lagarto, por exemplo, teríamos que ver quais seriam todas as modificações que seriam necessárias para realmente fazer o bichinho voar hehehehe com os cálculos será que esses programas conseguiriam prever isso? Tamanho das asas e membranas, peso do animal... Ou aí já vira outro nível de complexidade? E associar as características morfológicas dos animais a determinados processos, simulando o processo do desenvolvimento embrionário? E simular alterações genéticas? Caramba, acho que o negócio pode virar MEGA complexo!!! Mas seria muito interessante saber até onde dá pra chegar! Até porque com o nível de conhecimento que temos, ainda temos muitas limitações. Mas ia ser ótimo poder prever o que está faltando pesquisar e gerar de conhecimentos científicos para resolver esses "gaps"!! Seria um baita estímulo para as pesquisas!
Então, essa interação entre profissionais de áreas diversas seria bem legal mesmo. É muito difícil ver atividades acadêmicas verdadeiramente multidisciplinares, e essa é uma atividade que tem potencial pra ser.
Sobre fazer cálculos pra ver em que condições um lagarto conseguiria voar, não é tão complexo não hehe. É claro que precisaríamos de simplificar algumas coisas, seria difícil fazer cálculos muito precisos, mas pra fins didáticos acho bastante viável.
De fato, essa ideia tem muito potencial pra se tornar complexa. O céu é o limite hehe. Mas assim, esse aumento de complexidade pode ser uma coisa gradativa também. Essa proposta permite que se faça, por ex., um início com um nível mais básico e, aos poucos, uma crescente sofisticação dos cálculos e dos estudos (na medida em que os alunos forem se envolvendo e compreendendo mais a proposta né).
Oi Carol!!
Quando eu fiz o curso da Pixar fiquei com essa mesma sensação. Ensinar ciências e matemática dessa maneira é tão melhor e mais motivador. Já apresentei pra vários professores de matemática e física que conheço e alguns já planejam usar um pouco desse material nas suas aulas.
Caramba, quando comecei a ler o post não imaginava descobrir outra aplicação do método de interpolação! Quando a gente estuda esse tópico normalmente só pensamos em achar comportamentos de funções e nem nos damos conta da aplicações geométricas que foram onde os métodos buscaram inspiração! Adorei o post!
Olá Eduardo!
Eu também fiquei com essa sensação quando descobri isso.
E que coisa né, eu estudei interpolação em matérias de matemática, de estatística e de computação na faculdade. Nunca imaginei que isso poderia ser utilizado em animações.
Tomara que esse material, que a Pixar ta disponibilizando, chegue até professores, porque ele é muito bom. Dá pra ser usado tanto em uma aula de ensino médio, quanto em uma aula em um curso de física, matemática, ou computação.
Enfim, obrigado pelo comentário!!
Abração!
Lucas, Este tema daria um livro!! Se tiver interessa me mande um email
Muito bom, interessantíssimo !!!
Valeu Giselle!! 😀
Tem algum post específico sobre matrizes? Preciso fazer um vídeo que mostre uma aplicação da álgebra com o cotidiano, achei interessante essas aplicações.
Olá Natielly! Poxa, não tenho nenhum texto sobre isso. Nem sei como começaria um texto sobre isso rsrs.