WiiMote
2 05 2008Post um pouco diferente hoje, relacionado a desenvolvimento de jogos.
Vou falar um pouco sobre o WiiMote, e alguns aspectos técnicos dele, então para quem não interessa, pulem essa! (ou então dêem uma olhada só nos vídeos)
O Wii Remote, mais conhecido como WiiMote, é o controle do console Wii.
Visto como o grande diferencial do console Wii, essa mistura de controle remoto com joystick tem mais coisa por trás do plástico branco brilhante que parece.
Além da função de joystick, o WiiMote também tem acelerômetros e uma câmera infra-vermelha.
E com tudo isso, fazendo comunicação sem fio com o Wii via Bluetooth, não demorou muito pra comunidade criar uma forma do controle se comunicar com um PC.
EDIT: Lembrei de mais um recurso ainda não utilizado: Um pequeno alto-falante no WiiMote. O pessoal que criou a biblioteca de comunicação pro PC ainda não conseguiu criar um jeito de utilizá-lo mas prometem algo nas próximas versões. Também não mencionei que o WiiMote conta com o Nunchuck e outros acessórios, que já estão funcionando.
Nesse cenário, vou primeiro citar o que já foi feito, e depois mostrar alguns exemplos e o que fazer a partir daí:
- O primeiro passo obviamente foi possibilitar que um PC se conectasse ao WiiMote e que o sinal fosse traduzido para algo inteligível no computador. Mais complicado que parece. Ele é reconhecido como um HID (human interface device - joystick, mouse, keyboard, etc), mas as mensagens que manda não seguem o mesmo padrão.
Quem tiver interesse nesta parte mais baixo nível da coisa, sugiro o Wiili.org e o WiiBrew.org, além de várias outras informações.
- Com o WiiMote reconhecido, conectado e transmitindo mensagens legíveis pro computador, o próximo passo é integrar a informação a uma linguagem de programação para que possa ser utilizado em alguma coisa.
Pros interessados nessa parte, que é o principal pros desenvolvedores, Brian Peek da ASPSOFT criou uma biblioteca (lib) para C# e VB.NET. Confiram no forum Coding4Fun ou no CodePlex.
Também tem um software chamado GlovePie que usa linguagem de script para criar applicações. Funciona com vários dispositivos de entrada diferentes, incluindo o WiiMote.
- Por fim, pra quem não tá interessado na parte técnica, já existem vários exemplos de aplicação do que pode ser feito com o WiiMote no computador. Vou colocar alguns vídeos a seguir, mas quem quizer checar em detalhes, vou recomendar: Johnny Lee, ScreenFashion, SimpleHarmonicMotion e GlovePie.
Se você já tem o WiiMote e está com dificuldades para conectá-lo no PC, recomendo conferir: Instructables, ScreenFashion ou Wiili.org. Dúvidas sobre isso e quaisquer outras relacionadas ao WiiMote com PC, participem do fórum Wiimote Project.
Pela minha experiência, o BlueTooth USB da Linksys modelo USBBT100 v2 detectou e conseguiu conectar com o WiiMote tanto com os próprios drivers quanto usando o soft BlueSoleil indicado nos tutoriais. Vejam que o WiiMote não conecta com qualquer aparelho bluetooth ou software. O Bluetooth integrado do meu laptop não consegue detectar o WiiMote, nem o software padrão do Windows XP (não consegue conectar).
Agora, finalmente, vamos pra parte divertida da coisa. Vejam o que já foi feito com o WiiMote até agora (nada prático, todos mais pra motivo de teste, mas interessante mesmo assim):
Johnny Lee - Head Tracking for Desktop VR Displays using the WiiRemote
- Um dos vídeos mais famosos, sobre como usar o WiiMote para produzir um efeito realista de janela pra um mundo 3D.
Johnny Lee: Wii Remote hacks
- Apresentação de Johnny Lee na conferência TED Talks. Pra quem não conhece o TED Talks, recomendo altamente saber mais sobre.
Johnny Lee: Tracking fingers with the Wii Remote
- Para um efeito tipo Minority Report.
Johnny Lee: Low-Cost Multi-touch Whiteboard using the Wiimote
- Usando o WiiMote para criar um quadro-branco virtual.
ScreenFashion: The Wiinstrument — Drumming with your Wii remote
- Bateria virtual e leitor de midi para o WiiMote.
Johnty Wang: Wii-mote Joystick Test
- Integração do WiiMote com um Joystick Logitech (script GlovePie).
Johnty Wang: Wii-mote drums “full” kit
- Usando 2 WiiMotes+Nunchucks pra simular uma bateria (script GlovePie).
Johnty Wang: Wii-mote drums DTXMania simulator “full” kit
- Usando WiiMote para jogar DTXMania (script GlovePie).
Bob Sommers: Wii Drum Machine
- Mais uma bateria virtual, com algumas instruções (script GlovePie e C#).
Creio que dá pra encontrar ainda mais coisas fuçando no YouTube e Google, mas já deu pra entender.
Bom proveito, e espero que essa informação toda possa ser utilizada para criar novas aplicações e jogos usando o WiiMote!
Levei 5 horas para escrever este tópico, e muitas muitas mais para juntar toda a informação, testar eu mesmo o WiiMote, e a pesquisa… então se você for usar ou compartilhar a informação deste tópico, por favor dê o crédito devido, e inclua a mim e todas as outras pessoas citadas na sua lista de referência, ok?
- Renato Murakami
Bacana, interessante as possibilidades estudadas. Quanto custa um WiiMote pra fazer testes no PC ? Para usar um controle do PS2 no PC, o controle custa uns 40Reais, e o cabo USB, uns 70 ! Mas não traz as possibilidades de um controle Wii … Não testei com o controle do Xbox, que deve ser um absurdo de caro
! E não compensa só pra brincar com XNA, que funciona somente em máquinas com Shaders acima do 2.0 , minoria entre as máquinas Brasileiras…
Ja vi um Vídeo sobre jogar CS com Wiimote, a jogabilidade se torna mais interessante … A moda do novo controle pode pegar mesmo, assim que soubermos esplorar melhor estes recursos.
Poisé Rafael, o preço não é nada barato… Wii Remote sozinho no Brasil, o preço vai entre 90 e 250 reais… ainda tem o Nunchuck, que sai mais ou menos por metade do preço, e dependendo pra o que você for usar, ainda tem que ou comprar ou confeccionar os leds infravermelhos.
Mas realmente, faz coisas que nenhum outro controle faz.
O controle do X-Box, pelo que eu sei, é basicamente um controle de PS2. O legal é exatamente isso… poder integrar facilmente usando o XNA (bibliotecas todas prontas pra usar). Os direcionais analógicos tem controle de sensibilidade.
Fora isso, não sei se tem vantagem… mas não tenho certeza porque não tenho o controle.
O controle de PS2 e o adaptador USB também tenho. Pelo menos de tudo que eu tentei, foi a melhor solução pra colocar um gamepad no PC (ou seja, pelo menos bem melhor que os 4 gamepads da Genius e mais uns 3 de outras marcas que eu tive).
Sobre o video do CS com WiiMote… também vi um dos primeiros!
Eles estão usando o soft GlovePie que indiquei no tópico… é um script padrão do programa que mapeia as funções do WiiMote para ser usado como se fosse um mouse.
Pros curiosos:
wiimote with counter-strike
How To - Using WiiMote to Play CS:S
Counter Strike Source with the Wii Remote
Ahn, deixa eu acrescentar mais uma coisa interessante aqui: Sairam rumores que o XBox 360 vai ter um controle “estilo WiiMote” pra lançar logo logo.
Leiam mais:
Xbox 360’s Wiimote Accessory Is Already In Development, Coming This Generation
More Xbox 360 Wiimote Details: Code Name ‘Newton’
Xbox 360 Wiimote Might Be Made By Motus, Not Gyration
Mais algumas dúvidas que surgiram e eu estou adicionando:
O kit básico para começar a fuçar é: WiiMote, um Bluetooth compatível no PC (seja placa ou USB), e um software compatível.
Digo compatível porque não são todos os bluetooths que conseguem detectar e conectar com o WiiMote.
Recomendo o da Linksys, USB… mais detalhes no artigo do blog.
Pra rodar o WiiInstrument não precisa do sensor, já que ele só usa os acelerômetros.
Agora pra rodar outros exemplos como o Multipoint Grid, e o GlovePie (que emula o mouse), vc precisa dos sensores porque esses aplicativos usam a câmera infra-vermelha do WiiMote.
Não é absolutamente necessário que seja o sensor do Wii… mas você precisa de pelo menos 2 leds infravermelhos ou 2 fontes de luz infravermelha… e é por isso que o truque com as velas funciona:
Vejam um exemplo no YouTube
Quaisquer dúvidas mais, só colocar um comentário!