Ressources Magic Makers

 

Site en maintenance

 
Nous sommes actuellement entrain de mettre à jour les ressources de ce site.
Pendant la mise à jour vous pouvez retrouver tous les nouveaux contenus sur le site
 

https://lp-magicmakers.fr/

 
 

Environnement

Modèles 3D avec Tinkercad

Voyons les bases de la modélisation sur TINKERCAD, puis comment importer notre Objet dans Unity et lui donner un Collider adéquat. 

Aller sur Tinkercad

 

Présentation Vidéo

Mouvement : Faire faire des Aller Retours à des Objets

Tu peux regarder cette vidéo tuto qui présente la création d’une plateforme qui bouge (aller-retour) et la programmation nécessaire pour que le joueur suive la plateforme  ! 

 

A lire avant de regarder la Vidéo 

Pour pouvoir Dupliquer et Déplacer un objet en mouvement que tu vas créer. Il va falloir créér un dossier vide dans la Hierarchie : Clic droit > Create Empty. Renomme ce dossier vide.

Dans mon exemple j’anime une plateforme en Mouvement, n’hésites à donner un nom qui correspond à ton objet. 

DOS1

Puis tu vas Glisser, Déposer à l’intérieur du dossier « PlateformeMVT » l’objet à qui tu veux donner du mouvement. 

DOS2

Et voilà c’est tout pour l’instant ! 

Après avoir regarder la vidéo, tu pourras Dupliquer le dossier « PlateformeMvt » qui contient ton Objet en Mouvement si tu veux avoir un autre Objet dans la scène avec le même mouvement.

Tu pourras donc déplacer le dossier « PlateformeMvt » qui contient l’objet en mouvement, et non l’objet lui-même !  Car les déplacements de l’objet son relative à sa position dans le monde. Et son monde à lui c’est son dossier « PlateformeMvt » qui le contient. Mais l’objet s’en fiche de savoir où est son monde dans la scène. Tu peux donc ainsi avoir un second Objet en mouvement ailleurs dans la scène

Présentation Vidéo 

Tu trouveras ci-dessous le tuto écrit pour réaliser le mécanisme de jeu d’une autre manière pour la partie aller-retour et encore en-dessous le code pour que le joueur suive la plateforme.

Explication

Pour faire des aller-retours allons utiliser la fonction mathématique sinus qui ressemble à ça.

Elle permet de récupérer une valeur qui évolue régulièrement entre -1 et 1 au cours du temps.

 

Principe du script

A chaque frame on déplace légèrement notre objet en récupérant la valeur du sinus et en ajoutant cette valeur à la position initiale de notre objet pour le faire bouger.

Pour mémoriser la position initiale, on la stocke dans une variable de type Vector3 pour pouvoir la réutiliser à tout moment. Pour cela on crée une variable, et on récupère sa valeur dans la fonction Start().

Pour récupérer le sinus on va utiliser la fonction Mathf.Sin(float temps). Pour récupérer le temps réel on a la fonction Time.time.

Pour choisir l’axe de déplacement, on crée également une variable publique de type Vector3.

La variable direction permet aussi de gérer à quel point le mouvement sera important sur les différents axes. 

On peut également gérer la vitesse de déplacement en modifiant la fréquence de notre sinus à l’aide d’une variable publique.

 

Bouger avec les plateformes

Quand on a des plateformes qui bougent, on peut vouloir que le personnage se déplace en même temps que celle-ci. Pour cela on va utiliser la notion de parenté.

La parenté dans Unity

Dans l’interface Unity quand on crée des objets, on peut les mettre les uns dans les autres.

Par exemple ci dessous on a un objet plateforme qui bouge qui contient l’objet plateforme solide. On dit que plateforme qui bouge est le parent et plateforme solide est l’enfant.

Quand un objet parent se déplace, tous ses enfants se déplacent de la même manière que lui.

Principe du Script

Pour que le joueur bouge avec la plateforme, tant qu’il est sur celle-ci, on va faire en sorte que le joueur soit enfant de la plateforme qui bouge. Pour cela on a la variable transform.parent.

On peut utiliser les fonctions OnTriggerEnter pour détecter le début de la collision et OnTriggerExit pour détecter la fin de la collision.

Remarque : ce script est prévu pour être sur la plateforme qui bouge et pas le joueur.

On a deux étapes dans ce script :

    1. Quand le joueur entre en collision avec un objet, cet objet devient parent du joueur
    2. Quand le joueur sort de la collision on réinitialise son parent
Étape 1
Étape 2
 

Collider et Trigger – que faire quand on a besoin des deux ?

Pour que notre script fonctionne il faut que le collider de l’objet soit en mode Trigger. Cependant en mettant le collider en mode Trigger, l’objet n’est plus solide et le joueur passe à travers. 

On va donc avoir besoin de 2 objets différents :

    • un objet en mode Trigger qui bouge qui sera parent du joueur et de la plateforme solide
    • un objet en mode Collider enfant de l’objet en mode Trigger qui servira pour se poser dessus. Étant lui-même enfant de l’objet qui bouge, il bougera aussi avec lui.

Voici les différentes étapes pour faire ça facilement :

    1. Créer la plateforme solide ou le joueur se posera avec un collider.
    2. Créer un objet vide dans cette plateforme et le renommer (BoiteQuiBouge dans l’exemple)
    3. Ajouter un Collider à cet objet vide. Le collider prend alors directement la forme de l’objet parent.
    4. Passer le Collider de l’objet vide en IsTrigger
    5. Inverser la parenté (voir schéma)
   Étape 5a : état intial

 Étape 5b : sortir la Boite qui bouge
 
 Étape 5c : mettre la plateforme dans la Boite
    1. Mettre les scripts de mouvement et le script devenirParent sur la boite qui bouge
    2. Vérifier que le joueur a bien le tag Player
    3. Pour être sûr que la collision soit bien détectée on peut agrandir le collider de la boite pour qu’elle soit un peu plus grande que la plateforme elle même.

le collider de la boite dépasse de la plateforme

Faire Tourner des Objets

Les rotations sont utiles pour avoir des environnements qui bougent, faire tourner des objets sur eux-mêmes ou autour d’un centre, ouvrir une porte, faire des orbes de protection…

Pour gérer la rotation d’un objet on va s’intéresser à son Transform

 

Vidéo tuto Faire tourner un gameobject

Vidéo tuto qui présente la création d’un script pour créer des plateformes qui tournent !

Tourner sur lui même (Rotate)

Pour faire tourner un objet sur lui même on peut utiliser la fonction transform.Rotate( Vector3 anglesRotation). Lorsque cette fonction est appelée, elle fera tourner l’objet une fois dans l’angle indiqué sur chacun des axes. Le point d’origine de ces axes est le centre de l’objet. 

Par exemple en utilisant la fonction Update on peut tourner à chaque frame de 5° atour de l’axe X

On peut créer une variable publique pour changer plus facilement la rotation depuis l’interface d’Unity.

Enfin la fonction Update est appelée à chaque Frame. Mais, selon la puissance des ordinateurs, il n’y a pas autant de Frame par seconde. Pour s’assurer que la vitesse de rotation soit la même sur tous les ordinateurs, on va multiplier l’angle par le temps écoulé depuis la dernière frame grâce à la variable Time.deltaTime.

 

Si l’on souhaite faire tourner une seule fois l’objet dans une position particulière, alors on n’as pas besoin de s’occuper du temps ni de rajouter le Time.deltaTime.

Tourner autour d’un autre objet (RotateAround)

Pour faire tourner un objet autour d’un autre nous allons utiliser la fonction transform.RotateAround( Vector3 centre, Vector3 Axe, float angle) :

  • Le centre de rotation est l’objet autour duquel on veut faire tourner l’objet. On peut facilement récupérer la position d’un objet grâce à son transform et à une variable publique.
  • L’axe permet de dire comment tourner autour du centre. Par exemple avec un axe (0,1,0), l’objet tournera autour de l’axe Y.
  • L’angle permet de régler la vitesse de rotation en précisant de combien de degré l’objet doit bouger. On pense à le multiplier par le temps passé depuis la dernière Update.
 

Effets Trampoline avec les Pyhsics Materials

Découvres comment faire rebondir tes objets de jeu lorsqu’ils heurtent un mur ou le sol dans Unity

L’étape principal consiste à utiliser un Pyhsic matérial 3D  et à en modifier les propriétés afin qu’il se comporte comme un objet rebondissant.

Étape 1 : Créer l’objet qui va servir de trampoline 

Positionnez leTrampoline de manière à ce que le Personnage puisse sauter au-dessus.

(J’ai également ajouté une couleur jaune au Trampoline. En glissant un matérial que j’avais déjà précédemment. )

 

Étape 2 : Créer un Physic Material « Rebond »

Faites un clic droit dans le panneau des actifs> Créer> Matériel physique> Nommez-le « Rebondissant »
 

Étape 3 : Modifier les propriétés du  Physic Material « Rebond »

Sélectionne le matériau Rebond > Tu vas pouvoir afficher les propriétés de ce matérial sur le côté droit, dans le panneau Inspecteur. 

Définissez les frictions sur 0 (pour retirer tout forme d’adhérence) 

Et le rebond (Bounicess) sur 1

 

Étape 4 : Appliquez le Physic Material au Trampoline

Faites glisser et déposez le matérial « Rebond » sur l’Objet Trampoline dans la scène.

 

Et voilà ! Notre Joueur rebondit maintenant !

Créer tes salles et/ou ton Niveau avec ProBuilder

Pour créer des environnements fermés (donjons, intérieur, maison…), on va utiliser ProBuilder !

Tu trouveras ci-dessous les bases de l’outil pour commencer à créer ton décor !

En savoir plus sur ProBuilder

 

Présentation Vidéo 

0 min >1min : Installation de ProBulder 

1 min >10 min – PARTIE 1 : Présentation de l’outil et commencer créer une salle très détaillée. 

10 min >17 min – PARTIE 2 : Création d’un niveau entier intérieur, rapidement ( Visualiser la PARTIE 1 n’est pas obligatoire)

 

Ouvrir ProBuilder

Pour pouvoir utiliser ProBuilder, on commence par ouvrir la fenêtre de ProBuilder :

 

Si tu n’as pas ProBuilder, tu peux l’ajouter depuis le package manager.

 

 

Les outils importants

Pour commencer, tu as plusieurs outils pour modifier tes formes :

 
  • Outils d’édition classique Unity
 
  • Édition par vertex (point)
 
  • Édition par edge (arête)
 
  • Édition par face
 

Avec l’outil New Poly Shape, tu peux créer la forme que tu veux !

Tu peux aussi créer des formes particulières :

Formes
    • Cube : 0:10
    • Escaliers : 0:21
    • Prisme : 1:00
    • Cylindre : 1:08
    • Plan : 1:25
    • Porte : 1:30
    • Pipe : 1:50
    • Cône : 2:00
    • Arche: 2:10
    • Anneau (Tore) : 2:30

Tu as ensuite plein d’outils pour modifier tes formes ! En voici quelques uns :

Créer une face dans une autre face

Utilise l’outil pour modifier les dimensions et maintiens la touche « SHIFT » appuyée pour Extrude.

Extrude une face

Sélectionnez la face (en mode sélection par face), mettez vous en mode déplacement de Unity, puis appuyez sur la touche « SHIFT » (majuscule) – cf schéma

 

Supprimer une face

Sélectionnez la face (en mode sélection par face) puis appuyez sur la touche « BACKSPACE » (retour arrière)

Retirer un morceau d’une forme

On commence par sélectionner les deux faces sur lesquelles on veut créer une nouvelle face, puis :

    • on maintient SHIFT avec l’outil pour régler les dimensions pour créer une nouvelle face
    • on modifie sa taille sans maintenir SHIFT
    • on la déplace où on veut
    • on supprime les faces

On va ensuite compléter les faces manquantes :

    • on sélectionne l’outil pour modifier les arrêtes et avec l’outil de déplacement + SHIFT on ajoute nos faces manquantes

Autre manière de faire :

Tu peux aussi supprimer une face, utiliser l’extrude pour bouger la seconde face et compléter les faces manquantes en même temps, puis la supprimer !

Rééditer une forme

 

Créer des murs

On commence par créer une forme et on extrude une face dans notre forme (sur le dessus et le dessous).

On supprime la nouvelle face du dessus et celle du dessous.

On augmente la taille de nos murs.

 

Remplir un trou

 

Diviser une forme

Alt + U pour ‘Insert Loop Edge’

Coller des angles

Tu peux déplacer ton objet et appuyer sur V en sélectionnant un des coins de l’objet afin de le « clipser » aux autres objets pour qu’il soit parfaitement aligné

Outils sur les angles (les points)

    • Tu peux connecter des points avec ‘Connect’
    • Tu peux faire converger plusieurs points en un seul point avec ‘Collapse’
    • Tu peux rassembler des points assez proches avec ‘Weld’

Sélectionner des faces

Tu as deux manières de sélectionner des faces :

    • une qui prend toutes les faces entières dans la sélection
    • une qui prend toutes les faces dont le croisement est dans la sélection

Réduire une forme avec plusieurs faces

Tu peux sélectionner l’éditeur de face et sélectionner toutes tes faces en appuyant sur la touche ‘Control’

Ou tu peux sélectionner tous les points des faces que tu veux bouger !

Ajouter un Material

Tu peux ajouter un Material en le glissant sur ta forme !

Si ton Material ne s’affiche pas quand tu le glisses sur un GameObject de la scene, tu peux le glisser sur le gameObject dans la Hierarchy !

 

Créer un Terrain

Voyons dans les grandes lignes comment fonctionne l’outil « terrain » intégré à UNITY pour commencer à faire son game design.

En savoir plus sur Doc Officiel Terrain

 

Présentation Vidéo