Différences entre versions de « Projets:Fit and Fun »

De wikilab
(Page créée avec « (WIP) = Présentation = == Description du projet == Un pédalier à main associé à un jeu pour une rééducation ludique == Membres de l'équipe == Voir photos == An… »)
 
Ligne 1 : Ligne 1 :
 
(WIP)
 
(WIP)
 
 
= Présentation =
 
= Présentation =
  
Ligne 63 : Ligne 62 :
 
* Simulations existantes de balade (balade en montagne, etc.)
 
* Simulations existantes de balade (balade en montagne, etc.)
 
== Usages ==
 
== Usages ==
* Durée de session d'entrainement de 5 à 45 min
+
* Une session d'entrainement peut durer de 5 à 45 min.
* Quelles compétences stimulées
+
* Compétences stimulées :
     * Challenge endurance : pédaler le plus longtemps possible
+
     * Endurance : pédaler le plus longtemps possible.
     * Challenge de vitesse, reflexes
+
     * Vitesse, réflexes.
 +
== Lexique
 +
Explication des termes utilisés dans cette documentation :
 +
* Boucle de jeu : une séquence de jeu avec un début, un milieu et une fin.
 +
* Brique de gameplay : objet que l'on peut faire apparaître à l'écran et qui permet de créer du challenge (obstacles, bonus, malus...).
 +
== Description du jeu ==
 +
Le jeu consiste en un parcours d'obstacle à défilement vertical, dans lequel on incarne un personnage qui rame dans un canoë avec deux rames symétriques en vue du dessus. L'objectif est de parcourir la distance la plus grande dans un temps limité.
 +
 
 +
== Contrôles et personnage ==
 +
Le canoë se situe sur un axe vertical au centre de l'écran. Il a la possibilité de se déplacer jusqu'à une position haute max et une position basse max (pas jusqu'au bord de l'écran).
 +
![](https://partage.autonabee.com/apps/files_sharing/publicpreview/nWLntF5ScXTQWk7?file=/Photos/2022-10%20-%20Fabrikarium/Axe%20jeu/Gameplay%20neutre.jpg&fileId=117303&x=1920&y=1080&a=true)
 +
=== Sur-place ===
 +
Tant que le joueur ne pédale pas, le canoë reste sur place.
 +
// Image Gameplay neutre
 +
 
 +
=== Vers l'avant ===
 +
Quand il pédale vers l'avant :
 +
* le canoë monte vers le haut de l'écran à une position relative à sa vitesse.
 +
* le décor défile vers le bas à une vitesse relative à la vitesse.
 +
![](https://partage.autonabee.com/apps/files_sharing/publicpreview/nWLntF5ScXTQWk7?file=/Photos/2022-10%20-%20Fabrikarium/Axe%20jeu/Gameplay%20P%C3%A9dalage%20avant.jpg&fileId=117309&x=1920&y=1080&a=true)
 +
 
 +
=== Positionnement relatif ===
 +
Le positionnement du canoë en fonction de la vitesse n'est pas linéaire (de même que le défilement du décor).
 +
Par exemple :
 +
* à 50% de la vitesse max, le canoë arrive à 25% de la distance entre milieu et le haut.
 +
* A 75% de la vitesse max, le canoë se retrouve à 50% de cette distance
 +
* A 100%, il se retrouve tout en haut
 +
(intention de design : pour un pédalage normal, le canoë reste relativement proche du centre, et le jeu récompense les mouvements plus forts par un changement de position plus visible).
 +
// image progression
 +
 
 +
=== Vers l'arrière ===
 +
Quand le joueur pédale vers l'arrière :
 +
* le canoë descend vers le bas de l'écran de la même manière que pour le pédalage avant.
 +
* Le décor défile vers le bas de la même manière que pour le pédalage avant.
 +
// Image Gameplay Pédalage arrière
 +
 
 +
La vitesse du canoë peut être modifiée par certaines briques de gameplay.
 +
 
 +
== Infos ==
 +
Les infos s'affichent en haut de l'écran. Il y en a 3, placées les unes à côté des autres.
 +
// Image Gameplay top infos
 +
* Temps restant : le temps restant avant la fin de la séquence de jeu.
 +
* Score : la distance parcourue par le canoë en kilomètres. Cette distance augmente en fonction de la vitesse de déplacement du canoë.
 +
* Difficulté : une jauge indiquant la résistance du maindalier.
 +
    * 0 = résistance minimum/pas de résistance, 100 = résistance maximum.
 +
    * En fonction de la résistance, la couleur de la barre passe du vert (résistance min) au rouge (résistance max).
 +
 
 +
![](https://partage.autonabee.com/apps/files_sharing/publicpreview/nWLntF5ScXTQWk7?file=/Photos/2022-10%20-%20Fabrikarium/Axe%20jeu/Gameplay%20top%20infos.jpg&fileId=117323&x=1920&y=1080&a=true)
 +
 
 +
== Boucle de jeu ==
 +
Le jeu enchaîne
 +
=== Début de séquence de jeu ===
 +
Une séquence de jeu commence par un compteur "3...2...1...GO !"
 +
Le personnage n'est contrôlable qu'à la fin de ce compteur, et l'info "temps restant" ne décroît qu'à partir de ce moment.
 +
 
 +
![](https://partage.autonabee.com/apps/files_sharing/publicpreview/nWLntF5ScXTQWk7?file=/Photos/2022-10%20-%20Fabrikarium/Axe%20jeu/Gameplay%20Top%20d%C3%A9part.jpg&fileId=117312&x=1920&y=1080&a=true)
  
== Fonctionalités ==
+
Le jeu peut fonctionner dans deux phases différentes :
* 2D plus facile à implémenter que la 3D
+
* Avance : le joueur doit avancer, et les briques de gameplay apparaissent  entre le milieu et le haut de l'écran.
* Pédalage avant - avancer dans le monde à la verticale avec des obstacles qui arrive par la gauche, la droite, l'avant
+
* Recule : le joueur doit reculer, et les briques de gameplay apparaissent entre le milieu et le bas de l'écran.
 +
 
 +
Une séquence commence par phase "Avance". Le changement de phase est déclenché par la brique de gameplay "Barrage".
 +
 
 +
== Fin de séquence de jeu ==
 +
TODO
 +
 
 +
== Animations du personnage ==
 +
* Idle : quand le canoë n'avance pas, l'animation reste sur une frame au repos (les deux rames sont à l'horizontal).
 +
* Moving : alternance de frames entre rames à l'avant et rames à l'arrière. La vitesse de l'anim se base sur la vitesse de rotation du maindalier.
 +
* Moving (reverse) : même animation que moving mais à l'envers.
 +
* Victory : à la fin de la séquence de jeu, le personnage lève les bras en l'air, il est content.
 +
 
 +
== Briques de gameplay ==
 +
=== Tremplin ===
 +
Un objet avec visuel de tremplin apparaît et se déplace horizontalement. Son effet s'applique quand le canoë entre en collision avec cet objet.
 +
 
 +
Effet : bonus augmentant temporairement la vitese du canoë.
 +
 
 +
(intention de design : pousser l'utilisateur à accélérer pour l'atteindre).
 +
=== Vent ===
 +
Un sprite s'affiche :
 +
* en haut de l'écran quand on avance
 +
* en bas quand on recule.
 +
Effet : la résistance du pédalier augmente pendant la durée du vent.
 +
(intention de design : augmentation temporaire de la difficulté)
 +
=== Barrage ===
 +
Un sprite prenant toute la largeur du canal apparaît en haut de l'écran (en phase "Avance") ou en bas (en phase "Recule") et suit le défilement.
 +
 
 +
Effets :
 +
* Le canoë ne peut pas se déplacer plus loin que le barrage dans la direction de celui-ci.
 +
* Le jeu change de phase (Avance/Recule).
 +
 
 +
Pour indiquer au joueur qu'il doit changer de sens, une grosse flèche rouge en bas de l'écran et orientée vers le bas clignotte pendant quelques secondes.
 +
 
 +
=== Vagues ===
 +
Un objet avec visuel de vague apparaît (aun scale progressif) et se déplace horizontalement d'un bord à l'autre de la rivière. Son effet s'applique quand le canoë entre en collision avec cet objet.
 +
 
 +
/// infos à trier
 +
* La 2D est plus facile à implémenter que la 3D
 +
* Pédalage avant - avancer dans le monde à la verticale avec des obstacles qui arrivent par la gauche, la droite, l'avant
 
* Pédalage arrière - obstacle, chute à éviter
 
* Pédalage arrière - obstacle, chute à éviter
 
* Pop-up de feedback du personnage (fatigue, content), identification au personnage
 
* Pop-up de feedback du personnage (fatigue, content), identification au personnage
-
+
*
 +
 
 +
== Améliorations à long terme ==
 +
=== Système de paliers ===
 +
Une idée a été soulevée pour le projet à plus long terme : pour récompenser le joueur quand il parcourt une plus grande distance, on débloque de nouveaux éléments de jeu au bout de certaines distances parcourues. Ce peuvent être :
 +
* De nouveaux bonus avec d'autres réglages que le tremplin (taux d'augmentation de la vitesse, durée du déplacement, temps d'apparition du bonus) : bumper, baleine qui tire le canoë, élastique, fusée, etc.
 +
* De nouveaux obstacles avec d'autres réglages que les vagues : gros oiseau, cheval qui nage, nuage (personnage ralenti)
 +
* De nouveaux éléments de décor : l'effet est seulement esthétique mais plaisant.
 +
(intention de design : varier les situations de jeu)
 +
=== Variantes de décor ===
 +
Pour bien casser la monotonie, le background change drastiquement à chaque nouvelle séquence de jeu. Par exemple :
 +
* les quatre saisons
 +
* d'autres localisations géographiques (désert, jungle, tropiques...).
 +
 
 +
=== Modes de jeu ===
 +
Plusieurs modes de jeu sont envisageables :
 +
* Échauffement : mode standard avec les différents
 +
* Fractionné :
 +
* Renforcement musculaire
 +
* mode libre
  
 
== Accessibilité ==
 
== Accessibilité ==
Ligne 160 : Ligne 273 :
  
 
= Boîte à idées =
 
= Boîte à idées =
 +
- Faire une option kayak pour quand le maindalier est en configuration pédale opposée
 +
-

Version du 19 octobre 2022 à 17:34

(WIP)

Présentation

Description du projet

Un pédalier à main associé à un jeu pour une rééducation ludique

Membres de l'équipe

Voir photos

Analyse de la problématique

Possibilités d'interaction

  • Rotation avant / arrière
  • Accélération de la rotation
  • Serrer les poings
  • Bouger la tête
  • Posture du dos
  • Distance entre le maindalier et le buste
  • Lâcher une main
  • Capteur de pression des mains sur les poignées
  • Capteur cardiaque (montre connectée)
  • Variation de la résistance mécanique
  • Capteur de pression d'assise

Besoins

  • Bonne qualité de l'équipement (roulement fluide, amplitude du mouvement)
  • Jeu qui suscite l'empathie (par ex, nostalgie de Mario)
  • Intuitif (facile de comprendre les règles)
  • Maintenir la forme physique :
   * Endurance, respiration
   * Vitesse
   * Accélération
   * Attention
   * Coordination
   * Gainage
   * Fatigabilité
  • Avoir une bonne posture
  • Installation rapide (<10s)
  • Entraîner le bras plus faible
  • Personnaliser les poignées à chacun
  • Rendre l'exercice plus attractif
  • Avoir du feedback sur ces stats : temps, vitesse, calories, infos pour les APA
  • Jouer en multijoueur
  • Historique des performances du joueur et de celles des autres

Cahier des charges

  • Susciter l'envie de rejouer
  • Accessibilité dans les salles de sport
  • Motiver les utilisateurs à rester engagés pendant 10 minutes d'utilisation du maindalier
  • Varier les vitesses (force et cardio)
  • Donner des feedbacks sur la performance
  • Faire oublier l'effort
  • Jouable sans connection internet
  • Bas coût
  • Facile à prendre en main et ludique

Matériel nécessaire

Axe Concept du jeu vidéo

Références

  • Ring Fit Adventure
  • Playdate
  • Simulations existantes de balade (balade en montagne, etc.)

Usages

  • Une session d'entrainement peut durer de 5 à 45 min.
  • Compétences stimulées :
   * Endurance : pédaler le plus longtemps possible.
   * Vitesse, réflexes.

== Lexique Explication des termes utilisés dans cette documentation :

  • Boucle de jeu : une séquence de jeu avec un début, un milieu et une fin.
  • Brique de gameplay : objet que l'on peut faire apparaître à l'écran et qui permet de créer du challenge (obstacles, bonus, malus...).

Description du jeu

Le jeu consiste en un parcours d'obstacle à défilement vertical, dans lequel on incarne un personnage qui rame dans un canoë avec deux rames symétriques en vue du dessus. L'objectif est de parcourir la distance la plus grande dans un temps limité.

Contrôles et personnage

Le canoë se situe sur un axe vertical au centre de l'écran. Il a la possibilité de se déplacer jusqu'à une position haute max et une position basse max (pas jusqu'au bord de l'écran). ![](https://partage.autonabee.com/apps/files_sharing/publicpreview/nWLntF5ScXTQWk7?file=/Photos/2022-10%20-%20Fabrikarium/Axe%20jeu/Gameplay%20neutre.jpg&fileId=117303&x=1920&y=1080&a=true)

Sur-place

Tant que le joueur ne pédale pas, le canoë reste sur place. // Image Gameplay neutre

Vers l'avant

Quand il pédale vers l'avant :

  • le canoë monte vers le haut de l'écran à une position relative à sa vitesse.
  • le décor défile vers le bas à une vitesse relative à la vitesse.

![](https://partage.autonabee.com/apps/files_sharing/publicpreview/nWLntF5ScXTQWk7?file=/Photos/2022-10%20-%20Fabrikarium/Axe%20jeu/Gameplay%20P%C3%A9dalage%20avant.jpg&fileId=117309&x=1920&y=1080&a=true)

Positionnement relatif

Le positionnement du canoë en fonction de la vitesse n'est pas linéaire (de même que le défilement du décor). Par exemple :

  • à 50% de la vitesse max, le canoë arrive à 25% de la distance entre milieu et le haut.
  • A 75% de la vitesse max, le canoë se retrouve à 50% de cette distance
  • A 100%, il se retrouve tout en haut

(intention de design : pour un pédalage normal, le canoë reste relativement proche du centre, et le jeu récompense les mouvements plus forts par un changement de position plus visible). // image progression

Vers l'arrière

Quand le joueur pédale vers l'arrière :

  • le canoë descend vers le bas de l'écran de la même manière que pour le pédalage avant.
  • Le décor défile vers le bas de la même manière que pour le pédalage avant.

// Image Gameplay Pédalage arrière

La vitesse du canoë peut être modifiée par certaines briques de gameplay.

Infos

Les infos s'affichent en haut de l'écran. Il y en a 3, placées les unes à côté des autres. // Image Gameplay top infos

  • Temps restant : le temps restant avant la fin de la séquence de jeu.
  • Score : la distance parcourue par le canoë en kilomètres. Cette distance augmente en fonction de la vitesse de déplacement du canoë.
  • Difficulté : une jauge indiquant la résistance du maindalier.
   * 0 = résistance minimum/pas de résistance, 100 = résistance maximum. 
   * En fonction de la résistance, la couleur de la barre passe du vert (résistance min) au rouge (résistance max).

![](https://partage.autonabee.com/apps/files_sharing/publicpreview/nWLntF5ScXTQWk7?file=/Photos/2022-10%20-%20Fabrikarium/Axe%20jeu/Gameplay%20top%20infos.jpg&fileId=117323&x=1920&y=1080&a=true)

Boucle de jeu

Le jeu enchaîne

Début de séquence de jeu

Une séquence de jeu commence par un compteur "3...2...1...GO !" Le personnage n'est contrôlable qu'à la fin de ce compteur, et l'info "temps restant" ne décroît qu'à partir de ce moment.

![](https://partage.autonabee.com/apps/files_sharing/publicpreview/nWLntF5ScXTQWk7?file=/Photos/2022-10%20-%20Fabrikarium/Axe%20jeu/Gameplay%20Top%20d%C3%A9part.jpg&fileId=117312&x=1920&y=1080&a=true)

Le jeu peut fonctionner dans deux phases différentes :

  • Avance : le joueur doit avancer, et les briques de gameplay apparaissent entre le milieu et le haut de l'écran.
  • Recule : le joueur doit reculer, et les briques de gameplay apparaissent entre le milieu et le bas de l'écran.

Une séquence commence par phase "Avance". Le changement de phase est déclenché par la brique de gameplay "Barrage".

Fin de séquence de jeu

TODO

Animations du personnage

  • Idle : quand le canoë n'avance pas, l'animation reste sur une frame au repos (les deux rames sont à l'horizontal).
  • Moving : alternance de frames entre rames à l'avant et rames à l'arrière. La vitesse de l'anim se base sur la vitesse de rotation du maindalier.
  • Moving (reverse) : même animation que moving mais à l'envers.
  • Victory : à la fin de la séquence de jeu, le personnage lève les bras en l'air, il est content.

Briques de gameplay

Tremplin

Un objet avec visuel de tremplin apparaît et se déplace horizontalement. Son effet s'applique quand le canoë entre en collision avec cet objet.

Effet : bonus augmentant temporairement la vitese du canoë.

(intention de design : pousser l'utilisateur à accélérer pour l'atteindre).

Vent

Un sprite s'affiche :

  • en haut de l'écran quand on avance
  • en bas quand on recule.

Effet : la résistance du pédalier augmente pendant la durée du vent. (intention de design : augmentation temporaire de la difficulté)

Barrage

Un sprite prenant toute la largeur du canal apparaît en haut de l'écran (en phase "Avance") ou en bas (en phase "Recule") et suit le défilement.

Effets :

  • Le canoë ne peut pas se déplacer plus loin que le barrage dans la direction de celui-ci.
  • Le jeu change de phase (Avance/Recule).

Pour indiquer au joueur qu'il doit changer de sens, une grosse flèche rouge en bas de l'écran et orientée vers le bas clignotte pendant quelques secondes.

Vagues

Un objet avec visuel de vague apparaît (aun scale progressif) et se déplace horizontalement d'un bord à l'autre de la rivière. Son effet s'applique quand le canoë entre en collision avec cet objet.

/// infos à trier

  • La 2D est plus facile à implémenter que la 3D
  • Pédalage avant - avancer dans le monde à la verticale avec des obstacles qui arrivent par la gauche, la droite, l'avant
  • Pédalage arrière - obstacle, chute à éviter
  • Pop-up de feedback du personnage (fatigue, content), identification au personnage

Améliorations à long terme

Système de paliers

Une idée a été soulevée pour le projet à plus long terme : pour récompenser le joueur quand il parcourt une plus grande distance, on débloque de nouveaux éléments de jeu au bout de certaines distances parcourues. Ce peuvent être :

  • De nouveaux bonus avec d'autres réglages que le tremplin (taux d'augmentation de la vitesse, durée du déplacement, temps d'apparition du bonus) : bumper, baleine qui tire le canoë, élastique, fusée, etc.
  • De nouveaux obstacles avec d'autres réglages que les vagues : gros oiseau, cheval qui nage, nuage (personnage ralenti)
  • De nouveaux éléments de décor : l'effet est seulement esthétique mais plaisant.

(intention de design : varier les situations de jeu)

Variantes de décor

Pour bien casser la monotonie, le background change drastiquement à chaque nouvelle séquence de jeu. Par exemple :

  • les quatre saisons
  • d'autres localisations géographiques (désert, jungle, tropiques...).

Modes de jeu

Plusieurs modes de jeu sont envisageables :

  • Échauffement : mode standard avec les différents
  • Fractionné :
  • Renforcement musculaire
  • mode libre

Accessibilité

  • Handicap visuel - retour de force avec la résistance au mouvement, spatialisation du son?

A faire

  • [ ] listing des situations de jeu et cas d'usage
  • [ ] Storybording des scénarios
  • [ ] Design d'interface (dev, game play)

Pour jeudi

  • [x] Protoypee jouable (dashboard, jeu sur 1 scénario d'usage)
  • [x] Documentation du Game concept

Axe Hacker l'électronique du maindalier

Retour de Julien

  • Julien utilise le réglage de la résistance, les APA font le réglage pour chaque personne à chaque fois
  • Julien s'échauffe 15-20 min, préfère la manivelle alternée
  • Michel (autre membre de ANTS) préfère la manivelle synchro, car sur son handbike la manivelle est synchro pour une meilleure gestion des virages, cela plus jouer l'inertie du système
  • Le bâti du pédalier à main a été bricolé, pas de plan
  • 44 utilisateurs du mandalier dont 20 avec gants (problème de préhension, force dans les mains)

Démontage

  • 1 capteur de rotation - compte tour
  • Donnée déduite de cette vitesse de rotation, courbe de calibration
  • Il existe un jack male connecté à l'afficheur et un cable femelle non connecté qui pourrait permettre de paramétrer le système
  • Transmission purement mécanique entre le bouton de réglage et le déplacement du solénoid qui règle la position de l'électro-aimant du frein
  • Il y a de la place pour mettre un moteur dans le capot sans toucher au mécanisme de base
  • Logiciel gratuit du constructeur - plein de fonctionalités à tester

Position du corps

Discussion avec Périne, il faut respecter des lois posturales pour la position du bras et du dos. Est-ce qu'une correction par des instructions suffisent?


Axe PyGame et intégration hardware

Todo

  • [x] tuto avec entrée clavier - Fait
  • [x] tester l'intégration de faux capteur (Gweltaz)
  • [x] afficher les données d'un faux capteur - Fait
  • [x] client MQTT ou avec un executable - Fait
  • [ ] Communiquer entre Raspberry et un ESP en MQTT (Roger)
  • [ ] Lien avec l'IMU (Roger)
  • [ ] Capter IMU orange voir avec Christophe et Magic Control
  • [ ] Prise en main et tuto (Cécile)
  • [ ] Brancher et debbug l'écran

MQTT - protocole iOT pour envoyer des petits pacquets de données Serveur central(broker) = possible de mettre sur internet ou sur Rasberry/Linux(mosquito) Les objets connectés s'abonnent et publient sur le réseau.

PyGame - fonctionnement écran par écran

Références de prise en main de PyGame

https://www.youngwonks.com/blog/How-to-Make-a-Side-Scroller-Game-using-Python-and-PyGame)

Simulation d'un faux capteur de vitesse de rotation

  • Appuyer sur la touche O pour simuler le pédalage
  • voir sur git "controlleur virtuel"

PyGame - Step-By-Step de Cécile (pour windows)

1. [Installer Python 3.10](https://www.python.org/downloads/) 2. Ouvrir l'IDLE de base Python 3.10 3. Récupérer l'adresse du répertoire où installer la librairie PyGame : [racine où est installer Python3.10]...\Python\Python310\Scripts 4. Installer la librairie PyGame via la console windows (connection internet requise)

   * Taper `cmd` dans la barre de recherche
   * Taper  `cd [racine où est installer Python3.10]...\Python\Python310\Scripts`
   * Taper `pip3 install pygame`

5. Tester l'installation en tapant dans l'IDLE `import pygame` 6. Découvrer le fonctionnement d'un jeu en plusieurs étapes

   * Etape 1 : Créer une fenêtre vierge - Ouvrer Game1.py
   * Etape 2 : Créer une page d'accueil - Ouvrer Game2.py
   * Etape 3 : Créer une fenêtre de jeu - Ouvrer Game3.py
   * Etape 4 : Créer le défilement du jeu - Ouvrer Game4.py

1.


Axe conception de la poignée connectée et du tableau de commande

Dépend des autres axes, donc à faire après


Boîte à idées

- Faire une option kayak pour quand le maindalier est en configuration pédale opposée -