# Vol à travers les habitations La version **0.8.0-alpha.1** permet d'entrer par une porte, de traverser des pièces meublées et de ressortir par une fenêtre dans les **24 habitations principales** du quartier. Murs, planchers, plafonds et principaux meubles conservent leurs collisions. Les portes et battants de fenêtre restent fixes en position ouverte ; aucune touche d'ouverture n'est nécessaire. ## Installer ou mettre à jour Les douze bâtiments procéduraux sont construits par le C++. Le pack runtime de **0.8.0-alpha.1** contient les douze maisons détaillées déjà importées dans Unreal, avec leurs passages et collisions. **Blender n'est pas nécessaire pour installer cette version et voler à l'intérieur.** Pour une nouvelle installation, suivre [GETTING_STARTED.md](GETTING_STARTED.md), qui clone le tag `v0.8.0-alpha.1`, récupère le pack runtime puis compile le jeu. Pour mettre à jour une installation existante, fermer le jeu et l'éditeur, puis exécuter depuis la racine du dépôt : ```bash git fetch --tags origin git switch --detach v0.8.0-alpha.1 python3 Scripts/assets.py fetch --force ./Scripts/build.sh ./Scripts/launch.sh ``` L'option `--force` remplace les fichiers runtime différents inscrits dans le manifest, notamment les anciens meshes de maisons pleines. Conserver ailleurs les éventuelles modifications personnelles de ces assets avant cette commande. Elle ne supprime pas les fichiers extérieurs au manifest. Si Git signale des modifications locales qui empêchent le changement de version, les conserver avant de continuer ; aucun reset n'est nécessaire. **Fermer et relancer le jeu après la mise à jour est indispensable :** une session déjà ouverte conserve les meshes et collisions qu'elle a chargés. La compilation ou le téléchargement seuls ne la mettent pas à jour. ## Première traversée 1. Appuyer sur **T** pour décoller, puis **V** pour choisir la vue embarquée. Les premières maisons détaillées bordent l'avenue près du pad de départ. 2. Réduire progressivement la propulsion avec **Page bas**, en gardant une valeur supérieure à zéro. Observer la vitesse au cockpit et viser environ **0,5 à 1 m/s** pour l'approche. 3. Appuyer sur **K** pour freiner devant l'ouverture, ajuster la hauteur avec **Espace / Ctrl gauche**, puis avancer en restant centré dans le passage. 4. Freiner avec **K** dans la pièce, repérer la sortie et repartir à petite vitesse. Relâcher les touches de déplacement conserve la vitesse cible : cela ne commande pas l'arrêt. 5. Sur un espace de plancher dégagé, **L** demande l'atterrissage et **T** permet de redécoller. **R** replace le drone sur le pad si nécessaire. La mission automatique conserve son parcours extérieur ; explorer les maisons en manuel. La vue de poursuite se rapproche du drone près des murs. La vue embarquée facilite l'alignement dans les passages étroits. Toutes les commandes restent celles de [CONTROLS.md](CONTROLS.md). ## Espaces accessibles | Bâtiments | Passages et circulation | | --- | --- | | Douze bâtiments procéduraux | Murs de 24 cm ; entrée de 106 × 207 cm ; fenêtres ouvertes de 100 × 140 cm ; portes intérieures de 170 cm de large. Chaque étage a son plancher, des pièces, du mobilier et de la lumière. Les étages s'atteignent par les fenêtres extérieures. | | Douze maisons détaillées | Portes avant et arrière centrées de 140 × 222 cm ; fenêtres de façade de 122 × 155 cm et latérales de 125 × 137 cm ; passages intérieurs de 155 × 257 cm. Deux ou trois niveaux meublés, reliés par une cage verticale libre de 190 × 185 cm pour le vol entre étages. | Les dimensions décrivent les ouvertures du modèle, pas la marge disponible pour toute inclinaison ou toute vitesse. Les combles restent décoratifs et non visitables. La cage verticale des maisons détaillées n'est pas un escalier marchable ; les bâtiments procéduraux n'ont pas d'escalier intérieur. ## Modifier les maisons (facultatif) Ces étapes servent à travailler sur les assets de la rue témoin. Elles ne font pas partie de l'installation pour jouer. Récupérer le pack de sources, installer Blender 5.2.1 et définir `DONIFY_ENGINE_DIR` comme dans le guide de démarrage : ```bash python3 Scripts/assets.py fetch --pack sources # Adapter le chemin de Blender à l'installation locale. /snap/blender/current/blender --background --python Scripts/build_reference_architecture.py "${DONIFY_ENGINE_DIR}/Engine/Binaries/Linux/UnrealEditor-Cmd" \ "$PWD/Donify.uproject" -run=pythonscript \ -script="$PWD/Scripts/import_reference_architecture.py" \ -nullrhi -unattended -nosplash -NoSound ``` Le générateur reconstruit les douze FBX et leur manifest dans `SourceAssets/ReferenceStreet` ; l'importeur met à jour les ressources `/Game/ReferenceStreet`. Les matériaux proviennent du pack runtime. Après des modifications locales, `assets.py fetch` signale les conflits ; `--force` réinstalle les fichiers de la version publiée. Voir [REFERENCE_ARCHITECTURE.md](REFERENCE_ARCHITECTURE.md) pour les dimensions et les contrôles du générateur. ## Vérifier ```bash python3 Scripts/check_architecture.py ./Scripts/build.sh ./Scripts/check.sh ``` Le runner attend 23 marqueurs, dont six pour les intérieurs : `interior_openings`, `interior_solids`, `reference_interiors`, `interior_flight`, `interior_landing` et `interior_camera`. Ils contrôlent les ouvertures avec l'enveloppe du drone, les surfaces solides, les passages des douze maisons importées à chaque étage et leur cage verticale, une traversée en vol physique, l'atterrissage et le redécollage sur plancher, ainsi que le dégagement de caméra. Consulter `Saved/Logs/Validation.log` pour les résultats de l'exécution. Pour inspecter les vues préparées de la première maison détaillée : ```bash ./Scripts/launch.sh -DonifyCapture -DonifyShot=12 -DonifyCleanCapture ./Scripts/launch.sh -DonifyCapture -DonifyShot=13 -DonifyCleanCapture ./Scripts/launch.sh -DonifyCapture -DonifyShot=14 -DonifyCleanCapture ``` Ces commandes enregistrent l'intérieur et la porte de la première maison détaillée dans `Saved/Donify-house-interior.png` et `Saved/Donify-house-doorway.png`, puis un intérieur procédural dans `Saved/Donify-procedural-interior.png`. Elles servent à examiner la géométrie et le rendu ; la traversée pilotée se teste dans une session normale.