Effets de particules pour feu et fumée dans Unity

Page 1 sur 43Lecteur de document UniversityLib

Effets de particules pour feu et fumée dans Unity

Programming, Math, etc. · textbook

Mohamed Amine MEZGHICH Ingénieur ENSI Doctorant en traitement d’image, Lab. CRISTAL,ENSI E‐mail:[email protected]

Cycle Ingénieur

Année universitaire 2012‐2013

1

(cid:121) Ce chapitre aborde certains effets de rendu que les développeurs peuvent (cid:121) Ce chapitre aborde certains effets de rendu que les développeurs peuvent

employer dans Unity.

d

(cid:121) Pour créer des mondes 3D plus dynamiques, outre les matériaux et les d reproduire les

é P textures simples, on peut utiliser des effets pour caractéristiques du monde réel, souvent en les exagérant.

D l

té i

t l

d

t

i

l

(cid:121) Vous allez découvrir comment obtenir des effets plus polyvalents avec les

systèmes de particules dans le monde 3D.

(cid:121) Les jeux utilisent les effets de particules pour de nombreux effets, du brouillard à la fumée en passant par les étincelles et les lasers. Vous verrez aux sections suivantes comment simuler l’effet d’un feu grâce à deux systèmes de particules.

p

p

Année universitaire 2012‐2013

2

i

M o h a m m e d A m n e M E Z G H I C H H

(cid:121) Au cours de ce chapitre, vous apprendrez : (cid:121) Au cours de ce chapitre vous apprendrez :

(cid:121) de quoi est constitué un système de particules – ses composants et ses

paramètres ;

(cid:121)

; comment créer des systèmes de particules pour simuler le feu et la fumée ;

p

p

y

(cid:121) à afficher de nouveau des instructions et des informations à l’écran pour le

joueur ; joueur ;

(cid:121) utiliser des variables pour activer les systèmes de particules au cours de

l exécution du jeu. l’exécution du jeu

Année universitaire 2012‐2013

3

i

M o h a m m e d A m n e M E Z G H I C H H

(cid:121) Dans Unity un système de particules est plus qu’un composant En (cid:121) Dans Unity, un système de particules est plus qu un composant. En effet, un certain nombre d’éléments doivent être combinés pour que l’effet escompté fonctionne correctement.

(cid:121) Avant de commencer à travailler avec les systèmes de particules, vous devez connaître leurs différents composants et comprendre leurs rôles respectifs.

tif

1. L émetteur de particules 1. L’émetteur de particules (cid:121) Dans tout système de particules, le composant émetteur est chargé de

l’instanciation des particules individuelles.

i

M o h a m m e d A m n e M E Z G H I C H H

(cid:121) Unity dispose d’un composant Ellipsoid Particle Emitter et d’un

composant Mesh Particle Emitter.

Année universitaire 2012‐2013

4

1. L’émetteur de particules(suite) 1 L’émette r de artic les(s ite) (cid:121) En tant que composants, les deux émetteurs disposent des paramètres

communs suivants : (cid:121) Size : La taille visible d’une particule. (cid:121) Energy : La durée de vie d’une particule dans le monde avant son

autodestruction. autodestruction

(cid:121) Emission : Le nombre de particules émises à la fois. (cid:121) Velocity : La vitesse à laquelle les particules se déplacent.

i

M o h a m m e d A m n e M E Z G H I C HH

Année universitaire 2012‐2013

5

2. L’animateur de particule 2 L’animate r de artic le (cid:121) Le composant Particle Animator régit le comportement de chaque p particule dans le temps. Pour sembler dynamiques, les particules ont une durée de vie définie puis elles s’autodétruisent.

p

p

q

y

,

i

M o h a m m e d A m n e M E Z G H I C HH

Année universitaire 2012‐2013

6

3. Le rendu des particules 3 Le rend des artic les (cid:121) Le composant Particle Renderer définit l’aspect visuel de chaque p particule. Les particules sont, en fait, des images carrées en 2D (des sprites).

p

g

(

,

,

(cid:121) Le composant Particle Renderer gère également

les matériaux

appliqués au système de particules.

(cid:121) Ces dernières étant rendues comme de simples sprites, si vous appliquez des shaders de particules aux matériaux dans le composant, vous pouvez créer l’illusion que les sprites ne sont pas carrés en plaçant tout autour des textures sur une couche alpha.

l’ill

é

é

i

i

l

l

Année universitaire 2012‐2013

7

i

M o h a m m e d A m n e M E Z G H I C H H

3. Le rendu des particules(suite) 3 Le rendu des particules(suite) Grâce à la transparence, les particules n’ont plus l’aspect carré que le rendu donne habituellement aux sprites 2D. En combinant le rendu de la partie visible de cette texture avec des valeurs d émission plus élevées, vous visible de cette texture avec des valeurs d’émission plus élevées vous pouvez obtenir un effet de densité.

En résumé Un système de particules fonctionne grâce à la collaboration de ses composants : l’émetteur, qui crée les particules ; l’animateur, qui régit leur p comportement et leur évolution dans le temps ; et le moteur de rendu, qui définit leur aspect visuel en utilisant différents matériaux et paramètres d’affichage.

p

q

q

g

Vous allez maintenant voir comment créer un élément inédit dans votre jeu : un feu composé de deux systèmes de particules, un pour les flammes et un autre pour le panache de fumée.

Année universitaire 2012‐2013

8

i

M o h a m m e d A m n e M E Z G H I C H H

Une fois dans l avant‐poste, le joueur risque d être assez déçu, car le Une fois dans l’avant poste le joueur risque d’être assez déçu car le bâtiment est vide. Vous allez donc ajouter une boîte d’allumettes au centre de la pièce.

Vous créerez également un feu à proximité de l’avant‐poste qui pourra V

ité d l’

à

é

é

t

t

t

f

i

i

l

s’allumer uniquement si le joueur possède cette boîte d’allumettes.

En voyant le tas de bois attendant de prendre feu, le joueur sera incité à

trouver les allumettes et donc à remplir les tâches définies

Année universitaire 2012‐2013

9

i

M o h a m m e d A m n e M E Z G H I C H H

Pour créer ce jeu, vous devez : Pour créer ce jeu vous devez : (cid:190) installer un paquet de ressources, puis ajouter un modèle de feu de bois

à la scène près de l’avant‐poste ; l

d

d

(cid:190) créer des systèmes de particules pour les flammes et la fumée lorsque le feu est allumé, puis empêcher qu’ils se déclenchent trop tôt à l’aide d’un script ;

fl

f

l

l

l

(cid:190) utiliser la détection de collision entre le personnage du joueur et l’objet feu de bois de façon que l’allumage du feu déclenche le composant émetteur ;

(cid:190) ajouter le modèle d’allumettes dans l’avant‐poste et mettre en place une détection de collision pour que le joueur puisse les collecter et soit gg ) ensuite capable d’allumer le feu (mode trigger) ;

p

(

(cid:190) utiliser l’objet TextHint GUI pour donner des indications au joueur

lorsqu’il s’approche du feu sans posséder les allumettes.

Année universitaire 2012‐2013

10

Publicité

i

M o h a m m e d A m n e M E Z G H I C H H

Télécharger les ressources Télécharger les resso rces Les fichiers requis pour créer cette partie du jeu sont :

(cid:190) un modèle 3D d’un feu de camp ;

; (cid:190) une texture de flamme pour le système de particules du feu ;

p

p

y

(cid:190) une texture de fumée pour le système de particules de la fumée ;

(cid:190) une séquence sonore de feu qui crépite ;

(cid:190) un dossier Material contenant les modèles 3D.

i

M o h a m m e d A m n e M E Z G H I C H H

Tous ces fichiers sont regroupés dans le dossier Fire feature du panneau T

fi hi

é d

l d

Fi

d

f

i

Project.

Année universitaire 2012‐2013

11

Sélectionnez le modèle camp fire dans le dossier Fire feature du panneau Sélectionnez le modèle camp fire dans le dossier Fire feature du panneau Project, puis donnez la valeur 0,5 au paramètre Scale Factor dans le composant FBXImporter du panneau Inspector si elle n’est pas déjà définie. défi

i

Vous garantissez ainsi que le modèle est importé dans la scène à une taille Vous garantissez ainsi que le modèle est importé dans la scène à une taille raisonnable par rapport aux autres objets déjà présents. Cliquez sur le bouton Apply au bas du panneau Inspector pour valider.

Faites glisser ce modèle dans le panneau Scene, puis avec l’outil Transform placez le près de l avant poste et de la plate forme de lancer des noix de placez‐le près de l’avant‐poste et de la plate‐forme de lancer des noix de coco déjà présents.

i

M o h a m m e d A m n e M E Z G H I C H H

Année universitaire 2012‐2013

12

Sélectionnez l objet feu campfire dans le panneau Hierarchy, puis cliquez Sélectionnez l’objet feu campfire dans le panneau Hierarchy puis cliquez sur Component > Physics > Capsule Collider. La boîte de dialogue Losing Prefab s’affiche alors et vous demande de confirmer la suppression de la connexion entre ce modèle et l’original. Cliquez sur le bouton Add comme d’habitude.

l Cli

d l

dèl

i i

l’

i

i

p

Dans le nouveau composant Capsule Collider du panneau Inspector, , donnez la valeur 2 au paramètre Radius et la valeur 5 au paramètre Height. Affichez ensuite les valeurs du paramètre Center puis donnez la valeur 1,5 à Y. la valeur 1 5 à Y

p

p

p

Année universitaire 2012‐2013

13

i

M o h a m m e d A m n e M E Z G H I C H H

À cette section, vous allez créer deux systèmes de particules différents, un À cette section vous allez créer deux systèmes de particules différents un pour le feu et l’autre pour sa fumée. En utilisant deux systèmes distincts, vous contrôlerez mieux l’animation des particules dans le temps fumée f animer car é i indépendamment.

vous pourrez

flammes fl

les l

et

la l

1. Créer le feu 1. Créer le feu Pour commencer à construire le système de particules du feu, vous allez ajouter un objet de jeu possédant les trois composants essentiels pour les particules. i l

l

Pour cela, cliquez sur GameObject > Create Other > Particle System.

Un nouvel objet de jeu Particle System apparaît alors dans les panneaux

Scene et Hierarchy. renommez‐le FireSystem

Année universitaire 2012‐2013

14

i

M o h a m m e d A m n e M E Z G H I C H H

1. Créer le feu(suite) 1 Créer le fe (s ite) Par défaut, les particules prennent l’apparence de petits points blancs aux p

contours flous et ressemblent un peu à un nuage de lucioles.

g

L’émetteur de particules génère le plus petit nombre possible de particules, l’animateur régit l’apparition et la disparition progressive des particules, et le moteur de rendu n’utilise aucun matériau.

i

M o h a m m e d A m n e M E Z G H I C H H

Vous allez définir chaque composant individuellement. Lorsque vous réglez les paramètres dans le panneau Inspector, vous pouvez visualiser un aperçu du système de particules dans le panneau Scene. l d i

d

d

S

è

l

Année universitaire 2012‐2013

15

1. Créer le feu(suite) 1 Créer le feu(suite) 1.1 Les paramètres du composant Ellipsoid Particle Emitter Tous les paramètres qui ne figurent pas sur cette liste doivent conserver

leur valeur par défaut : leur valeur par défaut :

Min Size : 0,5 ; //la taille des particules Max Size : 2 ; Min Energy : 1 ;//la durée de vie des particules Max Energy : 1.5 ; Min Emission : 15 ;//le nombre de particules présentes dans la scène p 5 ;// Max Emission : 20 ; World Velocity Y : 0.1 ; //les particules s’élèvent au cours de leur durée de

p

vie, comme le font les flammes vie, comme le font les flammes

Rnd Velocity Y : 0,2 ; Tangente Velocity X et Z : 0,2. et 0 pour Y.

Année universitaire 2012‐2013

16

i

M o h a m m e d A m n e M E Z G H I C H H

1. Créer le feu(suite) 1 Créer le feu(suite) 1.1 Les paramètres du composant Ellipsoid Particle Emitter Le paramètre Simulate in Worldspace sera désactivé, puisque les particules doivent être créées en fonction de la position du système et non selon une position dans l’espace global.

Le paramètre One Shot peut lui aussi rester désactivé, car l’émission des particules doit être continue. Ce paramètre serait plus utile pour représenter la fumée sortant d un canon, par exemple. représenter la fumée sortant d’un canon, par exemple.

i

M o h a m m e d A m n e M E Z G H I C H H

l

Toutes les valeurs du paramètre Ellipsoid peuvent être définies à 0,1. Cette valeur est faible, mais l’échelle du système de particules est également t réduite – cette valeur devra, par exemple, être beaucoup plus élevée pour le système de particules du panache de fumée.

l’é h ll d

t f ibl

t é

tè

ti

d

i

l

l

Année universitaire 2012‐2013

17

1. Créer le feu(suite) 1 Créer le fe (s ite) 1.1 Les paramètres du composant Ellipsoid Particle Emitter

i

M o h a mm e d A m n e M E Z G H I C HH

Année universitaire 2012‐2013

18

1. Créer le feu(suite) 1 Créer le feu(suite) 1.2 Les paramètres du composant Particle Animator À présent, vous devez définir les paramètres du composant Particle Animator, qui régit le comportement des particules au cours de leur vie.

,

q

Ici, vous avez besoin que les particules apparaissent et disparaissent Vous les animerez à l’aide de couleurs (tons de rouge et d’orange) et vous leur appliquerez des forces pour que les flammes aient un comportement plus réaliste.

pp

p

p

p

p

Le paramètre Does Animate Color est activé, cliquez ensuite sur chacun des champs de couleur situés à droite. Dans la boîte de dialogue Color q couleur blanche pour Color qui Animation[0], une couleur orange foncé pour Color Animation[4] et des teintes intermédiaires pour les paramètres restants.

sélectionnez

, s’affiche,

la

p

Année universitaire 2012‐2013

19

i

M o h a m m e d A m n e M E Z G H I C H H

1. Créer le feu(suite) 1 Créer le feu(suite) 1.2 Les paramètres du composant Particle Animator Le système de particules dans le panneau Scene doit à présent se comporter de façon plus naturelle grâce aux couleurs et aux valeurs alpha que vous avez définies.

Donnez la valeur –0,3 au paramètre Size Grow. Avec une valeur négative, les particules diminuent de taille au cours de leur durée de vie, ce qui donne un aspect plus dynamique au feu.

i

M o h a m m e d A m n e M E Z G H I C H H

Vous allez ajouter des forces pour rendre le mouvement du feu plus réaliste. Cliquez sur la flèche grise située à gauche du paramètre Rnd Force pour Cliquez sur la flèche grise située à gauche du paramètre Rnd Force pour afficher ses options, puis donnez la valeur 1 aux axes X et Z. Affichez ensuite les options du paramètre Force de la même manière et entrez la valeur 1 pour l’axe Y.

Année universitaire 2012‐2013

20

1. Créer le feu(suite) 1 Créer le feu(suite) 1.2 Les paramètres du composant Particle Animator Définissez Définissez

la la

valeur du paramètre Damping à 0,8. Le damping valeur du paramètre Damping à 0,8. Le damping (amortissement) définit le ralentissement des particules au cours de leur durée de vie. La valeur par défaut, 1, n’entraîne aucun amortissement et les valeurs comprises entre 0 et 1 provoquent un ralentissement les valeurs comprises entre 0 et 1 provoquent un ralentissement (0 causant le ralentissement le plus important). On utilise ici une valeur de 0,8 afin que les particules ne ralentissent pas de manière trop artificielle. artificielle

i

M o h a m m e d A m n e M E Z G H I C H H

Publicité

Vous pouvez laisser le dernier paramètre Autodestruct désactivé. Toutes les particules s’autodétruisent naturellement à la fin de leur durée de vie, mais ce paramètre porte sur l’objet de jeu parent lui‐même. S’il est activé, toutes les particules s’autodétruisent, puis l’objet de jeu est détruit.

Année universitaire 2012‐2013

21

1. Créer le feu(suite) 1 Créer le fe (s ite) 1.2 Les paramètres du composant Particle Animator

i

M o h a mm e d A m n e M E Z G H I C HH

Année universitaire 2012‐2013

22

1. Créer le feu(suite) 1 Créer le feu(suite) 1.3 Les paramètres du composant Particle Renderer Comme les particules ou les flammes doivent techniquement émettre de la lumière, vous allez désactiver les paramètres Cast Shadows et Receive Shadows afin qu’aucune ombre ne soit projetée sur ou par le feu.

Le paramètre Stretch Particles doit être défini sur Billboard pour garantir que les particules seront créées face au joueur, quel que soit l’angle à partir duquel celui‐ci observe le feu.

Max Particle Size, Ce paramètre contrôle la taille qu’une particule peut avoir par rapport à la hauteur de l écran. Si sa valeur est de 1, par exemple, la par rapport à la hauteur de l’écran. Si sa valeur est de 1, par exemple, la taille des particules peut être égale à la hauteur de l’écran ; si elle est de 0,5, leur taille maximale est égale à la moitié de la hauteur de l’écran, et ainsi de suite.

i

M o h a m m e d A m n e M E Z G H I C H H

Année universitaire 2012‐2013

23

1.3 Les paramètres du composant Particle Renderer 1 3 Les paramètres du composant Particle Renderer Ajouter un matériau Maintenant que le système de particules est défini, il ne vous reste plus qu’à

créer un matériau qui utilise la texture de feu.

d f

é i

ili

é

i

l

Sélectionnez le dossier Fire feature dans le panneau Project, cliquez sur le bouton Create en haut du panneau et choisissez Material pour créer une nouvelle ressource New Material dans le dossier. Renommez‐la ensuite simplement Flame.

p

q

j

,

i

M o h a m m e d A m n e M E Z G H I C H H

Ouvrez le menu déroulant Shader et choisissez Particles > Additive (soft) p pour obtenir une particule basée sur la couche alpha avec un rendu de la texture que vous appliquez. Faites glisser la texture appelée Fire 1 du dossier Fire feature dans le panneau Project sur la place vide à la droite du paramètre Particle Texture qui indique pour l’instant None (Texture2D).

p

p

Année universitaire 2012‐2013

24

1.3 Les paramètres du composant Particle Renderer 1 3 Les paramètres du composant Particle Renderer Ajouter un matériau Pour appliquer ce matériau, faites‐le simplement glisser du dossier Fire Pour appliquer ce matériau faites‐le simplement glisser du dossier Fire feature dans le panneau Project sur l’objet FireSystem dans le panneau Hierarchy.

Positionner l’objet FireSystem Afin de placer le système de particules du feu plus facilement, vous devez créer un objet enfant de l objet campfire déjà présent dans la scène. créer un objet enfant de l’objet campfire déjà présent dans la scène Dans le panneau Hierarchy, faites glisser l’objet FireSystem sur l’objet campfire pour le premier devienne l’enfant du second. Réinitialisez ensuite sa position en cliquant sur l’icône en forme Réinitialisez ensuite sa position en cliquant sur l icône en forme d’engrenage située à droite du composant Transform de l’objet FireSystem et choisissez Reset.

i

M o h a m m e d A m n e M E Z G H I C H H

Année universitaire 2012‐2013

25

Pour commencer cliquez sur GameObject > Create Other > Particle Pour commencer, cliquez sur GameObject > Create Other > Particle System pour ajouter un système de particules à la scène. Renommez‐ le SmokeSystem dans le panneau Hierarchy.

2. Créer la fumé 2.1 Les paramètres du composant Ellipsoid Particle Emitter Min Size : 0 8 ; Min Size : 0,8 ; Max Size : 2,5 ; Min Energy : 8 ; Max Energy : 10 ; e gy : 0 ; Ma Min Emission : 10 ; Max Emission : 15 ; World Velocity Y : 1,5 ; 5 Rnd Velocity Y : 0,2 ; Emitter Velocity Scale : 0,1.

y

i

M o h a m m e d A m n e M E Z G H I C H H

Année universitaire 2012‐2013

26

f

C é

2. Créer la fumé é l 2.2 Les paramètres du composant Particle Animator Configurez le composant Particle Animator pour que l’animation des C fi i i l A i

P particules s’effectue sur des nuances de gris.

d

l’

i

l

i

M o h a m m e d A m n e M E Z G H I C HH

Année universitaire 2012‐2013

27

f

C é

2. Créer la fumé é l 2.2 Les paramètres du composant Particle Animator Encore une fois, les particules doivent être animées entre deux valeurs E d l d i alpha égales à 0 afin qu’elles apparaissent et disparaissent de façon moins abrupte et plus naturelle. Modifiez ensuite les paramètres suivants :

i é

f i

p

p

ê

i

l

l

Size Grow :0,2 ; Rnd Force : (1.2, 0.8, 1.2) ; Force : (0.1, 0, 0.1) ; Force : (0.1, 0, 0.1) ; Autodestruct :non sélectionné.

Année universitaire 2012‐2013

28

i

M o h a m m e d A m n e M E Z G H I C H H

f

C é

2. Créer la fumé é l 2.3 Les paramètres du composant Particle Renderer Avant de créer un matériau et de l appliquer à la fumée, vérifiez que les Avant de créer un matériau et de l’appliquer à la fumée vérifiez que les paramètres suivants sont appliqués au composant Particle Renderer :

Cast/Receive Shadows :désélectionnés tous les deux ; Stretch Particles : Billboard ; Camera Velocity Scale, Length Scale et Velocity Scale :0 ; g Max Particle Size : 0,25.

y

y

Reprenez maintenant les étapes de l’exercice "Ajouter un matériau" à la section Créer le feu de ce chapitre. Cette fois, en revanche, nommez section "Créer le feu" de ce chapitre Cette fois en revanche nommez le matériau Smoke, assignez‐lui la texture smoke 1 et faites‐le glisser sur l’objet de jeu SmokeSystem.

Année universitaire 2012‐2013

29

i

M o h a m m e d A m n e M E Z G H I C H H

f

C é

2. Créer la fumé é l 2.3 Les paramètres du composant Particle Renderer Avant de créer un matériau et de l appliquer à la fumée, vérifiez que les Avant de créer un matériau et de l’appliquer à la fumée vérifiez que les paramètres suivants sont appliqués au composant Particle Renderer :

Cast/Receive Shadows :désélectionnés tous les deux ; Stretch Particles : Billboard ; Camera Velocity Scale, Length Scale et Velocity Scale :0 ; g Max Particle Size : 0,25.

y

y

Reprenez maintenant les étapes de l’exercice "Ajouter un matériau" à la section Créer le feu de ce chapitre. Cette fois, en revanche, nommez section "Créer le feu" de ce chapitre Cette fois en revanche nommez le matériau Smoke, assignez‐lui la texture smoke 1 et faites‐le glisser sur l’objet de jeu SmokeSystem.

Année universitaire 2012‐2013

30

i

M o h a m m e d A m n e M E Z G H I C H H

f

C é

2. Créer la fumé é l 2.3 Les paramètres du composant Particle Renderer P i i Positionnement Répétez l’étape de positionnement du feu pour la fumée. Faites glisser l’objet Smoke‐System sur l’objet parent campfire dans le panneau l objet Smoke System sur l objet parent campfire dans le panneau Hierarchy. Cliquez ensuite sur l’icône en forme d’engrenage dans le panneau Inspector et choisissez Reset, puis redéfinissez la valeur de la position Y à 0,9.

d l

Y à

iti

l

i

M o h a m m e d A m n e M E Z G H I C H H

Cliquez sur le bouton Play. Le feu devrait maintenant s allumer et le Cliquez sur le bouton Play Le feu devrait maintenant s’allumer et le

panache de fumée s’élever dans le ciel.

Année universitaire 2012‐2013

31

i

M o h a mm e d A m n e M E Z G H I C HH

Année universitaire 2012‐2013

32

t

f

Aj

d

d

(cid:121) Ajouter du son au feu de camp Sélectionnez l’objet campfire dans le panneau Hierarchy, puis cliquez sur Component > Audio > Audio Source pour ajouter un cliquez sur Component > Audio > Audio Source pour ajouter un composant audio source à l’objet. Faites ensuite simplement glisser la séquence audio fire_atmosphere depuis le dossier Fire feature du panneau Project sur le paramètre Audio Source dans le panneau Inspector. Pour finir, activez l’option Loop.

i

M o h a m m e d A m n e M E Z G H I C H H

Cliquez sur le bouton Play et approchez‐vous du feu de camp en écoutant le crépitement des flammes. Éloignez‐vous ensuite pour entendre le son décroître peu à peu.

p

g

Année universitaire 2012‐2013

33

(cid:121) Allumer le feu (cid:121) Allumer le feu Maintenant que la conception du feu est terminée, vous allez désactiver les systèmes de particules et l’audio afin qu’il soit éteint au lancement du jeu. d j

Sélectionnez l’objet campfire dans le panneau Hierarchy, puis désactivez Sélectionnez l objet campfire dans le panneau Hierarchy, puis désactivez le paramètre Play on Awake du composant Audio Source dans le panneau Inspector.

Sélectionnez l objet enfant FireSystem de l objet campfire, puis Sélectionnez l’objet enfant FireSystem de l’objet campfire puis désactivez le paramètre Emit dans le composant Ellipsoid Particle Emitter.

Sélectionnez l objet enfant SmokeSystem de l objet campfire et Sélectionnez l’objet enfant SmokeSystem de l’objet campfire et désactivez le paramètre Emit dans le composant Ellipsoid Particle Emitter.

i

M o h a m m e d A m n e M E Z G H I C H H

Année universitaire 2012‐2013

34

t

Aj

(cid:121) Ajouter la boîte d’allumettes  l  b ît  d’ ll Sélectionnez le modèle matchbox dans le dossier Fire feature du panneau Project, puis faites le glisser sur l objet outpost dans le panneau Project, puis faites‐le glisser sur l’objet outpost dans le panneau Hierarchy pour que la boîte d’allumettes devienne un objet enfant de l’avant‐poste. Elle sera ainsi plus facile à positionner.

tt

Publicité

L’objet matchbox étant

toujours sélectionné, définissez les valeurs Positionà (0, 5.5, 0) et toutes les valeurs Scaleà 5 dans le composant Transform du panneau Inspector.

( , 5 5,

p

5

)

i

M o h a m m e d A m n e M E Z G H I C H H

Pour que le joueur puisse collecter la boîte d’allumettes, cet objet doit

d’ ll

l b

d

ll

b

l

posséder un collider qui détecte les collisions avec lui.

Année universitaire 2012‐2013

35

(

t

tt

Aj

l  b ît  d’ ll

(cid:121) Ajouter la boîte d’allumettes(suite) it ) L’objet matchbox toujours sélectionné, cliquez sur Component > Physics > Box Collider, puis cliquez sur Add dans la boîte de dialogue Physics > Box Collider, puis cliquez sur Add dans la boîte de dialogue Losing Prefab. Pour éviter que le contact entre le joueur et l’objet entraîne un heurt, vous allez utiliser le mode Déclencheur pour ce collider Pour cela activez l’option Is Trigger du composant Box Collider collider. Pour cela, activez l option Is Trigger du composant Box Collider dans le panneau Inspector.

Pour montrer de façon plus évidente au joueur qu’il peut collecter cet objet, vous allez lui attacher le script que vous avez déjà utilisé pour faire tourner les piles sur elles mêmes. Cliquez sur Component > faire tourner les piles sur elles‐mêmes Cliquez sur Component > Scripts > Rotate Object.

Année universitaire 2012‐2013

36

i

M o h a m m e d A m n e M E Z G H I C H H

(cid:121) Ajouter la boîte d allumettes(suite) (cid:121) Ajouter la boîte d’allumettes(suite) Sélectionnez le fichier de texture MatchGUI dans le dossier Fire feature du panneau Project, puis cliquez sur GameObject > Create Other > GUI Texture. Vous n’avez pas besoin de définir la position de cette texture à à T t l’écran, vous pourrez le faire lorsque vous l’instancierez en tant qu’élément préfabriqué.

i d défi

iti

tt

V

d

b

t

t

i

l

’

Sélectionnez le dossier Fire feature dans le panneau Project, cliquez sur le bouton Create et sélectionnez Prefab. Renommez cet élément préfabriqué l’objet MatchGUI du panneau MatchGUIprefab puis l’ bj t M t hGUI d li i M t hGUI Hierarchy sur cet élément préfabriqué vide dans le panneau Project.

faites glisser f it

f b

Enfin, sélectionnez de nouveau l’objet original MatchGUI dans le panneau Hierarchy puis appuyez sur Suppr (Windows) pour le supprimer de la scène.

Année universitaire 2012‐2013

37

i

M o h a m m e d A m n e M E Z G H I C H H

ll

L

(cid:121) La collecte des allumettes Ouvrez le script

tt PlayerCollisions

t  d   ll

situé dans le dossier Scripts du panneau Project. Pour que le joueur sache s il a collecté les allumettes panneau Project. Pour que le joueur sache s’il a collecté les allumettes ou non, vous allez ajouter dans le script une variable booléenne qui aura pour valeur true quand le joueur les aura en sa possession. Ajoutez la ligne suivante au début du script : la ligne suivante au début du script :

private var haveMatches : boolean = false;

g

Vous avez également besoin d’une variable publique pour représenter l’élément préfabriqué Matches GUI Texture afin de pouvoir l’instancier lorsque le joueur collecte la boîte d’allumettes. Ajoutez la variable suivante au début du script : suivante au début du script :

p

p

p

q

i

M o h a m m e d A m n e M E Z G H I C H H

var matchGUI : GameObject;

Année universitaire 2012‐2013

38

ll

L

(cid:121) La collecte des allumettes(suite) it ) Maintenant, faites défiler le script jusqu’à la fonction OnTriggerEnter(),

t  d   ll

tt

(

puis ajoutez cette instruction if à la suite de celle qui y est déjà : puis ajoutez cette instruction if à la suite de celle qui y est déjà :

if(collisionInfo.gameObject.name == "matchbox"){

Destroy(collisionInfo.gameObject);

haveMatches=true;

audio.PlayOneShot(batteryCollect);

var matchGUIobj Vector3(0.15,0.1,0),

„ transform.rotation); transform rotation);

:

GameObject

=

Instantiate(matchGUI,

matchGUIobj.name = "matchGUI";

}

Année universitaire 2012‐2013

39

i

M o h a m m e d A m n e M E Z G H I C H H

All

l  f

(cid:121) Allumer le feu Afin d’allumer le feu, vous devez vérifier les collisions entre le joueur et l objet campfire. Pour cela, revenez dans l éditeur de script pour l’objet campfire. Pour cela, revenez dans l’éditeur de script pour modifier le script Player Collisions. Si vous l’avez fermé, double‐cliquez sur son nom dans le dossier Scripts du panneau Project.

Recherchez la première ligne de la fonction OnControllerColliderHit() :

puis ajoutez l instruction if suivante sur la ligne en dessous : puis ajoutez l’instruction if suivante sur la ligne en dessous :

if(hit.collider.gameObject == GameObject.Find("campfire")){

}}

Année universitaire 2012‐2013

40

i

M o h a m m e d A m n e M E Z G H I C H H

(cid:121) Allumer le feu(suite) (cid:121) Allumer le feu(suite) Cette condition permettra de vérifier si le joueur touche l’objet campfire. Toutefois, vous devez également vérifier que le joueur dispose des allumettes. Pour cela, ajoutez les lignes suivantes à l’intérieur de cette tt li P tt ll instruction if :

à l’i té i

d

t

t

i

l

l

j

if(haveMatches){ haveMatches = false; lightFire(); lightFire(); }else{ TextHints.textOn=true; TextHints.message = "vous avez besoin d’allumettes pour allumer ce feu..."; " }

d’ ll

ll

b

"

f

Année universitaire 2012‐2013

41

i

M o h a m m e d A m n e M E Z G H I C H H

(

All

(cid:121) Allumer le feu(suite) it )  l  f Ici, le script vérifie si la variable haveMatches est true. Si ce n’est pas le cas (else), il utilise le script TextHints pour afficher l interface graphique (else), il utilise le script TextHints pour afficher l’interface graphique TextHint GUI qui indique au joueur ce qu’il doit faire.

Si haveMatches est true, le script appelle une fonction lightfire(), que vous allez écrire, pour lancer la lecture de la séquence audio et vous allez écrire pour lancer la lecture de la séquence audio et déclencher les systèmes de particules. Placez‐vous à la fin du script et ajoutez la fonction suivante avant la ligne @script : (voir fichier text joint). joint)

Année universitaire 2012‐2013

42

i

M o h a m m e d A m n e M E Z G H I C H H

(

All

(cid:121) Allumer le feu(suite) it )  l  f Comme vous avez créé une variable publique pour l’élément préfabriqué vous devez MatchGUIprefab dans vous devez MatchGUIprefab dans maintenant lui assigner une valeur. Cliquez sur les flèches grises qui précèdent tous les objets parents dans le panneau Hierarchy pour que seuls ceux ci restent affichés puis sélectionnez l’objet First Person seuls ceux‐ci restent affichés, puis sélectionnez l objet First Person Controller afin d’afficher ses composants dans le panneau Inspector.

script PlayerCollisions, script PlayerCollisions,

le le

Localisez le composant Player Collisions (script) puis faites glisser l’élément préfabriqué MatchGUIprefab à partir du dossier Fire feature du panneau Project sur la variable publique Match GUI. du panneau Project sur la variable publique Match GUI

Année universitaire 2012‐2013

43

i

M o h a m m e d A m n e M E Z G H I C H H