accueil équipe projet pyrotechnie interface graphisme soutenance liens

Approche ergonomique

maquette Flash
maquette Flash
(mpeg4, 588Ko)
Si les utilisateurs de notre logiciel étaient des habitués de l’outil informatique avec une certaine habitude des logiciels graphiques, ils ne souhaitaient pas pour autant consacrer leur activité à la maîtrise d’une application trop complexe.
Nus devions définir le cadre qui leur garantirait une utilisation performante en même temps qu’un apprentissage progressif.
Dans le souci d'éviter les manipulations répétitives tout en permettant des réglages fins, nous voulions favoriser un maniement intuitif. Le glisser-déposer des engins pyrotechniques dans la fenêtre de prévisualisation, devait trouver un écho dans la fenêtre de ligne temporelle.

Interface utilisateur

L’écran de l’application se divise en trois zones distinctes qui correspondent chacune à un type d’action. Interface utilisateur
La zone de manipulation spatiale où l’on règle la position et l’inclinaison des mortiers, qui est aussi celle qui affiche le rendu de la simulation.
La zone de sélection des objets à introduire dans la scène, le "panier" rempli à partir du catalogue.
La zone de manipulation temporelle où ls'ajuste la composition pyrotechnique, à la manière d’un séquenceur de piste sonore.

Architecture logicielle

Architecture souple pour permettre les changements.
Abstraction suffisante pour intégrer de nouvelles fonctionnalités (planifiées ou non).

Le Modèle MVC

Le paradigme (design-pattern chez les anglophones) Modèle-Vue-Contrôleur est basé sur un cloisonnement des responsabilités des différents objets de l’application, qui entraîne une plus grande cohérence de la modularisation et permet d’orienter les choix d’implémentation de nouvelles fonctionnalités.
– les modèles sont les objets de la scène manipulés par l’utilisateur au travers des vues
- les objets vue sont chargés de la représentation graphique des attributs et paramètres des entités de l’application.
- le contrôleur de l’application centralise toutes les manipulations et informe les différentes vues de ces changements. La suppression d’un objet dans une des vues, entraîne la suppression du modèle correspondant, puis la notification de disparition de l’objet aux autres vues.

Les feux, objets audiovisuels

prototype Cocoa
prototype Cocoa
(mpeg4, 288Ko)
La représentation des engins pyrotechniques dans l’application repose sur deux types de données : les effets sonores et les paramètres du système de particules qui donnent son aspect visuel. Les objets feux incluront donc ces deux types de données comme attributs.
Le temps : Comme dans la réalité, le film de la simulation est une succession de déclenchements de départs d’engins. Chaque objet doit connaître sa date de départ pour lancer le film de sa représentation au moment choisi par l’utilisateur. De plus, la durée de l’effet produit a une importance capitale du point de vue de la scénographie.
L’espace : Le positionnement d’un engin dans la scène est décrit avec deux attributs : sa position géographique, et l’angle d’inclinaison du mortier.

Synchronisation audiovisuelle temps réel

Il n’est pas envisageable d’accepter une désynchronisation son/image au cours de la prévisualisation. C’est pourquoi nous devons concevoir un algorithme qui permette d’adapter la qualité du rendu aux capacités de la machine hôte.

Un test lancé au démarrage de l’application aura défini le budget de particules que la machine peut afficher. Une première lecture de la séquence des paramètres du tir est effectuée pour savoir combien de particules sont nécessaires à chaque image. Si ce nombre dépasse la limite du budget supporté par la machine, le contrôleur de film diminue d’autorité la quantité des particules allouées à chaque engin pour sa durée de vie. Le second passage joue le film dans le respect de ces contraintes.

Il s’agit là d’un algorithme complexe pour lequel les stratégies possibles sont nombreuses : si un engin sur le point de mourir peut mettre en cause un autre engin qui vient de démarrer, diminuant drastiquement son capital de particules, la dégradation subie peut être aberrante.

Modélisation UML du système

Modélisation UML

Les outils de développement

Cocoa, l’environnement de développement de Mac OS X, comprend un ensemble d’outils parfaitement intégrés. L’application de conception d’interface graphique, Interface Builder, est un modèle du genre. La souplesse de l’ensemble repose sur le langage Objective-C et ses capacités en terme de résolution tardive et de typage dynamique. Le système de widget disponible permet de développer des applications classiques sans qu’il soit nécessaire de les surcharger. Les icônes, barres de défilements, zones de texte et autres pop-ups sont fournies et facilement intégrables sans codage supplémentaire.

Python, langage interprété orienté objet, est portable et libre. Il peut être utilisé pour scripter des applications qui ont besoin d’une interface de programmation. Il peut être étendu par l’ajout de modules compilés en C ou C ++.

Les outils sonores

Pure DataNous avions à intégrer des sons dans deux optiques différentes. L’une, que nous nommerons la “bande-son”, s’inscrit linéairement dans la ligne temporelle : c’est sur elle que s’appuie le rythme de la composition, elle suppose l’importation de fichier musicaux ; l’autre prend en compte le son produit par les engins : détonations, sifflements, craquements, etc. Dans l’hypothèse du traitement événementiel du son, nous nous sommes tournés vers Pure Data, environnement de programmation visuel pour le contrôle en temps réel d’applications interactives et multimédia, développé par Miller Smith Puckette, créateur de MAX à l’IRCAM. Ce langage modulaire, simple d’emploi, austère d’interface, riche d’extensibilité, dont la philosophie repose sur des événements gérés via le réseau, pourrait être utile pour la gestion de la synchronisation des flux.


accueil équipe projet pyrotechnie interface graphisme soutenance liens