❤ 0 Faire des traces de pas
Il ne s'agit que d'une des méthodes possibles pour faire des traces de pas, une bien connue étant de faire des traces de pas en images (seulement sur RM2003), ou (non recommandé) truffer son sol d'événements en contact avec le héros (ne faites pas ça, vraiment).
Les traces de pas, pourquoi faire ?
Il s'agit d'un effet esthétique où quand le héros marche sur des sols susceptibles de laisser des traces (neige, sable...), les empreintes du héros apparaissent et disparaissent graduellement.
Recommandations d'utilisation :
- A utiliser de préférence avec un seul héros affiché (pas de chenille)
- Utilisable avec les bruits de pas
Avantages de cette méthode :
- sans lag (testé sur RM2000/2003) ;
- facile à mettre en place ;
- facile de rajouter des traces supplémentaires ;
- facile de différencier les traces de pas lorsqu'il y a plusieurs espèces parmi les équipiers et qu'il est possible de les changer.
Désavantages :
- Nécessite la création de 8 événements pour chaque map concernée. Il est possible de transformer deux d'entre eux en événements communs, mais cela nécessite des interrupteurs supplémentaires.
- Il faut adapter manuellement les commandes si vous souhaitez changer la vitesse du héros, et augmenter considérablement le nombre d'événements en cas de vitesse maximale.
- Bien que ce tutoriel fonctionne théoriquement sur d'autres versions de RM, c'est dans la pratique laborieux (lag). Il est donc recommandé de privilégier d'autres solutions pour les versions XP et postérieures.
- RPG Maker VX ne possédant pas de système de terrain, le tutoriel ne fonctionne pas dessus (ou il vous faudra un script ajoutant cette fonctionnalité).
Pour résumer ce qu'on va faire :
- un événement au lancement automatique met les événements de traces de pas en traversable (dans le cas où elles se chevaucheraient).
- on enregistre les coordonnées x et y du héros, ainsi que l'id du terrain.
- si l'id du terrain équivaut à celui où on veut des traces de pas, on affiche lesdites traces, dans l'ordre selon leur emplacement actuel (si l'événement de trace 1 est déjà utilisé, on utilise l'événement de trace 2, et ainsi de suite).
- les événements traces de pas, qui ont eux-même leur propre routine pour disparaître graduellement (facteur temps) quand ils sont activés.
Pour ce tutoriel, on part de cinq traces (et donc cinq événements alloués aux traces), avec une vitesse de 2 (un cran en-dessous de la vitesse standart pour le héros).
Vous aurez besoin d'un id de terrain spécifique pour faire apparaître les traces de pas.
Etape 1 : Préparatifs
Créer un terrain
Avant de commencer avec les événements, on va créer un terrain qui sera utilisé pour les traces de pas. Dans la base de données, vous pouvez configurer le nom de celui-ci dans Terrain, ce qui peut être pratique pour la configuration de votre tileset par la suite.
Ici, nous avons utilisé le terrain 2 pour les traces de pas. Il faut ajouter ce terrain pour les carreaux du chipset concerné dans Tilesets, avec la case Edit Mode Terrain enfoncée.
Lancement de la carte
Dans notre premier événement de lancement, on met tout ce qui est nécessaire à la mise en place de la map (brouillards, vitesse du héros, sauvegarde, etc). Pour nous, il s'agira juste d'indiquer que nos traces de pas sont traversables (RPG Maker 2000/2003), et d'effacer l'événement pour que celui-si soit de nouveau actif quand on retourne sur la map. Assurez-vous que cet événement soit bien en processus automatique.
Récupérer les données sur le héros
Dans un nouvel événement, cette fois en processus parallèle, on récupère les données qui vont servir pour notre système de traces, soit les coordonnées du héros, et l'id du terrain sur lequel il se trouve.
Dans Control Variables, on récupère l'emplacement X (horizontal) du héros dans notre variable heros_X. Le fonctionnement est le même pour l'emplacement Y (vertical), avec la variable heros_y.
Pour connaître le numéro id d'un terrain, il suffit d'utiliser la commande Get Terrain, et d'utiliser nos coordonnées tout juste enregistrées pour stocker la précieuse information dans une nouvelle variable.
Et c'est fini pour cet événement.
Etape 2 : Faire que les pas se suivent quand le héros marche sur le terrain approprié
Maintenant, il s'agit de faire notre événement principal, qui va activer les traces dans l'ordre quand on marche sur un sol où on veut laisser des empreintes.
Est-ce que je suis sur un sol avec le bon terrain ?
On va vérifier ici que notre variable de terrain soit égale à 2 (ou la valeur du terrain que vous voulez).
Dans notre première page d'événement en processus parallèle donc, on met en condition d'activation notre variable terrain.
Si c'est le cas, deux choses se passent : on attribue à deux variables, sable_x et sable_y, les coordonnées de notre héros, et on active un interrupteur pour passer à la suite.
Est-ce que notre héros se déplace ?
Ces nouvelles variables vont vite nous servir. La suite se passe sur la seconde page de notre événement.
Cette page vérifie que les variables sable_x et sable_y sont différentes de la position actuelle du héros, toujours stockées en continu dans notre événement solitaire.
Choisir une trace
Pour cela, rien de sorcier non plus. Nous disposons de 5 variables pour nos traces de pas, allant de sable_1 à sable_5 dans notre cas. Il s'agit ici de vérifier que l'une d'elle n'est pas utilisée :
- si elle n'est pas utilisée, on active notre variable trace de pas appropriée suivie d'un petit wait de 0.1 frame, et on désactive la page de cet événement pour signifier qu'on a eu ce qu'on voulait.
- si elle est utilisée, on reprend avec la condition pour la variable sable_x+1, et ainsi de suite jusqu'à arriver au bout.
Etape 3 : L'événement trace de pas
Il ne nous reste plus qu'une chose à faire : les événements de trace de pas ! Ils sont sur le même modèle, si ce n'est l'interrupteur qui les active/désactive. Pour cela, on choisit notre image de charset trace de pas, et on fait en sorte que l'événement ne soit pas animé (Stationary) et sous le héros. Votre ressource doit avoir les quatre directions.
Ces événements sont aussi en processus parallèles.
Affichage des empreintes
On souhaite que nos pas s'affichent dans la bonne direction avant toute chose. On vérifie donc la direction du héros et on change la direction de notre charset en conséquence.
Quand c'est fait, on téléporte notre événement aux emplacements sable_x et sable_y, soit, grâce à notre précédent événement, la case de nos héros juste avant qu'il bouge.
Disparition des traces
Après cela, il ne suffit plus que de jouer sur la commande Attendre et l'opacité pour faire disparaître graduellement l'événement.
Et on remet l'opacité au maximum après avoir fait disparaître complètement l'événement en désactivant son interrupteur (pour rappel, même si un événement est graphiquement non visible/changé à la suite d'une désactivation, cet événement continue de suivre sa procédure).
Et voilà, avec ça vous avez un joli résultat !
Lien de la démo : https://www.rpg-maker.fr/divers/tutoriels/tuto679_nemau_traces_de_pas_demo.zip
Adapter les traces à la vitesse du héros
Dans la démo, vous trouverez deux maps, celle avec le code d'origine réalisé par Nemau, et celle avec un code légèrement modifié : la première fonctionnera bien avec la vitesse programmée, mais montrera des glitchs d'affichage en haut de l'écran à une vitesse supérieure (cela est dû à la téléportation des traces de pas à leur emplacement d'origine). De plus, il n'y a pas assez de traces et il y aura donc "des trous".
Dans la deuxième map, si vous modifiez la vitesse du héros et que vous testez, le glitch visuel est moins visible car il suit les déplacements du héros (on peut cependant le remarquer quelquefois, notamment lorsqu'il déborde sur le tile d'herbe). Il manque également quelques traces de pas pour la vitesse maximale.
De manière générale, ce système n'est pas recommandé pour une vitesse supérieure à 4 (vitesse normale).
|