Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • Alexandre.Meyer/m1if37-animation
  • Alexandre.Meyer/m2-apprentissage-profond-image
  • Alexandre.Meyer/m2-animation
  • Alexandre.Meyer/hugo-web-minimal
  • Alexandre.Meyer/lifami
  • Alexandre.Meyer/lifapcd
  • Alexandre.Meyer/www
  • Alexandre.Meyer/lifstage
8 results
Show changes
Commits on Source (5)
# Pour créer un site web et ressources d'une UE avec Hugo # Pour créer un site web et ressources d'une UE avec Hugo
[La page de l'UE est ici](http://alexandre.meyer.pages.univ-lyon1.fr/hugo-web-minimal/) [La page de l'UE est ici](http://alexandre.meyer.pages.univ-lyon1.fr/lifapcd/)
...@@ -9,12 +9,12 @@ ...@@ -9,12 +9,12 @@
Le site web est désormais fabriqué par ```Hugo``` (thème [congo](https://jpanther.github.io/congo/)). les sources se trouvent dans le répertoire ```web```. Le site web est mis à jour par intégration continue (CI/CD) à chaque fois que vous faites un push (rien besoin d'autre, à part attendre quelques secondes). Le script d'intégration continue est ```.gitlab-ci.yml```. Pour voir le résultat du script de génération, depuis l'interface allez dans Buil/CI/Jobs. Le site web est désormais fabriqué par ```Hugo``` (thème [congo](https://jpanther.github.io/congo/)). les sources se trouvent dans le répertoire ```web```. Le site web est mis à jour par intégration continue (CI/CD) à chaque fois que vous faites un push (rien besoin d'autre, à part attendre quelques secondes). Le script d'intégration continue est ```.gitlab-ci.yml```. Pour voir le résultat du script de génération, depuis l'interface allez dans Buil/CI/Jobs.
Le fichier ```site/config.toml``` permet de configurer la génération du site. Mais noramlement il n'y a pas besoin d'y toucher. Le fichier ```site/config.toml``` permet de configurer la génération du site. Mais normalement il n'y a pas besoin d'y toucher.
* Les pages web sont générées à partir du répertoire ```web/content```. * Les pages web sont générées à partir du répertoire ```web/content```.
* Par exemple ```web/content/doc``` peut contenir les documents généraux de l'UE (pdf);
* La page principale du site est ```web/content/_index.html```. Il faut bien laissé le ```_```, il indique qu'il y a des sous-répertoires * La page principale du site est ```web/content/_index.html```. Il faut bien laissé le ```_```, il indique qu'il y a des sous-répertoires
* ```web/static``` : les fichiers autres (pdf, images, sujets, etc.) sont à ranger dedans. Par exemple, il y a * ```web/static``` : les fichiers générales (images, icones, etc.) sont à ranger dedans. Par exemple, il y a
* ```web/static/images``` pour les images du site; * ```web/static/images``` pour les images du site;
* ```web/static/doc``` documents généraux de l'UE;
* Pour changer l'icone de la page web, il faut générer des icones avec un [flavicon générator](https://favicon.io/favicon-generator/), copier toutes les images dans le repertoire `static` et ajouter dans `config.toml` une ligne dans `param` avec `favicon = "favicon.ico"`. * Pour changer l'icone de la page web, il faut générer des icones avec un [flavicon générator](https://favicon.io/favicon-generator/), copier toutes les images dans le repertoire `static` et ajouter dans `config.toml` une ligne dans `param` avec `favicon = "favicon.ico"`.
......
baseURL = "http://alexandre.meyer.pages.univ-lyon1.fr/hugo-web-minimal/" baseURL = "http://alexandre.meyer.pages.univ-lyon1.fr/lifapcd/"
title = "UE Bidule" title = "LIFAPCD Conception et développement d'applications"
theme = "congo" theme = "congo"
languageCode = "fr-FR" languageCode = "fr-FR"
enableInlineShortcodes = true enableInlineShortcodes = true
...@@ -10,11 +10,11 @@ publishDir = "public" ...@@ -10,11 +10,11 @@ publishDir = "public"
[params] [params]
description = "UE Bidule" description = "LIFAPCD Conception et développement d'applications"
copyright = "" copyright = ""
dark = "auto" dark = "auto"
highlight = true highlight = true
mainSections = "personnage;controle;posts" mainSections = "Cours;TD;Projets;Planning"
#color = "gray" # Any color in CSS syntax #color = "gray" # Any color in CSS syntax
#width = "52rem" # Any length in CSS syntax #width = "52rem" # Any length in CSS syntax
colorScheme = "fire" colorScheme = "fire"
...@@ -32,26 +32,33 @@ publishDir = "public" ...@@ -32,26 +32,33 @@ publishDir = "public"
[menu] [menu]
[[menu.main]] [[menu.main]]
identifier = "PartieA" identifier = "Cours"
name = "PartieA" name = "Cours"
title = "PartieA" title = "Cours"
url = "https://partiea.html" url = "/cours"
weight = 1 weight = 1
[[menu.main]] [[menu.main]]
identifier = "PartieB" identifier = "TD"
name = "PartieB" name = "TD"
title = "PartieB" title = "TD"
url = "/partieb/" url = "/td/"
weight = 2 weight = 2
[[menu.main]] [[menu.main]]
identifier = "PartieC" identifier = "Projet"
name = "PartieC" name = "Projet"
title = "PartieC" title = "Projet"
url = "/partiec/" url = "/projet/"
weight = 3 weight = 3
[[menu.main]]
identifier = "Planning"
name = "Planning"
title = "Planning"
url = "/planning/"
weight = 4
[permalinks] [permalinks]
posts = "/:title/" posts = "/:title/"
......
# UE Bidule # UE Bidule
Responsables de l'enseignement : [Pierre Quiroule](http://www.leweb.fr/Pierre) Responsables de l'enseignement : [Alexandre Meyer](http://liris.cnrs.fr/alexandre.meyer) et [Nicolas Pronost](http://liris.cnrs.fr/nicolas.pronost)
Volume horaire : x CM, y TP Volume horaire : 9h de CM, 12h de TD et 39h de TP
![im_all.png](images/im_all.png) ![lifapcd.png](images/lifapcd_logo.png)
## Objectif de l'UE ## Objectif de l'UE
<p style="text-align:justify;"> etc.</p> <p style="text-align:justify;">
[Les slides sont ici.](doc/fichier.pdf) L’UE «Conception et Développement d’Applications » se trouve dans l’ensemble des UE d’algorithmique et de programmation de la licence STS mention Informatique. L’objectif de cette UE est de donner une première expérience de développement d’une application informatique de taille assez conséquente pour des étudiants ayant suivi déjà 3 UE d’algorithmique et de programmation avant.
Nous abordons essentiellement trois domaines de compétences.
## Thématiques abordées * Conception de l’architecture d’un logiciel : programmation modulaire, diagramme de dépendances des classes, boucle d’évènements, utilisation de librairies externes, multiplateforme ;
* Outils d’aide à la mise au point de programme : débogueur, documentation du code, analyse de performances, makefile, gestion de version de code (git).
### Theme A * Gestion de projet : cahier des charges, diagramme de Gantt, documentations, rapport, démo, présentation.
Une part importante de cette UE est consacrée à la conception et au développement d’une application durant les TP, par groupe de 2 ou 3 étudiants.
</p>
### Theme B
---
title: "LIFAPCD Cours"
description: "LIFAPCD Cours"
---
![supports_de_cours.jpg](/supports_de_cours.jpg){.align-center
width="200" query="?200"}
#### Cours 0 : Introduction de l\'UE
[\>\>Télécharger les transparents du
cours](http://liris.cnrs.fr/~npronost/UCBL/LIFAP4/LIFAPCD_CM0_OrganisationUE.pdf)
[\>\>Visionner la vidéo du
cours](http://liris.cnrs.fr/~npronost/UCBL/LIFAP4/videosCM.html#CM0)
#### Cours 1 : Conception et gestion de projet
[\>\>Télécharger les transparents du
cours](http://liris.cnrs.fr/~npronost/UCBL/LIFAP4/LIFAPCD_CM1_ConceptionGestionProjet.pdf)
[\>\>Visionner la vidéo du
cours](http://liris.cnrs.fr/~npronost/UCBL/LIFAP4/videosCM.html#CM1)
- Méthodes de conception
- Cahier des charges
- Diagramme de Gantt
#### Cours 2 : Programmation modulaire
[\>\>Télécharger les transparents du
cours](http://liris.cnrs.fr/~npronost/UCBL/LIFAP4/LIFAPCD_CM2_ProgrammationModulaire.pdf)
[\>\>Visionner la vidéo du
cours](http://liris.cnrs.fr/~npronost/UCBL/LIFAP4/videosCM.html#CM2)
- Diagramme des classes (UML)
- Règle d\'intégrité
- Règles de programmation
#### Cours 3 : Outils pour la programmation
[\>\>Télécharger les transparents du
cours](http://liris.cnrs.fr/~npronost/UCBL/LIFAP4/LIFAPCD_CM3_OutilsProgrammation.pdf)
[\>\>Visionner la vidéo du
cours](http://liris.cnrs.fr/~npronost/UCBL/LIFAP4/videosCM.html#CM3)
- Compilation de fichier (GCC)
- Compilation de projet (Makefile)
- Débogage (gdb)
#### Cours 4 : Gestion du code
[\>\>Télécharger les transparents du
cours](https://perso.liris.cnrs.fr/alexandre.meyer/teaching/LIFAP4/download/LIFAP4_C4_GestionCode.pdf)
- Règles d\'écriture de code en C/C++
- Gestionnaire de code (Git, SVN, Mercurial, etc.)
- Doxygen
- [Des règles de bonnes pratiques de la
programmation](http://perso.univ-lyon1.fr/thierry.excoffier/COURS/COURS/TRANS_COMP_IMAGE/prog.html)
#### Cours 5 : Notions de programmation C++ avancée
[\>\>Télécharger les transparents du
cours](https://perso.liris.cnrs.fr/alexandre.meyer/teaching/LIFAP4/download/LIFAP4_C5_BibliothequeIntroPOO.pdf)
- Test de regression
- Valgrind : debug mémoire + profiler
- Arguments de main
- Introduction aux operator et aux template en C++
- Introduction à la STL : string, vector, list, etc.
- Notion de POO/héritage pour pouvoir introduire les frameworks gérant
une interface (Qt)
#### Cours 6 : Interface Graphique (Graphical User Interface)
[\>\>Télécharger les transparents du
cours](https://perso.liris.cnrs.fr/alexandre.meyer/teaching/LIFAP4/download/LIFAP4_C6_GUI.pdf)
- Une interface, qu\'est-ce que cela change ?
- Notion de callback/pointeurs de fonctions
- Principe d\'organisation du code (introduction rapide à la notion de
MVC)
- Interface en mode texte (un menu)
- Avec SDL2 + 2 mots sur SFML
- Avec \"Dear ImGui\"
- Avec un framework plus conséquent : Qt
\ No newline at end of file
File moved
---
title: ""
description: "Partie Animation de personnage"
---
# Partie Animation de personnage
* Alexandre Meyer
* 4h30 CM, 6h30 TP
* [L'ancienne page de cette partie](https://perso.liris.cnrs.fr/alexandre.meyer/public_html/www/doku.php?id=charanim_m1#master_1_informatique_-_ue_m1if37_animation_en_synthese_d_image)
![](../doc_charanim/charanim_tpose.jpg)
## Cours
* [Systèmes articulés : cinématique directe](https://perso.liris.cnrs.fr/alexandre.meyer/teaching/master_charanim/aPDF_COURS_M1/M1_1_SkeletonBasedAnimation.pdf)
* [Edition d'animations, Graphe d'animations](https://perso.liris.cnrs.fr/alexandre.meyer/teaching/master_charanim/aPDF_COURS_M1/M1_2_MotionControlAndEditing.pdf)
* [Capture de mouvements](https://perso.liris.cnrs.fr/alexandre.meyer/teaching/master_charanim/aPDF_COURS_M1/M1_3_MotionCapture.pdf)
## Les vidéos des 3 CM (2020)
[Les vidéos](video)
## Le TP
* [TP animation de personnage virtuel](tp)
* [[master_charanim_code|Le code initial]]
#### Rendu
Les archives sont à rendre sur TOMUSS
* TP Animation de personnage virtuel
* vous devez rendre une archive avec un readme.txt ou readme.md expliquant ce que vous avez fait et comment lancer le programme
* une VIDEO de DEMO ou une démo en LIVE
* Barème "Personnage"
* (5 points) TP 1ère partie : affichage d'une animation BVH
* (3 points) Contrôleur d'animation : la base (pilotage au clavier d'un déplacement)
* Machine à état (4 points maximum)
* basique : pour une machine à état de base avec 4 animations : iddle, marcher, courir, sauter ou kick
* avancé : une machine à état plus complète avec de nombreuses animations (une dizaine) : voir celles du répertoire motionGraph_second_life, etc.
* Motion Graphe (6 points max)
* basique : transition vers un autre animation en cherchant à la volée une transition compatible
* avancé : un motion graph construit automatiquement en pré-calcul (voir la fin de l'énoncé qui pointe vers un complément de sujet).
* (3 points) Interpolation entre 2 frames, à utilise pour les transitions ou pour une bonne gestion du temps
* (1 points) Collision entre personnage et sphères (voir le code PhysicalWorld)
* (1 points) bonus de qualité/cohérence de la scène
* Le total fait plus que 20 car les points FSM/graphe d'animation sont à comprendre avec un OU : la machine à état rapporte moins de points, car bien moins difficile.
---
title: "LIFAPCD Planning"
description: "LIFAPCD Planning"
---
---
title: "LIFAPCD Projet"
description: "LIFAPCD Projet"
---
## Projet : réalisation en TP
![idea.jpg](/idea.jpg){.align-center width="150" query="?150"}
#### Sujet et critères de notation
Vous êtes libre du sujet de votre projet, mais discutez-en avec les
intervenants de TD et TP afin d\'obtenir leur accord. [Si vous êtes en
panne d\'inspiration, voici quelques idées de sujets](/lifap4_sujets).
- **Le projet est à réaliser en groupe de 2 ou 3 maximum** (4 n\'est
pas possible)
- **[N\'oubliez pas de lire les règles à respecter lors de la
conception et la réalisation d\'un projet](/lifap4_regles)**
- Regardez également les **critères de notations (notes \"Technique\",
\"Conception\" et \"Organisation\") [dont le détail est ici
(IMPORTANT A
LIRE)](https://docs.google.com/spreadsheets/d/1OcpRm6gQtmRNWSXeG7QwnFJ6Eqzl7_DKCjUM4V9P4A0/edit?usp=sharing)**
- Vous devez **être autonome ET nous montrer régulièrement l\'état
d\'avancement de votre projet**. Un groupe dont les membres arrivent
à 10h voir plus tard, voir pas du tout et qui, tout d\'un coup, une
semaine avant la soutenance ont un projet bien abouti, sera
considéré comme très très suspect.
- Travail en équipe : vous disposez de 100 points par projet. A la fin
du projet, vous affectez ces points à chacun des membres du groupe
en fonction du degré d\'implication. Par exemple, un groupe
équilibré avec une personne un peu plus leader donnera 30, 30 et 40
points. Cette information servira à moduler les notes de chacuns
(voir les critères de notation dans la grille). La modulation peut
aller plus loin que juste les points sur l\'organisation du travail.
Un étudiant non impliqué peut avoir une note très faible sur les 3
parties, loin du reste du groupe.
#### Cahier des charges
Après quelques séances de conception et développement, vous devez
rédiger et soumettre un cahier des charges (case
\'DepotCahierDesCharges\' sur Tomuss au format pdf, un seul dépôt par
groupe). Ce cahier des charges reprend l\'organisation vue en cours et
en TD. Il doit comporter au moins une présentation du projet, une
description détaillée de l\'application (ex. règles du jeu ou
fonctionnalités du logiciel), une liste exhaustive et détaillée des
tâches à réaliser, un diagramme des classes (UML) et un diagramme de
Gantt (tous les deux prévisionels). Ce document fait typiquement entre 4
et 10 pages.
##### Réaliser votre diagramme des classes (UML)
- [Les bases d\'un diagramme de classes sur
wikipedia.](https://fr.wikipedia.org/wiki/Diagramme_de_classes) Nous
n\'utilisons que la notion d\'association (et un peu héritage) en
LIFAP4 pour les relations entre classes
- Voir la section \"Outils UML / diagramme des classes\" en fin de
page (faites une recherche sur la page) pour des applications de
réalisation du diagramme des classes
#### Démo mi-parcours
A la moitié de votre projet, vous donnerez une démonstration aux
intervenants de 10 minutes, qui sera suivie de quelques questions. Le
but de cette démonstration est de faire un point sur ce qui marche et ce
qui reste à faire, ainsi que de présenter l\'organisation et la gestion
de votre projet en général. Vous devez donc à la fois montrer ce que
votre application est déjà capable de faire, mais aussi que vous avez
les capacités à finaliser le projet à temps.
#### Soutenance
**La soutenance dure 20 min = 15 min de présentation démo, suivi de 5
min de questions**\
La présentation devra être réalisée sous Powerpoint (le mieux est de
générer un PDF pour des raisons de compatibilité).\
Quelques conseils pour la présentation (entre 8 et 10 minutes):
- Il s\'agit d\'une présentation technique. Passez donc rapidement sur
l\'interface graphique et les fonctionnalités, sur lesquelles vous
pourrez plus vous attarder durant la démo. La majeure partie devra
être consacrée à expliquer comment vous avez conçu et programmé
votre application, en décrivant les classes et les structures
correspondantes.
- Le fruit d\'un travail de plus de 40h doit être décrit en quelques
minutes, ce qui est très court. Allez rapidement à l\'essentiel ! Le
planning étant très serré, vous serez interrompu si vous dépassez le
temps imparti.
- Pour les projets réalisés en groupe, le temps de parole devra être
équitablement réparti entre les étudiants.
- Le meilleur aperçu de la conception de votre projet reste le
diagramme des classes (UML). Soignez sa présentation !
Plan de la présentation : un Powerpoint de quelques slides est un
maximum et devrait être suffisant. Voici un plan possible :
- Slide 1: Titre du projet, auteurs, principe de l\'application (très
rapide, avec une capture d\'écran)
- Slide 2: **Vue d\'ensemble du diagramme des classes (UML)** (donc le
diagramme doit être à jour)
- Slide 3 à n-1: Explications détaillées des 3 ou 4 classes les plus
importants et/ou les plus intéressants (ex. ceux dont vous êtes les
plus fiers, sur lesquels vous avez passé le plus de temps)
- Slide n: Conclusion. Attention à éviter les banalités du style \"Le
projet a été intéressant...\" (ou l\'inverse !). Les intervenants
vous ont suivis pendant un semestre et ont déjà leur idée là-dessus
! Décrivez par exemple ce qui marche et ce qui ne marche pas (les
objectifs initiaux du cahier des charges ont-ils été atteints?), les
éventuelles difficultés rencontrées, et ce que vous (re)feriez avec
un peu (ou beaucoup) plus de temps.
Quelques conseils pour la démo (entre 5 et 7 minutes):
- Le code doit être compilé, et la démo doit être lancée via
l'exécutable
- Préparez la démo pour être lancée tout de suite après la
présentation (ex. sur votre ordinateur portable)
- Répétez les actions que vous voulez illustrer, concentrez vous sur
ce qui fonctionne (soyez vendeur!)
- Utilisez le plein écran si approprié, prévoyez de quoi entendre sons
et musiques si besoin
- Si nécessaire, testez votre démo avant sur écran externe (ie.
apprenez comment afficher en double écran sur votre machine)
\*\*Faîtes au moins une répétition complète pour éviter les surprises
(timing, démo qui fonctionne pas, etc.). \*\*
#### Travail à rendre (case \'DepotProjetFinal\' dans Tomuss)
Préparer et soumettre une archive suivant les mêmes conventions que le
module Image nommée `NOM_PROJET_NUMEROETU1_NUMEROETU2_NUMEROETU3.tar.gz`
et contenant au minimum:
- Un `readme.txt` à la racine de l\'archive contenant au moins
* les informations factuelles du projet : noms, prénoms, numéros étudiant et identifiant du projet sur la forge
* un manuel : commandes de compilation et d'exécution, règles du jeu ou utilisation de l'application, la liste des fonctionnalités du programme
* une description de l'organisation de votre archive
* Tout le code (dans le répertoire src)
* Un makefile (dans le répertoire racine)
* Attention, toute autre librairie que la SDL devra être incluse dans l'archive
* Les assets de votre application (dans le répertoire data, ex. images, sons, modèles 3D, fonts, fichiers de configuration)
* Les exécutables (dans le répertoire bin)
* La documentation de votre projet (dans le répertoire doc) contenant au minimum
* La présentation orale (fichier PowerPoint ou pdf)
* Le diagramme des classes UML à jour (fichier image ou pdf)
* Le diagramme de Gantt à jour (fichier image ou pdf) avec une description de qui a fait quoi dans le projet (associations entre les tâches du diagramme et les étudiants)
* La documentation du code (dans le répertoire doc/html, générée par doxygen)
Veillez à bien nettoyer votre archive avant soumission, i.e. supprimer
les fichiers inutiles (fichiers objets, dossiers/fichiers git etc.).
---
title: "LIFAPCD TD"
description: "LIFAPCD TD"
---
## TD
#### TD Conception de logiciel
- [TD Conception : étude de la conception de différentes applications, diagramme des classes](http://liris.cnrs.fr/~npronost/UCBL/LIFAP4/LIFAP4_TD1_ConceptionLogicielle.pdf)
- [Elements de correction du TD Conception](http://liris.cnrs.fr/~npronost/UCBL/LIFAP4/LIFAP4_TD1_ConceptionLogicielle_corriges.pdf)
#### TD outils 1 : Editeur de code, débogueur et diagramme
- Voir énoncé de la [1ère partie](/lifap4_td#td_outils_-_partie_1editeur_de_code_debogueur_et_diagramme)
du TD outils
#### TD outils 2 : Gestion de mémoire/Optimisation de code
- Voir énoncé de la [2ème partie](/lifap4_td#td_outils_-_partie_2gestion_de_memoire_optimisation_de_code)
du TD outils
#### TD outils 3 : Bibliothèques
- Voir énoncé de la [3ème partie](/lifap4_td#td_outils_-_partie_3bibliotheques) du TD outils
#### TD outils 4 : Gestionnaire de version
- Voir énoncé de la [4ème partie](/lifap4_td#td_outils_-_partie_4gestionnaire_de_version_git)
du TD outils
web/static/images/lifapcd_logo.png

66.7 KiB