2023-04-21 01:14:29 +02:00
## Labyrinthe à bille : **Créer une scène 3D interactive**
2023-04-21 01:04:31 +02:00
L'objectif de ce tutoriel est de créer une scène animée et interactive. Le support est le labyrinthe à bille ; le principe est faire tourner le plateau sur 2 axes afin d'amener la bille du départ à l'arrivée.
Ce tutoriel est une déclinaison pour UPBGE du projet n°1 du livre ["Créez vos propres jeux 3D comme les pros" (Éditions Graziel) ](https://graziel.com/fr/livres/8-creez-vos-propres-jeux-3d-comme-les-pros-avec-le-blender-game-engine-9791093846002.html ) de Grégory Gossellin De Bénicourt.
2023-04-29 11:54:52 +02:00
Il se décompose en 5 parties :
2023-04-21 01:04:31 +02:00
### Tutoriel 1 : Ma première scène
- Installer Blender/UPBGE
- Modéliser les objets 3D et définir leurs materiaux et leur physique
- Gérer la scène avec la lumière et la caméra
- Programmer le comportement des objets et le gameplay les briques logiques
- Créer une zone cliquable
- Créer une animation par images-clé
- Produire un exécutable (GNU/Linux, Windows, macOS)
2023-04-29 11:00:48 +02:00
- **Fichier résultat : 1-labyrinthe.blend**
2023-04-21 01:04:31 +02:00
### Tutoriel 2 : Passage au Python
- Installer un éditeur de code (Emacs, Spyder)
- Sustituer la programmation par briques logiques avec des modules codés en Python
2023-05-10 09:54:37 +02:00
- Créer un bouton cliquable à partir une icône SVG
2023-04-21 01:04:31 +02:00
- Inclure les scripts Python avec l'exécutable
2023-04-29 11:01:50 +02:00
- **Fichier de départ : 2-labyrinthe-debut.blend**
2023-04-29 11:47:16 +02:00
- **Fichier ressource : asset/icon_close.svg**
2023-04-29 11:01:50 +02:00
- **Fichiers résultats : 2-labyrinthe.blend, 2-labyrinthe.py**
2023-04-21 01:04:31 +02:00
2023-04-29 10:53:59 +02:00
### Tutoriel 3 : Interfacer la scène 3D avec une carte Arduino par pyFirmata
- Installer la bibliothèque pyFirmata
- Déplacer le plateau avec une manette : 4 boutons binaires et/ou un joystick analogique
2023-05-10 09:52:34 +02:00
- Allumer une led quand le plateau est en mouvement
2023-04-29 10:53:59 +02:00
- Inclure la bibliothèque pyFirmata avec l'exécutable
2023-04-29 14:34:08 +02:00
- **Fichiers de départ : 2-labyrinthe.blend, 2-labyrinthe.py**
2023-04-29 11:47:16 +02:00
- **Documents techniques : Carte de référence pyFirmata et interface Grove pour Arduino**
2023-05-14 06:17:15 +02:00
- **Fichiers résultats : 3-labyrinthe.blend, 3-labyrinthe.py, labyrinthe_carte.py**
2023-04-21 01:04:31 +02:00
2023-04-29 10:53:59 +02:00
### Tutoriel 4 : Interfacer la scène 3D avec une carte Arduino par pySerial
2023-04-21 01:04:31 +02:00
- Installer la bibliothèque pySerial
2023-04-29 10:53:59 +02:00
- Déplacer le plateau avec une centrale inertielle (capteur IMU sur broche I2C)
2023-05-10 09:52:34 +02:00
- Afficher la position de la bille sur une matrice de leds (broche I2C)
2023-04-29 10:53:59 +02:00
- Inclure la bibliothèque pySerial avec l'exécutable
2023-04-29 14:34:08 +02:00
- **Fichiers de départ : 2-labyrinthe.blend, 2-labyrinthe.py**
2023-04-29 11:47:16 +02:00
- **Document technique : Interface Grove pour Arduino**
2023-05-14 06:17:15 +02:00
- **Fichiers résultats : 4-labyrinthe.blend, 4-labyrinthe.py, 4-labyrinthe-imu.ino, labyrinthe_carte.py**
2023-04-29 10:53:59 +02:00
<!-- - Déplacer le plateau avec un détecteur de geste ; fichiers résultats : 3 - labyrinthe - gest.blend, 3 - labyrinthe - gest.py, 3 - labyrinthe - gest.ino -->
### Tutoriel 5 : Interfacer la scène 3D avec une carte micro:bit
- Installer la bibliothèque pySerial
- Déplacer le plateau avec la centrale inertielle de la carte microbit
2023-05-14 06:17:15 +02:00
- Afficher la position de la bille sur la matrice de leds
2023-04-29 10:53:59 +02:00
- Inclure la bibliothèque pySerial avec l'exécutable
2023-04-29 14:34:08 +02:00
- **Fichiers de départ : 2-labyrinthe.blend, 2-labyrinthe.py**
2023-04-29 11:53:31 +02:00
- **Document technique : Carte de référence carte micro:bit**
2023-05-14 06:17:15 +02:00
- **Fichiers résultats : 5-labyrinthe.blend, 5-labyrinthe.py, 5-labyrinthe-microbit.py, labyrinthe_carte.py**
2023-03-07 22:12:46 +01:00