Differences

This shows you the differences between the selected revision and the current
version of the page.


fr:wmebook:ch5 2011/10/19 21:02 fr:wmebook:ch5 2011/10/20 09:18 current
Line 1: Line 1:
====== 5. Les Acteurs ====== ====== 5. Les Acteurs ======
-Le chapitre qui suit couvre les acteurs en général et traite aussi des détails de la création 2D - du sprite de l'acteur. Pour ceux qui sont intéressé par les acteurs 3D un chapitre appelé “Going 2.5D” y sera dédié, alors patience, nous y arriverons aussi.+Le chapitre qui suit parle des acteurs en général et traite aussi des détails de la création 2D - les sprites de l'acteur. Pour ceux qui sont intéressé par les acteurs 3D un chapitre appelé “La 2.5D” y sera dédié, alors patience, nous y arriverons aussi.
-Nous avons déjà vu quelques méthodes associé aux acteurs - Nous avons vu comment charger un acteur dans le jeu ou la scene courante, nous connaissons comment faire que notre acteur marche, parle, se position dans la direction à laquelle il fait face, etc... Mais regardons, à quoi ressemble Molly. Ouvrez le fichier data\actors\molly\molly.actor +Nous avons déjà vu quelques méthodes associé aux acteurs - Nous avons vu comment charger un acteur dans le jeu ou dans la scène courante, nous savons faire marcher notre acteur marche, parler, se positioner dans la direction à laquelle il doit faire face, etc... Mais regardons, à quoi ressemble Molly. Ouvrez le fichier data\actors\molly\molly.actor et on voit immédiatement que ce n'est pas un fichier de script - C'est un fichier de définition.
-We’ve already seen a few methods associated with actor – we’ve seen how to load actor to game or to the current scene, we know how to make our actor walk, talk, set direction he is facing etc. But let’s see, how does Molly look. Open the file data\actors\molly\molly.actor and immediately see that it’s not a script file - it’s a definition file. +Divisons le en petits morceaux et expliquons l'ensemble du fichier:
- +
-Let’s split it by little chunks and explain the whole file:+
**; $EDITOR_PROJECT_ROOT_DIR$ ..\..\..\** **; $EDITOR_PROJECT_ROOT_DIR$ ..\..\..\**
-Normally in the WME definition files lines starting with ; are commented out. Note that the script comments +Normalement dans les fichiers de définition de WME les lignes commençant par ; sont commentées.
<code script> <code script>
-(// or /* */) are not supported in definition files and will cause an error! +(// or /* */) ne sont pas supportés dans les fichiers de définition et provoque des erreurs!
</code> </code>
-But this line is special and it tells WME how deep we’re in the folder structure or in other words where is the root of the project. This is very important later on in scene files, where (if you move scenes around into deeper directory structures, you should adjust this value or your scene won’t work).+Mais cette ligne est spéciale, elle annonce à WME à quel niveau nous sommes dans l'arborescence des dossiers ou en d'autres termes où est la racine du projet. Ceci sera très important plus tard dans les fichiers de scène (si vous déplacez les scènes plus profondément dans les structure de dossiers, vous devrez modifier cette valeur ou bien votre scène ne fonctionnera pas). 
 + 
 +Important: Les lignes dans les fichiers de définition ne se termine pas par des point-virgules!
-Important: Lines in definition files don’t end with a semicolon!+Notre bloc de données définissant un acteur commence par:
<code script> <code script>
Line 26: Line 26:
</code> </code>
-Our datablock defining an actor starts with: 
<code script> <code script>
  NAME = "molly"   NAME = "molly"
Line 39: Line 38:
</code> </code>
-**NAME** is the internal name of an actor. **CAPTION** is the label which can be used for example in game_loop.script to display the caption in the same way as with the Nodes. **SCALABLE** can be true or false and defines if actor is affected by Scene scale levels or by manually scaling it through internal method. In addition we can have:+**NAME** est le nom interne d'un acteur. 
 +**CAPTION** est l’étiquette qui peut être utilisée , par exemple, dans game_loop.script pour afficher la légende, de la même façon qu'avec les Entités (nodes). 
 +**SCALABLE** peut être true ou false et défini si l'acteur est affecté par les niveaux d’échelle de la scène ou par mise à l'échelle manuellement grâce à la méthode interne.
-**ROTATABLE**  = TRUE/FALSE which would make our character affected by the scene rotation levels which we’ve seen already in the Scene Edit. +De plus on peut avoir:
-**INTERACTIVE** means that the actor is sensitive to mouse. If you run our game now and put mouse cursor over Molly, game doesn’t react because the INTERACTIVE is set to false. If you changed this to TRUE you’d see that Molly is an interactive part of the scene as well.  +
-**X** and **Y** are the initial coordinates of an actor on screen.  +
-**SCRIPT** is a script filename which will be automatically attached to the actor upon loading. You can have multiple script lines there. FONT is the font file used for actor.Talk method we’ve used already.+
-And there are two more:+**ROTATABLE**  = TRUE/FALSE ce qui ferait que notre personnage serait affecté par les niveaux de rotation de la scène que nous avons déjà vu dans l'éditeur de Scène. 
 +**INTERACTIVE** signifie que l'acteur est sensible à la souris. Si vous exécutez notre jeu dès maintenant et mettez le curseur de la souris sur Molly, le jeu ne réagit pas parce que INTERACTIVE est placé sur FALSE. Si vous l'aviez changer pour TRUE vous auriez vu que Molly devient une partie interactive de la scène. Son nom s'affiche. 
 +**X** et **Y** sont les coordonnées initiale de l'acteur sur l'écran.  
 +**SCRIPT** est le nom du fichier Script qui sera automatiquement attaché à l'acteur lors du chargement. vous pouvez avoir une multitude de ligne de script ici.  
 +**FONT** est le fichier de Police utilisé par la méthode actor.Talk que nous avons déjà utilisé.
-**SOUND_PANNING** = TRUE/FALSE which if set to true would automatically pan the sound from left to the right according to actor’s onscreen position. +Et il y en a deux autres :
-**COLORABLE** = TRUE/FALSE which if set to true would make the actor affected by the decoration regions.+
-Now before we go on, let’s have a little bit of theory. To have a successful 2D actor in our scene, we need to define five basic sets of animations (walk, talk, idle, turnleft, turnright). +**SOUND_PANNING** = TRUE/FALSE qui, s'il est réglé sur TRUE fera automatiquement un panoramique sonore de gauche à droite en fonction d'où l'acteur se trouve à l'écran. (Surround) 
 +**COLORABLE** = TRUE/FALSE qui, s'il est réglé sur TRUE fera que l'acteur sera affecté par les régions décoration. (ex: Néon rouge)
-WME documentation clearly states that: “...remember the actor is able to walk into eight directions, therefore you will need eight versions of each animation type for different directions. If you have only four directions created for your character, you can use one animation for multiple directions, but the actor definition file must always define all 8 directions. For example if you have a "character walking left" animation, you can assign it to both "walk left" and "walk up left" directions.+Avant d'aller plus loin, faisons un peu de théorie. Pour avoir un superbe acteur 2D dans notre scène, nous devons définir cinq jeux (ensemble) de base d'animations ( walk (Marcher), talk (Parler), idle (au repos), turnleft (tourne à gauche), turnright (tourne à droite) ).
-But let’s look at our first animation set called **walk** - note that the behavior changed in new WME (before it was SPRITESET).+La documentation WME stipule clairement que: “...rappelez-vous que l'acteur est capable de marcher dans les huit directions, donc vous avez besoin de huit versions de chaque type d'animation pour les différentes directions. Si vous avez seulement quatre directions créées pour votre personnage, vous pouvez utiliser une animation pour plusieurs directions, mais le fichier de définition de l'acteur doit toujours les définir tous les 8. Par exemple, si vous avez une animation "personnage marche à gauche", vous pouvez l'affecter à la fois à "marcher à gauche" et "marcher haut gauche" ". 
 + 
 +Mais regardons notre premier jeu d'animation appelé **walk** - Notez que ça a changé dans le nouveau WME (Avant c’était SPRITESET).
<code script> <code script>
Line 74: Line 78:
</code> </code>
-As you see, you assign different sprite for each of the eight possible directions and that’s about it. There’s one special thing about walking animations though – when you construct your actor’s animation in the Sprite Edit, you have to set the “Move by” parameter for each frame as we discussed before. This will define how fast the character moves on the screen.+Comme vous voyez, vous assignez différents Sprites pour chacune des huit directions possibles. Et à ce sujet,Il y a une chose spéciale au sujet de l'animation de la marche - quand vous construisez votre animation d'acteur dans l'éditeur de sprite, vous avez à régler le paramètre "Move by" pour chaque image (frame) comme nous l’avons dit précédemment. Ceci définira à quelle vitesse le personnage bouge sur l'écran.
-Next sprite set is called **idle**.+Le jeu de Sprites suivant s’appelle **idle**
<code script> <code script>
Line 95: Line 99:
</code> </code>
-There’s nothing special about idling around. You can add some neat effect like breathing, shuffling feet or scratching nose.+Il n'y a rien de spécial au sujet du repos. Vous pouvez ajouter quelques effets sympa comme la respiration, traîner les pieds ou se gratter le nez. 
 + 
 +les 2 jeux de sprite suivants s’appellent **turnleft** et **turnright** et à travers eux peut être réalisé un acteur qui se tourne de façon réaliste. Par défaut c'est juste un flip que nous connaissons dans les jeux plus vieux. Les deux sont identiques, donc je vais vous afficher seulement **turnleft**. 
-Next two sprite sets are called **turnleft** and **turnright** and via them can be achieved realistic turning of actor. Default is just a flip which we know from older games. They look identical so I’ll include only **turnleft**. 
<code script> <code script>
  ANIMATION   ANIMATION
Line 115: Line 120:
</code> </code>
-Last set is the **talk** animation. +Le dernier jeu est l'animation **talk**. 
<code script> <code script>
  ANIMATION   ANIMATION
Line 133: Line 139:
</code> </code>
-We can define more than one **talk** blocks though! If we do, WME then randomly plays the talk animations while talking which makes it more alive. In addition to that we can define a **Talk stances** which will be invoked through the special parameter in the Talk command.+Nous pouvons définir plus d'un bloc **talk**! Si nous le faisons, WME joue alors de manière aléatoire les animations parler pendant que l'acteur parle, ce qui le rend plus vivant. En plus de ça, nous pouvons définir des **positions de parler** qui seront invoquées par le paramètre spécial dans la commande Talk.
-If we created a special animation and name it for example **eyeroll**, we could then for a special line invoke the eyeroll. +Si nous créons une animation spéciale et la nommons, par exemple, **eyeroll**, nous pourrions alors par une ligne spéciale invoquer l'eyeroll.(roulement des yeux)
-So let's recap - by default if we call **actor.Talk(“Hello, how is it goin? Blah blah blah”);** all animations named **talk** are randomly played. +Récapitulons - Par defaut si nous appelons  **actor.Talk(“Salut, comment c'est arrivé? Blah blah blah”);** toutes les animations appelées **talk** sont jouées aléatoirement.
-Full method is **actor.Talk(Text, SoundFilename, Duration, TalkStances, TextAlignment)**+La méthode entière est **actor.Talk(Text, SoundFilename, Duration, TalkStances, TextAlignment)**
-**Text** – is the written line. So far we always used solely this parameter+**Text** – est la ligne écrite. Jusqu'ici nous avons toujours utilisée uniquement ce paramètre
-**SoundFilename** – this is in a way an obsolete parameter. We’ll see why when we get to the localization chapter, because in the latest engine versions, WME automatically chooses a correct filename to play according to string tab file. So if you’re going to use voiceovers, simply put null in there.  +**SoundFilename** – c'est, en quelque sorte, un paramètre obsolète. Nous allons voir pourquoi quand nous arriverons au chapitre de localisation, car dans les dernières versions du moteur, WME choisit automatiquement un nom de fichier correct à jouer en fonction du fichier tableau de chaine. Donc, si vous allez utiliser des voix-off, mettez tout simplement Null à l'intérieur
-**Duration** is normally not used as well. Text is automatically synchronized to speech file. You can use null again+**Duration** n'est normalement plus utilisé. Le texte est automatiquement synchronisé avec le fichier de la parole. Vous pouvez utiliser Null à nouveau
-**TalkStances** – here you can specify the order and stances, which are used for the speech. If this parameter is supplied you can choose only a subset of stances+**TalkStances** – Ici vous pouvez spécifier l'ordre et les positions, qui seront utilisés pour le discours. Si ce paramètre est fourni, vous pouvez choisir uniquement une partie des positions
-**TextAlignment** – defines the alignment of the written lines.+**TextAlignment** – définit l'alignement des lignes écrites.
-So our modified call could look like for example:+Donc notre commande pourrais ressemblez à ça, par exemple:
-**actor.Talk("Hello.",null,null,"eyroll");** which would make actor perform an eyeroll on this line.+**actor.Talk("Salut.",null,null,"eyeroll");** ce qui fera faire un roulement d’œil en disant "Salut".
-As a side note - we’ve used always only variable actor for actor interaction, but it’s only a variable. So if I wanted to break this stereotype I can easily do the following:+Notez quelque part - nous avons toujours utilisé seulement la variable actor pour les interactions avec l'acteur, mais c'est seulement un variable. Donc, si je voulais briser ce stéréotype, je peux facilement faire ce qui suit:
-in **base.inc** declare+dans **base.inc** déclarez
<code script> <code script>
Line 160: Line 166:
</code> </code>
-in **game.script** use our +dans **game.script** utilisez notre
<code script> <code script>
Line 170: Line 176:
</code> </code>
-I think you’ve got my point here. But back to animations.+Je pense que vous voyez que je veux dire. Mais revenons aux animations.
-You can of course create also sprites for nonstandard animations (pickup, push, pull etc.) which will be then referenced from the scripts. +Vous pouvez bien sûr créer aussi des sprites pour les animations non-standard (Prendre, Pousser, Tirer, etc...) qui seront ensuite référencées à partir des scripts.
-So we see that it’s not hard to create a brand new 2D actor, together with animations, provided we have a corresponding graphics. And now it’s time to discover some more usable methods for actors.+Nous voyons donc que ce n'est pas difficile de créer un nouvel acteur de qualité en 2D, avec ses animations, à condition que nous ayons des graphismes correspondants. Et maintenant il est temps de découvrir quelques méthodes utilisables pour les acteurs.
-**actor.PlayAnim(path_to_sprite)** – plays an animation as defined in sprite file and wait until the animation is finished+**actor.PlayAnim(path_to_sprite)** – joue une animation comme définie dans le fichier sprite et attend que l'animation soit terminée
-**actor.PlayAnimAsync(path_to_sprite)** – plays an animation as defined in actor file and immediately continue+**actor.PlayAnimAsync(path_to_sprite)** – Joue une animation comme définie dans le fichier acteur et continu immédiatement
-**actor.Reset()** – cancel current action actor is performing (talking, walking+**actor.Reset()** – Annule l'action en cours que l'acteur est en train de faire (parler, marcher
-**actor.TurnTo(object or direction)** – makes actor turn either to an object’s direction as defined in Scene Edit or to directional constant.+**actor.TurnTo(object or direction)** – fait se tourner l'acteur, soit dans la direction d'un objet tel que défini dans l'éditeur scène ou soit la constante directionnelle.
-Lastly you can override the default animations (for example run, swim or fly animation to replace "walk") and switch them using the **actor.TalkAnimName**, **actor.IdleAnimName**, **actor.WalkAnimName**, **actor.TurnLeftAnimName** and **actor.TurnRightAnimName**.+Enfin vous pouvez remplacer les animations par défaut(Par exemple l'animation courir, nager ou voler pour remplacer "marcher") et les changer à l'aide de **actor.TalkAnimName**, **actor.IdleAnimName**, **actor.WalkAnimName**, **actor.TurnLeftAnimName** et **actor.TurnRightAnimName**.
-This book doesn’t surrogate WME documentation. There are other methods and attributes which can be used for our actors. So as I promised in the first chapter, I’ll include on closing relevant sections in WME documentation, where you can see the complete object description.+Ce livre ne remplace, évidemment, pas la documentation WME. Il y a d'autres méthodes et attributs qui peuvent être utilisés pour nos acteurs. Alors comme je l'ai promis dans le premier chapitre, je vais inclure pour clore ce chapitre, des passages pertinents de la documentation WME, où vous pourrez voir la description complètes des objets.
-//Contents-> Inside a game-> Actors - for the general description of actor// +//Contents-> Inside a game-> Actors - pour la description générale des acteurs// 
-//Contents -> Scripting in WME -> Script language reference -> Actor object – for methods and attributes which can be used with the actor//+//Contents -> Scripting in WME -> Script language reference -> Actor object – pour les méthodes et attributs qui peuvent être utilisés avec les acteurs//
 
fr/wmebook/ch5.1319050939.txt.gz · Last modified: 2011/10/19 21:02 by Anto0085
Recent changes RSS feed Creative Commons License Driven by DokuWiki