🕊️ Un bac à sable, pas un examen
Dans Unity, on va tenter de créer une simulation de foule expansible à partir d'une foule immobile : une volière dont les oiseaux prennent vie.
Ce tutoriel est entièrement formatif : il ne compte pour aucun point et n'apparaît dans aucun énoncé d'évaluation. C'est un terrain de jeu pour apprivoiser le moteur 3D à votre rythme, avant le module Agents où Unity et ML-Agents deviendront le décor principal. Les vecteurs que vous avez domptés dans la Montagne et l'Essaim sont exactement les mêmes ici, en trois dimensions.
🎒 La préparation au mouvement
- Écouter les vidéos sur le mouvement en Unity : « 6 ways to move » et « ultimate movement guide ».
- Consulter le guide résumé de GameDevBeginner et le guide Vecteurs et mouvements dans Unity.
- Réaliser le projet de pratique des mouvements : Roll a Ball (les 7 premiers tutoriels), et conserver vos scripts
.cscomme trace.
🏗️ Monter la volière
- Importer le projet de volière déjà fait (fourni par l'enseignante en classe) ;
- ou alternativement, acquérir l'asset NVJOB Simple Boid (flocks of birds, fish and insects), créer un nouveau projet URP (Universal 3D) et importer l'asset via le package manager.
🔬 Explorer le code de la nuée
Le cœur de la volière vit dans NVBoids.cs. Pour se l'approprier, documenter en markdown (un fichier Voliere.md) :
- Les formats de données utilisés :
Vector2,Vector3,Transform, etc. - Les tableaux de données du programme : nommer et expliquer chaque variable, en insistant sur les tableaux d'oiseaux et ce qu'il y a dans chaque case.
- Les fonctions et opérations mathématiques du code, incluant les opérations géométriques :
Random.Range(),Vector3.SmoothDamp(),Quaternion.LookRotation()...
Et ramener ces apprentissages dans votre feuille-synthèse : ils resserviront au module Agents.
🧪 Expérimenter (si le cœur vous en dit)
- Remplacer le code par celui de la volière immobile fournie, puis redonner vie aux oiseaux.
- Compléter les fonctions avec quelques lignes de code expérimentales :
deplacerVoilieres(),deplacerOiseaux(),changerComportement(). - Introduire de nouveaux comportements en modifiant le code des boids.