S8.A3.
5.4. Projecto 1.
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.