Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…into main
  • Loading branch information
kid-synthetique committed Nov 20, 2024
2 parents 56e0a8e + 53838ba commit d58d430
Show file tree
Hide file tree
Showing 21 changed files with 565 additions and 32 deletions.
6 changes: 5 additions & 1 deletion docs/582-111–web1/cours12.md
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
# Cours 12
# Cours 12

<h1 style="font-size: 100px; margin-bottom: 0;">EXAMEN</h1>

<iframe src="https://giphy.com/embed/CzyjqJl9grKqQ" width="480" height="247" style="" frameBorder="0" class="giphy-embed" allowFullScreen></iframe>
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/582-301-interactivite-ludique/cours04.md
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ class Example extends Phaser.Scene {

Grâce au système de physique, il est très facile d’empêcher un objet de sortir des limites du jeu en utilisant la fonction `setCollideWorldBounds()`.

Cette méthode permet de faire en sorte que l’objet se heurte aux bords du monde défini, et reste à l’intérieur des limites.
Cette méthode permet de faire en sorte que l’objet se heurte aux bords du monde défini et reste à l’intérieur des limites.

<iframe class="aspect-2-1" height="300" style="width: 100%;" scrolling="no" title="Phaser - Déplacement B1 - Physique" src="https://codepen.io/tim-momo/embed/MWMLQMN/0325679fba015b092381ec553d6f8d49?default-tab=&theme-id=50173&editable=true" frameborder="no" loading="lazy" allowtransparency="true" allowfullscreen="true">
See the Pen <a href="https://codepen.io/tim-momo/pen/MWMLQMN/0325679fba015b092381ec553d6f8d49">
Expand Down
2 changes: 1 addition & 1 deletion docs/582-301-interactivite-ludique/cours06.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ this.cameras.main.setBounds(0, 0, this.worldWidth, this.worldHeight)

### Qu’est-ce qu’une animation sprite ?

Une **animation sprite** consiste à afficher une série d’images (ou **frames**) dans un ordre spécifique pour donner l’illusion de mouvement. Chaque image représente une étape de l’animation, et lorsqu’elles sont montrées rapidement les unes après les autres, cela crée une animation fluide.
Une **animation sprite** consiste à afficher une série d’images (ou **frames**) dans un ordre spécifique pour donner l’illusion de mouvement. Chaque image représente une étape de l’animation et lorsqu’elles sont montrées rapidement les unes après les autres, cela crée une animation fluide.

<figure markdown>
![](./assets/images/Eadweard-Muybridge.webp){.w-100}
Expand Down
423 changes: 415 additions & 8 deletions docs/582-301-interactivite-ludique/cours12.md

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions docs/582-301-interactivite-ludique/cours13.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,5 @@ tags:
Tests et optimisation
— Réusinage
— Compression des médias

https://dev.to/balrajola/how-to-write-clean-code-refactoring-and-best-practices-1mo
2 changes: 1 addition & 1 deletion docs/582-301-interactivite-ludique/cours14.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ Soyez prêt à recevoir des retours des joueurs. Cela peut inclure des suggestio

8. Promotion

Utilisez les réseaux sociaux, forums de développeurs, et autres plateformes pour promouvoir votre jeu. Partagez votre processus de développement et engagez avec la communauté pour attirer plus de joueurs.
Utilisez les réseaux sociaux, forums de développeurs et autres plateformes pour promouvoir votre jeu. Partagez votre processus de développement et engagez avec la communauté pour attirer plus de joueurs.

Voici un résumé des étapes :

Expand Down
32 changes: 32 additions & 0 deletions docs/582-301-interactivite-ludique/devoirs/sauvegarde.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
[:material-arrow-u-left-top: Cours 12](../cours12.md){.breadcrumb}

# Devoir 8 | La disquette (formatif)

![](../assets/images/disquette.webp){.w-100}

L'objectif de ce devoir est d'appliquer la notion de sauvegarde dans votre jeu.

Voici des exemples de ce que vous pourriez sauvegarder :

* Données d'un personnage (vie, points de magie, expérience)
* Propriétés d'un élément (quantité, scale, etc.)
* Positionnement de personnage et d'objets
* L'état d'un jeu (score, niveau)
* L'état temporel (date, heure)

## Consignes

- [ ] Créer une sauvegarde de votre jeu avec `localStorage` en structurant vos données en objet `JSON`.
- [ ] Ajouter un nouveau bouton dans l'accueil pour le chargement de partie
- [ ] (facultatif) Ajouter une scène de chargement de partie
- [ ] Charger les données de sauvegarde et appliquez celles-ci dans votre jeu pour donner l'effet de chargement!

## Remise

25 novembre à 23h59

Identifiez votre travail avec la nomenclature suivante :

> nomdefamille-prenom_devoir_08_582-301MO.zip
Déposez votre dossier en format `.zip` sur Teams
8 changes: 4 additions & 4 deletions docs/582-311-web3/cours12.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,6 @@ gsap.to(".box", {
on <a href="https://codepen.io">CodePen</a>.
</iframe>

!!! success "SVG"

Vous pouvez trouver des SVG gratuit ici : https://www.svgrepo.com/collection/free-animals/

### Text

Le plugiciel [Text](https://gsap.com/docs/v3/Plugins/TextPlugin/) permet d’animer le contenu textuel d’un élément DOM, en remplaçant progressivement le texte existant par un nouveau.
Expand Down Expand Up @@ -220,6 +216,10 @@ gsap.to("#forme1", {
on <a href="https://codepen.io">CodePen</a>.
</iframe>

!!! success "SVG"

Vous pouvez trouver des SVG gratuit ici : <https://www.svgrepo.com/collection/free-animals/>

### SplitText

Le plugiciel [SplitText](https://gsap.com/docs/v3/Plugins/SplitText/) permet de diviser le texte en caractères, mots ou lignes individuels, facilitant ainsi des animations détaillées et précises sur chaque segment de texte.
Expand Down
2 changes: 1 addition & 1 deletion docs/582-312–video2/ai/midjourney.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

* [▶️ Présentation de Midjourney](https://cmontmorency365-my.sharepoint.com/:v:/g/personal/flpilote_cmontmorency_qc_ca/EVq7pf3WggRPhQhX8kitNyABo-AbADJZpkvP5AV21QmClg?nav=eyJyZWZlcnJhbEluZm8iOnsicmVmZXJyYWxBcHAiOiJPbmVEcml2ZUZvckJ1c2luZXNzIiwicmVmZXJyYWxBcHBQbGF0Zm9ybSI6IldlYiIsInJlZmVycmFsTW9kZSI6InZpZXciLCJyZWZlcnJhbFZpZXciOiJNeUZpbGVzTGlua0NvcHkifX0&e=WpVaBW) <br>
* [▶️ Le Prompt](https://cmontmorency365-my.sharepoint.com/:v:/g/personal/flpilote_cmontmorency_qc_ca/ETzCAu57XttDuv6AdQeAA3kBd0g6XNA0YkuiFFM0-lfHAw?nav=eyJyZWZlcnJhbEluZm8iOnsicmVmZXJyYWxBcHAiOiJPbmVEcml2ZUZvckJ1c2luZXNzIiwicmVmZXJyYWxBcHBQbGF0Zm9ybSI6IldlYiIsInJlZmVycmFsTW9kZSI6InZpZXciLCJyZWZlcnJhbFZpZXciOiJNeUZpbGVzTGlua0NvcHkifX0&e=Yn6Wob) <br>
* [▶️ L'importance des mots relatifs](https://cmontmorency365-my.sharepoint.com/:v:/g/personal/flpilote_cmontmorency_qc_ca/EcFOyDsGM71NkEwSLq2jEF8BZprlq_7DA_MUY2oUnyP7sg?nav=eyJyZWZlcnJhbEluZm8iOnsicmVmZXJyYWxBcHAiOiJPbmVEcml2ZUZvckJ1c2luZXNzIiwicmVmZXJyYWxBcHBQbGF0Zm9ybSI6IldlYiIsInJlZmVycmFsTW9kZSI6InZpZXciLCJyZWZlcnJhbFZpZXciOiJNeUZpbGVzTGlua0NvcHkifX0&e=nkTMrp) <br>
* [▶️ L'importance des mots relatifs et le no](https://cmontmorency365-my.sharepoint.com/:v:/g/personal/flpilote_cmontmorency_qc_ca/EcFOyDsGM71NkEwSLq2jEF8BZprlq_7DA_MUY2oUnyP7sg?nav=eyJyZWZlcnJhbEluZm8iOnsicmVmZXJyYWxBcHAiOiJPbmVEcml2ZUZvckJ1c2luZXNzIiwicmVmZXJyYWxBcHBQbGF0Zm9ybSI6IldlYiIsInJlZmVycmFsTW9kZSI6InZpZXciLCJyZWZlcnJhbFZpZXciOiJNeUZpbGVzTGlua0NvcHkifX0&e=nkTMrp) <br>
* Consultez [la page suivante](prompt.md)** pour plus d’informations sur la rédaction de prompts efficaces.
* [▶️ Comment personnaliser Midjourney](https://cmontmorency365-my.sharepoint.com/:v:/g/personal/flpilote_cmontmorency_qc_ca/ESiXMMu86cVHs2ZzL4jTwBEBSB42lpqh0OmH7snE-YtP3w?nav=eyJyZWZlcnJhbEluZm8iOnsicmVmZXJyYWxBcHAiOiJPbmVEcml2ZUZvckJ1c2luZXNzIiwicmVmZXJyYWxBcHBQbGF0Zm9ybSI6IldlYiIsInJlZmVycmFsTW9kZSI6InZpZXciLCJyZWZlcnJhbFZpZXciOiJNeUZpbGVzTGlua0NvcHkifX0&e=IwcFSu) <br>
* [▶️ Personalize](https://cmontmorency365-my.sharepoint.com/:v:/g/personal/flpilote_cmontmorency_qc_ca/EXfGOeCbRxFLu2227RAy9_QBxdFoAIEIn98o9APepCobPA?nav=eyJyZWZlcnJhbEluZm8iOnsicmVmZXJyYWxBcHAiOiJPbmVEcml2ZUZvckJ1c2luZXNzIiwicmVmZXJyYWxBcHBQbGF0Zm9ybSI6IldlYiIsInJlZmVycmFsTW9kZSI6InZpZXciLCJyZWZlcnJhbFZpZXciOiJNeUZpbGVzTGlua0NvcHkifX0&e=6x0rDf) <br>
Expand Down
17 changes: 15 additions & 2 deletions docs/582-312–video2/ai/midjourney_code.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
# Définition des commandes dans MidJourney


## 1. --stylize (stylisation générale)
**Définition** : Le paramètre **--stylize** contrôle l'intensité de la créativité que MidJourney applique lors de l'interprétation du texte du prompt. Il influence la manière dont l'image est globalement stylisée. Une valeur plus élevée entraîne un rendu plus artistique, mais potentiellement moins fidèle à la description textuelle initiale.

Expand All @@ -26,11 +25,25 @@

---

## 4. --iw (poids de l'image de référence)
**Définition** : Le paramètre **--iw** (Image Weight) contrôle l'importance de l'image de référence par rapport au texte du prompt. Il permet de donner plus ou moins de poids à une image utilisée comme référence, influençant ainsi directement le rendu final.

- **Valeur par défaut** : La valeur par défaut de **--iw** est **1**, ce qui signifie une influence équilibrée entre l'image de référence et le texte.
- **Valeurs typiques** : Les valeurs pour **--iw** vont de **0 à 3**.
- Une valeur proche de **0** privilégie le texte et minimise l'influence de l'image.
- Une valeur proche de **3** maximise l'influence de l'image, en réduisant l'impact du texte.
- **Exemple** :
- `--iw 0.5` : donne plus de flexibilité à l'IA pour interpréter le prompt texte.
- `--iw 3` : impose strictement les caractéristiques de l'image de référence dans le rendu final.

---

# Résumé des commandes

- **--stylize 1000** : Définit le degré de stylisation artistique appliqué à l'interprétation du prompt texte, offrant un rendu plus artistique tout en maintenant une certaine cohérence avec le prompt.
- **--cw 100** : Par défaut, contrôle la fidélité de l'IA à un personnage généré via une image de référence, offrant un rendu précis du personnage selon la référence fournie.
- **--sw 1000** : Accentue l'influence artistique sur l'image, en fonction d'une référence ou d'un style prédéfini, s'éloignant du réalisme pour aller vers un rendu créatif.
- **--iw 3** : Contrôle l'importance relative de l'image de référence, offrant un équilibre par défaut avec le texte.

---

Expand All @@ -39,4 +52,4 @@
- **--stylize** : Influence le degré global de stylisation basé sur le texte du prompt.
- **--cw** : Gère le poids des caractéristiques d'un personnage à partir d'une référence visuelle, avec une valeur par défaut de 100 pour une fidélité maximale à la référence.
- **--sw** : Contrôle la force de stylisation basée sur une influence artistique ou un style prédéfini.

- **--iw** : Contrôle l'équilibre entre texte et image de référence pour déterminer leur importance relative.
3 changes: 3 additions & 0 deletions docs/582-312–video2/cours07.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

## Présentation du projet 1

* [Moodboard 1](https://www.youtube.com/watch?v=p03cRSbIQFU)
* [Moodboard 2](https://www.youtube.com/watch?v=PnZnjSFHSzY)

## Explication du [projet 2](projet_02.md)
* [Cahier de pré-production](https://cmontmorency365-my.sharepoint.com/:p:/g/personal/flpilote_cmontmorency_qc_ca/EROE8xk9chtLnZO33gl_hgMBOTZj9-KvitOQIIqjKQTZMw?e=wTnIyh)
* [Formation des équipes](https://cmontmorency365-my.sharepoint.com/:w:/g/personal/flpilote_cmontmorency_qc_ca/EWARe1xWaRBKjEki4WRvD0UBga173W95fjX9bzgzUINTXA?e=y2hwrM)
Expand Down
5 changes: 5 additions & 0 deletions docs/582-401-realite-mixte/cours12.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,11 @@

[📝 Ressource](https://learn.unity.com/tutorial/introduction-to-optimization-in-unity#5ff8ce16edbc2a0023134676){ .md-button }

## Remplir la fiche d'autoévaluation et d'évaluation par les pairs

## Rencontre des équipes
Analyse de l'évaluation. Discussion sur les prochaines étapes. Choisir les objectifs à atteindre d'ici la semaine 13.

## Devoir

[🛠️ Travail 3](./consignes/travail3.md){ .md-button }
41 changes: 40 additions & 1 deletion docs/582-401-realite-mixte/unity/physique.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,49 @@ Dans Unity, il existe un système de physique qui peut nous aider à controller

## Portes - Hinge joint

Dans ce tutoriel, nous explorerons le fonctionnement du Hinge joint qui est un joint qui permet de faire bouger des éléments tel qu'une porte.
Dans ce tutoriel, nous allons explorer la mécanique d'une porte avec un **Hinge Joint** pour permettre à la porte de s'ouvrir et se fermer.

<iframe width="560" height="315" src="https://www.youtube.com/embed/o4wmlcrBF74?si=Q35INM4N8A0oL5-k" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

## Tutoriel écrit

Voici les étapes à suivre :

### Étape 1 : Créer les objets nécessaires
- [ ] **Créer l'objet vide pour la porte** : Commencez par créer un objet vide qui contiendra votre porte.
- [ ] **Ajouter un cube pour la porte** : Ajoutez un cube, qui servira de porte.
- [ ] **Créer un cadre** : Placez également un cadre autour de la porte. Vous pouvez utiliser n'importe quel objet comme cadre, mais il est important qu'il possède des **Box Colliders** pour la détection de collision.

### Étape 2 : Paramétrer le cadre
- [ ] **Ajouter un Rigidbody au cadre** : Le cadre doit avoir un Rigidbody avec l'option **Is Kinematic** activée. Décocher **Use gravity** pour qu'il ne soit pas affecté par la gravité. Cela permettra à la porte de rester fixe pendant que le reste du mécanisme bouge.

### Étape 3 : Configurer la porte
- [ ] **Ajouter un Rigidbody à la porte** : La porte aura également un Rigidbody, mais cette fois-ci, la gravité doit être activée pour qu'elle puisse se déplacer.
- [ ] **Ajouter un Hinge Joint à la porte** : Ce joint permettra à la porte de s'ouvrir et se fermer comme une porte classique. Glissez le cadre de la porte dans la section **Connected body** du hinge joint.

### Étape 4 : Configurer l'axe de rotation
- [ ] **Aligner l'axe de la porte** : Pour que la porte s'ouvre correctement, vous devez ajuster l'axe de rotation.
- [ ] Cliquez sur le bouton **Edit angular limits** du Hinge Joint pour afficher la flèche de rotation. Activez aussi les **gizmos** si ce n'est pas fait.
- [ ] Changez l'axe de rotation pour qu'il corresponde à celui du cadre, en ajustant les axes **X**, **Y**, ou **Z** selon la direction que vous souhaitez pour l'ouverture de la porte. Assurez-vous aussi de modifier la position du **anchor** pour que la flèche soit au point de rotation de la porte.

### Étape 5 : Définir les limites de mouvement
- [ ] **Ajouter des limites de rotation** : Vous pouvez définir jusqu'où la porte peut s'ouvrir en activant les options **Use Limits** dans le Hinge Joint.
- [ ] Ajustez les limites pour restreindre l'ouverture de la porte avec les poignées oranges. Cela empêchera la porte de tourner librement et assurera qu'elle ne dépasse pas la zone souhaitée.

### Étape 6 : Tester la porte
- [ ] **Testez l'ouverture de la porte** : Appuyez sur Play pour voir si la porte fonctionne comme prévu.
- [ ] La porte devrait pouvoir tourner autour de l'axe que vous avez configuré et se fermer ou s'ouvrir en fonction de l'interaction.

### Étape 7 : Ajouter l’interaction avec le joueur
- [ ] **Configurer l’interaction avec le joueur** : Pour que la porte puisse être poussée par le joueur, vous devez ajouter un système d'interaction.
- [ ] Créez des **Direct Interactions** pour que le joueur puisse pousser la porte avec ses mains.
- [ ] Ajoutez un Rigidbody cinématique à la main du joueur et désactivez l'option **Use Gravity** pour éviter que les mains soient affectées par la gravité.

### Étape 8 : Finaliser et tester avec la manette
- [ ] **Testez avec la manette** : Une fois l’interaction configurée, utilisez la manette pour tester l’ouverture de la porte.
- [ ] La porte devrait s’ouvrir lorsque vous interagissez avec elle. Vous pouvez ajuster la limite de rotation si nécessaire pour modifier l’angle d’ouverture.




## Pont - Hinge joint
Expand Down
11 changes: 9 additions & 2 deletions docs/582-533-controle-qualite/cours12.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
# Cours 12

## Présentation théorie du contrôle de la qualité
[📁 Voir la présentation](https://cmontmorency365-my.sharepoint.com/:b:/g/personal/lora_boisvert_cmontmorency_qc_ca/EbORw7nH2j9Epj5s-m1xY58BtO5SrE7HiO0TXAMxanut8g?e=YAEyth){ .md-button }


## Activité sur le contrôle de la qualité en jeu vidéo
Téléchargez le dossier suivant, il contient le jeu à tester ainsi que ses dépendances. Ouvrez ensuite le .exe pour tester le tout.

[📁 Jeu](https://cmontmorency365-my.sharepoint.com/:f:/g/personal/lora_boisvert_cmontmorency_qc_ca/Eqc0RbqR1dpJoJWRuF2wUQoBI0fwS_Q6bD8Nbie4NokFJQ?e=bivfUR){ .md-button }

## Présentation du projet final
Voir instructions sur Teams.

[📁 Exemple de projet final](https://cmontmorency365-my.sharepoint.com/:w:/g/personal/lora_boisvert_cmontmorency_qc_ca/EQIw4Mej8vtKjdsqyHPpBcYBkDEVVlVX60VEMO6wj1CBog?e=9rjo7F){ .md-button }




## Présentation du projet final.
[📁 Voir la présentation](https://cmontmorency365-my.sharepoint.com/:b:/g/personal/lora_boisvert_cmontmorency_qc_ca/EbORw7nH2j9Epj5s-m1xY58BtO5SrE7HiO0TXAMxanut8g?e=YAEyth){ .md-button }

6 changes: 5 additions & 1 deletion docs/582-533-controle-qualite/cours14.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,11 @@ Cours Lora: 12h40 à 15h20
Cours Charlène: 14h20 à 17h

## Conférence de la guilde du jeu vidéo et de Synthèse
14h20 à 15h20: C-1712
14h20 à 15h20: C-1712

## Guide du travailleur autonome
[📁 Accéder au guide](https://cmontmorency365-my.sharepoint.com/:b:/g/personal/lora_boisvert_cmontmorency_qc_ca/Edg24C6YapVOiRO9agjLVsoBkFHpwhdj7osLAUoZNOf7jA?e=VFV52N){ .md-button }


## Avancer le projet final
[📁 Voir la présentation](https://cmontmorency365-my.sharepoint.com/:b:/g/personal/lora_boisvert_cmontmorency_qc_ca/EbORw7nH2j9Epj5s-m1xY58BtO5SrE7HiO0TXAMxanut8g?e=YAEyth){ .md-button }
12 changes: 6 additions & 6 deletions docs/582-533-controle-qualite/cours15.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Cours 15
## ⚠️ Heure et jour des cours modifié: Mardi 10 décembre de 12h à 14h pour tous

## 🚨 Remise du projet final
Avant le cours.

## Présentation du projet final devant la classe

## Guide du travailleur autonome
[📁 Accéder au guide](https://cmontmorency365-my.sharepoint.com/:b:/g/personal/lora_boisvert_cmontmorency_qc_ca/Edg24C6YapVOiRO9agjLVsoBkFHpwhdj7osLAUoZNOf7jA?e=VFV52N){ .md-button }

## Avancer le projet final
[📁 Voir la présentation](https://cmontmorency365-my.sharepoint.com/:b:/g/personal/lora_boisvert_cmontmorency_qc_ca/EbORw7nH2j9Epj5s-m1xY58BtO5SrE7HiO0TXAMxanut8g?e=YAEyth){ .md-button }

## 🚨 Remise du projet final
À la fin du cours
Loading

0 comments on commit d58d430

Please sign in to comment.