9.1. Introdução.

July 7, 2017

 

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.

Seria uma tarefa extremamente morosa se tivesse que ser feita imagem a imagem. 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 5 minutos, as 37500 imagens de um pequeno filme de 25 minutos de duração demorarão 4 meses a ser renderizadas.

9.1.1. KeyFrames e F-Curves.


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.

• Actuar sobre os elementos que constituem o modelo 3D do objecto (vértices, etc.), modificando a sua forma ao longo do tempo.

• Actuar sobre uma armação associada ao objecto (Existe no Blender um sistema articulado, designado por Armature, que constitui uma espécie de esqueleto do objecto, facilitando a obtenção de movimentos articulados, como por exemplo o andar, saltar, etc.).

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 numa KeyFrame (Quadro Chave), e o cálculo das características dos enquadramentos entre cada uma das keyframes é feito por interpolação e registado em curvas, designadas por Curvas IPO nas versões anteriores, e na actual versão designadas por F-Curves.

O número correspondente à Frame (Enquadramento) da animação que está a ser apresentada na janela 3D é dado no canto inferior esquerdo.

Utilize as teclas dos cursores para modificar a frame representada na janela 3D.

Pressionando [RA] avança uma frame.

Pressionando [LA] recua uma frame.

Pressionando [Shift] + [UA] avança 10 frames.

Pressionando [Shift] + [DA] recua 10 frames.

Pressionando [Shift] + [RA] avança para a última frame.

Pressionando [Shift] + [LA] recua para a 1ª frame.

Os cardinais da 1ª e da última frame são definidos na janela Timeline, ou no contexto Render, como veremos mais à frente.

9.1.2. Janela Timeline.


Na configuração Default, por baixo da janela 3D está aberta uma janela do tipo Timeline.

Note que ao modificar a frame representada na janela 3D quando pressiona os cursores, a risca verde vertical muda de posição.

No exemplo da figura, a 20ª frame está representada na janela 3D, como pode ver pelo número no canto inferior esquerdo da janela, e na janela Timeline a risca verde está na posição correspondente, como é indicado na numeração da escala horizontal da janela.

Pode modificar a frame representada na janela 3D seleccionando a risca verde, [LMB], e arrastando o rato. Note que ao modificar a posição da risca a numeração correspondente à frame representada é actualizada na janela 3D.

Note ainda que na barra da janela Timeline, imediatamente a seguir à indicação da primeira e da última frame da animação, que, para além de estarem definidos no contexto Render, como veremos mais à frente, podem ser definidos aqui, é indicada qual a frame representada na janela 3D, no presentente exemplo a 20ª.

A edição deste campo, ou a activação dos pequenos triângulos à esquerda e à direita constitui uma terceira opção de alteração da frame representada na janela 3D.

Para definir a primeira e a última frame da animação pode também recorrer ao menu da barra da janela Timeline, Frame > Set Start/End Frame, ou às teclas dedicadas.

Com o cursor do rato sobre a janela Timeline, pressione [S] para definir a primeira frame da animação.

Com o cursor do rato sobre a janela Timeline, pressione [E] para definir a última frame da animação.

A região da janela Timeline entre a primeira e a última frame da animação é representada num tom cinzento mais claro.


9.1.3. KeyFrames.


Para inserir uma keyframe pressione [I].

Abra o Blender.

Verifique que o número entre parêntesis no canto inferior esquerdo é 1 e o cubo está seleccionado.

Pressione [I] e seleccione Location no menu que surge no ecrã.

A opção Location regista a posição das coordenadas, no sistema de eixos global, do centro do objecto seleccionado.

Note que informação no canto inferior esquerdo da janela 3D está agora representada a cor de laranja, indicando que o objecto seleccionado tem, para a frame representada, uma keyframe associada.

Na barra da janela Info, seleccione a pré-configuração Animation.

A pré-configuração Animation é constituída pelo conjunto de janelas mais comummente utilizadas no processo animação, que em seguida se descrevem brevemente.

9.1.4. Janela Outliner.


Na janela Outliner, seleccione, [LMB], o símbolo + à esquerda do objecto Cube, de modo a expandir a informação.

Pode ver que ficou registada a existência de uma Animação associada ao objecto.

Seleccione o símbolo + à esquerda de Animation de modo a expandir a informação.

Pode ver que ficou registada a existência de uma Acção, de nome CubeAction, associada ao objecto.

9.1.5. Janela GraphEditor.


Na janela Graph Editor, pode ver que o objecto Cube tem associada a acção CubeAction, composta pelo Canal Location.

Seleccione, [LMB], o triângulo invertido à esquerda de Location de modo a expandir a informação.

Pode ver que o canal Location é, por sua vez, composto por 3 canais, X, Y e Z Location.

Neste momento a janela não tem grande informação, porque apenas inserimos uma keyframe, representada por um pequeno rectângulo laranja.

9.1.6. F-Curves.


Avance para a frame 11, [UA].

Seleccione o cubo e, por exemplo, actuando sobre os transformadores, proceda a uma translação sobre X, sobre Y e sobre Z.

Insira uma nova keyframe, [I].

Avance para a frame 21, [UA].

Seleccione o cubo e proceda a uma translação sobre X, sobre Y e sobre Z.

Insira uma nova keyframe, [I].

Observe agora a janela Graph Editor. Pode ver representadas 3 curvas, designadas por F-Curves, tendo cada uma delas 3 pontos, que representam as 3 keyframes que inserimos, a 1ª na frame 1, a 2ª na frame 11, e a 3ª na frame 21, como se pode ver pela escala horizontal.

Note que a cor de cada curva corresponde à cor do quadrado representado à esquerda de cada um dos canais.

As curvas descrevem a evolução temporal das características do cubo relevantes para a presente animação, no caso presente, a posição da origem do cubo no sistema de eixos global.

Pode eliminar a representação de cada uma delas por desactivação, [LMB], do quadrado colorido à esquerda do nome de cada um dos canais.

Cada um dos pontos das curvas corresponde à posição da respectiva coordenada da origem do cubo, escala vertical, em cada uma das frames, escala horizontal, ou seja, ao longo do tempo, e foi calculado por interpolação, a partir da informação de cada keyframe.

O método segundo o qual os valores são interpolados é seleccionável. Falaremos mais tarde desses pormenores.

9.1.7. Active and Automatic Keying.


Como vimos, na sequência da inserção de uma keyframe por recurso à tecla [I], é necessário seleccionar o tipo de características a registar a partir do menu que surge no ecrã.

Active Keying Set..

Quando se pretende inserir uma sequência de keyframes do mesmo tipo, é possível automatizar o processo seleccionando o tipo de keyframe a inserir no menu dropdown disponível na célula Active Keying Set da barra da janela Timeline.

Uma vez especificada uma Active Key, esta é automaticamente inserida sempre que a tecla [I] for pressionada.

Alternativamente à tecla [I], pode inserir a keyframe activa pressionando o botão com o símbolo de uma chave, imediatamente à direita da célula Active Keying Set.

O botão seguinte permite eliminar as keyframes, do tipo da Active Key, previamente inseridas.

Automatic Keyframe..

Independentemente da existência de uma Active Key, o registo de keyframes pode ser automatizado pressionando o botão com o círculo vermelho à esquerda da célula Active Keying.

Uma vez activada a função Automatic Keying, serão inseridas automaticamente keyframes em todas a F-Curves que na janela Graph Editor estejam em modo edição, sempre que o objecto activo sofrer qualquer transformação.

Se em simultâneo estiver pressionado o botão à direita com o símbolo de uma chave, as keyframes só serão inseridas automaticamente nas F-Curves associadas ao Active Keying Set seleccionado.

9.1.8. Janela DopeSheet.


A janela DopeSheet corresponde a um nível superior de abstracção da janela Graph Editor.

Pode ver que o objecto Cube tem associada a acção CubeAction, composta pelo Canal Location, tendo à direita, representada sob a forma de um losango, a informação sobre quantas keyframes foram inseridas e em que instantes.

9.1.9. Animação.


A combinação de teclas [Alt] + [A] desencadeia a pré-visualização da animação na janela 3D.

Coloque o cursor sobre a janela 3D e pressione [Shift] + [LA] para saltar para a 1ª frame.

Pressione [Alt]+[A] e observe a evolução do cubo na janela 3D.

Se procedêssemos à renderização da cena obteríamos, porque temos 21 frames e admitindo uma especificação de 25 frames por segundo, um vídeo com aproximadamente 1 segundo.

Também pode ver a pré-animação activando o símbolo "forward" na barra da janela Timeline.

Note que na janela Timeline as keyframes existentes estão representadas por linhas amarelas verticais.

Alternative Star/End Frame.

Ainda na barra da janela Timeline, a activação do botão com o símbolo do relógio permite definir valores alternativos da primeira e última frame da animação, para efeito de pré-visualização.

Os valores alternativos podem ser inseridos quer através das teclas [S], [E], quer por edição das respectivas células, e são relevantes apenas em pré-animação. Isto é, não alteram os valores considerados para efeito da renderização da animação.

Para alternar entre os dois conjuntos de valores da primeira e última frame a ter em conta em pré-animação basta activar/desactivar o botão Alternative Start/End Frame.

9.1.10. Células Activas.


Vá para a primeira frame, [Shift]+[LA], seleccione o cubo, e abra a tabela de propriedades, [N].

Pode ver que as células Location XYZ do painel Transform, estão coloridas a amarelo. Isto deve-se ao facto de, relativamente a estes parâmetros, existir uma keyframe na fame 1. Se tal não se verificasse as células estariam coloridas a branco.

Incremente a frame representada na janela 3D, [RA].

Verifique que as células Location XYZ estão coloridas a verde. Isto significa que os valores nelas representados são valores interpolados.

Incremente sucessivamente a frame representada na janela 3D, [RA], e vá até a frame 11.

Pode ver que, porque existe uma keyframe relativa a estes parâmetros na frame 11, as células estão novamente coloridas a amarelo.

Note que, a menos que esteja em modo edição das F-Curves , os valores dos parâmetros Location XYZ não retêm qualquer alteração, quer seja feita directamente nas células, quer seja feita por translação do objecto na janela 3D, retomando sempre o valor imposto pela curva de interpolação.

Coloque o cursor do rato sobre as células Rotation XYZ e pressione [I]. Salve o ficheiro para futura utilização

Pode ver que as células passaram à cor amarela, em resultado da inserção de uma keyframe relativa aos parâmetros Rotation XYZ.

Pode inserir uma keyframe relativamente a qualquer parâmetro de qualquer célula editável de qualquer painel da interface do Blender.
















Na figura pode ver, a título de exemplo, os canais e respectivas curvas de interpolação que descrevem a evolução, frame a frame, ou seja, ao longo do tempo, dos parâmetros:

• Cor de Wold Zenith.
• Coordenadas da origem do cubo.
• Mirror Reflectivity do material associado ao cubo.
• Cor da fonte de luz.
• Distância focal da câmara.

A atribuição de keyframes a qualquer parâmetro editável significa que qualquer parâmetro editável pode ter associada uma curva de interpolação (F-Curve), ou seja, o único limite às possibilidades de animação de todas as características de uma cena é a sua criatividade.

9.2. Graph Editor.

 

As curvas de interpolação 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.

As teclas associadas às acções de navegação, visualização, manipulação, etc., quando tendo significado, são as mesmas associadas às acções equivalentes na janela 3D.

9.2.1. Modo Edição


Não estando em modo edição, as curvas de interpolação têm uma representação a tracejado, com as keyframes representadas por pequenos rectângulos brancos.

Note que os cadeados à direita do nome de cada um dos canais estão fechados.

Para alterar a forma das curvas de interpolação e inserir novas keyframes é necessário que as F-Curves estejam em modo edição.

Para entrar em modo edição pressione [Tab], ou seleccione, [LMB], o cadeado à direita do nome do canal que deseja editar.

Quando em modo edição, as curvas de interpolação são representadas a cheio.

A representação das keyframes dependerá do modo de interpolação.

Uma vez em modo edição, as keyframes podem ser manipuladas muito à semelhança dos vértices de uma malha na janela 3D, podendo ser seleccionadas individualmente, [RMB], ou em grupo, com base nas opções do menu Select da barra da janela Graph Editor, existindo um vasto conjunto de teclas dedicadas, muitas delas coincidentes com as já conhecidas da manipulação de elementos de uma malha.





9.2.1.1. Modos de Interpolação.


A evolução da F-Curve entre as keyframes resulta do modo de interpolação padrão que está seleccionado, correspondendo na configuração padrão a uma curva de Bezier.

Note que no caso da interpolação de Bezier cada uma das keyframes tem associado 2 controladores de Bezier.

Pode ver na figura as curvas correspondentes à evolução das coordenadas Y e Z da origem do cubo ao longo do tempo para uma interpolação de Bezier. Note que a curva do canal X Location não está visível. Para activar/desactivar a visibilidade de uma das curvas de interpolação seleccione, [LMB], o quadrado colorido à esquerda do nome do respectivo canal.

Quando em modo edição, pode seleccionar o modo de interpolação a partir da barra da janela Graph Editor, Key > Interpolation Mode > ....




Pode ver nas figuras as curvas de interpolação em modo Contant e em modo Linear.

Uma F-Curve pode ter, entre duas keyframes consecutivas, um diferente modo de interpolação.

Para alterar o modo de interpolação para toda a F-Curve deve seleccionar previamente todas as suas keyframes.







Fazer uma nota sobre alteração da visibilidade dos objectos. Layer animation etc.

9.2.1.2. Eliminação de F-Curves.


Para seleccionar uma das curvas de interpolação pressione [LMB] sobre o nome do respectivo canal.

Pressione [A] para seleccionar/desseleccionar todos os cais.

Para eliminar um canal, seleccione-o, [LMB], entre em modo edição, [Tab], e pressione [X].

Abra o ficheiro salvo no ponto 15 da secção 1.1.10.

Elimine os canais X e Y Location.



9.2.1.3. Inserção de Keyframes


Em qualquer altura pode colocar o cursor do rato sobre a janela 3D e inserir uma nova keyframe, e de seguida voltar à Graph Editor e editar as curvas como considerar conveniente.

Para inserir uma keyframe na janela 3D apenas para os canais seleccionados escolha a opção Available no menu que surge no ecrã.

Pode também inserir uma nova KeyFrame na janela Graph Editor, [I] ou [Ctrl]+[LMB], e alterar as suas característica na janela Graph Editor ou na janela 3D.

Se, na janela Graph Editor, pressionar [I] para criar uma keyframe, ela será inserida na frame activa, correspondente à posição da linha verde vertical.

Se criar uma keyframe recorrendo a [Ctrl]+[LMB] ela será inserida na frame mais próxima do ponto onde se encontra o cursor do rato, que deverá estar sobre a curva de interpolação, independentemente da frame activa.

Seleccione o canal Z Location, entre em modo edição, e insira uma nova keyframe na frame 31 e outra na frame 41.





9.2.1.4. Tranformações.


Seleccionada uma ou mais keyframes, pode executar qualquer transformação com um conjunto de manipulações semelhante ao utilizado na janela 3D, utilizando as teclas [G], [R], [S], [G]>[X], [G]>[Y], etc..

Seleccione cada uma das keyframes do canal Z Location e dê à curva de interpolação a forma que se mostra na figura.

Não confunda cada uma das keyframe com os respectivos controladores de Bezier representados pelas pequenas circunferências.

Para seleccionar uma keyframe, coloque sobre ela o cursor do rato e pressione [RMB].

Para deslocar uma keyframe sobre o eixo vertical seleccione-a, pressione [G]>[Y], e arraste o rato.

9.2.1.5. Controladores de Bezier.


Os controladores de Bezier permitem controlar com exactidão a forma das curvas des interpolação de Bezier e, em consequência, a dinâmica do parâmetro a que a curva está associada.

Para alterar a posição dos controladores utilize o mesmo tipo de acções enunciadas para a modificação do posicionamento das keyframes.

Dê à curva Z Location a forma que se mostra na figura (Na verdade, neste exemplo não é necessário manipular os controladores individualmente, basta seleccionar cada uma das keyframes e fazer uma rotação, [R]).




Para uma mais fácil manipulação das keyframes, a representação gráfica dos controladores de Bezier pode ser comutada quer a partir da barra da janela Graph Editor, View > Show All Handles, quer recorrendo à combinação de teclas dedicadas, [Ctrl] + [H].



O modo como os controladores influenciam a curva, e se relacionam entre si, pode ser seleccionado a partir da barra da janela Graph Editor, Key > Handle Type > ..., ou por evocação da tecla dedicada [V].


Mostra-se em seguida a evolução típica de curvas resultantes da utilização de cada um dos tipos de controladores. Note que cada uma das keyframes pode ter um diferente modo de manipulação dos controladores associados.

Auto Clamped: Cada um dos controladores tem a mesma coordenada vertival, pelo que a curva terá declive nulo em cada uma das keyframes.




Aligned: Ambos os controladores estão alinhados, mas não necessariamente na horizontal, o que permite a síntese de curvas sem pontos angulosos.



Free: Os dois controladores são independentes, permitindo a formação de ponto angulosos.





Vector: Cada um dos segmentos de cada controlador aponta para o controlador anterior ou seguinte, permitindo a definição de curvas com troços lineares.



Automatic: A colocação dos controladores é calculada automaticamente de modo a garantir uma curva o mais suave possível.



9.2.1.6. Duplicação de KeyFrames.


Para replicar parte da curvas de interpolação o processo é semelhante à duplicação de elementos de uma malha na janela 3D.

Em modo edição, pode seleccionar um conjunto de keyframes com [Shift] + [RMB] 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.

Pode, por exemplo, obter a curva da figura seleccionando as keyframes assinaladas, duplicando-as e arrastando o rato para a direita.

9.2.2. Tabela de Propriedades.


Para uma maior precisão pode recorrer à edição das células relevantes da tabela de propriedades da janela 3D, ou, preferencialmente, à tabela de propriedades da janela Graph Editor, que pode evocar com [N].

Como pode ver na figura, a tabela de propriedades tem 4 painéis: View Properties, Active F-Curve, Active Keyframe e Modifiers.




Caso os 4 painéis não estejam visíveis seleccione Channel > Toggle Channel Setting a partir da barra da janela Graph Editor.


9.2.2.1. View Properties.


As funcionalidades do painel View Properties permitem controlar com precisão o posicionamento de cada uma das keyframes.

Show Cursor: Permite eliminar a visualização da linha horizontal do cursor.

Cursor X/Y: As células editáveis permitem especificar a posição das linhas verdes vertical e horizontal, ou seja, o valores das células indicam as coordenadas da posição do cursor, correspondente ao ponto de intersecção das linhas.

Cursor from Selection: Coloca o cursor sobre a keyframe activa.

To Keys: Desloca a keyframe activa para a coordenada X ou Y do cursor.

Fazer uma nota sobre [Shift]+[S].

9.2.2.2. Active F-Curve.


Permite modificar a cor associada à curva de interpolação activa.

Falaremos mais tarde das restantes funcionalidades.


9.2.2.3 Active Keyframe.


As funcionalidades do painel Active Keyframe permitem controlar com precisão o posicionamento de cada uma das keyframes.

As funcionalidades disponíveis dependem do tipo de interpolação da F-Curve. A configuração da figura corresponde à interpolação de Bezier.

Interpolation: Permite especificar por troços, entre a keyframe activa e a keyframe seguinte, o tipo de interpolação da F-Curve.

Key/Handle 1/Handle 2: As células permitem especificar as coordenadas da keyframe activa e de cada um dos seus controladores de Bezier.

9.2.2.4. Modificadores.


O painel Modifiers permite associar diversos tipos de modificadores às curvas de interpolação.

Falaremos de cada um deles quando for relevante a sua aplicação nos exemplos dados nas secções seguintes.

Na sequência do tutorial que tem vindo a ser exposto, vamos ver um pequeno exemplo.

Por exemplo, para repetir ciclicamente o comportamento que uma curva de interpolação assume dentro dos limites da primeira à última keyframe o modo mais prático é o da associação de um modificador Cycles.

Com o canal Z Location seleccionado, abra a tabela de propriedades, [N], e, no painel Modifiers, seleccione Cycles.

Mantenha as opções padrão para que os ciclos se repitam indefinidamente.











Para alterar os intervalos visíveis das escalas horizontal e vertical da janela Graph Editor, seleccione os círculos cinzentos das extremidades das escalas e arraste o rato.

Salve o ficheiro para futura utilização. Coloque o cursor do rato sobre a janela 3D e pressione [Alt] + [A] para pré-visualizar a animação.

Pode ver que o cubo repete ciclicamente o comportamento, tal como determinado pela F-Curve, elevando-se segundo Z em dois ciclos de diferentes amplitudes.

9.3. DopeSheet.

 

Vamos agora ver como definir um conjunto de movimentos do cubo, ditos uma Acção, independentes da acção definida nas secções anteriores, que, recorde-se, tem o nome padrão CubeAction.

Cada objecto pode ter associadas tantas acções quantas as desejadas, designadas conforme conveniente, e criadas ou eliminadas na barra da janela DopeSheet.

9.3.1. Action Editor.


A janela DopeSheet tem quatro diferentes contextos de edição. Abordaremos cada um deles à medida que forem considerados relevantes.

Na barra da janela DopeSheet, seleccione Action Editor.

A janela apresenta a informação relativa à acção CubeAction, criada na secção anterior.

Pressione o botão X à direita do nome da acção, de modo a dissociar a janela DopeSheet da acção CubeAction.

Note que a acção CubeAction também foi dissociada da janela Graph Editor.

Em qualquer altura a acção CubeAction pode ser de novo associada à janela DopeSheet, fazendo a selecção do nome da acção a partir do menu dropdown.

Pressione o botão New de modo a criar uma nova acção.

Note que se tivesse pressionado o botão + à direita do nome da acção, antes de desligar a acção CubeAction da janela DopeSheet, teria sido criada uma nova acção que herdaria toda a informação da acção CubeAction.

Edite a célula com o nome da acção, que na configuração padrão será Action, e modifique o nome para CubeRotation.

Com o cursor sobre a janela 3D, active a frame 1, [Shift]+[LA], e insira uma keyframe do tipo Rotation, [I] > Rotation.

Note que a janela Graph Editor reflecte a criação da nova acção.


Avance para a frame 11, [Shift]+[UA], rode o cubo 90o segundo Z, [R] > [Z] > 90, e insira uma nova keyframe do tipo Rotation, [I] > Rotation.

Repita o procedimento para a frame 21.

Avance agora para as frames 31 e 41, e em cada uma delas rode o cubo de -90o , [R] > [Z] > -90, e insira uma keyframe. Na janela Graph Editor deve ter a curva de interpolação que se mostra na figura.

Na janela Graph Editor, seleccione os canais X e Y Rotation e elimine-os, [LMB] > [X].

Seleccione o canal Z rotation e modifique o tipo de interpolação para Linear, Key > Interpolation Mode > Linear.

Na janela Graph Editor deve ter a curva de interpolação que se mostra na figura.

Com o canal Z Rotation seleccionado, abra a tabela de propriedades, [N], e, no painel Modifiers, seleccione Cycles. Mantenha as opções padrão para que os ciclos se repitam indefinidamente.

Na janela Graph Editor deve ter a curva de interpolação que se mostra na figura.

Coloque o cursor do rato sobre a janela 3D e pressione [Alt]+[A] para pré-visualizar a animação.

Pode ver que o cubo roda ciclicamente à direita e à esquerda, repetindo indefinidamente o comportamento.

Temos agora definidas duas acções independentes. Para aceder a cada uma delas, seleccione o respectivo nome na barra da janela DopeSheet.

Enquanto que na janela Graph Editor temos acesso às curvas que descrevem o comportamento dos parâmetros ao longo do tempo, o que nos permite definir a dinâmica de cada um deles com todo o pormenor que for considerado necessário, a janela DopeSheet, como se disse, corresponde a um nível superior de abstracção, sendo a informação relativa a uma keyframe sintetizada num único símbolo, um losango, que pode ser manipulado, permitindo um controle do processo de animação a um nível mais elevado. Por exemplo:

• Podemos seleccionar cada um dos losangos, [RMB], e movê-los, [G], ao longo do eixo temporal avançando frame a frame, ou continuamente, se pressionarmos [Ctrl] à medida que movemos o rato, o que poderá ser necessário por questões de sincronismo de acções.

• Se seleccionarmos mais de um losango, [Shift]+[RMB], podemos, pressionando [S], escalar o intervalo de tempo seleccionado, acelerando ou retardando as acções.

• Seleccionando um losango e pressionando [Shift]+[D] podemos duplicar a keyframe.

• Podemos alinhar temporalmente as keyframes seleccionando-as, pressionando [Shift]+[S], e seleccionando a opção desejada do menu que surge no ecrã.

Vimos como criar acções independentes associadas a um objecto em cena, utilizando algumas das opções disponíveis nas janelas Graph Editor e DopeSheet.

Ficam assim expostos os conceitos básicos de utilização da janela DopeSheet, nomeadamente do seu contexto Action Editor. Voltaremos a bordar o tema numa próxima secção.

Vamos ver na próxima secção como utilizar as duas acções numa única animação do objecto, utilizando a janela NLA Editor.

9.4. Rigging Fundamentals.

 

Em Blender, o melhor processo de fazer a animação de um Modelo 3D articulado, como por exemplo o correspondente ao corpo humano, é através do uso de Armações, que funcionam como um espécie de esqueletos das malhas dos objectos a animar.

O processo de construção de uma armação com o objectivo de animar um modelo 3D é designado por Rigging, e o processo de associação de uma armação à malha de um modelo 3D é designado por Skinning.

Na figura pode ver uma armação associada a uma malha de forma humanóide, e o modo como um dos ossos da armação, que por estar seleccionado tem um contorno de cor azul turquesa, influenciará o movimento da malha, e que se traduz visualmente por uma diferente coloração da malha, desde uma forte influência, a vermelho, até uma influência nula, a azul.

9.4.1. Modos Objecto, Edição, e Pose.


Para trabalhar com armações, o Blender dispões de 3 modos diferentes: Modo Objecto, Modo Edição e Modo Pose.

Modo Objecto.

O modo objecto permite trabalhar com as armações como um todo, à semelhança do modo objecto com que temos vindo a trabalhar com as malhas dos modelos 3D.

Modo Edição.

O modo edição permite trabalhar com cada um dos Ossos de uma armação, à semelhança do modo edição já conhecido em que temos acesso a cada um dos elementos de uma malha, se bem que aqui estejam disponíveis algumas novas combinações de teclas atalho e algumas combinações conhecidas estejam associadas a diferentes acções.

Modo Pose.

O modo pose destina-se fundamentalmente à produção de animações de modelos 3D articulados com armações, sendo usado durante o processo de construção da armação para especificar Restrições de diversos tipos para cada um dos ossos.

Se tiver um objecto do tipo Armação seleccionado, a tecla [Tab] permite entrar e sair do modo edição, quer a partir de modo objecto quer a partir de modo pose.

Se tiver um objecto do tipo Armação seleccionado, a combinação [Ctrl]+[Tab] permite comutar entre o modo objecto e o modo pose.

Alternativamente, pode passar a qualquer dos modos fazendo a respectiva selecção na barra da Janela 3D, a partir do momento em que uma armação esteja seleccionada na respectiva janela. Em qualquer instante é fácil verificar o modo de trabalho a partir da informação constante na caixa.

Para além disso, o modo de trabalho é facilmente identificável pela coloração da linha contorno dos objectos seleccionados.

Em modo objecto os ossos são seleccionados todos em simultâneo, ou seja, é seleccionada a armação, apresentando, quando seleccionados, uma coloração laranja da envolvente, não sendo visíveis as arestas definidoras da forma particular dos ossos.

Em modo edição os ossos seleccionados têm um contorno laranja, sendo visíveis as arestas definidoras da forma particular dos ossos.



Em modo pose os ossos seleccionados têm um contorno azul turquesa, sendo visíveis as arestas definidoras da forma particular dos ossos. Para além disso, poderá haver ossos com diferentes colorações, resultantes dos restritores que lhes tenham sido associados.














9.4.2. 1º Osso. Anatomia do osso.


Para inserir o 1º elemento de um armação - um Osso - pressione [Shift]+[A], com o cursor sobre uma Janela 3D, e seleccione [Armature] > [Single Bone] do menu que surge no ecrã

O osso será criado no local em que estiver o Cursor 3D.

Com o osso seleccionado, pressione [Tab] para entrar em modo edição.

Ponta do Osso.

A esfera no topo do osso, junto à extremidade mais fina, é a Ponta do Osso (Tail ou Tip).
O facto de, na figura, o seu contorno ter coloração laranja, significa que está seleccionada.

Raiz do Osso.

A esfera na base do osso, junto à extremidade mais grossa, é a Raiz do Osso (Head ou Root).

Corpo do Osso.

Pressione [MRB] sobre a região entre a Ponta e a Raiz - o Corpo do Osso - de modo a seleccionar todo o osso.
O contorno de todo o osso passa a ter coloração laranja, significando que todo o osso está seleccionado.

Note que na tabela de propriedades, [N], no painel Transform, surge a informação sobre o posicionamento da Raiz (Head) e da Ponta (Tail) do osso, que pode alterar com precisão, como habitualmente, pressionando [LMB] sobre cada uma das células, e inscrevendo o valor desejado, ou pressionando os pequenos triângulos nas laterais das células.

Pode também alterar a rotação do osso, sobre o eixo raiz ponta, na célula Roll

Ainda na tabela de propriedades, no painel Item, pode atribuir um nome ao osso, que tem por nome padrão Bone, Bone.001, etc., e ao objecto do tipo armação a que o osso pertence, que tem como nome padrão Armature, Armature.001, etc..

9.4.3. Ossos. Criação e transformações.


Uma vez criado o 1º osso de uma armação, pode inserir novos ossos de diversos modos, conforme passamos a descrever nas secções seguintes.

Criação de ossos sem relação de parentesco.


Em modo edição, pressione [Shift] + [A]. Um novo osso é criado com a raiz no ponto onde se encontra o Cursor 3D.

O osso pertence à mesma armação mas não tem qualquer relação de parentesco nem ligação com os ossos já existentes.




Em modo edição, com a raiz de um osso seleccionada, pressione [E] e arraste o rato.

Um novo osso é criado, com a raiz sobre a raiz do osso seleccionado, o osso pertence à mesma armação, mas os dois ossos não têm qualquer relação de parentesco ou ligação.






As duas acções são equivalentes. Os ossos assim criados pode ser transformados (movidos, rodados ou escalados) independentemente do osso seleccionado a quando da sua criação.

Criação de ossos com relação de parentesco.


Em modo edição, com qualquer parte de um osso selecionada, raiz, ponta ou corpo, pressione [Ctrl] + [MLB] sobre um ponto da Janela 3D.

Um novo osso é criado, com a raiz sobre a ponta do osso seleccionado e a ponta sobre o ponto da Janela 3D em que pressionou [MLB].

O novo osso é Filho do osso seleccionado e os dois constituem uma Cadeia de Ossos, estando a ponta do 1º osso ligada à raiz do osso agora criado.

Em modo edição, com a ponta de um osso seleccionada, pressione [E] e arraste o rato. Um novo osso é criado, com a raiz sobre a ponta do osso seleccionado.

O novo osso é Filho do osso seleccionado e os dois constituem uma Cadeia de Ossos.

As duas acções são equivalentes.
Nenhum dos ossos assim criados poderá ser transformado (movido, rodado ou escalado) individualmente.

Extrusão simétrica.


No painel Armature Options da tabela de operadores, [T], active X-Axis Mirror para automatizar a criação simétrica de ossos.

Embora a extrusão simétrica de ossos possa ser feita em qualquer vista da janela 3D, será mais facilmente executada e os resultados mais compreensíveis se estiver em modo Front Ortho, e o eixo raiz/ponta estiver sobre o eixo vertical que passa pela origem da armação.

Extrusão simétrica sem relação de parentesco.

Em modo edição seleccione a raiz de um osso, pressione [Shift]+[E], e arraste o rato.

São criados dois novos ossos, dispostos simetricamente relativamente ao plano zy, com a raiz sobre a raiz do osso seleccionado, e sem relação de parentesco ou ligação com o osso selecionado.

Os ossos assim criados constituem um par e qualquer acção de transformação sobre um deles é reflectida no outro.

Os ossos são criados com nomes padrão com sufixos _L e _R, sufixos estes que não devem ser alterados.

Extrusão simétrica com relação de parentesco.

Em modo edição seleccione a ponta de um osso, pressione [Shift]+[E], e arraste o rato.

São criados dois novos ossos, dispostos simetricamente relativamente ao plano zy, com a raiz sobre a ponta do osso seleccionado.

Os dois ossos têm apenas uma raiz que é comum e inseparável do osso do qual foram extrudidos, sendo ambos filhos do osso seleccionado.

Os ossos assim criados constituem um par e qualquer acção de transformação sobre um deles é reflectida no outro, e são criados com nomes padrão com sufixos _L e _R, sufixos estes que não devem ser alterados.

Transformações.


Com a ponta do osso seleccionada, se pressionar [G] e movimentar o rato pode escalar o osso ou rodá-lo, tendo sempre a raiz como pivot ([R] e [S] não têm qualquer influência).

O mesmo se verifica se seleccionar a raiz de um osso, funcionando neste caso a ponta como pivot. Para mover todo o osso tem de seleccionar o corpo do osso.

Em modo edição, seleccione um ou mais ossos e pressione [Ctrl] + [N] para alinhar o sistemas de eixos de cada osso com o sistema de eixos global.

Durante a construção da armação é natural que cada um dos ossos tenha sofrido rotações não desejadas. Seleccione todos os ossos e pressione sempre [Ctrl]+[N] para alinhar o sistemas de eixos de cada um deles, antes de entrar na fase de animação.







9.4.4. Armature Panels.


Com uma armação seleccionada, passam a estar disponíveis na janela de propriedades três diferentes contextos, accionáveis pelos botões que se mostram na figura, respectivamente, da esquerda para a direita, Object Data (Armature), Bone, e Bone Constraints.

Descrevem-se nesta secção os painéis disponíveis no contexto Armature, que contêm as funcionalidades que se aplicam aos ossos da armação como um todo.

Skeleton.


Pose Position: Mostra a armação em modo pose.

Rest Position: Mostra a armação tal como ficou após a última acção em modo edição, isto é, antes de ter sofrido qualquer alteração em modo pose.

Layers: : Cada uma das 32 células corresponde a um Layer de Armação que, quando seleccionados, são visíveis na janela 3D. Útil em armações muito complexas, quando se pretende uma visão desimpedida na fase de animação.

Protected Layers: ...

Deform:

Vertex Groups: Quando activo, permite a deformação da malha a que a armação esteja associada através da influência de cada osso sobre Grupos de Vértices que estejam definidos.

Um grupo de vértices é um qualquer conjunto de vértices de uma malha, sendo que cada um dos vértices de uma malha pode pertencer a mais do que um grupo de vértices, ou não pertencer a nenhum.

A utilização da opção de deformação de uma malha através de grupos de vértices permite um desenho mais pormenorizado da acção de deformação que cada um dos ossos, por inserção de cada um dos vértices da malha no grupo de influência de um determinado osso, podendo ainda ser especificado o grau de influência que um osso tem sobre um determinado vértice.

Para facilitar a atribuição das zonas de influência, e controle de cada um dos pesos, existe uma abordagem gráfica, em que cada um dos pesos é colorido de modo diferente, acessível no Modo Weight Paint da janela 3D

Os grupos de vértices são definíveis na janela de propriedades, no painel Vertex Groups do contexto Object Data da malha a que a armação está associada.











A opção mais comum de definição de grupos de vértices, é a da sua definição automática, quanto o modificador Armature é associado à malha.

Abordaremos estas questões em detalhe noutras secções.

Envelopes: Quando activo, permite a deformação da malha a que a armação esteja associada através da influência de cada osso sobre a região da Envolvente do Osso (Bone Envelope), descrita graficamente através de uma região branca semi-transparente, , visível se o botão Envelope do painel Display do contexto Object Data estiver activo.

Todas as zonas da malha que estiverem contidas dentro da envolvente de um osso serão deformadas quando o osso sofrer uma qualquer transformação (em modo pose), não influenciado o osso qualquer parte da malha fora da envolvente.

A envolvente pode ser ajustada quer em Modo Edição, pressionando [S], quer em Modo Pose, pressionando [Alt]+[S], arrastando em seguida o rato.

Abordaremos estas questões em detalhe noutras secções.

Quaternion: Quando activo, permite que as deformações resultantes de rotações sejam calculadas com recurso a quaterniões.

Display.


O painel Display contém um conjunto de opções relativas ao modo de representação dos ossos e informações complementares.



Octahedral:: Representação padrão dos ossos, útil sobretudo em modo edição porque permite diferenciar claramente a raiz da ponta do osso.



Stick: Representação filiforme dos ossos, útil sobretudo em Modo Pose durante a fase de animação, permitindo a selecção de cada um dos ossos com a mínima obstrução visual possível.


B-Bone: Representação dos ossos na forma de paralelepípedos.




Envelope: Permite a visualização da zona de influência de cada um dos ossos sobre a malha a que a armação esteja associada. Útil na fase skinning quando se utilizam bones envelopes para deformar o modelo 3D.

Wire: Representação filiforme dos ossos.





Names: Mostra o nome dos ossos na janela 3D, à direita de cada um deles. Útil quer na fase de construção da armação, para o estabelecimento de relações de parentesco e restrições, quer na fase de animação.


Axes: Mostra os eixos coordenados de cada um dos ossos na Janela 3D. Útil sobretudo quando se pretende aplicar um restritor a um osso e se pretende saber sobre que direcção o restritor deve ser aplicado.


Shapes: Quando activo, cada osso é representado sob a forma da malha que lhe foi associada no painel Display do contexto Bone da janela de propriedades.




Colors: Quando activo, os grupos de ossos são representados por cores diferentes, conforme definido no painel Bone Groups.






X-Ray: Quando pressionado obriga a que os ossos da armação sejam visíveis, sobrepondo-se à malha do modelo.
Pode ver na figura o modelo que temos vindo a utilizar, mas agora sem X-Ray activo.


Delay Refresh: Quando activo, a representação na janela 3D da malha modificada pela armação não acompanha em tempo real as transformações feitas na armação em modo Pose, transitando instantaneamente entre estados.

Bone Groups.


O painel Bone Groups permite associar os ossos de uma armação em diferentes grupos, associar diferentes cores a cada um dos grupos, e ainda associar à representação do contorno dos ossos diferentes cores correspondentemente ao estado de osso não seleccionado, seleccionado, e activo.




Pose Library.


O painel Pose Library permite pré-definir poses diversas, e agrupá-las em diferentes bibliotecas, que poderão ser posteriormente utilizadas na animação da armação.




Ghost.


O painel Ghost permite ver, na janela 3D, um sequência de posições da armação, conforme as opções de três diferentes modos, Around Frame, In Range, e On Keyframes.


Na figura, exemplifica-se a observação das diferentes poses da armação entre as frames 0 e 30, representadas de duas em duas frames, conforme as opções especificadas no modo In Range.








iTaSC Parameters.


O painel iTaSC permite seleccionar o algoritmo de cálculo da sequência de posições das cadeias de cinemárica inversa (IK) de entre duas opções, Legacy e iTaSC, sendo Legacy a opção padrão.

O modo iTaSC tem diversos parâmetros de configuração, que serão analisados numa próxima secção.



Motion Paths.


O painel Motion Paths permite activar a representação na janela 3D da representação da trajectória da raiz ou da ponta dos ossos seleccionados, sob a forma de curvas constituídas pelo conjunto de pontos do espaço 3D em que aqueles elementos do osso se encontram, em cada frame, ao longo da animação.

Na figura exemplifica-se a representação da posição que a raiz do osso do pé assume entre as frames 1 e 21, tendo sido activada a apresentação sobre a trajectória do número da frame correspondente ao ponto da curva em que a raiz do osso se encontra.








9.4.5. Bone Panels.


No contexto Bone estão disponíveis os painéis com funcionalidades que se aplicam em particular a cada um dos ossos da armação.

No cabeçalho do contexto pode especificar o nome do osso, o que, como vimos, pode também ser feito no painel Item da tabela de propriedades da janela 3D.

Relations.


De modo semelhante ao descrito para as malhas de um objecto 3D podem ser criadas relações de parentesco entre ossos, quer entre ossos ligados, quer entre ossos não ligados.

Como vimos, um osso que seja extrudido a partir da ponta seleccionada de um osso é automaticamente considerado como um filho ligado deste último. Para estabelecer uma relação de parentesco entre dois ossos já existentes procede-se de modo idêntico ao visto para as malhas.

Seleccione primeiro o osso filho, [MRB] sobre o corpo do osso, e em seguida o osso pai, [Shft]+[MRB] sobre o corpo e pressione [Ctrl]+[P].

Seleccione Keep Offset se pretende que os ossos permaneçam separados ou Connected, se pretender que a raiz do osso filho se desloque para cima da ponta do osso pai, e a ela fique ligada.

Graficamente, os ossos sem ligação ponta/raiz mas com uma relação de parentesco estão ligados por uma linha tracejada.





Em alternativa, a relação de parentesco pode ser gerida inteiramente a partir do painel Relations, seleccionado o nome do osso pai de entre os nomes dos ossos disponíveis no menu da célula Parent.
Para estabelecer uma relação de parentesco com ossos extrudidos simetricamente basta seleccionar um deles.

Para quebrar uma relação de parentesco, ou desligar ossos ligados, seleccione os ossos e pressione [Alt]+[P].

Em seguida seleccione a opção Clear Parent ou Disconnect Bone , conforme desejado.

Em alternativa, uma relação de parentesco já existente pode ser quebrada apagando o nome do osso pai da célula Parent, deixando a célula em branco.

Layers: Permite seleccionar um, ou vários, dos 32 layers de armação em que o osso é visível.

Em armações muito complexas pode ser necessário distribuir os ossos por vários layers para uma visão mais desimpedida.

Bone Group: Nome do grupo a que o osso pertence, apenas presente em modo pose. Preenchido automaticamente tal como atribuído no painel Bone Groups do contexto Object Data Armature, a pertença do osso a um grupo pré-definido pode ser alterada nesta célula.

Parent:

Parent Name: Nome do osso pai, apenas editável em modo edição.

Connected: Permite comutar entre uma relação de parentesco ligada e não ligada.

A quebra da ligação ponta/raiz mantendo a relação de parentesco entre os ossos pode também ser feita, como vimos, pressionando [Alt]+[P] e seleccionando a opção Disconnect Bone.

Em modo edição, ou seja, durante a fase de construção da armação, os ossos com relações de parentesco mas não ligados podem ser transformados livremente. Os ossos com relações de parentesco mas ligados podem ser transformados livremente com a restrição da ligação ponta/raiz.

Em modo pose, ou seja, durante a fase de animação da armação, um osso filho numa relação de parentesco pode ser transformado independentemente do osso pai, com restrições ponta/raiz se estiver ligado. Qualquer transformação sobre um osso pai é acompanhada pelos seus ossos filhos como se fossem um só osso.

Inherit Rotation: Quando desactivado, o osso deixa de respeitar completamente as transformações impostas pelo seu osso pai em modo pose, herdando as modificações de posicionamento mas ignorando as modificações de rotação.

Inherit Scale: Quando desactivado, o osso deixa de respeitar, em modo pose, a transformação de escalamento imposta pelo seu osso pai.

Local Location: Quando activo, a especificação de localização do osso passa a ser feita no sistema de eixos local e não no sistema de eixos global

Display.


Wireframe: Quando activo, a malha especificada em Custom Shape é representada em wireframe.

Hide: Quando activo, o osso não é representado na janela 3D.

Apenas os ossos de controle são relevantes durante a fase de animação, pelo que após a construção da Armação todos os outros ossos podem (devem) ser escondidos para uma visão mais desimpedida.

Custom Shape: Nome da malha que passará representar o osso na janela 3D.

Na fase de animação, ossos de deformação da malha devem ser convenientemente escondidos, e os ossos de controle, para uma mais fácil manipulação e interpretação da funcionalidade, podem ser representados por objectos do tipo malha.


Deform.


Quando activo, permite que o osso deforme os vértices do modelo 3D a que a Armação esteja associada.

Os ossos que apenas têm função de controle de outros ossos da Armação devem ter este botão desactivado, para não deformarem directamente o modelo.

Os parâmetros do painel são relevantes caso esteja activo o parâmetro Envelopes do painel Skeleton do contexto Armature Object Data, e permitem definir várias das características da envolvente.

Envelope:

Distance: Controle da distância entre a envolvente e o osso.

Weight: Coeficiente do grau de influência do osso sobre a deformação do modelo 3D (na opção Envelopes).


Multiply: Quando activo, multiplica a influência da envolvente pelos pesos dos grupos de ossos.

Radius Head/Tail: Controle do raio da raiz e da ponta do osso na opção de deformação Envelope. Os parâmetros permitem ainda fazer a segmentação de osso do tipo B-Bone.




Curved Bones:

Segments: Número de segmentos em que é dividido o B-Bone.

Ease In/Out: Parâmetros de controle do encurvamento do B-Bone segmentado.

Cyclic Offset: ...

Transform.


O painel Transform tem uma diferente configuração em modo pose e em modo edição.

Em modo pose, este painel permite especificar com rigor, editando as respectivas células, a posição, rotação e escalamento do osso, relativamente à posição de repouso.

Permite ainda especificar o método de cálculo das rotações.

Em modo edição, este painel permite especificar com rigor, editando as respectivas células, a posição da raiz e da ponta do osso, bem como a sua rotação.

Activando Lock o osso deixa de poder sofrer transformações através de acções na janela 3D.

Transform Locks.


O painel Transform Locks permite inibir as acções de transformação sobre um osso enquanto em modo pose.

Note que as transformações estão referenciadas ao sistema de eixos local do osso.

Note também que as inibições de transformações aqui especificadas apenas dizem respeito a acções directas sobre o osso, não ficando inibidas quaisquer transformações resultantes de cadeias de acção directa ou inversa.

Inverse Kinematics.


O painel Inverse Kinematics, apenas presente em modo pose, permite controlar as transformações de rotação e escalamento de um osso, quando resultantes da acção de uma cadeia de cinemática inversa.

Note que as rotações são especificadas no sistema de eixos local do osso, e as restrições estão referenciadas à sua posição em repouso.