S8.A3.

 

5.4. Projecto 1.

Novembro 17, 2013

 

5.4.1. Physics.


Dynamics.


Abra o ficheiro Projecto 1 que fez em S4.A3.

Seleccione todas as malhas do modelo, [RMB], [Shift] > [RMB], com excepção dos pneus e jantes, e junte-as numa mesma malha, [Ctrl]+[J].

Tenha o cuidado de verificar se as malhas que aglomera têm todas um modificador de subdivisão de superfície associado. Não junte malhas que não têm o modificador com malhas que o tenham.


Começando por prevenir desde já o peso que a manipulação na janela 3D do modelo e dos dados da simulação possa vir a ter, e para a qual o seu computador pode ter poucos recursos, no contexto Modifiers da janela de propriedades reduza o parâmetro Subdivisons View do painel do modificador Subdivions Surface que está associado à malha do modelo para o valor 1.



No contexto Constraints da janela de propriedades certifique-se que o modelo tem um restritor Child Of associado, cujo alvo é o osso Main.










Seleccione a curva Path_01 e crie dois percursos ortogonais e uma zona de derrapagem.






Para criar novos pontos de controle entre dois já existentes seleccione-os, [RMB] , [Shift] > [RMB] , e faça [W] > Subdivide .

Para criar novos pontos de controle num dos extremos seleccione o controlador do extremo, coloque o rato no ponto do cenário 3D onde pretende inserir o controlador e faça, [Ctrl]+ [LMB] .

Utilize as teclas [G] , [R] , e [S] , para manipular os controladores. Note que pode alterar simultaneamente o declive à direita e à esquerda de um ponto de controle seleccionando-o, [RMB] , assim como aos respectivos controladores, [Shift]+[RMB] , e escalando-os, [S] .

Seleccione a curva, [RMB], e abra uma janela Graph Editor.

Pode ver que a dinâmica do modelo sobre a curva é definida por um canal Evaluation Time.






Note que o canal Evaluation Time é definido por um modificador Generator (y=x-1), visível na tabela de propriedades da janela Graph Editor, [N], que se limita a definir uma velocidade constante ao longo de toda a curva.

Elimine o modificador, pressionando o símbolo X do respectivo painel.





Com o rato sobre a janela Graph Editor, insira keyframes, [Ctrl]+[LMB], que lhe permitam definir uma nova dinâmica do modelo ao longo da curva.




Na figura pode ver um exemplo para uma animação com 250 frames em que se pretende que o modelo tenha uma velocidade menor na zona de derrapagem.








Arrastando a linha temporal da janela Timeline, faça evoluir o modelo até à zona de derrapagem.

Pode ver que, como as curvas são demasiado apertadas, o controle da direcção das rodas frontais com base no osso Main_Dir é incorrecto.

Vamos corrigir a situação introduzindo uma F-Curve que controle a acção dos restritores associados à armação.




Coloque-se na frame 1, [Shift]+[LA]. Seleccione o osso Main_Dir, [RMB]. No contexto Bone Constraints da janela de propriedades associe-lhe um restritor Child Of e seleccione como alvo o osso Main. Pressione Set Inverse.






Desactive o restritor colocando o cursor do rato sobre o símbolo do olho e pressionando, [LMB].

Ainda com o rato sobre o símbolo, pressione [I] para inserir uma keyframe.

Coloque agora o rato sobre o símbolo do olho do painel do restritor Follow Path e insira uma key frame, [I].

Com o rato sobre a linha temporal da janela Timeline arraste o modelo até ao início da zona de derrapagem.











Coloque o rato sobre o símbolo do olho do restritor Follow Path, que está activo, e insira uma keyframe, [I].

Coloque o rato sobre o símbolo do olho do restritor Child Of, que está desactivo, e insira uma keyframe, [I].






Avance uma frame, [RA].

Coloque o rato sobre o símbolo do olho do restritor Follow Path e pressione [LMB] para desactivar o restritor. Insira uma keyframe, [I].

Coloque o rato sobre o símbolo do olho do restritor Child Of e pressione [LMB] para activar o restritor. Insira uma keyframe, [I].




Seleccione o osso Main_Dir, [RMB], e arraste-o, [G], até à zona frontal da armação, alinhando correctamente as rodas da frente.










Insira uma keyframe de localização e rotação, [I] > LocRot.










Com o rato sobre a linha temporal da janela Timeline arraste o modelo até ao fim da zona de derrapagem.







Coloque o rato sobre o símbolo do olho do restritor Follow Path, que está desactivo, e insira uma keyframe, [I].

Coloque o rato sobre o símbolo do olho do restritor Child Of, que está activo, e insira uma keyframe,[I].





Avance uma frame, [RA].

Coloque o rato sobre o símbolo do olho do restritor Follow Path e pressione [LMB] para activar o restritor. Insira uma keyframe, [I].

Coloque o rato sobre o símbolo do olho do restritor Child Of e pressione [LMB] para desactivar o restritor. Insira uma keyframe, [I].




Seleccione o osso Main_Dir, [RMB], e arraste-o, [G], corrigindo a sua posição.








Insira uma keyframe de localização e rotação, [I] > LocRot.








Recue agora temporalmente até pouco depois da entrada na zona de derrapagem, seleccione o osso Main_Dir, [RMB], rode as rodas da frente, como é típico de uma zona de derrapagem, arrastando o controlador x, e insira uma keyframe de localização e rotação, [I] > LocRot.









Avance agora temporalmente até pouco antes da saída na zona de derrapagem, seleccione o osso Main_Dir, [RMB], rode as rodas da frente para a posição idêntica ao passo anterior, arrastando o controlador x, e insira uma keyframe de localização e rotação, [I] > LocRot.







Verifique a forma das F-Curves na janela Graph Editor e proceda às correcções necessárias.

Fica assim completa a dinâmica do modelo.

Smoke Simulation.


Insira um cubo, [Shift]+[A] > Mesh > Cube, posicione-o na zona de derrapagem, [G], e escale-o, [S], de modo a envolver toda a zona.








Com o cubo seleccionado, no contexto Physics da janela de propriedades seleccione Smoke e Domain, definindo-o assim como sendo o domínio da simulação.








Mantenha por enquanto as 32 divisões do domínio para que o processo não se torne demasiado pesado.

Especifique Temperature Difference: 0.0, para que o fumo não suba. Active Dissolve e especifique Time: 10 para que o fumo se dissolva de modo razoavelmente rápido.

Note que sendo grande a dimensão do domínio, e não se elevando o fumo, logo não saindo do domínio, a quantidade de voxels em cena tornar-se-á extremamente elevada e consumirá bastantes recursos, pelo que é aconselhável explicitar um valor de Time razoavelmente baixo

Active Smoke Adaptive Domain.




Seleccione (por exemplo na janela Outliner) sucessivamente cada um dos 4 pneus, e no contexto Physics da janela de propriedades seleccione Smoke e Flow.








Especifique Temperature Difference: 0.0, active Initial Velocity, e especifique Source: 2.0, para que o fumo não suba e ganhe uma turbulência resultante da velocidade do pneu.







Pressione [Alt]+[A] para gerar o dados da simulação e pré-visualizar a animação.

Como pode verificar o processo é bastante rápido. Note que o fumo se começa a libertar das rodas logo que o modelo entra no domínio de simulação. Vamos agora controlar o processo de modo a que o fuma seja gerado apenas na fase de derrapagem e as rodas traseiras libertem mais fumo do que as rodas da frente.




Na janela Timeline arraste o modelo até ao início da zona de derrapagem.

Seleccione um dos pneus da frente, [RMB]. No painel Smoke do contexto Physics da janela de propriedades altere o valor do parâmetro Surface para 0.0 e insira uma keyframe, [I].




Avance agora 20 ou 30 frames. Dê ao parâmetro Surface o valor 0.5 e insira uma keyframe, [I].

Avance até ao fim da zona de derrapagem. Dê ao parâmetro Surface o valor 0.0 e insira uma keyframe, [I].

Recue 20 ou 30 frames, dê ao parâmetro Surface o valor 0.5 e insira uma keyframe, [I].

Repita o procedimento para o outro pneu da frente inserindo nas mesmas frames iguais valores para o parâmetro Surface.

Seleccione agora um pneu traseiro, [RMB]. Repita a inserção de keyframes nas mesmas frames mas dando agora ao máximo do parâmetro Surface o valor 2.0.

Repita o procedimento para o outro pneu traseiro.




Observe a simulação, [Alt]+[A], e corrija os parâmetros conforme lhe parecer conveniente.














Vamos agora constituir o modelo como obstáculo à propagação do fumo. Dada a complexidade da malha a sua caracterização como objecto Smoke Collision tornará o processo demasiado pesado. Vamos por isso definir uma malha muito simples envolvente do modelo e atribuir-lhe esse comportamento.

Seleccione o modelo, [RMB]. Centre o cursor, [Shift]+[S] > Cursor to Selection. Insira um cubo, [Shift]+[A] > Mesh > Cube. Entre em modo edição, [Tab], reposicione os vértices, [G], e crie novos contornos, [Ctrl]+[R], de modo a dar à malha a forma da envolvente, não muito detalhada, do modelo. Dê à malha o nome ModelBox.

Seleccione a malha ModelBox, [RMB], seleccione a malha do modelo, [Shift]+[RMB], e estabeleça uma relação de parentesco, [Ctrl]+[P] > Object, de modo a que a malha ModelBox siga o modelo.







Seleccione a malha ModelBox, [RMB], e, no contexto Physics da janela de propriedades, seleccione Smoke , Colision, e Animated.









Seleccione o domínio, especifique Divisions:64, e observe a simulação, [Alt]+[A].

Altere como considerar conveniente o valor dos parâmetros definidos até aqui.





Podemos agora proceder à especificação do valor final dos parâmetros. Se o seu computador não tiver recursos suficientes limite o número de divisões quer em baixa quer em alta resolução.

No painel Smoke especifique Divisions: 128.



Active o painel Smoke High Resolution e especifique Resolution Divisions: 4.





No painel Smoke Cache pressione Bake de modo a registar os dados em disco.








Findo o registo dos dados da simulação, no contexto Render da janela de propriedades, especifique os dados do vídeo conforme entender, coloque a câmara conforme julgar conveniente, e obtenha o vídeo a partir da renderização via OpenGL da janela 3D pressionando o respectivo símbolo na barra da janela 3D.

Para eliminar da renderização os elementos não desejados active Only Render no painel Display da tabela de propriedades da janela 3D, [N].



Recorde que pode especificar na janela Outliner quais os objectos que não deseja renderizar. A malha ModelBox, por exemplo, deve ser especificada como não renderizável.

Note que o cubo que define o domínio não pode ser especificado como não renderizável dado que e ele que suporta o material da simulação.

Sendo este um projecto com objectivos de avaliação mínimos não são dados aqui pormenores sobre a definição de materiais e renderização por recurso ao renderizador nativo ou ao Cycles. Ainda assim, no vídeo que segue mostra-se um exemplo de renderização com definição mínima de parâmetros.