A animação consiste na modificação da posição, da forma ou de uma qualquer outra característica visível de um objecto ao longo do tempo, e é conseguida muito simplesmente através da apresentação de uma sequência de imagens a um ritmo suficientemente elevado (por exemplo o padrão PAL é de 25 imagens por segundo) para que, em resultado da persistência da visão, possa criar a ilusão de uma evolução contínua.
Por exemplo, dispondo os modelos 3D que deram origem à figura 1.15.9 em 250 diferentes posições, procedendo à renderização de cada um dos enquadramentos, e mostrando as 250 imagens obtidas a um ritmo de 25 imagens por segundo, criamos a animação de 10 segundos que se mostra em animação 1.17.1.
Seria uma tarefa extremamente morosa se tivesse que ser feita enquadramento a enquadramento. Como veremos, existem no Blender diversas funcionalidades que permitem reduzir muito significativamente o tempo de produção de uma animação. Ainda assim, há um dos aspectos que não pode ser contornado: o tempo de renderização de cada uma das imagens. Sendo uma sequência de imagens, uma animação pode ter tanta qualidade quanta a julgada necessária. Dependendo da complexidade da iluminação e das características dos materiais envolvidos, uma imagem pode demorar de alguns segundos a alguns dias a renderizar. Por exemplo, se a cada uma das imagens de uma animação estiver associado um tempo de renderização de uma hora, as 1500 imagens de um pequeno filme de 25 minutos de duração demorarão dois meses a ser renderizadas.
No Blender, a animação pode ser conseguida em resultado de uma sequência de 3 diferentes tipos de acções:
Actuar sobre o objecto como um todo,
modificando a sua posição ou dimensões ao longo do tempo. Vimos já como isso pode ser feito (ex: teclas R, G, S).
Actuar sobre os elementos que constituem o modelo 3D do objecto (vértices, etc.), modificando a sua forma ao longo do tempo. Vimos alguns princípios rudimentares de modelação. Veremos proximamente diversas técnicas de modelação, e em particular as funcionalidades de alteração de forma criadas com o fim específico de fazer animação.
Actuar sobre uma armadura interna ao objecto. Existe no Blender um sistema articulado, designado por Armadura, que constitui uma espécie de esqueleto do objecto, facilitando a obtenção de movimentos articulados (como por exemplo o andar, saltar, etc.).
Vamos por enquanto ver apenas os aspectos básicos do primeiro ponto acima. Voltaremos ao tema animação por diversas vezes ao longo do semestre, analisando técnicas sucessivamente mais complexas.
Animação 1.17.1
Animação recorrendo ao motor de jogo.
O modo mais simples de obter uma animação em Blender é recorrendo ao seu motor de jogo integrado. Foi assim que foi feita a animação 1.17.1.
Graças ao motor de jogo é possível atribuir uma massa a um qualquer objecto e inseri-lo num mundo em que fica sujeito às leis da Física (da Mecânica), passando o objecto a reagir à força da gravidade, às forças de atrito, resistência do ar, etc. Para obter uma animação basta então gravar o modo como o "jogo" evolui. Passemos a ver um exemplo simples, para não perder tempo com o processo de renderização. Não serão dados detalhes relativamente ao botões e painéis do motor de jogo. Abordaremos a questão numa próxima aula.
Seleccione [Shading] na barra da Janela de Botões, ou pressione [F5], e em seguida seleccione o
símbolo com o planeta Terra, figura 1.17.1, para ter acesso aos painéis de controlo do Mundo (World), World Buttons. No Painel Mist/Stars/Physics, figura 1.7.2, é possível alterar o valor da força de gravidade a que os objectos estão sujeitos, enquanto actores do mundo.
Seleccione um objecto e em seguida seleccione [Logic] na barra da Janela de Botões, figura 1.17.3, ou pressione [F4], para ter acesso ao painéis do Motor de Jogo (Game Engine, GE). Se pressionar o botão no topo esquerdo, [Actor], o Motor de Jogo passa a considerar o objecto seleccionado como um personagem, ou actor, do mundo em que está inserido, e a processá-lo conforme as
características que em seguida se definirem nos botões que ficam disponíveis. Por agora apenas nos interessa o botão [Dynamic] que, uma vez pressionado, determina que o actor fica sujeito às leis da Mecânica.
Na barra do Janela de Preferências, o opção [Game] abre um menu em que se podem seleccionar diversas opções do GE.
Seleccione [Record Game Physics to IPO]. O GE passa a registar a evolução ao longo do tempo dos actores presentes no Mundo em que o Jogo se desenrola (veremos já de seguida o significado do termo IPO).
O motor de jogo é accionado colocando o cursor do rato sobre a Janela 3D e pressionando a tecla [P], ou fazendo a respectiva selecção no menu acima referido, figura 1.17.5. Para sair do GE pressione [Esc].
Se tiver sido accionado o registo IPO das ocorrências do jogo, estas podem ser revistas colocando o rato sobre uma qualquer Janela 3D e pressionando as teclas [Alt][A].
• Abra o Blender. Insira um plano em TopView, aumente a suas dimensões e coloque-o na origem xyz[0 0 0], DxDyDz[8 8 0]. Eleve o cubo acima do plano e reduza-lhe as dimensões: xyz[0 0 4], DxDyDz[1 1 1]. Passe a CameraView. Deve obter um enquadramento semelhante à figura 1.17.6.
• Seleccione o cubo, seleccione [Logic] na barra da Janela de Botões, ou pressione [F4]. Pressione o botão [Actor], e em seguida o botão [Dynamic]. Na barra do Janela de Preferências, seleccione [Game] e [Record Game Physics to IPO].
• Coloque o rato sobre a janela 3D e pressione [P]. Verá que o cubo se desloca em direcção ao plano (estando sujeito à força da gravidade tem um movimento uniformemente acelerado segundo o eixo dos zz). Quando o cubo atingir o plano pressione [Esc] para sair do GE.
• Coloque o rato sobre a janela 3D e pressione [Alt][A]. É mostrada a sequência de enquadramentos que darão origem às imagens que
constituirão a animação (uma vez feita a renderização). No pequeno quadrado negro que surge sobre a Janela 3D pode ver o número correspondente ao enquadramento (Frame) que está a ser apresentado. A mesma informação é dada no canto inferior esquerdo da Janela 3D, figura 1.17.6.
Figura 1.17.1
Figura 1.17.2
Figura 1.17.3
Figura 1.17.4
Figura 1.17.5
Figura 1.17.6
Características vídeo.
Antes de continuar a apresentação dos conceitos básicos sobre animação vamos ver como podemos especificar as características do
vídeo correspondente à sequência de imagens renderizadas.
Pressione [F10], ou, seleccione [Render] na barra da Janela de Preferências e seguidamente [Render Settings], figura 1.17.7, ou ainda, na barra da Janela de Botões seleccione [Scene] seguido de [Render Buttons], figura 1.17.8. Surgem na Janela de Botões os painéis das figuras 1.17.9 a 12.
Figura 1.17.7
Figura 1.17.8
Figura 1.17.9
Figura 1.17.11
Figura 1.17.10
Figura 1.17.12
No Painel Format, figura 1.17.9, pode optar por um dos formatos pré-definidos (PAL, NTSC, etc.), ou especificar as dimensões da imagem nas caixas [SizeX/SizeY], o número de imagens por segundo na caixa [FPS], e ainda o formato do ficheiro em que deseja gravar a animação (Mov, Mpeg, Avi, etc.).
No Painel Render, figura 1.17.10, pode alterar as dimensões da imagem especificado no Painel Format, especificando uma percentagem dessa dimensão (a opção é útil para reduzir o tempo de renderização durante a fase de concepção da animação.
No Painel Anim, figura 1.17.11, nas caixas [Sta/End] pode especificar o número das frames por que deseja que a sua animação seja composta. Se pressionar o botão Anim dá início ao processo de renderização da sequência. Terminado o processo pode ver o
vídeo final pressionando o botão Play.
No Painel Output, figura 1.17.12, pode especificar a directoria em de deseja gravar o ficheiro
vídeo e ainda em que janela e em que posição do
ecrã deseja ver o processo de renderização.
Durante a evolução da composição do ficheiro
vídeo pode ver o número da frame que está a ser renderizada no canto superior direito da janela de renderização, figura 1.17.3. A mesma informação pode ser vista na consola, figura 1.17.14.
• Pressione [F10]. Seleccione um formato
vídeo e especifique Sta/End[1 50] (isto é, renderize apenas 50 frames). Após terminado o processo pressione [Play] e observe a animação, animação 1.17.2.
Figura 1.17.13
Figura 1.17.14
Animação 1.17.2
Animação por key frames.
A animação por recurso ao motor de jogo, embora expedito, é um processo de resultados limitados a animações associadas a movimentos resultantes das leis da mecânica. Tendo intitulado este processo como o mais simples, digamos então que o que agora vamos ver, Animação por Quadros Chave (KeyFrames) é o mais básico. Na verdade os conceitos que agora vão ser apresentados constituem a base de todas as animações feitas em Blender.
Dado que uma animação consiste na mudança ao longo do tempo de um qualquer aspecto visível do enquadramento a renderizar, é necessário a existência de um mecanismo que registe essas modificações. Por outro lado, dado que o número de enquadramentos necessários para produzir uma animação é extremamente elevado, é necessário um mecanismo que automatize a construção de cada um dos enquadramentos com base nas modificações que é necessário introduzir relativamente aos enquadramentos anteriores.
No Blender, como na maior parte do sofware de animação 3D, o registo das características de um enquadramento especialmente relevante no fluxo da animação é feito num Quadro Chave (KeyFrame), e o cálculo das características dos enquadramentos entre cada uma das KeyFrames é feito por interpolação e registado em Curvas IPO (de InterPOlation).
Voltemos ao exemplo do cubo que cai em direcção ao plano, cuja dinâmica foi calculada pelo motor de jogo e registada sem qualquer intervenção da nossa parte (recorde que seleccionámos [Record Game Physics to IPO], figura 1.17.5).
Na barra da Janela de Preferências seleccione a pré-configuração de janelas, Animation, figura 1.17.15.
Figura 1.17.15
Figura 1.17.17
Figura 1.17.16
Surgiram no ecrã dois novos tipos de janelas: a Janela de Edição de Curvas IPO (IPO Curve Editor), ou simplesmente Janela IPO e a Janela de Tempo (Timeline), figura 1.17.16. As duas janelas têm funcionalidades complementares e podem substituir qualquer das janelas do ambiente de trabalho pelo método habitual, figura 1.17.17.
Vamos ignorar por agora a Janela de Tempo e explorar as funcionalidades básicas da Janela IPO. Voltaremos ao assunto num próximo módulo.
Seleccione o cubo. Na Janela IPO pode ver uma série de curvas que descrevem a evolução temporal das características do cubo relevantes para a presente animação. Estas
características, chamadas neste contexto Canais IPO, estão especificadas na barra vertical cinzenta à direita da janela IPO. Cada uma das curvas é representada na cor correspondente ao pequeno rectângulo à esquerda da designação do canal IPO. Pressione o rectângulo à esquerda de LocZ. Ficará
visível apenas a curva que representa a coordenada Z da posição do centro do cubo (representada no eixo vertical) relativamente ao nº de ordem da frame na animação (escala horizontal), figura 1.17.16.
Note que a curva locZ é representada a amarelo. No caso da figura 1.17.6 a coloração rosa deve-se ao facto de a janela IPO estar em Edit Mode e os pequenos
rectângulos sobre a curva se encontrarem não seleccionados. Cada um destes pequenos rectângulos, um por frame, corresponde a uma KeyFrame, estando representados na Janela Tempo pelas linhas verticais a amarelo. A curva IPO foi gerada pelo GE que simplesmente cria uma KeyFrame por cada imagem a renderizar.
Vamos agora ver como criar uma animação idêntica à acima descrita mas sem recurso ao GE.
• Abra o Blender. Insira um plano em TopView, aumente a suas dimensões e coloque-o na origem xyz[0 0 0], DxDyDz[8 8 0]. Eleve o cubo acima do plano e reduza-lhe as dimensões: xyz[0 0 4], DxDyDz[1 1 1]. Passe a CameraView. Deve obter um enquadramento semelhante à figura 1.17.6.
• Subdivida a Janela 3D é coloque à direita uma Janela IPO.
Verifique que o número entre parêntesis no canto inferior esquerdo da Janela 3D, correspondente à frame em edição, é (1) . Vamos agora informar o Bloco IPO que a 1ª frame é uma KeyFrame.
Para inserir uma KeyFrame pressione [I].
• Seleccione o cubo e pressione [I].
Um menu onde pode seleccionar o Canal IPO que deseja registar, figura 1.17.18, surge no ecrã (as opções presentes no menu dependem do tipo de objecto que seleccionou).
• Seleccione [LocRot].
Com esta opção regista a informação relativa às coordenadas do centro do objecto e à rotação dos eixos coordenados locais relativamente às coordenadas globais. Na janela IPO surgirão duas linhas constantes. Vamos agora avançar para a frame 50 da animação recorrendo aos cursores.
[é]
Avança 10 frames.
[ê]
Recua 10 frames.
[è]
Avança 1 frame.
[ç]
Recua 1 frame.
[ShiftL]
+[é]
Avança para a última frame.
[ShiftL]
+[ê]
Recua para a 1ª frame.
• Avance para a frame 50. Seleccione o cubo e desloque-o em direcção à origem: xyz[0 0 0.5 ]. Pressione [I] de modo a inserir uma nova KeyFrame e seleccione [LocRot].
A curva IPO a amarelo (LocZ) assumiu a forma da figura 1.17.19. O valores da coordenada z do centro do cubo, entre as frames 1 e 50 foram calculadas por interpolação e registadas no respectivo canal IPO.
• Coloque o cursor sobre a janela 3D, pressione [ShiftL]
+[ê] para saltar para a 1ª frame e em seguida [Alt]+[A] para pré-visualizar a animação.
Figura 1.17.18
Edição de curvas IPO.
As curvas IPO podem ser editadas quer como um todo, quer actuando sobre cada um dos pequenos rectângulos representativos das KeyFrames, de modo semelhante às acções na janela 3D sobre os objectos em Modo Objecto ou sobre os
vértices da sua malha em Modo Edição (teclas G, R, S, etc.) .
Note que a curva da figura 1.17.19 é diferente da curva da figura 1.17.16. A curva 1.17.16 resultou do cálculo, pelo GE, do movimento uniformemente acelerado do cubo em direcção ao plano. A curva 1.17.19 resultou do modo de interpolação padrão que está seleccionado e corresponde a uma curva de Bezier.
• Seleccione apenas a curva IPO LocZ (certifique-se de que não estão seleccionadas todas as curvas IPO. [A] selecciona/desselecciona todas as curvas).
Pressione [Tab] para entrar em modo edição. Pressione [A] para desseleccionar todas as KeyFrames. Seleccione o controlador de Bezier mais à esquerda da 2ª KeyFrame, figura 1.17.20. Pressione [G] e arraste o controlador para cima e para fora, figura 1.17.21.
• Coloque o cursor sobre a janela 3D pressione [ShiftL]
+[ê] para saltar para a 1ª frame e em seguida [Alt]+[A] para pré-visualizar a animação.
A curva é agora semelhante à figura 1.17.16, simulando um movimento uniformemente acelerado.
Em qualquer altura pode ir à janela 3D e inserir uma nova KeyFrame com as características que desejar, e de seguida voltar à janela IPO e editar as curvas como considerar conveniente. Pode também inserir uma nova KeyFrame na janela IPO ([Ctrl]+[LB ] sobre a curva em modo edição) e alterar as suas
característica na janela IPO ou na janela 3D. Veremos todos os pormenores sobre Curvas IPO e KeyFraming num próximo módulo.
• Reproduza a curva IPO da figura 1.17.22: Insira 3 novas KeyFrames e dê à curva uma forma semelhante à da figura pelo método que desejar (nota: Tal como na janela 3D pode recorrer ao auxilio da janela de transformações,
pressionando [N], para obter uma maior precisão).
Para replicar parte da curvas IPO o processo é semelhante à duplicação de elementos de uma malha na janela 3D.
Em Modo Edição, podemos seleccionar um conjunto de KeyFrames com [Shift] + [RB ] sobre cada uma delas, ou pressionando [B] e arrastando o rectângulo de selecção. Após feita a selecção, [Shift]+[D] duplica o conjunto de KeyFrames seleccionado, que pode ser arrastado com o rato para a posição desejada.
Se desejar repetir periodicamente um determinado comportamento, o modo mais prático é recorrer ao Modo Expandido (IPO Extended Mode). O Modo Expandido determina a maneira como as curvas IPO evoluem para além dos limites da primeira e última KeyFrame, ou seja, como a curva é extrapolada. Veremos pormenores mais tarde. Por agora vamos ver como usar o modo expandido para criar um movimento ciclíco.
Para aceder ao Modo Expandido seleccione [Curve>Extended Mode] da barra da Janela IPO, figura 1.17.23, ou, com o rato sobre uma janela IPO, pressione [E], figura 1.17.24. Para repetir ciclicamente o comportamento que a curva IPO assume dentro dos limites da primeira à última KeyFrame seleccione [Cyclic].
• Na Janela IPO seleccione a curva LocZ, pressione [E] e seleccione [Cyclic]. A curva assume o comportamento que se mostra na janela 1.17.23.
• Coloque o rato sobre a janela 3D e pressione [Alt][A] para pré-visualizar animação.
• Pressione [F10]. Seleccione um formato
vídeo e especifique Sta/End[1 250]. Após terminado o processo pressione [Play] e observe a animação, animação 1.17.3.
Figura 1.17.23
Figura 1.17.19
Figura 1.17.20
Figura 1.17.21
Figura 1.17.22
Figura 1.17.24
Animação 1.17.3
Curvas path.
Embora qualquer dos tipos de curvas disponíveis no Blender possa ser utilizada como elemento condicionador do movimento de um objecto, existe no Blender um tipo especial de curva,
designada por Path, que tem características especiais que facilitam a sua utilização em animação.
• Pressione [Space] e seleccione [Add>Curve>Path], figura 1.17.25. Para facilitar a manipulação do Path deve inseri-lo sobre um plano coordenado, isto é, em TopView, SideView, etc.
A curva Path tem associada uma direcção de evolução e tem, por defeito, 5 controladores de forma, figura 1.17.26. Seleccionando os controladores, em Modo Edição, a curva pode tomar a forma que se deseja dar ao percurso a seguir pelo objecto. Pode adicionar novos controladores seleccionando o controlador de um dos extremos e pressionando [Ctrl]+[LB ], pode seleccionar vários controladores em simultâneo,
mantendo [Shift] pressionado em cada uma das selecções, pode fechar o percurso pressionando [C], etc.. Num próximo módulo analisaremos a questão em detalhe.
Figura 1.17.25
Figura 1.17.26
Animação com restritores.
Um vez criado o percurso desejado é necessário associar o objecto que desejamos animar a esse percurso. Para isso seleccionamos o ambiente [Object>Object Buttons] na janela de botões, [F7], figura 1.17.27, e, no Painel Constraints seleccionamos [Add Constraint> Follow Path], figura 1.17.29. O Painel Constraints assume a forma da figura 1.17.28. Na caixa OB inscreva o nome do Path. A caixa imediatamente acima deve mudar de cor. Caso contrário inseriu mal o nome do Path.
Na janela IPO, seleccionando o tipo de curvas Path, 1.17.30, podemos controlar o modo como o objecto percorre o Path modificando a forma da curva Speed. Por defeito, a Path é percorrido em 100 frames. Pode alterar esse valor seleccionando os controladores da curva e dando-lhe o valor desejado. A edição da curva Speed é idêntica à de qualquer das curvas IPO.
Pode criar várias curvas Path e tomar qualquer delas como um objecto a que associa um restritor Follow Path, como acima ficou descrito. Isto é, pode obrigar uma curva Path a percorrer o percurso definido por outra curva Path.
Podemos associar qualquer objecto a uma curva Path, uma
lâmpada, uma câmara, etc.. No caso da associação de uma câmara a uma curva Path, e de modo a que a câmara aponte sempre para um alvo desejado, devemos associar-lhe um novo restritor: Track To, figura 1.17.29. Enfim, as opções são ilimitadas. Veremos todos os pormenores num próximo módulo.
Figura 1.17.27
Figura 1.17.28
Figura 1.17.29
Figura 1.17.30
Explore os conceitos básicos sobre animação aqui apresentados
até se familiarizar com a
sua utilização. Pratique a criação e edição de curvas IPO e a utilização de restritores.