Blender Tutorial: Inverse foot/Reverse foot
April 17, 2008
Fiz esse tutorial de Blender baseado no que aprendi em uma das aulas de animação da pós-graduação em Computação Gráfica (Senac/SP): um setup de rig para controlar pés. O professor chama esse setup de “Inverse Foot”, mas você também encontrará setups parecidos sob o nome “Reverse Foot”.
Caso você tenha interesse em criar esse setup no XSI, leia o tutorial do professor. Aliás, recomendo ler o tutorial independente do software que você vai usar, já que ele discute a construção e uso de um inverse/reverse foot.
Escrevi o tutorial supondo que você já tenha uma certa familiaridade com a ferramenta, isto é, saiba adicionar bones em uma cena, deslocá-los, criar parentescos, etc. Caso não saiba, há n tutoriais pela internet, além do ótimo livro em português do Allan Brito e uns tutoriais rápidos que enviei para as edições da PDJzine.
Em primeiro lugar, vamos começar criando os bones da perna e do pé. O pé está dividido em dedos e peito do pé, ou seja, com este rig o pé poderá dobrar. Abaixo temos a vista lateral desse setup inicial e sua hierarquia.

Selecione a junta final do bone “canela” e extrude outro bone a partir dessa junta. Na figura abaixo, o novo bone foi nomeado “calcanharNull”. Ele será usado para que o inverse foot possa controlar a hierarquia perna-pé.

Até o momento, o setup deve estar parecido com a imagem abaixo:

Vamos agora partir para a construção do inverse foot (ou reverse foot, caso prefira esse termo). Como o nome diz, a construção dos bones será feita de forma inversa. Por quê? Pense no seguinte: no setup que temos até então, seria complicado definir a posição/rotação dos dedos e do resto do pé para que um personagem pudesse pisar no chão com o calcanhar e iniciar um passo dobrando a ponta do pé. Seria preciso posicionar e rotacionar diversos bones, diversas vezes. O que não fica muito prático. Tente fazer isso com o setup atual.
Com o inverse foot, teremos um centro de rotação que define rotação do calcanhar, um centro de rotação definindo a ponta do pé e outro para a rotação do peito do pé. Ok, talvez eu não tenha sido claro aqui, mas se você tentar fazer a animação do pé pisando no chão com o calcanhar e dando o próximo passo pela ponta dos pés (sendo que o pé está sendo dobrado), você entenderá a dificuldade.
Na próxima seqüência de imagens, temos a construção do inverse foot.




Um tanto bagunçado, não? Vale lembrar que o posicionamento dos bones influencia no resultado final. Perceba que posicionei as juntas dos bones no mesmo local que as juntas dos bones que já tÃnhamos adicionado para o pé. Caso eu posicione o “calcanharSolver” em um lugar diferente, o setup não vai funcionar direito, por exemplo.

Sobre os bones do inverse foot: o bone “pe” é quem vai controlar a posição do pé e da rotação do calcanhar. O bone “dedo” controla a rotação da ponta do pé (que conseqüentemente movimenta o peito do pé e a perna inteira) e o bone “peito” controla a rotação do peito do pé (que também movimenta toda a perna). Já o bone “calcanharSolver” será usado como target do “calcanharNull” - isto é, ao rotacionar qualquer bone do inverse foot, seguindo a hierarquia, o “calcanharSolver” se deslocará pelo espaço. Como “calcanharNull” seguirá esse bone e será o “IK solver” da perna (movimentando assim a perna), o deslocamento do “calcanharSolver” pelo espaço resulta no deslocamento de toda a hierarquia. Putz, parece que compliquei as coisas, mas vou mostrar os constraints aplicados na hierarquia a seguir e talvez a explicação fique mais clara.
Por último, mais um bone adicionado ao setup, “joelho”, que controlará para onde o joelho deve apontar.

Aos constraints.

Esse primeiro constraint de “IK Solver” é para o bone “canela” (mais informações sobre “IK Solver” aqui). O target dele é o bone “joelho”, ou seja, conforme deslocamos o bone “joelho” pelo espaço, o bone “canela” acompanha seu movimento. No XSI, esse constraint seria aplicado como “Chain Up Vector”.

O IK Solver do bone “calcanharNull” tem como target o bone “calcanharSolver”, para que, sempre que o solver se deslocar (através de posicionamento e rotação do inverse foot), o null acompanhe sua posição e também altere a hierarquia da perna. Como o null acompanha a posição do solver, aqui é importante que ambos tenham sido criados no mesmo local do espaço, durante o modo de edição de bones. Note que o botão “Use Tip” foi desativado e “ChainLen: 2″. Assim, o “calcanharNull” se posiciona pela junta inicial do “calcanharSolver”, e não pela junta final. ChainLen: 2 indica que apenas dois bones dessa hierarquia serão afetados pelo IK Solver.

O bone “pe.peito” tem um IK Solver com target em “peito” (bone do inverse foot) e ChainLen: 1. Isso faz com que “pe.peito” acompanhe a posição e rotação do inverse foot, em particular o bone “peito”.

O bone “pe.dedo” é similar ao “pe.peito”, mudando apenas o target para o bone “dedo” do inverse foot.
O setup final deste rig é mostrado nas figuras abaixo (vista lateral e 3D, respectivamente):


Você deve ter percebido pelas duas figuras acima que os bones estão com cores diferentes e a hierarquia do inverse foot e o bone “joelho” estão com uma forma de anel, ao invés do bone padrão. Estou usando a versão mais recente do Blender (2.4515 “Rinky”) e nela podemos criar grupos de bones e definir cores para cada grupo. Creio que as imagens abaixo sejam auto-explicativas:
Para alterar o visual de um bone para qualquer outro, basta você criar um objeto (nesse caso, modelei uma espécie de anel) e indicar o nome desse objeto no campo “OB:” do bone. Veja nas imagens abaixo:


Para fechar o tutorial, segue um gif animado do uso do inverse/reverse foot:

E caso você tenha se perdido no tutorial ou queira ver o setup pronto, deixei disponÃvel para download o arquivo inverse_foot.blend para estudos.



3 comentários para “Blender Tutorial: Inverse foot/Reverse foot”
// Comment by marcelo (July 26, 2008 – 5:47 pm):
eu não entendi quase nada
// Comment by marcelo (September 27, 2008 – 5:33 pm):
cara desculpe ae eu li com fauta de atenção
entendi tudo
// Comment by Alan (May 29, 2010 – 3:51 pm):
Sei não, posso estar falando uma besteira grande, mas esse calcanhar null parece gambiarra =X
acho q tem soluções melhores :U