S4.A3.

 

3.5. Projecto 1.

Outubro 22, 2013

 

3.5.1. Armação.


Abra um ficheiro Blender, elimine o cubo, [X], e , a partir da barra da janela Info, importe o carro que fez em MAV, File > Append > ….












Caso não tenha completado o carro em MAV, ou se pretende trabalhar com um modelo diferente, procure e faça download de um modelo disponível na WEB.

Note que para além dos formatos disponíveis na versão standard, File > Import > …, existem outros formatos cuja utilização implica a prévia instalação do respectivo Addon, File > User Prefereces > Addons > Import-Export > ….

Vamos utilizar neste tutorial o modelo Mercedes-Benz 300SL 1954 feito pelo vosso colega 31982 Diogo Lopes.












Para ter uma visão mais desimpedida dos objectos na janela 3D seleccione, [RMB], [Shift]+[RMB], os pneus e as jantes e coloque-os numa das layers, [M] > …. Coloque as restantes malhas do modelo noutras layers.







Seleccione cada um dos pneus e cada uma das jantes, [RMB], e aplique as eventuais transformações de rotação, [Ctrl]+[A] > Rotation, e escalamento, [Ctrl]+[A] > Scale, a que cada uma das malhas tenha sido sujeita.


Aplique os eventuais modificadores Mirror que tenha usado para criar as 4 jantes e pneus. Aplique os modificadores que tenha usado para criar cada uma das malhas, com excepção do modificador Subdivision Surface.

Certifique-se que cada uma das jantes tem a origem no seu centro geométrico. Caso contrário centre a origem, [T] > Origin to Geometry.

Certifique-se que cada um dos outros elementos tem a origem sobre a origem da jante. Caso contrário coloque o cursor 3D sobre a origem da jante e centre cada uma das origens, [T] > Origin to 3D Cursor.

Seleccione cada um dos pneus e, no painel Relations do contexto Object da janela de propriedades torne-os filhos de cada uma das respectivas jantes.





Alternativamente, seleccione cada um dos pneus e, no contexto Constraints, associe um restritor Copy Transforms ao pneu e especifique a respectiva jante como alvo.







Repita um dos procedimentos anteriores para todas as malhas do modelo que devam acompanhar todas as transformações da jante. No caso do presente modelo tal aplica-se ao elemento decorativo central.





Note que se o seu modelo tiver discos de travões estes devem acompanhar a jante nas rotações em torno do eixo vertical (Z na figura) mas não em torno do eixo da jante (X na figura). É portanto apropriado não um restritor Copy Transform mas sim um restritor Copy Location e um restritor Copy Rotation devidamente configurado, ou ainda, um restritor Child Of.



Traction.


Seleccione a carroçaria, ou parte dela, ou o chassi, [RMB]. Certifique-se que a origem da malha está no seu centro geométrico, [T] > Origin to Geometry.






Passe a Right Ortho, [3]. Seleccione a malha da carroçaria, [RMB], e coloque o cursor 3D sobre a origem, [Shift]+[S] > Cursor to Selected.

Insira uma armação, [Shift]+[A] > Armature > Single Bone. No painel Display do contexto Object Data (Armature) active e parâmetro X-Ray.

Entre em modo edição, [Tab], seleccione a ponta do osso, [RMB] e arraste-a, [Ctrl]+[G], colocando o osso na horizontal e escalando-o simultaneamente. Designe o osso por Main.



Saia de modo edição, [Tab]. Seleccione a carroçaria, [RMB], e, no contexto Constaints da janela de propriedades, associe-lhe um restritor Child Of. Seleccione como alvo a armação e o osso Main. Se necessário pressione Set Inverse.

Seleccione a armação, [RMB], e passe-a para uma layer diferente daquelas em que tem as malhas, [M] > ….






A partir da barra da janela 3D, seleccione, [RMB], a layer em que tem as jantes e os pneus e a layer, [Shift]+[RMB], em que tem a armação.

Passe a Top Ortho, [1]. Seleccione a armação, [RMB], e passe a modo edição, [Tab].








Na tabela de operadores da janela 3D, [T], active X-Axis Mirror.




Seleccione, [RMB], a raiz do osso Main e crie dois ossos simétricos não ligados, [Shift]+[E].









Seleccione o corpo do osso da direita, [RMB], e araste-o, [G], até junto do pneu frontal do mesmo lado.






Saia de modo edição, [Tab]. Seleccione o pneu frontal direito, [RMB], e coloque o cursor 3D sobre a origem, [Shift]+[S] > Cursor to Selected.

Seleccione a armação, [RMB], entre em modo edição, [Tab], seleccione o corpo do osso da direita, [RMB], e coloque a sua raiz sobre o cursor 3D, [Shift]+[S] > Selection to Cursor.

Note que o osso da esquerda acompanha os movimentos do osso da direita.

De modo a alinhar a ponta do osso com a sua origem, no painel Transform da tabela de propriedades, [N], da janela 3D, copie o conteúdo da célula da coordenada X da raiz (Head), [LMB] > [Ctrl]+[C], para a célula da coordenada X da ponta (Tail), [LMB] > [Ctrl]+[V].



Fica assim garantido o alinhamento segundo o eixo dos yy.

Pode verificar no painel Transform da tabela de propriedades que a coordenada Z da raiz e da ponta do osso são iguais.




Passe a Right Ortho, [3]. Seleccione a ponta do osso, [RMB], e arraste-a segundo Y, utilizando o respectivo controlador, de modo a dar ao osso sensivelmente a dimensão do raio da jante.







Seleccione agora o corpo do osso, [RMB], e duplique-o, [Shift]+[D]. Obtemos assim dois novos ossos. Arraste os ossos agora criados até junto das rodas traseiras, utilizando, por exemplo, o controlador dos yy.




Saia de modo edição, [Tab]. Seleccione o pneu traseiro direito e centre o cursor 3D, [Shift]+[S] > Cursor to Selected.

Seleccione a armação, [RMB], entre em modo edição, [Tab], seleccione o corpo do osso da direita, [RMB], e coloque a sua raiz sobre o cursor 3D, [Shift]+[S] > Selection to Cursor. Os dois ossos traseiros ficam assim completamente alinhados.

Neste momento temos, portanto, quatro ossos perfeitamente alinhados com cada uma das jantes e de dimensão aproximadamente igual ao seu raio.

Sem alterar o sufixo de cada um dos ossos, altere os seus nomes para Wheel_Front_Rot_L, Wheel_Front_Rot_R, Wheel_Back_Rot_L, e Wheel_Back_Rot_R.













Passe a modo pose, [Ctrl]+[Tab]. Seleccione o osso Wheel_Front_Rot_L, [RMB]. No contexto Bone Constraints da janela de propriedades associe ao osso um restritor Tranformation.

Especifique como alvo a armação e o osso Main. Active Extrapolation e Source: Loc.

Nas células Y especifique -2*pi e 2*pi vezes o comprimento do osso.






Nota: pode avaliar o comprimento do osso em modo edição no painel Transform da janela de propriedades comparando as coordenadas em yy.

No caso presente o osso tem aproximadamente 1 UB de comprimento. Pode definir aqui um osso com um comprimento múltiplo de UB (não é tecnicamente relevante se o osso tem exactamente a dimensão da jante, ou do pneu), ou, se preferir especificar o comprimento do osso nas células Source Y do restritor Transformation.

Nas células de mapeamento especifique Y >> X. Seleccione Destination: Rot e especifique -360 e 360 nas células X.









Com o painel do restitor Transformation assim especificado, sempre que o osso Main for transladado segundo Y o osso Wheel_Front_Rot_L rodará em torno do eixo dos xx.










Nota: As especificações relativas aos sistemas de eixos dos osso dizem respeito ao sistema do próprio osso que pode ser visto activando Axes no painel Display do Contexto Armature da janela de propriedades, ou, como é o caso da figura acima, seleccionando o sistema Normal na representação dos controladores.

Associe um restitor Transformation a cada um dos outros 3 ossos (Wheel_Front_Rot_R, Wheel_Back_Rot_L, e Wheel_Back_Rot_R), e especifique os parâmetros de modo igual ao acima descrito.
















Cada um dos ossos Wheel_XXX_Rot roda sempre que o osso Main é transladado, mas ainda não acompanha em simultâneo a sua translação como, neste caso, é desejado.

Passe a modo edição, [Tab]. Seleccione o osso Wheel_Front_Rot_L, [RMB]. No painel Relations do contexto Bone da janela de propriedades especifique o osso Main como pai não ligado. Mantenha as opções padrão Inherit Rotation, Scale e Location.

Repita o procedimento para os outros 3 ossos.

Pode ver na janela 3D que a dependência parental é expressa visualmente por linhas a tracejado ligando a ponta do osso Main à raiz de cada um dos 4 ossos.

Passe a modo pose, [Ctrl]+[Tab], e movimente, [G], o osso Main. Pode ver que, agora, cada um dos ossos das rodas roda sobre o seu próprio eixo e acompanha os movimentos de translação do osso Main.





Passe a modo objecto, [Ctrl]+[Tab]. Seleccione a jante frontal direita, [Tab]. No contexto Constraints da janela de propriedades associe um restitor Copy Location à jante e especifique a armação e o osso Wheel_Front_Rot_L como alvo. Mantenha as opções padrão.

Associe um restitor Copy Rotation à jante e especifique a armação e o osso Wheel_Front_Rot_L como alvo.

Provavelmente terá de activar Invert segundo alguns dos eixos para que a rotação do osso e da jante seja feita no mesmo sentido e Local With Parent para que a jante não sofra uma rotação longitudinal.

Repita os procedimentos para as outras 3 jantes, associando-lhes restritores que têm como alvo cada um do outros 3 ossos (Wheel_Front_Rot_R, Wheel_Back_Rot_L, e Wheel_Back_Rot_R).

Seleccione a armação, [RMB], passe a modo pose, [Ctrl]+[Tab], movimente o osso Main, [G], e observe a correcção da aplicação dos restritores.

Direction.


Vamos agora controlar a direcção das rodas frontais.

Seleccione a armação, [RMB], e passe a modo edição, [Tab]. Seleccione o osso Main, [RMB], e duplique-o, [Shift]+[D].

Utilizando os controladores puxe o osso criado para a parte da frente do carro. Passe a Right Ortho, [3]. Seleccione a ponta do osso, [RMB], e coloque o osso na vertical, [G] > [Ctrl].

Designe o osso por Main_Dir.


No painel Relations do contexto Bone torne o osso filho do osso Main.









Seleccione a raiz do osso Main_Dir. Passe a Front Ortho, [1]. Crie dois novos ossos, [Shift]+[E].








Seleccione o corpo do osso da direita, [RMB], e puxe-o, [G], para junto do pneu do seu lado. Seleccione a ponta do osso, [RMB], e coloque o osso aproximadamente na vertical, [G].

Designe os novos ossos por Dir_L e Dir_R.





Seleccione a ponta ou a raiz do osso Wheel_Front_Rot_L, [RMB], e copie, [Ctrl]+[C], a sua coordenada em X a partir da respectiva célula do painel Transform da tabela de propriedades da janela 3D.


Seleccione a ponta do osso Dir_L e copie, [Ctrl]+[V], o valor da coordenada X (para a respectiva célula do painel Transform da tabela de propriedades da janela 3D).

Seleccione a raiz do osso Dir_L e repita o procedimento.

O osso Dir_L fica assim alinhado com o osso Wheel_Front_Rot_L.

Replicando os procedimentos acima copie agora a coordenada em Z da raiz ou da ponta do osso Wheel_Front_Rot_L e copie-a para a coordenada da raiz do osso Dir_L.






Em Front Ortho, [1], seleccione, [Shift]+[RMB], os ossos Dir_L e Dir_R e realinhe-os, com o plano YZ, [Ctrl]+[N] > X axis.









Seleccione o osso Dir_L e quebre a relação de parentesco com o osso Main, que resultou do modo como foi criado.




Torne o osso Dir_L filho do osso Main_Dir.

Repita os procedimentos para o osso Dir_R.





Entre em modo pose, manipule o osso Main_Dir, nomeadamente deloque-o em X, e verifique que os osso Dir_L e Dir_R acompanham o seu movimento. Manipule o osso Main e verifique que o osso Main_Dir acompanha o seu movimento.













Passe a modo edição, [Tab], e a Top Ortho, [7]. Seleccione a raiz do osso Wheel_Front_Rot_L, [RMB], e proceda a uma extrusão em Y, [E] > [Y].

Pode ver que foi também criado um osso do lado esquerdo.

Designe os osso por Wheel_Front_Dir_L e Wheel_Front_Dir_R.

Pode verificar no painel Relations do contexto Bone da janela de propriedades que, em resultado do modo como foram criados, os ossos herdaram a relação de parentesco com o osso Main. Não altere esta relação.







Por outro lado, os ossos Wheel_Front_Rot_L e Wheel_Front_Rot_R são filhos do osso Main. Quebre essa relação de parentesco e torne-os filhos dos ossos Wheel_Front_Dir_L e Wheel_Front_Dir_R.






Passe a modo pose, [Ctrl]+[Tab]. Seleccione o osso Wheel_Front_Dir_L, [RMB]. No Contexto Bone Constraints da janela de propriedades associe um restritor Track To ao osso e seleccione a armação e o osso Dir_L como alvo.

Corrija a posição dos eixos directores. Em princípio o eixo dos –yy deve apontar para o alvo e eixo dos zz para cima.

Repita o procedimento para o osso Wheel_Front_Dir_R.



Desloque o osso Main_Dir em X e verifique que o sistema de controle de direcção funciona como é esperado.
















Em virtude das relações impostas aos ossos Wheel_Front_Rot_X e dependendo da torção dos ossos Dir_X, pode ser necessário alterar algumas das especificações dos restritores já associados. No caso do presente modelo foi necessário especificar Z Invert no painel do restritor Copy Rotation associado à jante frontal direita.



e alterar os valores das células Destination X do restritor Transformation associado a osso Wheel_Front_Rot_L para a gama 360 a -360, de modo a inverter o sentido da rotação.




De modo a que as rodas frontais respeitem torções frontais em Y, como se mostra na figura,









foi ainda necessário associar aos ossos Wheel_Front_Dir_X um restritor Copy Rotation tendo o osso Main como alvo (A restrição é necessária em resultado da imposição do restritor Track To relativamente à posição vertical do eixo secundário).




Uma melhor solução é a da eliminação do restritor Track To (e da não criação do restritor Copy Rotation) e sua substituição por um restitor Damped Track, que não impondo condições aos eixos transversais, deixa o osso Wheel_Front_Dir_L (e _R) sofrer as rotações impostas pela relação de parentesco.






Fica assim completa a armação.

Note que poderá haver situações em que seja relevante criar restrições adicionais ou quebrar algumas das restrições impostas.Considere, por exemplo, a associação da armação a um restritor Follow Path.

Centre o cursor, [Shift]+[S] > Cursor to Center. Insira uma curva, por exemplo uma curva de Bezier, [Shift]+[A] > Curve > Bezier.

Passe a modo edição, [Tab]. Aumente o número de controladores, [W] > Subdivide > Number of cuts > 3.

Rode-a,[R], escale-a, [S], e disponha os controladores conforme julgar conveniente de modo a dar à curva a forma desejada. Designe a curva por Path_01.












Saia de modo edição, [Tab]. Seleccione a armação, [RMB], entre em modo pose, [Ctrl]+[Tab]. Seleccione o osso Main, [RMB]. No contexto Bone Constraints da janela de propriedades associe ao osso um restritor Follow Path.

Especifique a curva Path_01 como alvo. Active Follow Curve. Especifique o eixo do osso que deve apontar na direcção do movimento (-Y).

Pressione o botão Animate Path de modo a associar à curva a animação padrão, com uma evolução do objecto com velocidade constante entre os extremos da curva durante as frames 1 e 100.

Pode ver que o modelo evolui ao longo da curva, mantendo-se a raiz do osso Main sempre sobre a curva, e sofrendo a rotações convenientes, em resultado da activação do parâmetro Follow Curve, mas o sistema de direcção não tem qualquer função, saindo do percurso frequentemente e não fazendo curvar as rodas fronteiras.

Para obter o efeito desejado é necessário quebrar a relação de parentesco entre o osso Main_Dir e o osso Main.

Seleccione o osso Main_Dir, [RMB]. Entre em modo edição, [Tab]. No painel Relations do contexto Bone da janela de propriedades elimine a relação de parentesco com o osso Main.







Passe de novo a modo pose, [Ctrl]+[Tab]. No contexto Bone Constraints da janela de propriedade associe ao osso Main_Dir um restritor Follow Path.

Especifique a curva Path_01 como alvo. Active Follow Curve. Especifique o eixo do osso que deve apontar na direcção do movimento (-Y) e o que aponta para cima (Z).

Nota: Os eixos especificados dizem respeito ao sistema de eixo local da armação (visível em modo objecto).


Faça evoluir a armação ao longo do percurso, por exemplo pressionando e mantendo [LMB] sobre a linha temporal da janela Timeline e arrastando o rato.

Poderá ver que o osso Main_Dir não se mantém sobre o percurso, evoluindo sempre à mesma distância da origem da armação, que se situa sobre a raiz do osso Main.

Vamos agora corrigir esta situação. Primeiro vamos ter em atenção qual é a zona do osso Main que se mantém sobre o percurso. Não é aqui feita a discussão sobre se a tracção do carro é feita pelas rodas da frente ou de trás, mas é obviamente uma questão que pode ter em consideração e ajustar a posição do osso Main como entender. A diferentes posicionamentos do osso Main relativamente à origem corresponderão diverso tipos de trajectória da carroçaria do modelo.

Já vimos a dinâmica do modelo quando a raiz do osso Main se mantém sobre o percurso. Vejamos outra solução.

Coloque-se na primeira frame, [Shift]+[LA]. Recorrendo aos controladores, arraste o osso Main segundo Y de modo a que a sua ponta fique sobre a origem.





Faça evoluir o modelo ao longo do tempo. Pode ver que a ponta do osso Main se mantém sobre o percurso.












Coloque-se novamente na primeira frame, [Shift]+[LA]. Recorrendo aos controladores, arraste o osso Main_Dir segundo Y de modo a que a sua raiz fique sobre a origem.










No painel do restritor Follow Path associado ao osso especifique para o parâmetro Offset um valor conveniente de modo a que o osso fique em avanço, definindo convenientemente a direcção das rodas, por exemplo -8.





O osso Main_Dir mantém-se agora sobre o percurso e à distância conveniente para definir a torção das rodas dianteiras.










Ensaie o posicionamento dos ossos Main e Main_Dir relativamente à origem da armação de modo a dar a dinâmica desejada à carroçaria e rodas.