Differences

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


fr:wmebook:ch5 2011/10/19 23:19 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 et de voir immédiatement que ce n'est pas un fichier de script - C'est un fichier de définition.+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.
Divisons le en petits morceaux et expliquons l'ensemble du fichier: Divisons le en petits morceaux et expliquons l'ensemble du fichier:
Line 9: Line 9:
**; $EDITOR_PROJECT_ROOT_DIR$ ..\..\..\** **; $EDITOR_PROJECT_ROOT_DIR$ ..\..\..\**
-Normalement dans les fichiers de définition de WME les lignes commençant par ; sont commentées. Notez que dans les commentaires de script :+Normalement dans les fichiers de définition de WME les lignes commençant par ; sont commentées.
<code script> <code script>
Line 15: Line 15:
</code> </code>
-Mais cette ligne est spéciale et elle dis à WME à quel niveau nous sommes dans la structure de dossier ou en d'autres mots où est la racine du projet. Ceci est très important plus tard dans les fichiers de scene (si vous déplacez les scènes plus profondément dans les structure de dossiers, vous devrez modifier cette valeur ou votre scène ne fonctionnera pas).+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: Les lignes dans les fichiers de définition ne se termine pas par des point-virgules!
 +
 +Notre bloc de données définissant un acteur commence par:
<code script> <code script>
Line 24: Line 26:
</code> </code>
-Notre bloc de données définissant un acteur commence par: 
<code script> <code script>
  NAME = "molly"   NAME = "molly"
Line 38: Line 39:
**NAME** est le nom interne d'un acteur. **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). +**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 affecté par les niveaux d’échelle de la scene ou par mise à l'échelle manuellement grâce à la méthode interne. +**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.
De plus on peut avoir: De plus on peut avoir:
-**ROTATABLE**  = TRUE/FALSE ce qui ferait que notre personnage serait affecté par les niveaux de rotation de la scène que nous avons vu déjà dans l'éditeur de Scène. +**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 défini à FALSE. Si vous l'aviez changer pour TRUE vous auriez vu que Molly est une partie interactive de la scene. +**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. **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. **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 font utilisé par la méthode actor.Talk que nous avons déjà utilisé.+**FONT** est le fichier de Police utilisé par la méthode actor.Talk que nous avons déjà utilisé.
-Et il y a deux de plus :+Et il y en a deux autres :
-**SOUND_PANNING** = TRUE/FALSE qui, s'il est réglé sur TRUE fera automatiquement un panoramique sonore de gauche à droite en fonction d'où il se trouve sur l'écran. +**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.+**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)
-Avant d'aller plus loin, faisons un peu de théorie. Pour avoir un superbe acteur 2D dans notre scene, nous devons définir cinq jeux de base d'animations ( walk (Marcher), talk (Parler), idle (ralenti), turnleft (tourne à gauche), turnright (tourne à droite) ).+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) ).
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" ". 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 le comportement a changé dans le nouveau WME (Avant c’était SPRITESET).+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 77: Line 78:
</code> </code>
-Comme vous voyez, vous assignez différents Sprites pour chacune des huit directions possibles. Et a 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. +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.
Le jeu de Sprites suivant s’appelle **idle** Le jeu de Sprites suivant s’appelle **idle**
Line 98: Line 99:
</code> </code>
-Il n'y a rien de spécial au sujet de la marche au ralenti. Vous pouvez ajouter quelques effets sympa comme la respiration, traîner les pieds ou se gratter le nez.+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 réaliste. PAr defaut c'est juste un flip que nous connaissons dans les jeux plus vieux. Ils sont identiques, donc je vais afficher seulement **turnleft**.  +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**. 
<code script> <code script>
Line 138: Line 139:
</code> </code>
-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 qu'il parle ce qui le rend plus vivant. En plus de ça nous pouvons définir des **positions de parler** qui sera invoquer par le paramètre spécial dans la commande Talk.+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.
-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. +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) 
-  + 
-Récapitulons - Par defaut si nous appelons  **actor.Talk(“Salut, comment c'est arrivé? Blah blah blah”);** toutes les animations appelé **talk** sont jouées aléatoirement.+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.
La méthode entière est **actor.Talk(Text, SoundFilename, Duration, TalkStances, TextAlignment)** La méthode entière est **actor.Talk(Text, SoundFilename, Duration, TalkStances, TextAlignment)**
**Text** – est la ligne écrite. Jusqu'ici nous avons toujours utilisée uniquement ce paramètre. **Text** – est la ligne écrite. Jusqu'ici nous avons toujours utilisée uniquement ce paramètre.
-**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 pour jouer en fonction du fichier tableau de chaine. Donc, si vous allez utiliser des voix-off, mettez tout simplement Null à l'intérieur. +**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** n'est normalement pas utilisé. Le texte est automatiquement synchronisé avec le fichier de la parole. Vous pouvez utiliser Null à nouveau. +**Duration** n'est normalement plus utilisé. Le texte est automatiquement synchronisé avec le fichier de la parole. Vous pouvez utiliser Null à nouveau. 
-**TalkStances** – Ici vous pouvez spécifier l'ordre et les positions, qui sont utilisés pour le discours. Si ce paramètre est fourni, vous pouvez choisir uniquement une partie des positions.+**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** – définit l'alignement des lignes écrites. **TextAlignment** – définit l'alignement des lignes écrites.
-Donc notre commande pourrais ressemblez à ça par exemple:+Donc notre commande pourrais ressemblez à ça, par exemple:
-**actor.Talk("Salut.",null,null,"eyeroll");** ce qui fera faire un roulement d’œil en disant cette ligne.+**actor.Talk("Salut.",null,null,"eyeroll");** ce qui fera faire un roulement d’œil en disant "Salut".
-Notez dans la marge - 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: +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:
dans **base.inc** déclarez dans **base.inc** déclarez
Line 177: Line 178:
Je pense que vous voyez que je veux dire. Mais revenons aux animations. Je pense que vous voyez que je veux dire. Mais revenons aux animations.
-Vous pouvez bien sûr créer aussi des sprites pour les animations non-standard (Prendre, Pousser, Tirer, etc...) qui sera ensuite référencé à partir des 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.
-Nous voyons donc que ce n'est pas difficile de créer un nouvel acteur de qualité en 2D, avec des animations, à condition que nous ayons des graphismes correspondants. Et maintenant il est temps de découvrir quelques méthodes utilisables pour les acteurs.+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)** – joue une animation comme définie dans le fichier sprite et attend que l'animation soit terminée. **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)** – Joue une animation comme définie dans le fichier acteur continu immédiatement.+**actor.PlayAnimAsync(path_to_sprite)** – Joue une animation comme définie dans le fichier acteur et continu immédiatement.
**actor.Reset()** – Annule l'action en cours que l'acteur est en train de faire (parler, marcher) **actor.Reset()** – Annule l'action en cours que l'acteur est en train de faire (parler, marcher)
-**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 la constante directionnelle. +**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.
- +
-Enfin vous pouvez remplacer les animations par défaut(Par exemple l'animation courir, nager ou voler pour remplacer "marcher")+
-Lastly you can override the default animations (for example run, swim or fly animation to replace "walk") et les changer à l'aide de **actor.TalkAnimName**, **actor.IdleAnimName**, **actor.WalkAnimName**, **actor.TurnLeftAnimName** et **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**.
-Ce livre ne remplace pas la documentation WME. Il y a d'autres méthodes et attributs qui peuvent être utilisées pour nos acteurs. Alors comme je l'ai promis dans le premier chapitre, je vais inclure pour clore, des passages pertinents de la documentation WME, où vous pouvez voir la description complètes des objets.+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 - pour la description générale des acteurs// //Contents-> Inside a game-> Actors - pour la description générale des acteurs//
//Contents -> Scripting in WME -> Script language reference -> Actor object – pour les méthodes et attributs qui peuvent être utilisés avec les acteurs// //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.1319059148.txt.gz · Last modified: 2011/10/19 23:19 by Anto0085
Recent changes RSS feed Creative Commons License Driven by DokuWiki