Archive:Atelier OSC Python avril 2009
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. |
Atelier Blender OSC Python Pure Data
Contrib de Vincent Rioux http://vincentrioux.net/
svn co svn://xxxxxxxxxxxxxx:5020/orlosc/vsosc
les deux seuls fichiers vraiment important sont osc.py et osc_core.py
les principaux ajouts sont:
- threading pour le récepteur
- simplification de la syntaxe
- début d'implémentation des * pour pouvoir recevoir les messages provenant d'une étiquette osc partielle (type "/ordi1/capteurs/*") ---
Contrib de Patrick http://www.11h11.com
un exemple de communication midi (note, velocity, channel) à blender via pd - osc (linux avec .pd, .blend et runtime).
le bout de code important est expandpath, sinon le runtime ne trouvera pas le répertoire osc :
http://www.11h11.com/temp/oscmidi.tar.gz
import sys sys.path.append(GameLogic.expandPath("//"))
GameStarter http://probing.wikidot.com/gamestarter-for-blender
un programme pour configurer blenderplayer et puredata. version de python standalone (2.5.2) avec wxpython (gui), pd sans gui et blenderplayer recompilé par patko pour fermer la console.
Ixi-software http://www.ixi-software.net/content/body_backyard_osc.html
- exemples de liens blender <> OSC
Contrib de Patko (dataflow) :
- exemple pour utiliser PureData comme interface de contrôle du moteur de jeu de Blender:
http://megalego.free.fr/pd/pd2blender/alien_walk.blend
- le script 'osc_init' qui gère la connection sur un socket, récupère les messages OSC et les stockent dans la bibliothèque globale Gamelogic.Remote{}:
http://megalego.free.fr/pd/pd2blender/osc_in.py
- Les objects et actuateurs étant sous le contrôle de OSC, seront nommés avec un slash '/' en tout premier caractère, et reliés à une propriété 'init' qui permettra de définir si le script 'OSCremote' déclare objets, contrôleurs, et actuateurs ainsi que leurs types en les enregistrant dans les bibliothèque globales, ou non.
le script 'OSCremote' est aussi rélié à un sensor 'always', qui déclenche la récupération les messages OSC dans la bibliothèque globale 'Gamelogic.Remote{}' et les envoie directement à l'actuateur, ou bien modifie d'autres paramètres comme le nombre de frames par secondes.
http://megalego.free.fr/pd/pd2blender/OSCremote.py
- Le but du patch ci-dessous est de pouvoir récupérer dynamiquement les objects, et actuateurs déclarés par les scripts dans blender, l'utilisateur de puredata n'aura donc pas à modifier le patch si il y a des changement dans blender:
http://megalego.free.fr/pd/pd2blender/pd2blender.pd
- les abstractions suivantes permettent d'afficher dans un 'GraphOnParent' l'interface de contrôle d'un actuateur
http://megalego.free.fr/pd/pd2blender/ptb-member.pd
http://megalego.free.fr/pd/pd2blender/ptb-object.pd
Atelier Blender du mardi soir
L'atelier Blender du mardi soir vise deux types d'objectifs :
- developper des compétences procédurales liées à l'utilisation du logiciel
- mieux percevoir les enjeux de l'utilisation des mondes 3D
Démarche
- Se ré-approprier le logiciel, son interface, les raccourcis claviers et les principaux outils de modélisation et de texturage :
- modélisation de la Maison Bourgogne (bâtiment) à partir des plans fournis par la ville
- création d'une bibliothèque d'objets de base et modélisation d'éléments de mobilier choisis
- collecte de textures, tests et texturage
- Explorer le game blender est ses possibilités
- identification des principales sources d'information et expérimentation des systèmes d'interaction simple
- identification des outils et des procédures pour mettre en ligne un mode virtuel à partir de Blender
- création d'un monde 3D simple
- Mettre en ligne la Maison Bourgogne
JOUER EN RESEAU avec la bibliothèque Python BZOO
bzoo est une api python permettant de gérer la couche réseau client-server
pour une application multi-utilisateur utilisant le moteur game blender.
toute la doc pour créer son jeu : http://www.bzooworld.org/index.php?c=manual&a=manual
Petit compte rendu de mardi soir (20/11/07) pour essayer d'avoir une vision global du truc:
POUR ETRE SERVEUR :http://www.perin.biz/bzoo/download/bzoo_src.zip
Sous linux, dans une console :
python bzoo/api/threadServer.py
- Normalement dans la console le serveur doit indiquer qu'un nouveau client est connecté.
remarque : c'est dans ce fichier que vous déterminez le port et le nombre max de connexion.
Dans le dossier api, ouvrez le fichier bzClient.py et changer les paramêtres par défaut et mettez les vôtres (IP, port), attention il faut le faire à plusieurs endroits différents (faire un "rechercher dans le texte" avec "127.0.0.1")
POUR ETRE CLIENT :http://perso.orange.fr/jb.perin/BZOO/ClientTemplate.blend
dans blender chargé le fichier BZooClient.blend, un script texte est lié (maj f11 si pas visible): inventer un login et un mot de passe sur les premières lignes :
GameLogic.bzPseudo = 'votrepseudo'
GameLogic.bzPassword = 'votre passe'
GameLogic.bzServerName = 'mettre un choix' (votre domaine ou l'IP)
GameLogic.bzPortNumber = 5001 (choisir le port du serveur)
GameLogic.bzPlaymode = 1 # Online
et appuyer sur P pour lancer
entrez login et mot de passe (touche tab pour changer de zone)
Choisir local pour la connexion au réseaux.
choisir un avatar avec les flêches gauche/droite
Tous les éléments du jeu et leur code sont dans les fichier .blend du dossier "art/scenes" du serveur qui sont appelées en fonction du déroulement du jeu. .
à vérifier : Le serveur ne servirait qu'à synchroniser et partager les informations entre les différentes occurences du jeu sur chaque poste.
Le client enregistre ses données : objets pris etc... (mais où?)
pour info :
La souris sert à orienter la visée ..
Les flèches de curseur servent à se déplacer d’avant en arrière et latéralement.
F1 pour sauvegarder sa session et voir son inventaire d'objet.
F2 le chat
F3 IRC chat
Pour quitter le client BZoo .. appuyer sur Echap