0% ont trouvé ce document utile (0 vote)
66 vues14 pages

TP1 TP2

Ce document décrit un tutoriel sur la création d'un jeu vidéo en utilisant Unity, en se concentrant sur la configuration de l'environnement de jeu avec des Tilemaps et la gestion des mouvements du joueur. Il couvre des étapes telles que l'importation d'assets, la création de Tilemaps, l'ajout de composants physiques, et l'implémentation de mouvements et d'animations pour le personnage. Le tutoriel inclut également des instructions pour gérer les collisions et les animations, ainsi que des conseils pour tester le jeu.

Transféré par

lellah.khaled
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
66 vues14 pages

TP1 TP2

Ce document décrit un tutoriel sur la création d'un jeu vidéo en utilisant Unity, en se concentrant sur la configuration de l'environnement de jeu avec des Tilemaps et la gestion des mouvements du joueur. Il couvre des étapes telles que l'importation d'assets, la création de Tilemaps, l'ajout de composants physiques, et l'implémentation de mouvements et d'animations pour le personnage. Le tutoriel inclut également des instructions pour gérer les collisions et les animations, ainsi que des conseils pour tester le jeu.

Transféré par

lellah.khaled
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

3 LM Jeux Vidéo Imen Hmida

TP 1 : Dessiner l’environnement du jeu avec Tilemap & Tile


Palette

Après avoir installé les Assets du AssetStore.unity.com :


1. Project : Assets/Pixel Aventures/Assets/Terrain : Sélectionner la 1ère image
2. Inspector : Pixel per unit ➔ 16 et Sprite mode ➔ multiple
Apply

3. Sprite editor: Slice: changer le type ➔ Grid by cell size | pixel size ➔ 16 x 16

4. Hierarchy : Créer une Tilemap nommée « Terrain »


3 LM Jeux Vidéo Imen Hmida

5. Window : 2D ➔ Tile Palette

6. Créer nouvelle palette : Enregistrer la sous « Assets/Terrain »

7. Projet : Drag and drop l’image dans la Tile Palette ; enregistrer sous
Assets/Terrain/Tiles
8. Utiliser les unités d’images pour créer la scène/terrain avec l’outil « active brush » ou
la raccourcis du clavier « U »
3 LM Jeux Vidéo Imen Hmida

9. Refaire les étapes 2 et 3 avec l’image sous Background puis drag and drop cette image
dans la Tile Palette
10. Créer une Tilemap dans la même Grid nommée Background

11. Vous pouvez changer les différentes palettes :

12. Lorsque vous dessinez un background, elle va couvrir le terrain !


• Inspector: Sorting Layer ➔ Add Sorting Layer: créer 2 « Layers » dans cet ordre:
• Essayer de dessiner avec active Tilemap : Background !
3 LM Jeux Vidéo Imen Hmida

13. Hierarchy : créer 2D object ➔ Sprites ➔ Square nommé « Player »


• Vous allez avoir un carreau, vous pouvez le déplacer dans la scène en utilisant la
raccourcis « w »
• Déplacer le au-dessus du terrain
14. Project : Assets/Pixel Aventures/Assets/Main caracters/Virtual guy
• Drag and drop l’image idle (32x32) du caractère ➔ Inspector : Sprite
• Changer la taille du pixel de tous les images dans ce dossier : Pixel per unit ➔ 16
15. Sélectionner Player puis Inspector : Add component ➔ Rigidbody2D (toujours on
choisit rigidbody2D dans le cas du 2D jeux vidéo)
➢ Rôle principal de Rigidbody2D :
Permet à un objet 2D d’être affecté par le moteur physique de Unity (gravité, forces,
collisions, etc.).
➢ Ce que Rigidbody2D permet de faire :
• Appliquer la gravité à un objet.
• Détecter les collisions avec d'autres objets physiques (via un Collider2D).
• Déplacer un objet de manière réaliste, par l'application de forces, de vitesses, ou d'impulsions.
• Réagir à des forces externes (comme un coup de vent ou une explosion).
• Gérer les interactions dynamiques entre plusieurs objets (comme des rebonds ou des
glissements).

16. Inspector : Add component ➔ Box Collider 2D (permet de mettre 2 objets en


collision lorsqu’ils se touchent)
• Cliquer sur Edit Collider puis ajuster le carreau autour le caractère pour qu’il
devient plus petit que le caractère.
3 LM Jeux Vidéo Imen Hmida

• Cliquer sur play pour Tester !

17. Ajouter un Tilemap Collider 2D pour le terrain !


• Ajouter Composite collider 2D pour le terrain
• Check « Used by Composite » dans Tilemap Collider 2D
• Cliquer sur play pour Tester !

18. Pour Fixer le terrain, il faut le mettre Statique (voir figure ci-dessous). Puis Testez le
jeu.
3 LM Jeux Vidéo Imen Hmida

TP 2 : Déplacer ton joueur 2D!

19. Hierarchy : Sélectionner Player


Inspector : Add component ➔ new script nommé “PlayerMovement”. Puis double
clique sur le script crée pour ouvrir l’éditeur Visual Studio :

Vous allez avoir 2 fonctions :


1. Void Start () : contient le traitement qu’il va s’exécuter lorsque le jeu
commence
2. Void Update () : contient le traitement qu’il va s’exécuter chaque ‘frame’ par
seconde au cours du jeu (par exemple 60 images/ 1 sec).
20. Essayer d’écrire : Debug.Log(“hello world!”); dans la fonction Start()
• Tester le jeu
• Voir ce qui a donné dans la console
• Déplacer cette ligne de code dans la fonction Update() et tester

❖ Sauter :
21. Vous allez maintenant ajouter un mouvement ‘jump’ pour votre caractère avec la
touche du clavier ‘espace’
3 LM Jeux Vidéo Imen Hmida

• On veut donner un mouvement pour le composant Rigidbody2D de notre


caractère
• Vector3 est une variable qui contient 3 valeurs (x, y, z)
• On peut utiliser Vector2(x, y) c’est suffisant pour un jeu 2D
• Lorsque vous testez le jeu en appuyant sur « espace » et ne lâcher pas le
caractère ne retournera pas sur le terrain, donc on modifie GetKey ➔
GetKeyDown
• Essayer de modifier gravity scale et voir ce que ça va donner.

22. Edit➔ Project Settings ➔ Input Manager (unity input system) : pour voir tous les
boutons qu’on peut l’utiliser dans les Scripts
3 LM Jeux Vidéo Imen Hmida

23. Créer une variable Rigidbody2D nommé « rb »

24. Remplacer GetKeyDown(“space”) par GetButtonDown(“Jump”) et modifier son code


comme suit :

rb.velocity = new Vector2(rb.velocity.x, 14f);

25. Dans la fonction Start() initialiser cette variable avec GetComponent<Rigidbody2D>()

26. Par suite remplacer GetComponent<Rigidbody2D>() par « rb » dans le code

❖ Se déplacer à gauche et à droite :


27. Dans la fonction Update() : Créer une variable de type float nommé « dirX »

float dirx = Input.GetAxis(“Horizontal”);

28. Ajouter cette ligne pour déplacer le caractère horizontalement :

rb.velocity = new vector2(dirX * 7f, rb.velocity.y);

29. Essayer le jeu puis remplacer GetAxis par GetAxisRaw et interpréter ce qui se passe.
3 LM Jeux Vidéo Imen Hmida

30. Pour que la caméra suit le caractère lors de son mouvement :


• Déplacer Main Camera sous Player

• Dans Transformer modifier les valeurs de sa position :

• Pour enlever les rotations lorsque le caractère tombe du terrain il faut :


Sélectionner Player ➔ Regidbody2D ➔ Constraints ➔ Freeze rotation Z

❖ Ajouter des animations


31. Project : Assets/Pixel Aventures/Assets/Main caracters/Virtual guy
Inspector : Faire le slice pour l’image idle(32x32) (Modifier le carré bleu afin qu’il
limite les dimensions de la coupe pour toutes les autres positions de l’animation.)
3 LM Jeux Vidéo Imen Hmida

32.Project : créer une animation nommée ‘Player_idle’ avec le bouton droit de la


souris

Maintenant drag and drop cette animation vers l’objet Player dans hiérarchie.
Vous allez avoir un autre fichier : ce fichier relie l’animation avec l’objet Player.
33. Ouvrir la fenêtre animation dans window (ou ctrl+6):

Sélectionnez l’objet "Player", ouvrez l’image "idle (32x32)", puis sélectionnez toutes
les sous-images (sprites) qu’elle contient (sélectionnez la première + shift +
sélectionnez la dernière).
3 LM Jeux Vidéo Imen Hmida

Tester l’animation en cliquant sur ‘espace’ ou le petit bouton ‘play’ dans la fenêtre
animation.

C trop rapide !
Cliquez sur les trois points à droite de la fenêtre animation et cliquez sur ‘show
sample rate’

Par défaut il est égal à 60, changez-le à 30, Tester, puis à 18 et tester.

Ouvrir dans window : animator, vous allez voir que l’animation du player se faite une
seule fois quand le jeu commence.

34. Vouz devez mettre l’animation en boucle / Loop :


1. Project : sélectionnez le fichier d’animation que vous avez créé.
2. Inspector : sélectionnez Loop Time
3. Testez
35. Créer animation ‘Player_runnig’ : refaire le même travail avec l’image run(32x32) à
partir de l’étape 32
36. Il faut dire à Unity comment faire la transition d’une animation (player) à une autre
(run).

Ouvrir animator dans window : clique droite sur Player_running ➔ make Transition
3 LM Jeux Vidéo Imen Hmida

Lier Player_running avec Player_idle puis créer une transition inversement !

37. Il faut ajouter une condition pour séparer les 2 animations :


• Sélectionner la première transition du player_running vers player_idle
• Créer une variable booléenne :

• Dans Inspector ➔ déséléctionner “Has Exit time” / settings: Transition duration = 0


3 LM Jeux Vidéo Imen Hmida

38. Dans la partie conditions : choisir la variable crée et mettre la « False » c.a.d : quand
la variable booléenne Running est fausse la transition du Player_running vers
Player_idle se déclenche.
➢ L’animation Player_running s’arrête
➢ L’animation Player_running se déclenche
39. Sélectionner la deuxième transition du player_idle vers player_running et régler sa
condition.
40. Pour terminer, ouvrir le script du player et mettre à jour le code comme ci-dessous :

41. Ajouter deux variables pour modifier la vitesse du personnage et la force de saut:
« speed » / « Jforce »
• Initialiser ces deux variables avec les valeurs 7 et 14.
• Remplacer les valeurs dans le code par les deux variables créées.
• Pour modifier les variables dans l’interface de l’éditeur Unity, ajouter cette
propriété avant la déclaration de chaque variable : [SerializeField]

42. On veut voir le changement de la direction du caractère :

Dans votre code (dans la fonction Start()), créez une variable nommée sprite qui contient
le composant SpriteRenderer, responsable de l’affichage graphique de votre personnage
(l’image) :
3 LM Jeux Vidéo Imen Hmida

• Déclarer la variable en haut de ton script : private SpriteRenderer sprite;


• Et ensuite dans Start() : sprite = GetComponent<SpriteRenderer>();
• Ajoutez maintenant cette ligne de code dans la condition où votre personnage change
de direction vers la gauche :

sprite.flipX = true ;

• Pour qu’il puisse revenir à sa direction initiale, ajoutez cette ligne de code dans la
condition où votre personnage avance vers la droite :

sprite.flipX = false ;

Vous aimerez peut-être aussi