Mohamed Amine MEZGHICH
Ing nieur ENSI
Doctorant en traitement dimage, Lab. CRISTAL,ENSI
E-mail:[email protected]
Cycle Ing nieur
Ann e universitaire 2012-2013
1
(cid:1) Ce chapitre sera divis en deux sections:
(cid:1) Partie A : dans laquelle nous allons tudier en d tail le
personnage jouable First Person Controlller
(cid:1) Partie B: d di e au scripting, travers cette section nous
allons apprendre crire nos propre scripts( en
javascript) qui vont nous servir aux chapitres suivants
(par exemple pour la gestion des collisions, score etc).
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
2
(cid:1) Commen ons par regarder les objets qui constituent
lobjet First Person Controller (FPC) avant de nous
sur
pencher
font
fonctionner.
composants qui
les
le
(cid:1) Dans le panneau Hierarchy, cliquez sur la fl che grise
(cid:1) Dans le panneau Hierarchy, cliquez sur la fl che grise
gauche de lobjet First Person Controller, afin dafficher
les objets qui y sont imbriqu s. Lorsque les objets sont
imbriqu s de cette mani re, il sagit dune relation
parent-enfant.
Ann e universitaire 2012-2013
3
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
(cid:1) Dans cet exemple, lobjet First Person Controller est le
parent, et les objets Graphics et Main Camera, ses
enfants. Les objets enfants saffichent en retrait dans le
panneau Hierarchy afin de montrer leurs relations
panneau Hierarchy afin de montrer leurs relations
lobjet parent.
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
(cid:1) Vous devez retenir
r gles essentielles
concernant les objets imbriqu s ou les objets enfants.
certaines
Ann e universitaire 2012-2013
4
1. Les relations parent-enfant
(cid:1) Les valeurs de position et de rotation dun objet enfant sont
relatives celles de ses parents. On parle alors de position
locale et de rotation locale. Par exemple, si les coordonn es
dun objet sont (500, 35, 500), et que celles dun de ses objets
dun objet sont (500, 35, 500), et que celles dun de ses objets
enfants sont (0, 0, 0), on remarque que celui-ci semble avoir
la m me position que son parent.
(cid:1) Il sagit en effet de la position relative de lobjet enfant : en
pla ant un objet enfant (0, 0, 0), vous le positionnez aux
coordonn es dorigine de son parent, autrement dit par
rapport la position du parent.
Ann e universitaire 2012-2013
5
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
1. Les relations parent-enfant(Suite)
(cid:1) Cliquez sur lobjet Graphics situ sous lobjet parent FPC dans
le panneau Hierarchy. Comme vous pouvez le constater,
lobjet FPC se trouve au centre de l le et, pourtant, les valeurs
lobjet FPC se trouve au centre de l le et, pourtant, les valeurs
du composant Transform de lobjet Graphics sont de (0, 0, 0).
(cid:1) En cons quence, chaque fois que lobjet parent est d plac ,
ses enfants laccompagnent, tout en conservant leur position
et leur rotation locale selon la position et la rotation du
parent dans le monde du jeu.
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
6
2. Les objets de First Person Controller
(cid:1) Cet objet se compose des trois l ments suivants :
(cid:1) 1. First Person Controller ou parent du groupe, sur lequel sont
appliqu s le script et le collider (composant de collision) principal
pour contr ler son comportement. Le mouvement de cet objet est
contr l par deux scripts : le premier permet de le d placer laide
contr l par deux scripts : le premier permet de le d placer laide
du clavier et le second de le faire pivoter en d pla ant la souris
du clavier et le second de le faire pivoter en d pla ant la souris
gauche et droite.
(cid:1) 2. Graphics Tout simplement la forme primitive Capsule, qui vous
permet en tant que d veloppeur de voir o vous avez plac lobjet
FPC.
(cid:1) 3. Main Camera Plac au niveau des yeux du joueur, cet objet
fournit le point de vue. Des scripts lui sont appliqu s afin que le
joueur puisse regarder vers le haut et vers le bas.
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
7
2. Les objets de First Person Controller
(cid:1) En raison de la relation parent-enfant, lorsque lobjet FPC
se d place ou pivote, les objets Graphics et Main Camera
suivent.
i
i
M
M
o
o
h
h
a
a
m
m
Publicité
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
8
(cid:1) 2.1. Lobjet First Person Controller (parent)
(cid:1) Lobjet
First Person Controller
toujours
s lectionn dans le panneau Hierarchy, observez ses
composants dans le panneau Inspector.
tant
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
9
(cid:1) 2.1. Lobjet First Person Controller (parent)
(cid:1) Lobjet FPC est form de cinq composants :
(cid:1) Transform
(cid:1) Character Controller
Character Controller
(cid:1) Character Motor(Script)
(cid:1) Mouse Look (Script),
(cid:1) FPSInput Controller(Script)
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
10
(cid:1) 2.1. Lobjet First Person Controller (parent)
(cid:1) Le composant Transform : Comme tous les objets de
lobjet FPC poss de un composant
jeu actifs,
Transform qui indique ses param tres de position, de
rotation et d chelle et permet de les ajuster.
rotation et d chelle et permet de les ajuster.
(cid:1) Le composant Character Controller
: Cet objet agit
comme un collider (un composant de collision qui donne
lobjet la capacit physique dinteragir avec dautres objets)
sappliquer aux
et
mouvements du personnage et leur contr le dans le
monde du jeu.
sp cialement con u pour
il est
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
11
(cid:1) 2.1. Lobjet First Person Controller (parent)
(cid:1) Le composant Character Controller
:Le
composant Character Controller collider est repr sent
dans le panneau Scene par un contour vert en forme de
capsule, de la m me mani re que les autres colliders dans
capsule, de la m me mani re que les autres colliders dans
Unity.
(Suite)
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
12
(cid:1) 2.1. Lobjet First Person Controller (parent)
(cid:1) Les composants Character Motor (Script) et FPSInput
Controller (Script) : Ces deux scripts, crits en JavaScript,
permettent de contr ler le d placement du personnage vers
larri re et vers lavant avec les touches directionnelles Haut
et Bas (ou W et S), sur le c t laide des touches
et Bas (ou W et S), sur le c t laide des touches
directionnelles Gauche et Droite (ou A et D), et de le faire
sauter en utilisant la touche de saut, qui est, par d faut, la
barre despacement.
(cid:1) Le composant Mouse Look (Script) : crit en C#, ce script
permet de faire pivoter le personnage lorsquon d place la
souris, en laissant les d placements lat raux aux touches
directionnelles Gauche et Droite.
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
13
(cid:1) 2.2. Lobjet Graphics(enfant)
(cid:1) Comme ce personnage est, par nature, destin un jeu la
premi re personne, le joueur ne pourra jamais voir son propre
corps.
(cid:1) La capsule qui le repr sente est simplement incluse dans cet
La capsule qui le repr sente est simplement incluse dans cet
l ment pr fabriqu pour aider
le d veloppeur rep rer
l ment pr fabriqu pour aider
le d veloppeur rep rer
facilement lobjet dans le panneau Scene lors du d veloppement
et des tests du jeu.
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
Publicité
H
H
(cid:1) Les d veloppeurs d sactivent souvent
le composant Mesh
Renderer dans le panneau Inspector afin de sassurer que le
maillage de la capsule ne soit pas rendu et donc quelle soit bien
invisible.
Ann e universitaire 2012-2013
14
(cid:1) 2.2. Lobjet Graphics(enfant)
(cid:1) Le composant Transform :
cet objet poss de un
composant Transform et que sa position est (0, 0, 0), car il
se situe au centre de lobjet parent First Person Controller.
(cid:1) Cet objet ayant pour seul but doffrir une repr sentation
visuelle du joueur, il ne dispose que des deux composants
n cessaires pour le rendre visible :
(cid:1)Mesh Filter
(cid:1) Mesh Renderer.
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
15
(cid:1) 2.2. Lobjet Graphics(enfant)
(cid:1) Le composant Mesh Filter : Ce composant est tout
simplement celui qui contient le maillage, autrement dit la
forme 3D elle-m me. Il permet au moteur de rendu de
tracer une surface partir de ce maillage.
tracer une surface partir de ce maillage.
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
16
(cid:1) 2.2. Lobjet Graphics(enfant)
(cid:1) Le composant Mesh Renderer : Un composant Mesh
Renderer doit tre pr sent afin de cr er les surfaces sur le
maillage dun objet 3D. Il g re galement la r action du
maillage la lumi re et les mat riaux utilis s sur la surface
maillage la lumi re et les mat riaux utilis s sur la surface
pour afficher les couleurs ou les textures.
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
17
(cid:1) 2.3. Lobjet Main Camera(enfant)
(cid:1) Lobjet Main Camera permet de visualiser le monde virtuel
dans le jeu. Dans l l ment pr fabriqu First Person
Controller,
il est positionn la hauteur des yeux du
il est positionn la hauteur des yeux du
Controller,
personnage (en haut de la capsule Graphics).
(cid:1) Gr ce des scripts, le joueur peut d placer tout lobjet
parent mais aussi la cam ra de fa on ind pendante pour
regarder autour de lui tout en se d pla ant.
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
18
(cid:1) 2.3. Lobjet Main Camera(enfant)
(cid:1) En plus de l l ment Transform habituel, les objets de jeu
cam ra disposent habituellement de trois composants
: Camera, GUILayer et FlareLayer ainsi que dun
cl s
composant Audio Listener pour capter des sons.
composant Audio Listener pour capter des sons.
(cid:1) la cam ra dispose galement dun composant de script
unique appel Mouse Look (Script), qui g re la rotation et
linclinaison de la cam ra en fonction de la position de la
souris.
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
19
(cid:1) 2.3. Lobjet Main Camera(enfant)
(cid:1) Le composant Camera : Cest l l ment principal de
est g n ralement accompagn
visualisation, m me sil
des composants GUILayer et Flare Layer.
(cid:1) Les composants GUILayer et Flare Layer : Ces deux
(cid:1) Les composants GUILayer et Flare Layer : Ces deux
composants ne poss dent aucun param tre. Ils permettent
simplement le rendu des l ments visuels additionnels.
(cid:1)GUILayer permet le rendu des l ments 2D, comme les menus
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
et laffichage t te haute (HUD).
(cid:1)FlareLayer permet la cam ra deffectuer le rendu des effets de
lumi re
Ann e universitaire 2012-2013
20
(cid:1) 2.3. Lobjet Main Camera(enfant)
(cid:1) Le composant Mouse Look (Script) : Il sagit de la
seconde occurrence du composant Mouse Look (Script)
la premi re se trouvant sur lobjet parent First Person
Controller. Cette fois il g re le d placement de la vue vers le
Controller. Cette fois il g re le d placement de la vue vers le
haut ou vers le bas .
Combin au script Mouse Look qui fait pivoter lobjet parent,
il permet au joueur de tourner son regard o il le souhaite
laide de la souris, puisque lobjet Main Camera pivote
galement de gauche droite lorsque lobjet parent tourne.
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
Publicité
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
21
(cid:1) 1. Le scripting
(cid:1) L criture de script est un l ment essentiel ma triser
pour devenir un d veloppeur de jeux.
(cid:1) M me si Unity permet de cr er des jeux sans avoir vraiment
(cid:1) M me si Unity permet de cr er des jeux sans avoir vraiment
besoin de conna tre le code source du moteur de jeu, vous
devez cependant savoir crire les scripts qui commandent
le moteur de Unity.
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
(cid:1) Ces scripts utilisent un ensemble de classes pr tes
comme des
lemploi, que
biblioth ques dinstructions ou de comportements.
vous pouvez
consid rer
Ann e universitaire 2012-2013
22
(cid:1) 1. Le scripting
(cid:1) Que vous r digiez un nouveau script ou que vous utilisiez
un script existant, celui-ci devient op rationnel seulement
apr s que vous lavez attach un objet de jeu dans la sc ne
courante. Un script attach un objet de jeu en devient un
composant et
le comportement crit dans le script
le comportement crit dans le script
composant et
sapplique cet objet.
(cid:1) Cependant, les scripts ne se limitent pas appeler un
comportement de lobjet de jeu auquel ils appartiennent,
ils peuvent galement donner des instructions aux autres
objets en faisant r f rence leur nom ou leur tag. Afin de
mieux comprendre, voyons tout dabord quelques principes
de base des scripts.
Ann e universitaire 2012-2013
23
(cid:1) 2. Les commandes
(cid:1) Les commandes sont des instructions donn es dans un
script.
(cid:1) Toutes les commandes en JavaScript doivent se terminer
par un point-virgule de la fa on suivante :
vitesse = 5;
3. Les variables
(cid:1) Les variables sont de simples conteneurs dinformations.
Elles sont d clar es (cr es) avec le mot var, suivi dun ou
de plusieurs mots sans espace entre eux.
var vitesse = 9.0;
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
24
(cid:1) 4. Types de donn es des variables
(cid:1) Lors de la d claration des variables, vous devez aussi indiquer le
type dinformation quelles stockent en d finissant le type de
donn es. Voici la m me d claration de variable que lexemple
pr c dent, mais cette fois avec le type de donn es :
(cid:1) var vitesse : float = 9.0;
var vitesse : float = 9.0;
(cid:1) Le nom de la variable est suivi de deux points pour pr ciser le type de
donn es.
(cid:1) Pr ciser le type de donn es de chaque variable que vous d clarez
rend le script plus efficace car le moteur du jeu na pas besoin de
d cider par lui-m me du type de la variable lors de sa lecture.
(facilite la d tection derreur).
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
25
(cid:1) 4. Types de donn es des variables
Voici quelques uns des types de donn es les plus courants
que vous utiliserez :
(cid:2) string (cha ne de caract res). Combinaison de texte et de
chiffes stock s entre guillemets, "comme ceci".
(cid:2) int(entier). Abr viation dinteger. Sutilise pour les chiffres
entiers sans d cimale.
(cid:2) float.Valeur num rique d cimale.
(cid:2) boolean(bool en). Une valeur vraie ou fausse utilis e
couramment comme condition respecter.
(cid:2) Vector3.Un ensemble de valeurs XYZ.
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
26
(cid:1) 5. Variables publiques et variables priv es
Les variables d clar es lext rieur dune fonction dans un
script sont appel es variables globales ou propri t s. Par
d faut, en JavaScript, de telles variables sont dites variables
publiques, car elles saffichent automatiquement en tant
publiques, car elles saffichent automatiquement en tant
que param tres du script (consid r alors comme un
composant) dans le panneau Inspector. (voir lexemple)
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
La valeur de chacune de ces variables peut donc tre ajust e
dans le panneau Inspector.
Ann e universitaire 2012-2013
27
(cid:1) 5. Variables publiques et variables priv es
Si vous ne souhaitez pas r gler la valeur dune variable dans le
panneau Inspector, vous devez alors utiliser le pr fixe
cacher la
private pour quelle ne saffiche pas. Pour
variable JumpSpeed, par exemple, vous devriez modifier la
variable JumpSpeed, par exemple, vous devriez modifier la
d claration de cette variable dans le script de la fa on
suivante :
var speed = 6.0;
private var jumpSpeed = 8.0;
var gravity = 20.0;
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
Publicité
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
28
(cid:1) 6. Les fonctions
Les fonctions sont des ensembles dinstructions qui peuvent tre
appel es un moment pr cis lors de lex cution du jeu. Un
script peut contenir de nombreuses fonctions et chacune peut
appeler une ou plusieurs autres fonctions au sein du m me
script.
script.
Les scripts peuvent
faire appel de nombreuses fonctions
pr d finies du moteur de Unity pour ex cuter des commandes
des moments pr cis ou selon les actions de lutilisateur.
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Vous pouvez galement crire vos propres fonctions et les appeler
lorsque vous avez besoin de r aliser des instructions sp cifiques.
Ann e universitaire 2012-2013
29
(cid:1) 6. Les fonctions
L criture dune fonction commence par function suivi
de son nom, puis daccolades douverture et de
fermeture. Le d veloppeur peut ensuite passer des
param tres suppl mentaires entre ces accolades. Voici
param tres suppl mentaires entre ces accolades. Voici
quelques exemples de fonctions existantes.
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
function Update(){
speed = 5;
}
Ann e universitaire 2012-2013
30
(cid:1) 7. Les variables statiques et la syntaxe point
cette section, vous allez voir comment transmettre des
informations entre plusieurs scripts laide dune variable
statique, et comment traiter linformation de mani re
hi rarchique en utilisant la technique d criture de script
hi rarchique en utilisant la technique d criture de script
nomm e syntaxe point.
nomm e syntaxe point.
Le nom des scripts crits en JavaScript correspond au nom de
la classe. Cela signifie que, pour vous adresser aux variables
ou aux fonctions dun autre script, vous pouvez faire
r f rence cette classe en utilisant le nom de ce script suivi
du nom de la variable ou de la fonction en question laide
de la syntaxe point.
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
31
(cid:1) 7. Les variables statiques et la syntaxe point
En termes de programmation, une variable statique peut tre
d finie comme une valeur ou une commande commune
toutes les instances de ce script. De plus, si elle est
toutes les instances de ce script. De plus, si elle est
les
publique, elle est accessible non seulement par
fonctions ou les variables situ es dans le m me script mais
aussi par nimporte quel script.
Pour d clarer une variable globale dans un fichier JavaScript
de Unity, on utilise le pr fixe static de la mani re suivante :
static var speed : float = 9.0;
Ann e universitaire 2012-2013
32
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
(cid:1) 7. Les variables statiques et la syntaxe point
La syntaxe point permet donc de d signer nimporte
quel param tre en indiquant le composant auquel il
appartient.
Ainsi, pour r gler la position verticale dun objet de jeu,
par exemple, vous devez modifier sa coordonn e Y.
Vous devez donc vous adresser aux param tres de
position du composant Transform de cet objet. Pour
cela, on crit :
transform.position.y = 50;
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
33
(cid:1) 8. Les commentaires
Dans beaucoup de scripts pr d finis, vous remarquerez
que certaines lignes commencent par deux barres
obliques.
Il sagit simplement des commentaires crits par lauteur
du script.
Nous vous conseillons d crire vos propres commentaires
afin dindiquer comment fonctionnent vos scripts, en
particulier lorsque vous d butez.
i
i
M
M
o
o
h
h
a
a
m
m
e
e
d
d
A
A
m
m
n
n
e
e
M
M
E
E
Z
Z
G
G
H
H
I
I
C
C
H
H
Ann e universitaire 2012-2013
34