S2.A1.

 

2.1. Rigging Fundamentals.

Novembro 8, 2011

 

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.

2.1.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.














2.1.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..

2.1.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.







2.1.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.








2.1.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.