Blog: Blender MIX


Description

Last modified: 12/07/10 - 15:35     RSS feed

Motion Capture - Dos leds infra-vermelho à Game Engine

Do meu primeiro post sobre Captura de Movimento até minha primeira experiência real com esse tipo de recurso passou-se pelo menos 4 anos.

Foi a primeira vez que vi um estúdio com 12 câmeras estéreo, dispostas em círculo, conectadas em rede à um sistema rodando em Linux computando a posição no espaço de 37 leds infravermelho acoplados à roupa de uma dançarina.



Denso, né? O sistema de captura grava uns arquivos nada inteligíveis do tipo .RPD, que a posteriori são 'streamados' para um aplicativo que grava arquivos um pouquinho menos ininteligíveis do tipo .C3D

É nesse ponto que o processo passa a ser mais transparente, pois com Python e Blender esses arquivos .c3d deixam de ser as informações da superfície do corpo da dançarina para se tornar as juntas do esqueleto resultante. Os pontos dos leds passam a ser representados por 'Empties', e novos Empties são criados para orientar a base e a terminação dos ossos.

image

Os Empties correspondentes aos leds vêm com quadros-chave de LocX, LocY e LocZ para todos os frames da animação. E essas sucessivas posições são copiadas pelos empties que serão a terminação dos ossos através de 2 ou mais Constraints do tipo Copy Location. O primeiro Constraint com influência 1 copia exatamente a localização do primeiro Led, e o segundo Constraint, com fator .5 vai até a metade do caminho até o próximo Led.

image

O Script , amplamente hakceado para este projeto em específico, gera uma 'Armature' caso a nomenclatura dos marcadores correspondam a algum padrão válido. Os ossos do esqueleto são 'guiados' por um conjunto de Constraints dos tipos: 'Copy Location', 'IK_Solver', 'Track To' e 'Limit Rotation'.

Muitos ajustes manuais dos Constraints e das curvas IPO foram necessários. Várias razões justificaram essas intervenções manuais. Um exemplo são alguns 'Leds' que perderam a conexão com as câmeras e admitiram trajetórias errantes. Para muitos deles novos constraints do tipo 'Limit Distance' evitavam que os errantes se afastassem ou se aproximassem muito dos marcadores corretos. Assim que a postura e os movimentos do nosso esqueleto aparentavam naturais, aplicamos o Script 'Bake Constraints' no esqueleto e obtivemos a 'Action' desse passo de dança.

image

A Mentora do projeto coreografou diversas seqüências de Actions puras e/ou derivadas, que foram editadas constituindo um banco de movimentos.


tags: Este post não tem tags.

posted by: gelo on: 15:35 - 12/07    |    permalink    |    add comment

Ardour e Blender sincronizados via JACK

image

Eu andava comentando com algumas pessoas da hipótese e perspectiva de se trabalhar as animações e a edição de vídeo no Blender ao passo que a edição e pós produção de áudio poderia ser realizada em um software com a vocação para a tarefa. E que o cenário dos sonhos seria a sincronia das timelines desses programas.

É engraçado o quanto é difícil ser original nesse mundo contemporâneo e como é imensa a probabilidade de alguem ter passado pela mesma problemática, discutido em algum fórum e resolvido a demanda bem antes de você sequer vivenciar a questão.

Dito e feito. Esse tópico da Blender Artists dá os passos:

1.) Instale essas dependências:

$sudo aptitude install build-essential python2.5-dev libjack-dev python-gtk2 python-gtk2-dev libjack0.100.0-dev

2.) wget http://downloads.sourceforge.net/py-jack/py-jack-0.1.tar.gz

3.) tar xzpf py-jack-0.1.tar.gz

4.) cd pyjack-0.1

5.) Baixe esse patch http://sourceforge.net/tracker/index.php?func=detail&aid=1871688&group_id=207557&atid=1002156

6.) patch -p0 < transport.patch

7.) sudo python setup.py install

8.) Grave esse script http://estudiolivre.org/repo/7301/animation_bpyjack.py em /usr/share/blender/scripts

9.) Inicie o qjackctl, o Ardour e o Blender

10.) Rode o script no Blender

11.) Divirta-se!

image


tags: blender, ardour, jack, vse, pyjack

posted by: gelo on: 13:05 - 12/08    |    permalink    |    add comment

TV 3D



Dentre diversas alternativas de se assistir TV em 3D, essa foi a primeira que vi sem necessidade de algum aparato como alguns óculos especiais. Mesmo estando em seus estágios iniciais parece bastante promissor para diversas atividades de entretenimento, pedagógicas ou comerciais.

Seu grande potencial se deve à relativa simplicidade em gerar conteúdo que proporcione a ilusão de profundidade nesse tipo de tela. Bastando adicionar o mapa de profundidade em tons de cinza ao lado do vídeo original, o decoder desse tipo de equipamento combina as camadas e exibe a seqüência com sensação de profundidade entre os elementos da cena.

image
Aspecto do vídeo finalizado para exibição no monitor 3D.

A maioria dos programas de criação de conteúdo 3D dispõe de alguma maneira de mapear a distância que os elementos da cena estão em relação à câmera. Equivaleria a um eixo Z representando a profundidade de um vídeo. O Blender, naturalmente lida muito bem com esse tipo de informação através da composição por Nodes.

O formato OpenEXR permite armazenar em uma sequência de imagens as informações RGB, alpha e Z, e portanto possui a estrutura ideal para se criar conteúdo para a TV3D.



Aqui está um template com a organização dos Nodes pronta para você utilizar com os seus projetos de animação.

Passo 1 - Renderize sua animação

Renderize a sua animação em resolução HD (1920x1080) em uma sequência de imagens no formato OpenEXR. Não se esqueça de pressionar Zbuf nas configurações de saída do arquivo para armazenar a profundidade da cena em cada frame.

image

Passo 2 - Carreque sua animação

Abra o template, carregue a sua sequência de OpenEXR no Image Node, e ajuste o Sta e End frame de acordo com a duração da sua animação.

image

Passo 3 - Ajuste a profundidade

Dependendo da profundidade da sua cena talvez seja necessário algum ajuste no mapeamento de Z, nos Nodes 'Map Value' e 'Color Ramp'. O valor de 'Size' (1) em 'Map Value' está ajustado e, 0.05, abrangendo 20 unidades do Blender diante da câmera (1/0.05=20 B.U.). Utilize valores menores para abranger uma distância maior.

Desloque as terminações das cores branca (2) e preta) do ColorRamp? Node para refinar o contraste ao longo da profundidade.

image

Passo 4 - Renderize o vídeo final

Indique o arquivo de saída e pressione ANIM.

tags: blender, nodes, tv3d, openexr

posted by: gelo on: 01:05 - 19/01    |    permalink    |    add comment

Vídeos abstratos sem nenhum 3D

Precisando de uns loops de vídeo abstratos para uma sessãozinha de VJ, bateu aquela preguiça de modelar algo, então resolvi animar apenas texturas procedurais no world, que seria o 'fundo' da minha animação. E não é que o resultado ficou muito bacana?

Procedural Abstrato

author: Ângelo Brandão Benetti sent by: gelo
on: 11/02/08
type: Video

Padrões de cores e formas gerados com texturas procedurais no Blender.

downloaded: times comments: 0 license:

tags: blender, procedural



image

Aqui vão algumas dicas para gerar uns videozinhos abstratos.

Inicie o Blender, remova (x) o cubo e renderize (F12). Deve estar tudo azul certo? Aperte F8 antes de mais nada para passar pelo painel World e já dizer ao Blender que a textura que vc pretende criar é para ele. Então aperte F6 para ir ao painel de texturas e crie alguma clicando no 'Add New'. Escolha algum tipo no 'Texture Type' e renderize.

image

Epa, mas continua tudo azul!! Isso porque o mapeamento do World vem ajustado para a opção Blend (gradiente). O World pode ser uma cor sólida ou um gradiente entre a cor do horizonte e a do zênite. Você pode escolher isso clicando nas opções 'Real', 'Blend', 'Paper', ao lado do preview. Essa cor azul é, a princípio a cor do horizonte. e o zênite vem originalmente na cor preta. Mude os valores de RGB de Ho e Ze para alterá-las.

image

Bem à direita do painel F8 há duas abas que definem o mapeamento da texutra: 'Texture and Input' define a ordem, orientação, deslocamento e tamanho da aplicação da textura; e 'Map To' define o sentido e tipo de mistura gerada pela texutra.

As texturas do painel F6 são visualizadas lá em preto e branco, de modo que o preto representa a cor primária da mistura e branco a cor secundária. No caso da aba 'Map To' estar inalterada, ou seja mapeando para o 'Blend', a cor primária é a cor do horizonte e a cor secundária é a cor do zênite.

image

Se, por outro lado vc optou por mapear a textura para 'Hori', a cor primária é a cor do horizonte e a cor secundária é o valor de RGB indicado nessa aba 'Map To' (a princípio um rosa bem chamativo).

image

Há ainda a possibilidade de você criar seu próprio gradiente com até 30 valores de RGBA, na aba Colorband do painel das texturas.

image

Você pode combinar até 10 texturas diferentes para o World, possibilitando imagens bastante complexas. E, o que é melhor, você pode animá-las sem muito esforço. A tecla 'I' no Blender serve para 'I'nserir quadros-chave na maior parte dos parâmetros disponíveis. Cada efeito tem suas próprias variáveis que resultam em variações da textura. É possível, por exemplo, em uma textura como a 'Distorted Noise' 'I'nserir um quadro-chave (com o cursor sobre a janela dos botões), avançar alguns quadros, alterar os parâmetros (como o DistAmount? e NoiseSize) e 'I'nserir novo quadro-chave.

image

Além de animar os parâmetros de cada textura no painel F6, também é possível animar os parâmetros do mapeamento dessas texturas no painel F8, como a cor do horizonte, a cor do Zênite, o fator de tamanho e deslocamento desse mapeamento, etc.

image

Dá pra passar um bom tempo explorando as possibilidades!

tags: Este post não tem tags.

posted by: gelo on: 15:53 - 24/01    |    permalink    |    add comment

Importando espaçonaves do Celestia no Blender

Todos gostamos de modelar nossas próprias espaçonaves no Blender para pequenas animações. Mas às vezes também é divertido aproveitar a disponibilidade de modelos verossimilhantes existem em outras aplicações, como o Celestia.

Iportar um modelo do Celestia no Blender é tão simples quanto clicar em File>Import>.3ds




tags: Este post não tem tags.

posted by: gelo on: 22:39 - 08/09    |    permalink    |    add comment

Como comecei.




Descobri o Blender em agosto de 2003. Totalmente no escuro, eu procurava uma ferramenta livre e multiplataforma de autoração de conteúdo digital (pra fazer CD card, Apresentação multimídia, essas coisas..). No http://linuxartist.org acabei fuçando naquele item "Blender". A cada feature que eu lia sobre o software, especialmente sobre Game Engine, minha incredulidade tombava um pouquinho.

Tinha um campinho de download. Lembro bem: Não tinha nem 3 mega!! Blz, vou baixar esse sample, esse exemplo, sei lá.. Qual o quê!! Era o próprio dito cujo.

Acabei encontrando MUITO mais do que eu buscava. Modelagem e animação 2D, 3D; Interação total com vídeos, inclusive possibiliddades de edição com transições, cenas, etc.; Possibilidade de navegação nos browsers!!!! AHHH!"! Devorei o tuto inicial (Your first animnation in 30 minuts). E comecei a escalar a curva de aprendizado tão característica do universo SwL.

Desde então o Software dá saltos e saltos de qualidade a cada versão. Os changelogs de cada uma são um retrato fiel do salto qualitativo que o código aberto proporciona em relação a um programa similar proprietário.

-"-

Primeiros modelos

Só tosquera. Umas arestas horríveis. Eu nem conhecia o OSA - Over SAmple = o mesmo princípio de um Motion Blur aplicado a um único frame. Mesmo assim queria modelar de tudo. Tentei uns Ecobrisas (ar-condicionados ecológicos aqui de Campinas) e ficaram bem amadores, em termo de luz, e mesmo a modelagem era primitiva..

EB 20

EB150 - Modelo antigo

EB 300 - Modelo antigo

Mas foi bacana pelo retorno à geometria há tempos estagnada.

Muitos recursos de modelagem apareceram desde então facilitando deveras a criação de polígonos. Por exemplo a seleção por arestas e por faces; ou Facas, para cortar em seções os objetos poliginais.

"


.BVH - Captura de movimentos humanos

Uma das minhas mais surpreendentes e excitantes descobertas recentes de possibilidade no Blender é o uso de captura de movimento mecânico para animação de modelos 3D. Ideal para coreógrafos, dançarinos, mímicos; artistas circenses, marciais; malabaristas, atletas, etc

Os sensores geram um arquivo .BVH com milhares de números relativos às posições X Y e Z dos membros e/ou juntas do corpo do ator. Um script de Python interpretado pelo Blender importa esses números do arquivo .BVH e mapeia a hierarquia dos movimentos com objetos Empty. Um segundo script faz o segundo milagre, que é converter esses Empties em uma estrutura alinhada e hierarquizada de Bones / Ossos.

Esse esqueleto resultante está prontinho para ANIMAR a sua personagem desejada: um hipopótamo, uma caixa de cereais matinais, o **Coiso** do Estúdio Livre, enfim.




'P' de Publish - Play

A 'Engine' de jogos no Blender também é um universo fascinante de expressão, criação e interatividade. Há inúmeros exemplos de manipulação da lógica. Normalmente é distribuído um ZIP a cada nova versão ilustrando as implementações consolidadas: Física, colisões, novos mapeamentos de textura, reflexividade, etc.



Todos os vídeos benvindos

>>FFMPEG>>

O Blender deu um salto homérico para quem usa sistemas operacionais livres, passando a ler e escrever arquivos de vídeo suportados pelo FFMPEG, ampliando os horizontes da edição de seqüências no Blender. Principalmente por possibilitar a edição de OGGs Theora.

Uma implementação magnífica é o modificador de malha do tipo ARRAY, que te permite lidar com uma matriz de objetos muito interessante.






Dando nós

A modificação radical da versão 2.42 é a utilização de NODES para compor materiais e mesmo para compor a renderização de sua cena. Para quem já usou o GEPHEX ou o PD, não será tamanha a novidade de lidar com módulos interconectáveis repletos de entradas e saídas.





BCon 5

O Blender tem uma agenda complexa de lançamento de novas versões, e sempre às vésperas do lançamento oficial, já vão aprecendo os 'Release Candidates'. Normalmente são 3, que vão circulando e permitindo que os usuários identifiquem e comuniquem os bugs, inerentes às inúmeras funcionalidades usualmente incrmentadas.



Esculturas digitais




A versão incipiente é a 2.43, que trás entre outras melhorias, o início do Sculpt Mode, permitindo pintar no 3D as texturas direto na malha. Muito doido e muito pesado também. É facinho de você inviabilizar sua máquina se exagerar em algum parâmetro de multi-resolução.




Nessa nova versão 2.43 também há uma nova funcionalidade que facilitará muito a vida de quem usa o editor de seqüências. Até então qualquer imagem ou vídeo que se adicionava na linha-do-tempo se ajustava à resolução do seu vídeo final. Não importando se você carregava uma foto de 100x800, se seu vídeo fosse um corriqueiro 640x480 o Blender esticaria sua imagem ou vídeo por todo o canvas.
A real é que você agora pode contralar dimensão, rotação e panorama das suas camadas de imagem ou vídeo.
E mais, agora há um controlador de velocidade também, para (des)acelerar como bem entender as suas cenas.

Enfim, diversão multidimensional garantida com o Blender!

tags: Este post não tem tags.

posted by: gelo on: 16:57 - 28/02    |    permalink    |    (1) comment    |    add comment

Page 1 of 1