osutipe/pptx/presentation.md

131 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: "Construction automatique de niveaux pour le jeu de rythme osu! à partir de fichiers audio"
topic: "osu"
author: "Aboujaib Alexandre"
theme: "Copenhagen"
---
# Presentation du problème
### Le jeu osu!
- Jeu de rythme pour PC
- Sorti le 16 septembre 2007, adapté d'un jeu pour DS
- Environ 500 000 joueurs actifs
- Se joue avec une souris/tablette et clavier
![logo](osuLogo.png){ width=50% }
![tablet](tablet.png){ width=40% }
### Les beatmaps (niveaux)
::: columns
:::: column
![Définition d'une beatmap](wikibeatmap.png){ width=110% }
![Beatmap en jeu](gameplay.jpg)
::::
:::: column
![Liste de nouvelles beatmaps](MapList.png){ width=110% }
::::
:::
### Exemples de cercles
![](exemplesEditeur.png)
![](rcMusicRepresentation.png)
![](rcDifficultySpike.png)
### Exemples de sliders
![](sliderSimple.png){ width=50% }
![](sliderWave.png){ width=50% }
![](rcOffScreen.png)
![](rcSliderPath.png)
### Formulation du problème
Nous nous proposons de **créer deux programmes** permettant **au mieux**, à partir dun **fichier
audio** donné, de **construire un niveau pour osu!**.
# Partie I : Analyse de musique
### Approche en deux temps
#### Spécifications
*Entrée :* un fichier audio (avec un format quelconque)
*Sortie :* des données relatives à la musique permettant le placement des notes
#### Processus retenu ici
![](trame.png)
### Filtres physiques & Transformée de Fourier
::: columns
:::: column
![](filters.png){ width=80% }
::::
:::: column
![](fft.png)
::::
:::
### Résultats
![](dataBad.png){ width=60% }
### Résultats
![](dataBigBad.png)
### Résultats
#### Complexité
![](complexity.png){ width=95% }
### Limites et saturation
![](tetris2.png)
### Limites, saturation et améliorations
![](saturation.png)
# Partie II : placement spatial
# Annexes : code Python
### `parse music` : extraction de la liste des amplitudes et du "sample rate"
::: columns
:::: column
![](code/parsing_1.png){ width=80% }
::::
:::: column
![](code/parsing_2.png)
::::
:::
### `cleaning` : retirer les fréquences trop basses et hautes
![](code/cleaning.png){ width=60% }
### `get amp distribution` : usage de files de priorité pour extraire les maxima
![](code/getDistr.png){ width=50% }
### `get frequency distribution` : fréquence maximale pour chaque point
![](code/getFreqs.png){ width=60% }
### `get sliders` : fusionner les notes trop proches en des 'sliders'
![](code/getSliders.png){ width=75% }
### `draw` : afficher les résultats
![](code/display.png){ width=60% }