-
-
-
Présentation et Introduction au projet
Mon projet vise à créer une communication entre le logiciel de programmation modulaire MAX/MSP et le logiciel de modélisation 3D Blender. En parallèle, il s'agit d'un témoignage de mon amitié pour les vieux jeux vidéo, en particulier à Half Life. Le spectateur est invité à explorer un monde virtuel que je mets à sa disposition, en utilisant ses mains comme Gordon Freeman dans l'univers du jeu mentionné précédemment. J'utilise un serveur local Node OSC pour faciliter cette communication entre MAX/MSP et Blender. L'objectif principal est de manipuler une main virtuelle, en la faisant bouger en avant et en arrière. Le second objectif est de faire bouger les quatre doigts du modèle Blender. Pour ce faire, un capteur de distance est utilisé pour contrôler le modèle de main dans Blender via une interface MIDI gérées par MAX/MSP. L'idée est de fusionner deux logiciels que je trouve intéressants : la programmation modulaire et la modélisation 3D via MAX/MSP. De plus, le gant est directement texturé dans Blender.
Aspect communication entre MAX et Blender avec un serveur
Node OSC
Pour commencer, définissons ce qu'est un serveur OSC. OSC, ou OpenSoundControl, est un protocole de transport de données et de codage permettant l'envoi de messages en temps réel entre des applications et des logiciels. Il a été développé par les chercheurs Matt Wright et Adrian Freed. Ce langage a été conçu pour être flexible, peu gourmand en ressources et rapide. Les serveurs utilisant OSC sont définis par l'utilisateur, qui spécifie l'adresse IP et le port auxquels les logiciels (MAX et Blender dans ce cas) se référeront pour communiquer. Node OSC est un langage de communication inspiré de pyOSC, utilisant également Python. Cette similitude avec Blender facilite la configuration du serveur Node directement dans l'invite de commande Python intégrée à Blender en indiquant l'adresse IP locale de l'ordinateur. Il est important de noter que l'adresse IP fournie peut être soit locale, soit publique.
Comme nous pouvons le constater sur cette capture d'écran de Blender, le serveur NodeOSC communique à travers l'adresse "127.0.0.1". Cette adresse correspond à la boucle locale d'un ordinateur, ce qui signifie qu'elle ne permet pas les communications extérieures mais plutôt les communications entre logiciels sur la même machine."
Le Port 9001 est le port de base duquel va communiquer Blender, et le port 9002 est le port par lequel Blender va écouter Max, donc va recevoir des informations de celui-ci.
Présentation de l'installation et de ses intérêts pour la découverte
du spectateur
Mon installation présente une main dans un environnement virtuel noir quadrillé en vert, faisant référence à l'esthétique des anciens jeux vidéo des années 70-80 ou à la perception fantaisiste de l'espace virtuel de cette époque. L'esthétique cubique de la main est également inspirée de Half Life. L'installation permet également de découvrir les possibilités de couplage de MAX avec d'autres logiciels. Le spectateur interagit avec l'installation en utilisant quatre capteurs de flexion sur chaque doigt et un capteur de distance devant l'écran de l'ordinateur, ce qui lui permet de déplacer la modélisation 3D en temps réel.
Justification Artistique du Projet
Mon installation permet au spectateur de découvrir les possibilités de liaison entre différents logiciels de programmation et de modélisation 3D. En combinant la création artistique avec la technologie de manière innovante. La forme sous la forme d'une modélisation 3D est primordiale car elle représente le meilleur moyen de mettre en valeur les possibilités de création entre MAX/MSP et d'autres logiciels de création numérique. Cette approche était également la plus adaptée au spectacle et permettait d'exploiter pleinement les possibilités offertes.
II- La technique
Liste des Capteur :
-4 capteurs de flexion
-1 capteur de distance
-1 Interface MIDI/USB
-1 ordinateur
-1 gant
Patch MAX et fonctionnement:
Pour la clarté du projet que j'ai créé, j'ai mis en place un patch et un sous-patch. Le patch communique uniquement avec le sous-patch grâce à l'objet P sending, nommé 'sending'. Dans le sous-patch, toutes les informations sont envoyées à localhost via l'objet 'Inlet'. Pour que mon projet fonctionne en automatique, j'ai déjà créé 5 objets mtr chargés de lire les fichiers de données d'un capteur de distance situé tout à gauche, ainsi que 4 capteurs de flexions à droite. Pour que le patch fonctionne également avec les capteurs, j'ai relié 5 objets ctlin à des sliders qui communiquent avec le modèle Blender. Les ctlin vont de 32 à 36, le 32 étant associé au capteur de distance. Ce capteur de distance est relié à un objet 'split' qui empêche la valeur d'aller au-delà de 50, limitant ainsi le mouvement de la main pour éviter de dépasser les limites de la map. Ensuite, le 'split' est relié à tous les doigts et au modèle de la main pour que la main ne perde pas ses doigts en avançant. Les doigts sont représentés par des sliders reliés à des 'scale' qui permettent de les faire bouger. Certains sont inversés car certains capteurs de flexion faisaient bouger les sliders du haut vers le bas au lieu du bas vers le haut. Ce problème technique entraînait le fait que le capteur de flexion recroquevillé détendait le doigt du modèle. Les 'scale' sont reliés à des 'shape keys' Blender. Les shape keys sont des formes clés disponibles dans Blender ; le 'scale' permet de passer de la shape key des doigts détendus aux shape keys des doigts recroquevillés. Enfin, toutes les shape keys sont envoyées dans l'objet 'Inlet'.
Modèle Blender :
Voici le gant que nous allons faire bouger via Max.
Schéma de l’installation des capteurs :
Vidéo de démonstration du projet :
https://youtu.be/fuBNhiGJeig
Photo de la chaine de captation
votre commentaire -
Explication :
Pour notre projet, nous avons décidé de laisser le spectateur jouer avec l’élément de l’eau. En effet, nous avons voulu créer un espace dans lequel l’association du spectateur et de l’eau créerait un environnement musical. Nous avons donc pris un récipient transparent rempli d’eau, sur les parois du récipient sont posés différents capteurs de distance. Lorsque le spectateur bouge ses mains dans l’eau, certains détecteurs de distance détectent une présence et joue un morceau d’instrumental d’une même musique avec un volume qui varie en fonction de la distance. Chaque capteur est associé à un instrument différent. Si tous les capteurs de distance jouent en même temps, c’est une musique complète qui est jouée, avec des pistes audios qui peuvent être plus ou moins fortes. Ainsi, notre titre "Clapotis" fait référence aux mouvements fait avec nos mains dans l'eau.Nous nous sommes inspiré de l'oeuvre les plantes verte (Tender Trouble de Chloé Bensahel présentée à la Fondation EDF dans l'exposition "Demain est annulée", qui est une oeuvre faite en tapisserie, qui incite les spectateurs à frôler la toile ce qui créer des sons selon l'endroit où se place la main du spectateur. Cette oeuvre nous a inspirée dans l'idée de laisser jouer le spectateur avec un élément (ici l'eau), en créant du son.
Référence :
Les plantes vertes (Tender Trouble), 2023, de Chloé Bensahel.
Schéma fonctionnel :Lien de la vidéo de démonstration du projet :
Capture d'écran du patch :
Fonctionnement du patch :
Nous avons créé un patch qui lance 6 pistes audio en boucle avec un volume à 0 à son démarrage. Si un capteur de distance détecte du mouvement, le volume augmente selon sa distance. Plus la main du spectateur est loin, plus le son est faible et plus la main du spectateur est proche et plus le son est élevé.
Nous avions créé 6 pistes audio car nous voulions pouvoir utiliser 6 capteurs de distance, lors de la réalisation, étant donné le manque de capteurs, nous avons pu réaliser le projet avec 3 capteurs qui avait des sensibilités de distance différentes.
Répartition du travail :
Naoufel Mestoura : réflexion sur l'idée du projet, création du patch, recherche des musiques, mise en fonction des capteurs pour la présentation finale.
Chiara Millet-Breuzin : réflexion sur l'idée du projet, recherche des musiques, mise en fonction des capteurs pour la présentation finale, création du schéma fonctionel, mise en ligne sur le blog.
votre commentaire -
-
Télécharger « PROJET_FINAL_MAX_JAMES.zip »
projet max (patch +details voir zip ci dessus):
Le but étant de faire une carte interactive. On cherche à ce que lorsqu'on bouge le capteur de mouvement (joystick), la carte affiche différents continents.
Nous nous basons sur ce modèle pour effectuer notre arborescence, voici ci-dessous un schéma dessiné ainsi qu’un schéma écrit du projet.
capteur utilisé:
capteur de mouvement analogique, joystick similaire à ceux utilisés dans l’aviation.
Patch:
histoire du projet:
Lors de ma recherche de projet, il m’est venu à l'idée de chercher sur google notamment google image pour des projets max. Ne trouvant pas d’idée, je me suis alors mit a chercher des images au hasard en me disant que je pourrais les incorporer à mon projet. D’abord me vient l’idée de faire une sorte de jeu inspiré de Belgariade et de mmorpg. Réalisant que l’idée se voulait trop ambitieuse et le temps bien trop court, je me suis alors résolu à faire simplement une carte interactive simple en y incluant les 7 continents qui reprend néanmoins cette idée d’exploration que l’on retrouve dans les mmorpg. Avec le joystick, on simule alors l’exploration du monde et de ces 7 continents avec le joystick d’une manière qui simule les mouvements des mouvements effectués dans l’aviation, venant ainsi renforcer cette sensation de voyage.
Video explicative(video youtube non-répertoriée):
https://youtu.be/GzDJlDYwsOI
votre commentaire -
-
Répartition du travail :
- Quentin Maréchal, chargé de l’élaboration de l’idée du patch, de la création du schéma fonctionnel du projet, et de sa réalisation.
- Paolo Leloir, chargé de la création des sprites du jeu et de ses cinématiques.
Description de l'installation :
Rocket Rumble est un dispositif interactif en 3 étapes avec comme thème le voyage dans l’espace.
L'aventure se déroule donc en trois grandes étapes. Tout d'abord, le décollage de la fusée que contrôlera le joueur depuis la planète Terre, cette fusée est montrée dans une vidéo introductive permettant de créer une petite narration au jeu. Ensuite, le joueur est amené à piloter le vaisseau en esquivant des obstacles en soufflant sur un capteur permettant de contrôler la poussée de la fusée en influant verticalement sur la position de la fusée dans le même style que le jeu flappy bird. Une fois cette série d'obstacles passée, une vidéo se lance montrant l'atterrissage de la fusée sur la lune. Si le joueur réussi à esquiver tous ces obstacles, le jeu est réussi et un écran de fin apparaît. En cas d'échec, un écran de game over apparaît, laissant place à une image mettant en scène lla fusée s'étant crashé sur un des astéroïdes.
Sprites utilisés par le jeu :
Arrière plan du jeu :
Obstacles
Joueur :
Animations :
Liste des capteurs :
Pour mettre en place ce projet nous avons uniquement besoin d'un capteur de souffle.
Schèma Fonctionnel :
Le patch :
votre commentaire -
Dispositifs interactifs : Projet final
Peluche à ventre lumineux
Dans le cadre de notre projet de fin de semestre en dispositifs interactifs à l'université, nous avons tenté de développer une peluche pour enfant dotée d'un ventre lumineux. Cette peluche interactive utilise des capteurs de son, de mouvement et de pression pour détecter les interactions de l'enfant avec l'ourson. En fonction des stimuli détectés, le ventre de la peluche s’illumine de plus en plus avec une lumière rouge, verte et blanche. Elle réagit de manière ludique, offrant une expérience sensorielle unique pour les enfants et une manière de leur apprendre comment leur comportement peut affecter le monde qui les entoure.
Fonctionnalités :
Notre peluche interactive est équipée de capteurs qui lui permettent de réagir de manière dynamique aux actions de l'enfant. Voici les principales fonctionnalités de notre dispositif :
▶ Capteurs de Son, Mouvement et Pression : La peluche est équipée de capteurs de son qui détectent les niveaux sonores de cris, de paroles ou de chuchotements, de capteurs de mouvement qui enregistrent les mouvements de secousse ou de câlin et de capteurs de pression qui mesurent la force exercée sur l'ourson lorsqu'il est serré dans les bras de l'enfant ou écrasé par celui-ci.
▶ Intensité de lumière du ventre lumineux : En fonction des stimuli détectés, la lumière se déclenche et l’intensité de la lumière du ventre de la peluche augmente ou diminue pour refléter l'interaction de l'enfant. Trois couleurs principales sont utilisées : verte, blanche et rouge.
▶ Réponses en Fonction des Actions de l'Enfant : En plus des changements de couleur, la peluche réagit également en prononçant différentes phrases ou sons en réponse aux actions de l'enfant. Ces réponses sont adaptées à l'interaction spécifique de l'enfant avec la peluche.
Utilisation des Seuils :
Pour déterminer la couleur du ventre lumineux et l'intensité de la lumière, nous avons établi un patch basé sur les niveaux de stimuli détectés. Voici comment les stimulus sont utilisés pour déterminer la couleur de la lumière :
▶ Vert : Lorsque l'enfant parle doucement et n'émet qu'un minimum de bruit, la lumière du ventre de la peluche est plus verte et douce. Elle s’intensifie si l’enfant parle fort ou se met à crier.
▶ Blanc : Si l'enfant ne serre pas la peluche trop fort dans ses bras, la lumière du ventre de la peluche devient plus blanche. Elle s’intensifie plus l’enfant applique de la pression sur la peluche.
▶ Rouge : En cas de bruit excessif, de secousses violentes de l'ourson ou de forte pression exercée sur lui, la lumière du ventre de la peluche devient rouge et s’intensifie. Si l’enfant interagis délicatement avec la peluche, cette lumière diminue et s’éteint si la peluche est posée et cesse tout mouvement.
Fonctionnement du patch
Lumières
- 3 lampes ([pack i 0 1] [pack i 1 1] [pack i 2 1])
- Relier à une interface midi qui permet de faire rentrer les capteurs et faire sortir les commandes
- L’intensité des lumières est régulée par un programme qui permet de calculer la temporalité
Le capteur est analysé avec un seuil, la période est calculée avec l’objet timer. Grâce à l’activation du début et de la fin de la durée dans le bon ordre avec un trigger b b. L’obtention de la fréquence se fait en divisant 1000ms par la période, via l’objet !/ qui permet de diviser l’argument (1000) par le nombre arrivant sur l’entrée chaude. De plus, on a une moyenne qui permet de définir un délais qui va éteindre les lumières une fois le temps écoulé : 500.
Capteurs
- 3 capteurs (pression, sonore, accélération)
- Reliés à des sliders qui permettent de visualiser les données reçues par les capteurs. Ces sliders sont soumis à des seuils qui permettent de mettre une limite à ne pas dépasser.
- Les capteurs sont reliés aux lumières, c’est en actionnant un capteur qu’une lumière s’allume. Un capteur = une lumière.
Simulateur de son
Ce programme permet d’effectuer des simulations sonores directement depuis notre domicile. Il n’est là qu’à titre expérimental pour tester différentes configurations.
Conclusion
Notre dispositif interactif pour enfants offre une expérience ludique et sensorielle unique, encourageant les enfants à interagir de manière positive avec la peluche. Grâce à l'utilisation de capteurs avancés et de seuils intelligents, la peluche peut répondre de manière adaptative aux actions et aux niveaux d'interaction de l'enfant, créant ainsi une expérience personnalisée et enrichissante. Nous sommes convaincus que notre peluche interactive apportera joie et amusement aux enfants tout en favorisant leur développement sensoriel et émotionnel.
votre commentaire -
-
-
-
-
-
-
-
Bonvalet — Kostyra Alix
Deslot Morgane
Bonneau Ariane
TD Dispositifs interactifs
L3 EVMAN opt A
votre commentaire -
Radio Max | AFFO Komblan – OULATAR Eden – MANGA Bilail
TD Dispositif Interactifs | L3 EVMAN
votre commentaire -
-
-
-
-
-
Mathilde Loisel EVMAN L2
votre commentaire
Suivre le flux RSS des articles
Suivre le flux RSS des commentaires