Estúdio Livre | Estúdios Livres : Motion Capture - Dos leds infra-vermelho à Game Engine

Blog: Blender MIX

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.

enviada por: gelo em: 18:35 - 12/07    |    permalink    |    0 comentários    |    comentar

Enviar a mensagem para estes endereços


Lista de endereços de email separados por vírgulas