Archive:Wiimote : Un sabre dans Blender

Ce wiki a été archivé en 2018.

Le nouveau wiki se trouve à: ressources.labomedia.org

Les fonctionnalités sont désactivées: vous pouvez faire une recherche sur Google site:https://wiki.labomedia.org et découvrir La Labomedia.

De Centre de Ressources Numériques - Labomedia
Aller à : navigation, rechercher

Wii 12.png


Ce jeu n'est qu'un exemple test du Motion PLus. La wiimote vibre si une cible est touchée. Le Motion Plus est un gyroscope qui permet de définir une orientation absolue dans l'espace.
Les scripts ne sont pas propres, ni optimisés. Il sont le résultat de nombreux essais.
A chaque frame, les valeurs récupérees du Motion Plus sont ajoutée en Local (aplyRotation en python qui est idem à Rotation Locale de la brique logique Motion)

Principe

Le script cwiid2OSC.py du dossier cwiid2OSC est en python 2.7, il utilise OSC.py pour python2.7 car libcwiid.so.1.0 n'existe pas pour python3. Les scripts Blender sont en python3.

cwiid2OSC.py envoie toutes les datas en OSC et reçoit Rumble. Blender reçoit et envoie OSC.

TO DO

L'adresse mac de la wiimote doit être collé dans le script cwiid2OSC.py. Il faudrait reconnaître automatiquement la wiimote !

Les fichiers

Fichier:Saber.zip

Aide

Nécessite

Blender2.5 ou 2.6 qui utilise python3

Installation

  • Copier avec nautilus en root le fichier libcwiid.so.1.0 de libcwiid dans /usr/lib/
  • L'adresse mac de votre wiimote doit être collé dans le script cwiid2OSC.py ligne 10.
  • Clic sur saber.sh pour lancer le script cwiid2OSC.py du dossier cwiid2OSC et saber.blend du dossier blender.
  • Echap dans blender pour arrêter le jeu, fermer blender pour arrêter le script cwiid2OSC.py.

Jouer

  • P : Lancer le jeu dans Blender

La wiimote doit être posée et immobile pendant les 10 premières secondes : cela permet de calculer les rotations initiales du Motion Plus

  • G pour afficher les graphiques
  • H pour les enlever

Sur la wiimote:

  • A pour initialiser les rotations du sabre Bleu
  • B pour initialiser les rotations du sabre Magenta
  • 1 pour ajouter une cible, les cibles ont une vie de 2 s.
  • La wiimote vibre si une cible est touchée

Différences entre les deux sabres

Problème de décalage de la rotation absolue pendant le jeu

Les sabres finissent par se décaler après un ou deux "8" dessiné avec les sabres. Le sabre bleu se recentre avec l'IR si 4 leds sont détectées proche du centre.

Mode Slow

Le moton Plus a 2 sensibilités:

  • Slow = 1 lorsque le mouvement est "normal"
  • Slow = 0 lorsque le mouvement est "rapide" avec un coefficient plus grand

Quelques infos

Fréquence de raffraichissement

Le script python cwiid2OSC.py envoie à environ 100 Hz.
Blender tourne au mieux à 60 Hz.

Le buffer UDP est vidé si une valeur n'est pas lue, donc une valeur sur 2 est perdue. Le script cwiid2OSC.py envoie en plus un message OSC "/all-data" qui contient les valeurs des 2 derniers cycles, ensuite moyenné dans blender et appliqué au sabre Magenta. Le sabre Bleu est piloté par la dernière valeur reçue.

Malheureusement, cela ne réduit pas le décalage !

Bug connu de cwiid

cwiid ne récupère pas les infos du Nunchuk avec un Motion Plus. Motion Plus ou Nunchuk , il faut choisir !