Apesar do Blender não ter sido um dos programas que inicialmente planejei testar acabei por usar ele pois descobri que seu engine é muito eficiente nos aspectos que desejo implementar, além de ser também muito intuitivo.
Digo que o Blender Game Engine é eficiente não somente pelo fato de incorporar elementos que outras engines possuem, mas por incorporar o python com linguagem de scripting ele amplia as possibilidades de aplicação com o uso de módulos incluídos no python.
Tudo isso foi conseguido com uma instalação muito fácil, e com uma interface muito
user-friendly. (Instalei a versão 2.66)
Do post anterior, eu gostaria de uma engine que:
- Tivesse possibilidade de tocar video
- Possibilitasse uma layer com animaçao (game) sobre o uma layer com um video
- Colher posição atual do video
- Conseguir enviar comandos para porta serial
Todos esses requisitos foram alcançados pelo Blender, que juntamente com o python, facilitou a o desenvolvimento do teste que descreverei a seguir.
A técnica para tocar video é criar uma textura a partir do vídeo desejado que é dinamicamente atualizada a cada frame pelo blender. Desta forma o video é executado, porém sem som.
O som deve ser tocado em paralelo, sincronizado com o video. Abaixo estão algumas imagens do projeto e o código-fonte está anexo e os controles relacionados para se tocar o video.
Neste projeto também existe um mini-game que roda em cima(literalmente) do video. Para este teste, segui o tutorial
deste video do youtube.
O código para o video foi adaptado do código
neste site, cujos créditos (aparentemente) vão para Dalai Felinto.
|
Sensores e controladores do minigame |
|
Sensores e controladores do video e envio de sinais |
Um ponto crucial deste teste foia integração com um hardware externo, comunicando-se por uma porta serial.
Para isso utilizei o módulo
pyserial, que permite uma comunicação descomplicada com a porta serial.
Inicialmente tive problemas para a instalação deste módulo, uma vez que apesar de ele funcionar com o python 3.3 (python que vem com o Blender 2.66) ele é escrito para um python anterior.
Para contornar esse problema, instalei o pip para windows
deste link e segui o tutorial de instalação do pyserial para o pip, e deu tudo certo.
Só como observação: você deve ter a versão do python 3.3 instalada no seu sistema para poder gerar o pacote do pyscript que você depois colocará na pasta do python para ser utilizada dentro do Blender.
Finalmente, utilizei um arduino mega para poder fazer os testes com a comunicação serial. O código para o arduino pode ser baixado
aqui. O arquino em teste foi testado com uma shield com leds e reles.
Baixe
aqui o arquivo .blend para testar o projeto.