S6.A1.

 

4.2.6. Cache.


Dezembro 04, 2012

 

O painel Cache permite fazer a gestão do cálculo e do registo, em RAM ou em disco, dos dados do sistema de partículas.

External: Quando activo, permite ler os dados de um sistema de partículas registados previamente em disco.

Cache Name: Nome do bloco de memória em que os dados do sistema estão armazenados.

Note que é possível ter várias caches, correspondentes a diversas configurações de um mesmo sistema de partículas. A selecção, criação, e eliminação das caches existentes é feita na caixa do stack de chaches (imediatamente abaixo do nome do painel Cache).

Cache Step: Número de frames entre os dados do sistema registados em cache.

Disk Cache: Quando activo, permite o registo em disco dos dados do sistema.

A cache é transferida para disco logo que Disk Cache é activado, sendo os ficheiros correspondentes a cada uma das frames em cache colocados numa directoria com o nome blendcache_##, em que ## corresponde ao nome do ficheiro *.blend. Quando Disk Cache está activo , é possível seleccionar o nível de compressão de dados, nos botões No/Light/Heavy.

Bake: Congela o sistema, recalculando os dados e inibindo alterações à configuração do sistema de partículas.

Após ser activado, o botão Bake é substituído pelo botão Free Bake, que deverá se pressionado para que seja possível fazer qualquer alteração à configuração do sistema.

Bake All Dynamics /Free All Bakes: Regista em disco os dados de todos os sistemas existentes em cena.

Calculate To Frame/ Update All To Frame: Calcula/ Regista os dados da simulação apenas até à frame activa.

Current Cache to Bake: Congela o sistema, tomando como bons os dados do sistema existentes em RAM.

Exemplo.


Abra o Blender. No contexto Particles da janela de propriedades associe um sistema de partículas ao cubo.

Pré-visualize a animação, [Alt]+[A].

Pode ver que, no painel Cache, imediatamente abaixo da célula Cache Step, surge informação sobre a cache activa.

No caso, tendo a animação sido abortada na frame 120, ficaram registadas em RAM 12 frames, dado que o parâmetro Cache Step tem o valor 10, ocupando 88.7 kb.

Note que na janela Timeline a existência da cache é assinalada por uma linha vermelha imediatamente acima do eixo temporal. Os pontos a vermelho mais escuro correspondem às frames em cache, no caso espaçadas de 10 em 10 frames.

Na célula Cache Name, dê um nome à cache, por exemplo, cache1.

Pode ver que, no stack de caches, a cache existente aparece agora referenciada com esse nome.

Pressione o botão com o símbolo + à direita do stack, de modo a criar uma nova cache, e, na célula Cache Name dê-lhe um nome, por exemplo, cache2. Altere o valor de Cache Step para 5.


Com a cache cache2 seleccionada, [LMB], no stack, pré-visualize a animação, [Alt]+[A]. Seleccione agora a cache cache1.

Pode ver, na informação exposta imediatamente a seguir à célula Cache Step, que a cache se perde. Para preservar a cache em RAM é necessário pressionar o botão Bake.

Seleccione a cache1 e pressione Bake.

Seleccione a cache2 e pressione Bake.

No stack de caches, seleccione sucessivamente uma e outra cache.

Pode ver, através da informação exposta imediatamente a seguir à célula Cache Step que, agora, a informação em RAM é preservada.











Note que não é possível guardar a informação em disco. Tal não será possível enquanto não salvar o ficheiro.

Salve o ficheiro, por exemplo com o nome testecache.blend.

De imediato, a opção Disk Cache fica disponível.

Active Disk Cache.

É automaticamente criada a pasta blencache_##, em que ## corresponde ao nome do ficheiro. Na pasta são criados os ficheiros contendo a informação sobre o sistema de partículas, com extensão bphys, um por cada uma das frames em cache, cujo nome é composto pelo nome da cache seguido do número da frame.

Seleccione sucessivamente cada uma das caches presente no stack, e pressione Current Cache to Bake, caso a cache esteja actualizada, ou Free Bake e em seguida Bake, caso a cache esteja actualizada.

Note que a informação sobre o estado da cache é permanentemente actualizada, variando as mensagens em função das acções desencadeadas.

Para actualizar o registo em disco active Free Bake/Bake ou pré visualize a animação completamente, [Alt]+[A].

Pode verificar que tem neste momento em disco, na pasta blendcache_testecache, 25 ficheiros cache1_0000 ##_00.bphys e 50 ficheiros cache2_0000##_00.bphys.

Como se referiu, ao activar Bake, independentemente de estar ou não a registar os dados em disco, congela o estado do sistema de partículas. Os dados são recalculados, em função dos parâmetros actuais do sistema, a cache é actualizada, e são inibidas alterações à configuração do sistema.

4.2.7. Physics.


A dinâmica das partículas é condicionada por um de cinco sistemas possíveis: No, Newtonian, Keyed, Boids, e Fluid.

Parâmetros comuns.

Qualquer dos 5 sistemas tem os seguintes parâmetros comuns:

Size: Dimensão (física) das partículas.

Random Size: Factor de aleatoriedade da dimensão das partículas.

Os sistemas Newtonian, Keyed, Boids, e Fluid têm ainda como parâmetros comuns:

Mass: Massa das partículas.

Multiply mass with particle size: Quando activo, a massa das partículas é multiplicada pela sua dimensão, de modo a que as partículas maiores tenham maior massa.

4.2.7.1. None.


Se seleccionado, as partículas permanecem nos pontos em que são emitidas, durante todo o seu tempo de vida, não respondendo às forças presentes em cena.

4.2.7.2 Newtonian.


Se seleccionado, as partículas ficam sujeitas às forças presentes em cena, quer as aqui definidas, quer as resultantes da aplicação de campos exteriores, iniciando o seu ciclo de vida com velocidades angulares tal como especificado nos painéis Velocity e Rotation, e evoluindo com uma dinâmica que respeita as leis de Newton.

• Forces:

Brownian: Permite a simulação de um movimento Browniano.

Drag: Sujeita as partículas a uma força em sentido contrário à sua velocidade, e proporcional à sua velocidade e dimensão (size), simulando a dinâmica de partículas emersas num fluido, permitindo, por exemplo, simular o efeito da resistência do ar ou da água.

Damp: Sujeita as partículas a uma força em sentido contrário à sua velocidade, independente da velocidade e dimensão das partículas.

• Collision:

Size Deflect: Tem em atenção a dimensão (size) das partículas nos contactos com os objectos deflectores.

Die on Hit: As partículas terminam o seu ciclo de vida quando entram em contacto com um objecto deflector.






• Integration:

Permite seleccionar o método de cálculo da dinâmica das partículas de entre quatro possíveis opções, expostos por ordem decrescente de tempo de cálculo e crescente de prescisão.

Euler: Método mais rápido e menos exacto.

Varlet: Método bastante rápido e mais preciso do que o método de Euler.

Midpoint: Método Runge-Kutta de 2ª ordem. Método de cálculo mais lento que os métodos de Euler e Varlet mas bastante mais preciso.

RK4: Método Runge-Kutta de 4ª ordem. Mais lento e mais preciso que o método Midpoint.

Timestep: Intervalo temporal, por frame, utilizado no cálculo da simulação da dinâmica das partículas.

Subframes: Especificação do número de subframes a utilizar na simulação, permitindo um maior estabilidade da dinâmica das partículas.

4.2.7.3. Keyed.


Quando seleccionado, a dinâmica do sistema de partículas fica dependente da dinâmica de outro, ou outros, sistemas de partículas.

Veja a descrição dos parâmetros Size, Random Size, Mass, e Multiply mass with Size, comuns a todas a dinâmicas, na secção 6.2.7. Physics .

Keys: Stack de sistemas de partículas chave.

Object: Nome do objecto a que o sistema de partículas chave está associado.

System #: Caso o objecto especificado em Object tenha mais de um sistema de partículas associado, permite seleccionar, por ordem no stack de partículas do objecto, qual dos sistemas deve ser utilizado.

Os sistemas são adicionados ao stack de partículas chave pressionando o botão +, eliminados pressionando o botão -, e reposicionados no stack através dos botões cursores imediatamente abaixo. Ao pressionar + será adicionado ao stack um sistema de partículas genérico, que deverá ser obrigatoriamente concretizado através da especificação feita nas células Object e System.

Loops: Especifica o número de vezes que as partículas percorrem a trajectória determinada pelos sistemas existentes no stack de sistemas chave, com tempos de percurso, fracções do tempo de vida das partículas, igualmente divididos por todos os sistemas.

Use Timing: Permite a especificação dos tempos de percurso entre os sistemas existentes no stack de sistemas chave, que deixam de ser equitativamente distribuídos e passam a depender dos parâmetros Time e Duration.

Time: Frame em que as partículas atingem o sistema chave.

Duration: Número de frames que as partículas permanecem no sistema chave.

Exemplo.


Abra o Blender. Seleccione o cubo, [RMB], active o contexto Particles da janela de propriedades e crie um sistema de partículas associado ao cubo padrão, pressionando o símbolo + à direita do stack de sistemas. No painel Physics active Keyed.

Passe a Right Ortho, [Num3] > [Num5]. Insira três planos à direita do cubo, [Shift]+[A] > Mesh > Plane, e, por exemplo no painel Item da tabela de propriedades, [N], da janela 3D, designe-os por Plano1, Plano2, e Plano3.

Sucessivamente, seleccione cada uma dos planos, [RMB], e rode-os -90o sobre o eixo dos X, [R] > [X] > -90.

Para cada um dos planos, active o contexto Particles e crie um sistema de partículas.

Seleccione o cubo, [RMB]. No painel Physics do contexto Particles pressione quatro vezes o botão + à direita do stack de sistemas chave.

No stack de sistemas chave, seleccione o segundo sistema, [LMB], e, na célula Object, seleccione o Plano1. Repita o procedimento para o terceiro e quarto sistema do stack, seleccionando agora, respectivamente, o Plano2 e o Plano3.


Seleccione o cubo. Pressione [Alt]+[A] para pré-visionar a animação na janela 3D.

Pode ver que as partículas fluem a partir do cubo e se dirigem sucessivamente para as partículas emitidas pelo Pano1, Plano2 e Plano3.








Note que as partículas emitidas pelo cubo atingem as partículas do Plano 3 na frame 50. Tal resulta do tempo de vida especificado no painel Emission para o tempo de vida das partículas do sistema de partículas associado ao cubo, e da especificação Loops : 1 no painel Physics.

Note que o tempo de vida das partículas dos sistemas associados aos planos é irrelevante nos cálculos dos tempos de percurso.

Note também que a ordem do fluxo depende da ordem dos sistemas no stack de sistemas chave.

Seleccione, [LMB], o sistema de partículas do Plano3 no stack de sistema chave, e passe-o para a 3a posição, recorrendo aos cursores à direita do stack.


A trajectória das partículas do sistema do cubo passa agora a acompanhar a trajectória das partículas do sistema do Plano3 antes de atingir, na frame 50, o fluxo de partículas do Plano 2.









Seleccione de novo o sistema de partículas do Plano3 no stack de sistema chave, e passe-o agora para a 2ª posição, recorrendo aos cursores à direita do stack.


As partículas do sistema do cubo passam agora a acompanhar a trajectória das partículas do sistema do Plano3, flectem depois para as partículas do Plano2, e finalmente atingem as partículas do Plano1 na frame 50.








Seleccione o sistema de partículas do cubo no stack de sistema chave, e elimine-o do stack, pressionando o botão com o símbolo - à direita do stack, e reponha a ordem Plano1, Plano2, Plano3. Para além disso, incremente o número de ciclos para 2, Loops : 2.

As partículas do sistema de partículas do cubo iniciam agora a sua trajectória na posição das partículas do sistema do Plano1, uma vez que este é agora o primeiro sistema chave.

Acompanham em seguida as partículas do sistema do Plano2, e dirigem-se para as partículas do sistema do Plano3, que atingem na frame 25. Dirigem-se em seguida para o 1º sistema chave, e iniciam um novo ciclo, que completam na frame 50.

Sintetizando, a trajectória é determinada pela ordem dos sistemas no stack de sistemas chave, e é executada num número de frames determinado pelo valor de Lifetime do sistema principal. Não estando Use Timing activo, as partículas transitam entre os sistemas do stack num igual número de frames, independentemente da distância a que os sistemas se encontrem uns dos outros, e que é igual a Lifetime/Loops/(n-1), em que n é o número de sistemas no stack.

Vamos agora ver como utilizar o parâmetro Use Timing para controlar os tempos de transição entre sistemas.

Seleccione o cubo e, no painel Emission do contexto Particles da janela de propriedades, especifique Lifetime : 250.

No painel Physics active Use Timing.

No stack de sistemas chave, seleccione o sistema de partículas do Plano1. Especifique Duration : 20.

Em resultado desta especificação, as partículas acompanharão as posições chave das partículas do sistema do Plano1 até à frame 20, e só a partir daí alterarão a sua trajectória para procurar as posições chave das partículas do sistema do Plano2.

No stack de sistemas chave, seleccione o sistema de partículas do Plano2. Especifique Time : 100 e Duration : 50.

Em resultado desta especificação, as partículas dirigir-se-ão para as posições chave das partículas do sistema do Plano2, que atingirão na frame 100, e acompanharão o movimento dessas partículas até à frame 120.

No stack de sistemas chave, seleccione o sistema de partículas do Plano2. Especifique Time : 200. Em resultado desta especificação, as partículas dirigir-se-ão para as posições chave das partículas do sistema do Plano3, que atingirão na frame 200.

Audio Driven Animation Tutorial 1.


Abra o blender e passe a Front Ortho, [1] > [5].

Vamos começar por criar uma malha com apenas um vértice, colocado na origem do espaço 3D.

O cubo encontra-se seleccionado. Passe a modo edição, [Tab], desseleccione os vértices, [A], seleccione um do vértices, [RMB], inverta a selecção, [Ctrl]+[I], e elimine os 7 vértices assim seleccionados.

Seleccione o vértice que restou, [RMB], e coloque-o na origem, [Shift]+[S] > Selection to Cursor.

Saia de modo edição, [Tab].

Na barra da janela Info active a pré-configuração de janelas Animation.


Seleccione a malha e insira uma keyframe de localização, [I] > Location.

Na janela Graph Editor elimine o canal Y Location, [LMB] > [X].

Seleccione o canal Z Location. Coloque-se na frame 1, [Shift] > [LA]. No menu Key da barra da janela Graph Editor seleccione Bake Sound to F-Curves.

Seleccione, [LMB], uma ficheiro áudio (por exemplo, este.), e active Bake Sound to F-Curves.






Deverá obter uma curva idêntica à que se mostra na figura.









Note que a curva toma valores no intervalo [0 , 1], mas, se desejável, poderá ser escalada. Abra a tabela de propriedade da janela Graph Editor, [N]. Active Add Modifier e seleccione Envelope.





No painel do modificador, especifique Min: -10.0, Max 10.0.









A curva assume agora valores no intervalo [0, 10].








Seleccione o canal X Location, [LMB]. Coloque-se na frame 1, [Shift] > [LA]. No painel Active Keyframe da tabela de propriedade da janela Graph Editor especifique Key Value -100.0.


Coloque-se na última frame, [Shift] > [RA]. Com o rato sobre a janela Graph Editor, insira uma keyframe, [I], e seleccione Only Selected Channels.






Desactive a representação do canal Z Location e seleccione X Location, [LMB].




Seleccione todas as keyframes, [A]. Na barra da janela Graph Editor seleccione Key > Interpolation Mode > Linear.









Na barra da janela Graph Editor seleccione View All. Seleccione a Keyframe da última frame, [RMB]. No painel Active Keyframe especifique Key Value: 100.


Na barra da janela Graph Editor seleccione View All. Deverá ter uma curva de interpolação idêntica à que se mostra na figura.








Active o contexto Particles da janela de propriedades, e associe um sistema de partículas à malha.






No painel Field Weights, anule a influência da gravidade.




Na barra da janela Timeline especifique o número de frames da animação, End: 1000.


No painel Emission, especifique o número de partículas, Number: 1000, a última frame em que as partículas são emitidas, End: 1000, o tempo de vida das partículas, Lifetime: 100, seleccione Verts, e desactive Random.



No painel Velocity anule a velocidade segundo a normal.





Transforme a janela do canto superior esquerdo numa janela Video Sequence Editor. Arraste ficheiro áudio da directoria onde se encontra para cima desta janela. Abra a tabela de propriedade da janela Video Sequence Editor, [N]. No painel Edit Strip especifique Start Frame: 1.





Seleccione a câmara, [RMB]. Vá para a 1ª frame, [Shift] > [LA]. Abra a tabela de propriedade da janela 3D, [N]. No painel Transform especifique Location X: -100; Y: -70; z: 0, e Rotation X: 90o, Y: 0o, Z:0o.

Com o rato sobre as células Location, insira uma Keyframe, [I]. Com o rato sobre as células Rotation, insira uma Keyframe, [I]. Note que as células ficaram coloridas a amarelo.

Vá para a última frame, [Shift] > [RA]. No painel Transform especifique Location X: 100; Y: -70; z: 0. Com o rato sobre as células Location, insira uma Keyframe, [I].

Na janela Graph Editor, seleccione todas as keyframes, [A]. Na barra da janela seleccione Key > Interpolation Mode > Linear.

Active a vista de câmara da janela 3D, [0], e observe a pré-animação, [Alt]+[A].

Seleccione a mala emissora de partículas, [RMB], e, na janela de propriedades, active o contexto Materials e seleccione Halo.

No painel Halo especifique Alpha: 0.0, cor RGB:[0, 0, 0], e Add: 1.0.








Active o contexto Textures, e crie uma textura do tipo Blend.










No painel Colors active Ramp e crie uma rampa com as cores RGBA:[0.21, 0.44, 1.0, 1.0] na posição 0.22,



e RGBA:[0.0, 0.0, 0.0, 0.0] na posição 1.0.














No painel Mapping seleccione Coordinates: Strand/Particle.






No painel Influence, actice Color, Alpha, e Add.





No contexto World especifique Horizon Color RGB:[0.0, 0.0, 0.0].








No contexto Render, especifique H,264 no painel Output.




Especifique Audio Codec: MP3 no painel Encoding









Crie o ficheiro com a animação, [Ctrl]+[F12].

Em resultado da parametrização do sistema de partículas face à dinâmica da curva de interpolação, o rasto de partículas perde continuidade, sendo visíveis as sucessivas posições do emissor no espaço 3D. Vamos agora corrigir esta situação.

Como por certo notou, a curva de interpolação modulada pelo registo áudio não tem keyframes. Não pode por isso ser sujeita a transformações. Vamos recorrer a um add-on externo para alterar esta situação.

Copie o ficheiro unbake.py para o seu ambiente de trabalho.

Na janela Video Sequence Editor, seleccione a strip áudio, [RMB], e elimine-a, [X].

Transforme a janela Video Sequence Editor numa janela Text Editor.





Na barra da janela Text Editor seleccione Text > Open Text Block e seleccione o ficheiro unbake.py.


Pressione o 3 botões à direita da célula com o nome do ficheiro e em seguida pressione Run Script.




Pode ver que no fundo da tabela de propriedades da janela 3D foi criado o painel unBake selected fcurves.





Na janela Graph Editor, seleccione o canal Z Location, [LMB], e elimine o modificador Envelope.




No painel unBake selected fcurves da janela de propriedade da janela 3D active unBake to Action.





Pode ver na janela Graph Editor que a curva Z Location tem agora uma Keyframe em cada uma das frames da animação







Seleccione todas as Keyframes, [A].

Faça um escalamento de 4 em x, [S] > [X] > 4, e de 10 em Y, [S] > [Y] > 10.

Seleccione a primeira Keyframe e, no painel Active Keyframe da tabela de propriedades da janela Graph Editor, verifique qual é a sua posição.

Seleccione todas as keyframes, [A], e faça uma translação de modo a que a primeira Keyframe fique posicionada em [1, 0], [G] > [X] > 1497, [G] > [Y] > 4.845.

Pode verificar que agora a cuva se situa no intervalo[0, 4000; 0 10]






Vá para a primeira frame, [Shift] > LA]. Na janela 3D, seleccione a malha emissora de partículas e insira uma Keyframe de localização, [I] > Location. Vá para a última frame, [Shift] > [RA], e insira uma Keyframe de localização.

Na janela Graph Editor, seleccione o canal X Location, [LMB]. Seleccione as duas Keyframes, [Shift] > [RMB], e, a partir da barra da janela, seleccione Key > Interpolation Mode > Linear.


Seleccione a primeira keyframe e, no painel Active Keyframe da tabela de propriedade, especifique Frame 1, Value -100.0.




Seleccione a última keyframe e especifique Frame 4000, Value 100.0.








Na janela 3D, seleccione a câmara, [RMB]. Na janela Graph Editor, seleccione o canal X Location, [LMB]. Seleccione a segunda keyframe, [RMB], e, no painel Active Keyframe da tabela de propriedade, especifique Frame 4000, Value 100.0.


Na barra da janela Timeline especifique o número de frames da animação, End: 4000.



No painel Emission, especifique o número de partículas Number: 28000 a última frame em que as partículas são emitidas, End: 4000, e o tempo de vida das partículas, Lifetime: 400.





No painel Encoding do contexto Render da janela de propriedades especifique Audio Codec: None. Crie o ficheiro de animação com 4000 frames, [Ctrl]+[F12].







Abra um novo ficheiro Blender.

Na barra da janela Info seleccione a pré-configuração de janelas Video Editing.






Na barra da janela Timeline especifique a última frame, End: 1000.



Arraste o ficheiro áudio a partir da directoria onde se encontra para cima da janela Video Sequence Editor.

No painel Edit Strip da tabela de propriedades especifique Channel: 3 , Start Frame: 1.



Arraste o ficheiro video a partir da directoria onde se encontra para cima da janela Video Sequence Editor.

No painel Edit Strip da tabela de propriedades especifique Channel: 1, Start Frame: 1.



Seleccione a strip vídeo, [RMB]. Na barra da janela Video Sequence Editor seleccione Add > Effect Strip > Speed Control.






A strip de controle de velocidade deverá surgir no canal 2, imediatamente por cima da strip vídeo.





No painel Effect Strip especifique Multiply Speed: 4.0.




Transforme a janela Graph Editor numa janela de propriedades. No painel Output especifique H.264.




No painel Encoding especifique Audio Codec: MP3.









Crie o ficheiro com a animação, [Ctrl]+[F12].