• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Adaptando e desenvolvendo jogos para uso com o Microsoft Kinect
 

Adaptando e desenvolvendo jogos para uso com o Microsoft Kinect

on

  • 4,831 views

Tutorial apresentado no SBGames 2011.

Tutorial apresentado no SBGames 2011.
Link relacionado: http://www.brunocampagnolo.com/tutorialkinect2011/

Statistics

Views

Total Views
4,831
Views on SlideShare
3,425
Embed Views
1,406

Actions

Likes
1
Downloads
101
Comments
1

1 Embed 1,406

http://www.brunocampagnolo.com 1406

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • + Dados (http://www.lukew.com/ff/entry.asp?1348): 2,5 milhões em 30 dias; 2/3 dos donos de XBOX americanos compraram um Kinect; Ganhou o MacRober Award. 11/11/11
  • 11/11/11
  • http://veja.abril.com.br/noticia/vida-digital/%E2%80%9Cdesenvolvi-o-primeiro-prototipo-em-dois-meses%E2%80%9D-diz-criador-do-kinect "Ao acordar um dia, percebi que não havia qualquer dispositivo eletrônico ao meu redor e gostei daquela sensação. Então, pensei que seria bom jogar games daquela maneira, sem fios ou controles: decidi dar fim aos botões” http://www.engadget.com/2009/06/03/microsofts-project-natal-roots-revealed-3dv-systems-zcam/ 11/11/11
  • http://jogos.uol.com.br/videos/player.jhtm?mediaId=entrevista-com-alex-kipman-04029B3560D0B98307 11/11/11
  • Fonte: http://www.wired.com/magazine/2011/06/mf_kinect/all/1 11/11/11
  • Imagem original: - http://blogs.msdn.com/b/eternalcoding/archive/2011/06/13/unleash-the-power-of-kinect-for-windows-sdk.aspx 11/11/11
  • Ilustração do design de referência da PrimeSense, parceira da Microsoft no desenvolvimento do Kinect Retirado de: http://readwriteweb.com.br/2010/11/09/um-cientista-explica-o-microsoft-kinect/ Fonte da 2ª imagem: http://www.wired.com/gadgetlab/2010/11/kinect-teardown-reveals-ir-projector-fan/ 11/11/11
  • Figura original em: http://www.mattcutts.com/blog/open-kinect-contest/ Veja também o video em: http://www.youtube.com/watch?v=nvvQJxgykcU 11/11/11
  • Ver mais sobre como hackear um dispositivo USB: http://www.ladyada.net/learn/diykinect/ 11/11/11
  • left_arm_up 5 key_hold x left_arm_up 5 mouse_hold left_button

Adaptando e desenvolvendo jogos para uso com o Microsoft Kinect Adaptando e desenvolvendo jogos para uso com o Microsoft Kinect Presentation Transcript

  • Kinect Adaptando e desenvolvendo jogos para uso com o Microsoft Kinect Bruno C. de Paula
  • Quem sou eu? Bruno Campagnolo de Paula brunodepaula@gmail.com http://www.brunocampagnolo.com http://twitter.com/bcp
  • Material deste tutorial
    • www.brunocampagnolo.com/tutorialkinect2011
  • Por que estou aqui? 11/11/11 Centro de Engenharia de Sistemas Inteligentes
  • Por que estou aqui?
    • PUCPR ;
    • Professor dos cursos de jogos e do curso de Sistemas de Informação;
  • Resumo
    • Vamos aprender o que é o Kinect;
    • Arquitetura básica ;
    • Falar sobre o princípios de funcionamento ;
    • Usar o FAAST para prototipação rápida de aplicativos com o Kinect;
    • Demonstrar ferramentas de desenvolvimento e o SDK oficial.
    • Comentar sobre aplicações e projetos.
  • Público-alvo da palestra
    • Pessoal da computação em geral ;
    • Interessados em robótica ;
    • Desenvolvedores de jogos;
    • Pesquisadores e desenvolvedores interessados no futuro dos sistemas de informação ;
    • Educadores ( gesture based learning ).
    11/11/11
  • PARTE 1 O que é o Kinect?
  • O que é o Kinect?
    • Dispositivo de interação natural ;
    • Microsoft;
    • XBOX 360 ( jogos );
    • Lançamento: 4/11/2010 ;
    • 8 milhões vendidos em 60 dias ( recorde );
    • 10 milhões até março de 2011;
    11/11/11
  • Motivação para criação do Kinect
    • Sucesso do Wii;
    11/11/11
  • Wii / Kinect não são tão pioneiros! Dispositivos de interface natural
    • Trabalhos de Myron Krueger (Video Place);
    • Problemas sempre foram: performance e reconhecimento facial.
    11/11/11
  • Wii / Kinect não são tão pioneiros! Dispositivos de interface natural
    • Activator, EyeToy, Track IR
  • Wii / Kinect não são tão pioneiros! Dispositivos de interface natural
    • Não faça com o Kinect o que uma câmera normal resolve!
    • Exemplo de projeto final.
  • Kinect não é o único dispositivo moderno de interface natural atual
    • Wavi Xtion da Asus
    11/11/11
  • Kinect não vai ser o único dispositivo futuro de interface natural
    • Windows 8/9;
    • iOs 6;
    11/11/11
  • Projeto Natal - Origem
    • Forte P&D;
    • Alex Kipmann - Diretor de incubação da Microsoft;
    • PrimeSense ;
    • 3DV Systems.
    11/11/11
  • History is about to be rewritten. This time human beings will be at the centre -- and the machines will be the ones that adapt . (apresentação do Kinect 2010 )
  • 11/11/11 Se você sabe mover-se você sabe usar o Kinect
  • 11/11/11 Qualquer tecnologia suficientemente avançada é indistinguível de magia. Arthur C. Clarke
  • Arquitetura do Kinect 11/11/11
  • Arquitetura do Kinect 11/11/11 Projetor de Luz Infravermelha (invisível) Câmera RGB (“comum”) Câmera infravermelha Conjunto de microfones Motor
  • Arquitetura do Kinect 11/11/11
  • Arquitetura do Kinect Image Stream
    • Cada pixel representa uma cor;
    • 640x480 (30 fps) OU
    • 1280x1024 ( máximo 15 fps);
    11/11/11
  • Arquitetura do Kinect Depth Stream
    • Cada pixel representa a distância em relação ao objeto;
      • 11 bits de precisão ( 2048 níveis de sensibilidade);
      • 1.2 a 3.5 metros;
    • 640x480 (30 fps – sem informação do jogador) e 320x240 (30 fps – com informação do jogador);
    11/11/11
  • Arquitetura do Kinect Audio Stream
    • 4 microfones;
    • Anula ruído e eco.
    • Permite gravação de audio;
    • Excelente reconhecimento de fala (em inglês );
    11/11/11
  • Arquitetura do Kinect Motor
    • 27 graus para cima ou para baixo;
    • Não chamar com muita freqüencia;
    • SDK, por exemplo, limita em 15 vezes a cada 20 segundos.
    11/11/11
  • Sensor de profundidade 3d do Kinect 11/11/11 Projetor de Luz Infravermelha Câmera infravermelha Sensor de Profundidade 3D
  • Princípio de funcionamento do sensor de profundidade 3D
    • Medição de um “ padrão ” invisível projetado no corpo;
    11/11/11 Observação: não é uma câmera estereoscópica !
  • Informações de esqueleto dos jogadores
    • Detecta até 6 jogadores ;
    • Obtém informação de esqueleto de 2 jogadores ;
    • Dá para obter a qualidade da captura;
    • Este é o grande destaque do Kinect na área de Machine Learning .
    11/11/11
  • Informações de esqueleto dos jogadores
  • O que dá para fazer com tudo isto?
    • Vídeo sobre Os 5 primeiros meses do Kinect;
    • Antes do lançamento do SDK Oficial!!
    11/11/11
  • Desenvolvendo para o Kinect
    • Drivers abertos ( Open Kinect ):
      • Windows XP, Vista, 7;
      • MacOS X;
      • Linux;
      • Open Source;
    • OpenNI (PrimeSense):
      • Windows, Linux, Mac OS X;
    • Kinect SDK :
      • Oficial da Microsoft;
      • Apenas para Windows 7 ;
    11/11/11
  • Desenvolvendo para o Kinect Drivers abertos
    • Após o lançamento foi “hackeado” em poucos dias ;
    • Ele é um dispositivo USB não criptografado !
    • Microsoft já estava prevendo usos fora do XBOX;
    • Open Kinect Contest
      • US$ 3.000,00;
    11/11/11
  • Desenvolvendo para o Kinect OpenNI
    • Wrappers para linguagens diversas:
      • C, C++, Processing, Java, Scratch;
    • Fácil de integrar com o FAAST ;
    • O FAAST permite a criação de programas para o Kinect sem saber programar para o Kinect.
    11/11/11
  • Desenvolvendo para o Kinect SDK oficial
    • 13/junho/2011
    • Windows 7;
    • 2GB RAM;
    • DirectX 9.0c;
    • Dual Core 2.66 GHz;
    • Versão Beta ;
    • Licença não-comercial ( cuidado !!) ;
    11/11/11
  • PARTE 2 Prototipação rápida para o Kinect usando o FAAST
  • FAAST
    • Flexible Action and Articulated Skeleton Toolkit;
    • University of Southern California;
    • Permite o mapeamento de movimentos do corpo em ações de dispositivos tradicionais de interação (mouse e teclado);
    • Também faz o streaming via VRPN (Virtual Reality Peripheral Network);
    • Elimina a necessidade de programação;
    • Adequado para prototipação rápida .
  • Instalação
    • Usar o Zigfu Dev Bundle ;
    • OU:
      • Instalar OpenNI;
      • Instalar NITE;
      • Instalar sensores.
    • Veja mais detalhes no texto do tutorial.
  • Tela inicial do FAAST
  • Configuração do sensor
    • Full Body : o corpo todo é considerado;
    • Upper Body : apenas a parte superior do corpo;
    • Lower Body : apenas a parte inferior;
    • Hands Only : apenas as mãos, pode utilizar um focus gesture para habilitar o reconhecimento das ações;
    • Smoothing factor : suavização da perturbação do movimento. 0.07~0.08 para controle de mouse preciso.
  • Calibração
    • Pose de psi ;
    • Essencial em aplicação baseada em OpenNI.
  • Controle de mouse
    • Associação da mão esquerda ou direita à posição do mouse;
    • Controle absoluto : posição do mouse determinada a partir da posição dentro do bounding rectangle ;
    • Controle relativo : velocidade do mouse determinada a partir da distância até o bounding rectangle ;
  • Controle do mouse
    • Forward Threshold : distância que a mão deve ser extendida à frente para ativar o controle do mouse.
    • Movement Threshold : valor mínimo em pixels necessário para alterar a posição do mouse;
    • Speed : no movimento relativo, velocidade máxima nos limiares.
  • Mapeamento de ações em eventos
    • nome_ação : nome da pose ou gesto;
    • limiar : mínimo de ativação, depende da ação;
    • tipo_evento : tipo de evento que será gerado;
    • nome_evento : evento específico que será gerado.
    • Ver tabelas 1, 2 e 3 no texto do tutorial!
  • Exemplo 1
    • lean_left 20 key_hold left_arrow
    • lean_right 20 key_hold right_arrow
    • jump 2 key_press space
  • Exemplo 2
    • lean_left 20 key_hold a
    • lean_right 20 key_hold d
    • lean_forwards 15 key_hold w
    • lean_backwards 15 key_hold s
  • Atividade!
    • Crie controles para os seguintes jogos:
      • Canabalt;
      • Muulti-Muu.
      • Angry Birds;
  • PARTE 3 Programando para o Kinect Exemplos em: Processing SDK Oficial
  • Usando o Processing
    • Processing é uma linguagem voltada para desenho , animação e interação ;
    • Bastante adequada para prototipação rápida de jogos .
  • Exemplos de uso da biblioteca SimpleOpenNI
    • exemplo1;
    • exemplo2;
    • Estudo de caso: 3dpht.
  • DEMOS do QuickStart do Kinect http://channel9.msdn.com/Series/KinectSDKQuickstarts /
    • 1)Instalação do Sensor / Download do SDK ;
    • 2) Configurando o ambiente ;
    • 3) Criando um projeto Kinect no Visual Studio;
    • 4) Exibindo a imagem da câmera ;
    • 5) Alterando o ângulo de elevação da câmera;
    • 6) Trabalhando com a informação de profundidade ;
    • 7) Obtendo informações do esqueleto
    • 8) Reconhecimento de fala.
    11/11/11
  • 1)Instalação do Sensor
    • O Kinect que vem no Bundle do XBOX não tem o cabo de energia (pode ser comprado a parte );
    • Não coloque 2 Kinects ou 2 câmeras no mesmo hub USB;
    • Verifique a versão do Windows (64 / 32 bits).
    11/11/11
  • 2) Configurando o ambiente
    • Instalar Visual Studio (pode ser o Express );
    • Instalar DirectX SDK – Junho 2010 ;
    • Instalar Runtime do DirectX ;
    • Se quiser usar o reconhecimento de voz:
      • Speech Runtime 10.2 ;
      • Kinect Speech Platform ;
      • Speech SDK ;
    11/11/11
  • 3) Criando um projeto Kinect no Visual Studio 11/11/11
  • 3) Criando um projeto Kinect no Visual Studio 11/11/11
  • 3) Criando um projeto Kinect no Visual Studio 11/11/11 *
  • 4) Exibindo a imagem da câmera
    • Ver eventos VideoFrameReady e DepthFrameReady ;
    11/11/11
  •  
  • 5) Alterando o ângulo de elevação da câmera
    • nui.NuiCamera.ElevationAngle = (int)slider1.Value;
    • Máximo de 15 mudanças em 20 segundos;
    • -27 a +27 graus;
    11/11/11
  • 6) Trabalhando com informação de profundidade
    • Cálculo da distância em milímetros:
      • Depth Image Type;
        • Bitshift o segundo byte por 8;
        • Distância = (int) Bits[0] | Bits[1] << 8 ;
      • DepthAndPlayerIndex Type:
        • Bitshift do primeiro por 3 e do segundo por 5;
        • Distância = (int) Bits[0] | Bits[1] << 5 ;
    • O Player Index indica o jogador que está contido naquele ponto;
    • Máximo de 6 jogadores;
    11/11/11
  • 7) Obtendo informações do esqueleto
    • Evento SkeletonFrameReady .
    11/11/11
  • 7) Obtendo informações do esqueleto
    • Cada joint retorna:
      • X – Posição horizontal entre -1 e 1
      • Y – Posição vertical entre -1 e 1
      • Z – Distância até o Kinect em metros
    • Cada joint tem um estado associado:
      • Tracked;
      • Not Tracked: raro ;
      • Inferred: oclusão, cortado, baixa confiança.
    11/11/11
  • PARTE 4 Aplicações
  • Kinect Effect
    • http://www.xbox.com/en-US/kinect/kinect-effect?uid=150260184&tid =
  • Aplicações e possibilidades do Kinect
    • Controle de dispositivos através das mãos (Minority Report);
    11/11/11
  • Aplicações e possibilidades do Kinect
    • Controle robótico:
      • Kits que eram $28.000 agora são $500;
      • Exemplo com quadricóptero ;
    11/11/11
  • Aplicações e possibilidades do Kinect
    • Mocap baratíssimo!
    11/11/11
  • Aplicações e possibilidades do Kinect
    • Video conferência 3D ;
    11/11/11
  • Aplicações e possibilidades do Kinect
    • Scanner 3D (melhor ainda se integrado com uma impressora 3D);
    11/11/11
  • Aplicações e possibilidades do Kinect
    • Kinect + Realidade Aumentada
    11/11/11
  • Aplicações e possibilidades do Kinect
    • Kinect Shopping
    11/11/11
  • Aplicações e possibilidades do Kinect
    • Trocar canal da TV;
    • Adaptação de jogos normais para Kinect;
    • Ensino de idiomas;
    • Ensino em geral;
    • Sistema de navegação para carros;
    • Música;
    • Aplicações médicas;
    • Controle de Apresentação (PowerPoint);
    • COLOQUE A SUA IDEIA AQUI!!!!
    11/11/11
  • Mas, não precisa usar o Kinect para tudo...
    • Cliente Twitter usando o Kinect;
    11/11/11
  • Links Recomendados
    • Kinect Hacks:
      • http://kinecthacks.net/
      • Portal que centraliza aplicativos e testes com o Kinect.
    • Kinect Education:
      • http://www.kinecteducation.com/
      • Usos do Kinect na educação;
    11/11/11
  • Links Recomendados
    • Kinect SDK:
      • http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/
      • Portal oficial da Microsoft sobre desenvolvimento para o Kinect;
    • Coding4Fun Kinect Toolkit:
      • http://c4fkinect.codeplex.com/
      • Bibliotecas extras úteis para uso com o SDK.
    11/11/11
  • Links Recomendados
    • OpenKinect:
      • http://openkinect.org/wiki/Main_Page
      • Download dos drivers open source - libfreenect;
    • OpenNI:
      • http://www.openni.org/
      • Download dos drivers da PrimeSense.
    11/11/11
  • Material Extra e Referências
    • http://blogs.msdn.com/b/uk_faculty_connection/archive/2011/06/21/kinect-for-windows-sdk-event.aspx
    • http://readwriteweb.com.br/2010/11/09/um-cientista-explica-o-microsoft-kinect/
    • http://www.kinecteducation.com/
    • http://www.wired.co.uk/magazine/archive/2010/11/features/the-game-changer?page=all
    11/11/11
  • Obrigado!! brunodepaula@gmail.com http://www.brunocampagnolo.com http://twitter.com/bcp www.brunocampagnolo.com/tutorialkinect2011