No nosso exemplo, as antenas ou sensores do personagem alienígena devem se mover dinâmica e elasticamente a cada movimento da cabeça. Naturalmente, nosso exemplo também pode ser aplicado a fios de cabelo, caudas de dinossauros e muito mais.
No arquivo de trabalho "PSD_C4D_R12_IK_Dyn_Start.c4d", você encontrará a cabeça do alienígena modelada e texturizada para trabalhar.
Construção do Esqueleto Conjunto
Nossa cabeça alienígena consiste, por um lado, da geometria poligonal da cabeça e, por outro lado, de dois objetos esféricos para os olhos. Mais adiante, iremos vincular hierarquicamente todos os objetos ou por meio de pesos nas juntas, de modo que a cabeça completa, juntamente com os sensores, possa ser animada facilmente.
Começamos a construção do esqueleto conjunto com um primeiro Objeto de Junta para a cabeça. Você encontrará no menu Carácter.
Como a cabeça alienígena está exatamente na origem do sistema de coordenadas, a junta da cabeça pode permanecer na posição zero.
Assim que o Objeto de Junta recém-criado for selecionado, ativamos a Ferramenta de Junta no menu Carácter. No diálogo de configuração da Ferramenta de Junta, desativamos a criação de um Objeto Raiz Nulo superior. Mais tarde, criaremos isso para entender melhor qual é a sua função em um esqueleto conjunto.
Para trabalhar simetricamente, expandimos a seção Simetria e utilizamos a opção Desenhar no plano Mundo-YZ. Neste plano, ou seja, nesta visão, desenharemos as juntas.
Ao clicar na visualização com a Ferramenta de Junta ativada e pressionar a tecla Ctrl, serão automaticamente criadas juntas subordinadas simetricamente à junta da cabeça. Escolhemos uma das duas antenas e colocamos a primeira sub-junta diretamente na base da antena na cabeça. O Cinema 4D posiciona automaticamente a junta para a outra antena, graças à Simetria ativada.
Agora, criaremos correntes de junta, clicando com a tecla Ctrl pressionada nas posições mostradas na imagem. Onde for mais detalhado, as juntas devem estar mais próximas umas das outras. Não economize nas juntas, pois somente nesses pontos articulados a deformação ou curvatura da geometria pode ocorrer.
Depois de criarmos todas as Juntas, encontramos, no Gerenciador de Objetos, a hierarquia de juntas mostrada na imagem. O Objeto Junta da cabeça possui um total de duas correntes de juntas como subobjetos - uma corrente para cada antena.
Para ajustar a posição das Juntas em pares também na vista lateral, selecionamos um par de juntas no Gerenciador de Objetos e movemos as Juntas ao longo de seu Eixo-Z para dentro da geometria.
O esqueleto conjunto para a animação das antenas ou sensores está assim concluído. Infelizmente, ainda não possui ligação com nossa cabeça alienígena, o que nos permitiria animar a cabeça.
Isso só será possível se conectarmos a hierarquia de juntas com a geometria. Para isso, selecionamos inicialmente, por meio do Gerenciador de Objetos, todos os Objetos de Junta e o Objeto Poligonal da geometria alienígena.
A conexão da hierarquia de juntas com a Malha Poligonal é realizada pelo comando Vincular no menu Carácter>Comandos.
O que o comando Vincular fez? O Objeto Poligonal da geometria alienígena agora possui uma Tag de Peso, na qual todos os Objetos de Junta estão listados e podem influenciar a geometria da cabeça alienígena. Esta Pesagem automática é baseada na posição das Juntas em relação à geometria e é uma boa base inicial.
Pesagem das Juntas
No entanto, esta Pesagem raramente é perfeita; um pouco de ajuste é necessário. Para ter uma ideia das Pesagens envolvidas, desativamos a função da Jaula HyperNURBS pelo Gerenciador de Objetos. A Ferramenta de Pesagem mostra as Pesagens na geometria quando o Polygonmesh não está suavizado. Para uma visão geral completa, selecionamos inicialmente todos os Objetos de Junta com a geometria no Gerenciador de Objetos.
A ferramenta de ponderação é encontrada no menu Caráter. Depois de ativá-la, a geometria da cabeça do alien já se colore. Cada joint possui sua própria cor, que indica sua influência na geometria.
Para avaliar os joints e sua influência na geometria individualmente, simplesmente precisamos selecionar o respectivo joint no Gerenciador de Objetos. As áreas da geometria não capturadas por este joint permanecem em preto.
No joint da cabeça, percebemos que a ponta do nariz não está 100% na cor do joint. Com a ferramenta de ponderação, podemos evitar possíveis problemas de deformação aumentando de forma direcionada a ponderação para o joint com um pincel de ponderação.
Também nos pontos de transição para os sensores ou antenas há um pouco de influência excessiva na geometria da cabeça. Para reduzir as ponderações adjacentes, utilizamos a ferramenta de ponderação pressionando a tecla Ctrl enquanto a seguramos.
Para concluir o trabalho de ponderação, é recomendável selecionar novamente todos os joints através do Gerenciador de Objetos, definir a representação da cor da ponderação como Monocromática e verificar se toda a geometria tem uma ponderação. Como mostrado na imagem, toda a cabeça do alien está colorida de branco, o que indica que todas as áreas da geometria possuem ponderações.
Os objetos de esfera dos olhos foram deixados de fora das ponderações. Para tornar esses objetos também movimentados durante uma rotação ou movimento da cabeça, basta atribuí-los ao joint da cabeça no Gerenciador de Objetos. Assim, quando o joint da cabeça é girado, por exemplo, os objetos dos olhos seguem a orientação da cabeça devido à sua subordinação ao joint da cabeça.
Agora é hora de verificar a estrutura do joint e as ponderações práticas. Selecionamos o joint da cabeça e o giramos usando a ferramenta de rotação ao longo do eixo y. Toda a cabeça do alien deve acompanhar os movimentos do joint da cabeça sem problemas.
Integrando a Cinemática Inversa com Dinâmica
Depois que os joints estão funcionando conforme desejado nas áreas correspondentes da cabeça do alien, podemos cuidar da animação dos sensores ou antenas usando a Cinemática Inversa (IK). Para isso, devemos definir as duas cadeias de joints para os sensores ou antenas como uma Cadeia IK.
Selecionamos essas duas cadeias de joints no Gerenciador de Objetos - observe que o joint da cabeça está excluído!
Aqui, o CINEMA 4D oferece novamente um comando especial chamado Criar Cadeia IK, que transforma automaticamente as cadeias de joints selecionadas em Cadeias IK. Encontramos isso no menu Caráter>Comandos.
Aplicamos o comando Criar Cadeia IK e verificamos o que mudou na nossa cadeia de joints. Os dois joints na base da cabeça receberam cada um uma tag IK. Nesta tag, o início e o fim da Cadeia IK foram automaticamente configurados.
Também encontramos dois novos objetos nulos como objetivos no Gerenciador de Objetos. Esses dois objetivos são nomeados de forma análoga às extremidades da cadeia de joints e nos permitem animar toda a Cadeia IK através desses simples objetivos de controle.
Embora inicialmente desejássemos controlar os movimentos dos sensores ou antenas automaticamente por meio de propriedades dinâmicas, não faz mal manter esses dois objetos-alvo, pois assim os sensores ou antenas se alinham após cada movimento e deformação de forma automática aos objetivos.
Uma olhada no diálogo de configurações das tags IK mostra como as extremidades ou objetivos da cadeia IK estão definidos. Podemos manter esses parâmetros na seção Tag; agora estamos mais interessados nas configurações de Dinâmica.
Para isso, mudamos para a guia Dinâmica e ativamos em primeiro lugar a opção de Dinâmica. Agora, os sensores ou antenas já podem reagir aos influenciadores como Gravidade ou Movimento.
No entanto, para que os sensores não fiquem pendurados de forma frouxa, mas pareçam mais elásticos e resilientes, reduzimos a Força da Dinâmica para cerca de 40-45% e aumentamos drasticamente o Amortecimento para cerca de 70%. Para que os sensores se esforcem ainda mais para retornar ao estado inicial, aumentamos o parâmetro de Manter Ângulo para cerca de 40-45%.
Convido você a experimentar mais com os parâmetros. Assim, você aprenderá rapidamente como as configurações individuais afetam toda a cadeia da Cinemática Inversa - e, é claro, será divertido.
Porque os dois objetivos-alvo terceirizados não percebem a animação dinâmica das antenas, precisamos ensinar ao IK que esses objetivos devem ser movidos junto. Caso contrário, as antenas se enroscariam rapidamente durante uma rotação rápida.
A guia Avançado na etiqueta IK nos oferece uma função muito elegante para isso. Aqui, simplesmente ativamos a opção de Mover alvo, e os dois objetivos-alvo seguem automaticamente em cada movimento.
A funcionalidade Cinemática Inversa das antenas já está resolvida. Vamos organizar um pouco mais no Gerente de Objetos, renomeando adequadamente os objetivos-alvo e as cadeias articuladas.
No momento, a articulação da cabeça ainda serve como manipulador para a animação da cabeça do alienígena. Infelizmente, essa articulação é um tanto desajeitada, pois, devido à suas articulações subordinadas, ela está rotacionada no espaço.
No entanto, precisamos de uma configuração inicial "limpa" dos ângulos para que a rotação e movimento da cabeça do alienígena ocorram sem rotações indesejadas.
Agora entra em jogo o Objeto Raiz-Nulo, que mencionamos brevemente no início.
Ele nos fornece uma nova e virgem base de coordenadas. E para garantir que toda a cadeia IK seja considerada, só precisamos subordiná-la ao Objeto Raiz-Nulo.
No entanto, antes de tudo, criamos o novo Objeto Nulo através do menu Objetos. Como a articulação da cabeça está na posição nula, nem precisamos reposicionar o novo Objeto Nulo.
Este novo Objeto Nulo é então renomeado adequadamente para Raiz e toda a hierarquia articulada é subordinada a ele através do Gerente de Objetos.
Agora podemos pressionar o botão de reprodução e girar e animar o alienígena em todas as direções girando o Objeto Raiz-Nulo. As antenas são dinamicamente controladas pela gravidade e pelos nossos movimentos.
O Objeto Raiz-Nulo é um assistente prático na animação de uma hierarquia articulada. Ao criar uma estrutura articulada, pelo menos a articulação principal (geralmente o quadril) recebe um Objeto Nulo superior. Para que isso seja feito automaticamente, precisamos apenas ativar a opção de Objeto Raiz-Nulo no diálogo de configurações da Ferramenta de Articulação.