EloiStree / 2024_07_19_CharleroiStreetAR

Apprendre à faire Unity3D par le street AR pour commencer dans l'industrie du jeux vidéo
0 stars 0 forks source link

Workshop-Day: Bouger des drones #166

Open EloiStree opened 3 months ago

EloiStree commented 3 months ago

Introduction au Contrôle d'un Drone Jouet dans Unity3D

357654530-e5a93644-547f-4a6c-8f30-04df7377dabb image 3D:

Pièce de Technocité Charleroi:
image
https://github.com/EloiStree/2024_07_17_OpenBrushTechoDesign.git

Ajouter tout les packages d'un coup:

    "be.elab.chatgptdrone": "https://github.com/EloiStree/2024_09_09_ChatGptDrone.git",
    "be.elab.helicoptertoy": "https://github.com/EloiStree/2023_02_19_KidToyHelicopterModeCode.git",
    "be.elab.mydrawablecube": "https://github.com/EloiTeaching/2024_08_23_WOWNCG_MyDrawableCube.git",
    "be.elab.oneinputgame": "https://github.com/EloiTeaching/2024_08_23_WOWNCG_OneInputGame.git",
    "be.elab.sketchfabdronemesh": "https://github.com/EloiStree/2024_08_05_SketchFabDroneMesh.git",
    "be.elab.skidtoycar": "https://github.com/EloiStree/2023_11_01_KidToyCarSkidSteeringCode.git",
    "be.elab.tellotoy": "https://github.com/EloiStree/2023_02_19_KidToyDroneTelloModeCode.git",
    "be.elab.triangleprismjumper": "https://github.com/EloiStree/2024_07_29_JumpTrianglePrism.git",
    "be.elab.uvdrawabledrones": "https://github.com/EloiStree/2024_08_05_UvDrawableDrones.git",
    "be.elab.openbrushtechoroom": "https://github.com/EloiStree/2024_07_17_OpenBrushTechoDesign.git",

Aujourd'hui, nous allons apprendre les bases de la programmation dans Unity3D en utilisant un drone jouet pour enfant. Ce drone se déplace dans quatre directions :

  1. Avant et arrière
  2. Gauche et droite
  3. Haut et bas
  4. Rotation gauche et droite

Objectif de l'Atelier

Nous allons explorer comment déplacer notre drone en utilisant les commandes de base suivantes :

Nous allons également apprendre à lire les entrées du clavier et de la manette de jeu pour contrôler le drone.

Ce Que Nous Allons Couvrir

  1. Mouvements de Base : Apprenez à faire avancer, reculer, tourner et monter ou descendre le drone.
  2. Contrôles : Découvrez comment utiliser les touches du clavier et les boutons de la manette pour manipuler le drone.
  3. Collisions et Physique (si le temps le permet) : Nous examinerons comment le drone interagit avec son environnement et réagit aux collisions.

Ressources Complémentaires

Pour aller plus loin, vous pouvez consulter les codes suivants qui montrent des exemples de contrôle de véhicule et de drone dans Unity3D :

Bon, plus sérieusement que les précédents liens.

Préparez-vous à découvrir comment donner vie à votre drone en programmant ses mouvements dans Unity3D !


Il y a deux façons d'apprendre à nager : commencer dans le petit bassin ou être jeté à l’eau par un oncle téméraire…

Si vous êtes du genre à plonger directement dans le grand bain, je vous recommande de vous familiariser avec la manipulation d'objets dans Unity 3D et de découvrir le C# en suivant des tutoriels sur YouTube, tout en vous aidant de ChatGPT.

Mais aujourd’hui, nous allons d’abord enfiler nos brassards et tester la température de l’eau.

Autrement dit, nous allons débuter en créant un petit jeu de drone sur Scratch :) Ensuite, nous verrons comment le reproduire en C#.

En fin de journée, si le C# vous paraît trop complexe, ne vous inquiétez pas. J'ai préparé des scripts que nous utiliserons ensemble demain.

Exercice du matin

Solution: https://youtu.be/RcsA036qpR8?t=772

image
https://scratch.mit.edu/projects/1057647395/

image
https://scratch.mit.edu/projects/1062963637/editor/

Programme d’aujourd’hui :

  1. Créer un compte sur Scratch
  2. Créer un nouveau projet et le sauvegarder
  3. Déplacer votre personnage de gauche à droite
  4. Créer un projectile qui rebondit sur les murs
  5. Gérer les tailles des objets
  6. Faire apparaître des projectiles toutes les 10 secondes :)
  7. Prenez le temps de bien régler le déplacement de votre drone :
    • Rotation de gauche à droite
    • Déplacer de l’arrière à l’avant
    • Vous pouvez, si vous le souhaitez, gérer la taille pour simuler la hauteur
    • Ajoutez quelques variables pour paramétrer tout cela au besoin
  8. Créons un peu de level design :
    • Dessinez du vert sur les bords de votre drone
    • Dessinez un niveau avec des murs rouges
    • Ajoutez une collision de couleur et repositionnez le joueur en cas de contact
  9. Ajouter un chronomètre pour le fun :
    • Créez un événement lorsque le joueur est touché
    • Créez une variable de temps
    • Utilisez le minuteur de Scratch pour stocker le temps
    • Lorsque le joueur est touché, réinitialisez le chronomètre
  10. Vous êtes déjà en train de créer un jeu :)

Tout ce que vous venez de faire en Scratch vous a pris quelques minutes. Réaliser tout cela dans Unity3D prendra des heures et nécessitera un certain savoir-faire.

Scratch est un outil puissant pour apprendre les bases et créer des jeux pour le plaisir. Je vous encourage à pratiquer en participant à des jams sur Scratch, même en déplacement.

Tous les concepts appris dans Scratch seront utiles dans Unity3D et sont essentiels à maîtriser pour se lancer dans ce domaine.

Exercice de l'après midi

Solution de l'exercice: https://youtu.be/RcsA036qpR8?t=5752

Sur ce, nous allons essayer de créer un simple drone dans Unity3D.

  1. Sur le cube créé hier, ajoutez un script nommé "DroneMovementMono"
    • Ajoutez 4 variables allant de -1 à 1 pour simuler une manette de jeu
    • Utilisez-les pour :
      • faire avancer et reculer le drone
      • le faire tourner de gauche à droite
      • le faire monter et descendre
    • Ajoutez quelques variables pour permettre de configurer cela depuis l’éditeur
  2. C’est bien beau d’avoir un drone qui bouge, mais il traverse le décor 🤔
    • Ajoutez un Rigidbody au cube pour lui donner de la gravité
    • Désactivez temporairement la gravité et les rotations
    • Ajoutez un Collider si ce n'est pas déjà fait pour lui donner du volume
    • Ajoutez quelques cubes et autres objets Unity3D pour vérifier les collisions.
  3. Magnifique, nous avons un drone qui bouge 😊🍺

Cependant, il n’est pas pratique de le contrôler avec l'interface par défaut de Unity3D.

Nous avons déjà bien progressé aujourd’hui. Demain, nous verrons comment créer un niveau pour notre drone en utilisant l’Asset Store et le Package Manager.

Prenez le reste de la journée pour pratiquer l'exercice d’hier et publiez votre jeu de drone.

Solution à l'exercice

image
Code:

Pour le fun, je mets à votre disposition ce code qui crée un circuit, même si ce n'est pas le sujet principal d'aujourd'hui. Cependant, si vous êtes en avance, vous pouvez y jeter un œil : https://github.com/EloiStree/2024_09_03_SkyRidingPath

EloiStree commented 3 months ago

LMGTFY

image
https://youtu.be/3R_V4gqTs_I

image
https://youtu.be/a5Fn4NP9znQ

EloiStree commented 2 months ago

Example de projets Scratch

image

image

image
https://scratch.mit.edu/projects/968405721/

image

image
https://scratch.mit.edu/projects/972007352/

image https://scratch.mit.edu/projects/971971914/

image
https://scratch.mit.edu/projects/966307753/

EloiStree commented 2 months ago

Scan de l'espace de jeu

J'ai scanné la pièce de la formation. Vous pouvez la trouver ici :

image

Le fichier est disponible sur ce lien :
https://github.com/EloiStree/2024_07_17_OpenBrushTechoDesign.git

Vous pouvez l'importer pour le jeu de drone que nous allons créer.

Nous aurions pu utiliser des techniques comme Nerf, du Gaussian ou de la photogrammétrie, par exemple :

Une application que vous pouvez utiliser pour scanner la pièce:

Note: Connaissez vous Sora et le 3D Gaussian :)

image
https://youtu.be/cO-V9URMaX0?t=126

image image
https://openai.com/index/sora/

EloiStree commented 2 months ago

Code d'un drone par Chat GPT

image https://github.com/EloiStree/2024_09_09_ChatGptDrone/blob/main/README.md Git: https://github.com/EloiStree/2024_09_09_ChatGptDrone.git

EloiStree commented 2 months ago

Scratch Example

image
https://scratch.mit.edu/projects/1065531252/