Oniromancie: Tutoriels - Traces de Pas dynamiques


Comment ça marche?

Aëdemphia
Par Sylvanor

Fighting Robots Quest
Par Boulon

Forstale
Par Ødd Clock

Geex
Par roys

Inexistence
Par Falco

La Légende d'Ibabou
Par Zaitan

Lije
Par Gaetz

LoveMaster
Par Cuddlefox

Sarcia
Par Kaëlar

Super Mario RPG - Lost Souls
Par Omegabowser

News: Concours des Alex d'Or 2017-18: (...) / News: MegaMaker : créez votre propre (...) / News: Test de Tinker Quarry / Sorties: Leave the Room / Jeux: Leave the Room /

Chat  (26 connectés)

Bienvenue
visiteur !






publicité RPG Maker!

Statistiques

Liste des
membres


Contact

53 connectés actuellement

9179876 visiteurs
depuis l'ouverture

950 visiteurs
aujourd'hui

Groupe Facebook

Barre de séparation

Partenaires




TOP
GAMEMAKING


Les 5 plus
visités

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Pixelandgame

Tashiroworld

HeyMakeGames

Au hasard

RPG Maker Revolution

FrGraph-X

RPG Master Making

Les deux derniers

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Nos autres partenaires

Devenir
partenaire


Barre de séparation

Un site du réseau
War Paradise

Annuaires référenceurs





Traces de Pas dynamiques
Ecrit par Jewok

Il y a une chose qui est primordiale, lorsque vous travaillez sur certain type de décors: les traces de pas.
Imaginez un décors enneigé où votre héro ne laisserais aucune trace. L'ambiance en serais moindre, la crédibilitée de votre décors également. On peu aussi imaginer ce systeme dans d'autres circonstances. Imaginez que votre personnage marche dans une flaque d'eau, ou bien une flaque de sang. Il est primordial qu'il laisse par la suite des traces de pas. Ainsi, le joueur comprend bien qu'il s'agit de flaques, et non d'une simple coloration du décors.
Bon il existe une technique, assez prisée pour arriver au meme résultat. Elle consiste à recouvrir la map d'evenement transparents, devenants traces de pas au contact du héro. L'incovéniant de cette technique, c'est qu'elle est lourde a mettre en oeuvre, surcharge votre map pour rien, pose des problemes avec les autres evenements... de plus, impossible de tenir compte de la direction des traces de pas. Egalement difficile de donner des traces de pas aux autres evenements de la mp. Bref une technique que je vous déconseille d'utiliser.

Voici donc une technique propre, qui vous permet de lier des traces de pas à un personnage (joueur, mais aussi PNJ). De plus, cette technique tiens compte du sens des traces de pas, pour ainsi s'adapter à la direction.

En gros, elle fonctionne sur un système assez simple: deux evenements communs: un qui calcule toutes les x dixièmes de seconde la position de votre personnage, et un autre qui calculz toutes les x dixièmes de secondes la direction de votre personnage. Un evenement sur la map qui s'assure que votre personnage c'est deplacé. Si c'est le cas, il garde en mémoire la position de votre personnage, ainsi que sa direction, et y teleporte un evenement ayant pour charset une trace de pas.

Alors, comment allons nous procéder?
Tout d'abord, il nous faut un charset de traces de pas. Par exemple, celui-ci:

charset traces de pas

Bon nous allons commencer par créer la base de la prog, le premier evenement commun, que j'appelerais

position perso

Comme son nom l'indique, cet evenement commun sauvegarde la position de votre perso dans deux variables, que nous appelerons pospersox1 (position du personnage sur l'axe X) et pospersoy1 (position du personnage sur l'axe Y). Placez cet evenement en processus parellele. Puis:

-Modifier variable: [pospersox1] = heros, coordonées X
-Modifier variable: [pospersoy1] = heros, coordonées Y
-Attendre 0,1sec


Qu'avons nous fait? Et bien, comme dit plus haut, on commence par stocker dans la variable "pospersox1" les coordonées X du héros. Puis on fait de meme pour les coordonées Y du héros. Enfin, le "attendre O,1sec permet d'eviter que l'evenement fasse ramer le jeu.

Maintenant, on passe au 2nd évenement commun, que j'appelerais:

direction perso

Comme précédament, cette evenement doit etre en processus parallele. Dedans, entrez:

-Modifier variable: [direction perso] = Héro direction
-Attendre 0,1sec


Qu'avons nous fait? Et bien ici, nous avons assigné a la variable "direction perso" une valeur définissant l'orientation du héro: haut=8, bas=2, droite=6 et gauche=4. Et comme précédament, un petit "attendre 0,1seconde" pour eviter le lag.

Nous en avons donc fini avec les evenements communs. Durant tout le jeux, ces evenements tourneront, n'oubliez donc pas que vous pouvez vous en servir pour d'autres choses, des bruits de pas par exemple.

Bon maintenant, passons au gros morceau: sur chaque map utilisant les traces de pas, il va vous falloir un evenement, en processus parallele. Nous nomeront cet evenement

Traces de pas prog

Cette evenement doit faire 1pages. La premiere:

-etiquette1
-attendre 0,1seconde


Ici vous avez l'entente de l'evenement. L'étiquette sert de repère, et le petit temps d'attente sert encore une fois a eviter les lags.


-si variable [direction perso] = 8,
-si variable [pospersox2] different variable [pospersox1],
-si variable [numpas] = 0


Alors, attention à bien comprendre ce qu'il se passe ici, car tout le reste est plus ou moin du copier/coller. On commence par lui définir une condition: si la variable "directionperso" = 8. En gros, on lui dit "si le personnage regarde vers le haut, alors ...".

Ensuite, on lui dit "si la variable "pospersox1" est differente de la variable "pospersox2". Attention ici, c'est un peu plus compliqué. La variable "pospersox1", c'est la variable qui décris la position de votre personnage toutes les 0,1 secondes. Vous savez, via l'evenement commun "position perso". Seulement, pour savoir si le personnage s'est déplacé, il faut la comparer à une seconde variable, a savoir la variable "pospersox2". Cette variable indique l'ancienne position de votre personnage. Ainsi, si les deux variables sont differentes, cela indique qu'il y a eu un déplacement (sur l'axe X, puisque ces variables définisse cet axe).

Enfin, on a un "si variable "numéropas" = 0. Pour l'instant vous ne pouvez pas savoir a quoi cela se repporte. Je vous l'explique plus loin dans ce tutorial. Attendez donc d'y etre.


Donc, si ces conditions sont remplies, voici ce qu'il se passe:

-modifier position d'un evenement: "traces de pas1", nouvelle position x = [pospersox2], nouvelle position y = [pospersoy2]
-modifier interrupteur: [pashaut1] = ON
-modifier variable: [numpas] = 1
-modifier variable: [pospersox2], rendre egale a la variable [pospersox1]
-modifier variable: [pospersoy2], rendre egale a la variable [pospersoy1]
-aller à l'étiquette 1


Alors, que ce passe t-il ici?
Tout d'abord, il faut afficher l'image de la trace de pas. Hé oui, c'est tout de même le but de ce tutorial! Cette trace de pace, c'est donc un charset, qui est dans un évenement. Evenement que nous appelerons donc "traces de pas 1". Je vous en parlerais plus longuement tout à l'heure, plus loin dans ce tutorial.

Donc tout simplement, la premiere ligne sert à "teleporter" cet evenement à la position précédente du héro, définie par les valeurs contenues dans les variables [pospersox2] et [pospersoy2].

Seconde ligne, on modifie la variable "numpas", pour qu'elle ai la valeur "1". Comme tout a l'heure, nous verrons plus tard à quoi cela sert.

3ème et 4ème lignes, on remet tout a zero: on égalise la variable [pospersox2] en la rendant égale à la variable [pospersox1], et on fait de meme avec la variable [pospersoy2], que l'on rend égale à la variable [pospersoy1]. Ainsi, l'ordinateur pourra calculer les prochaines mouvements.

Enfin, pour finir, on renvoi à l'étiquette 1. Ainsi, on recommence tout.


Voila, assurez vous bien d'avoir compris cette partie du code. Car la suite, ce n'est plus que du copier/coller.

Premier copier/coller:


-si variable [direction perso] = 8,
-si variable [pospersox2] different variable [pospersox1],
-si variable [numpas] = 1

Alors:

-modifier position d'un evenement: "traces de pas2", nouvelle position x = [pospersox2], nouvelle position y = [pospersoy2]
-modifier interrupteur: [pashaut2] = ON
-modifier variable: [numpas] = 0
-modifier variable: [pospersox2], rendre egale a la variable [pospersox1]
-modifier variable: [pospersoy2], rendre egale a la variable [pospersoy1]
-aller à l'étiquette 1


Vous remarquerez qu'il s'agit de la meme chose que précédament. A 2 differences près:
la condition "si variable [numpas] =" n'est plus de 0, mais de 1. Souvenez vous qu'a la fin de la précédente partie, nous avions rendu égale la variable [numpas] à 1.
2nd difference, nous ne teleportons plus l'evenement "traces de pas1", mais l'evenement "traces de pas2".
Pourquoi? Et bien, je vous l'ai deja dit, ce système utilise des evenement, ressemblants visuellement à des traces de pas, qui se teleportent derriere le héro. Probleme: si vous n'avez qu'un seul unique evenement, les traces de pas ne seront pas fluides. Ici nous en gerons donc deux. et bien, tout cela sert à ça.
La variable [numpas] définie là où vous en etes dans l'evenement. Si cette variable est égale à 0, alors c'est l'evenement "trace de pas1" qui est téléporté. Par contre si cette variable est égale à 1, alors c'est l'évenement "trace de pas2" qui est téléporté.
Pour l'exemple, je ne gere que 2 evenements, mais vous n'aurez pas quelque chose de fluide, je vous conseille d'en gérer plus, minimum 6, pour avoir quelque chose de fluide. C'est fluide lorsque les evenements se teleportes en etant redevenus invisible. Oui car plus tard, lorsque nous créeront ces evenements, nous ferons en sorte qu'ils disparaissent petit à petit. Pour en rajouter c'est assez simple, il suffit de copier/coller cette partie du code, en modifiant juste ce qui fait référence à la variable [numpas] et à un evenement de "trace de pas".

Bon ensuite, c'est encore du copier coller. On s'est en effet occupé de la direction haut, il faut dorénavent d'occuper de la droite, de la gauche et du bas.
Donc vous copiez collez le code, et modifiez les valeurs pour que ça ressemble à cela:

-si variable [direction perso] = 2,
-si variable [pospersox2] different variable [pospersox1],
-si variable [numpas] = 0

Alors:
-modifier position d'un evenement: "traces de pasbas1", nouvelle position x = [pospersox2], nouvelle position y = [pospersoy2]
-modifier interrupteur: [pasbas1] = ON
-modifier variable: [numpas] = 1
-modifier variable: [pospersox2], rendre egale a la variable [pospersox1]
-modifier variable: [pospersoy2], rendre egale a la variable [pospersoy1]
-aller à l'étiquette 1


Ainsi que bien sur la suite:

-si variable [direction perso] = 2,
-si variable [pospersox2] different variable [pospersox1],
-si variable [numpas] = 1

Alors:

-modifier position d'un evenement: "traces de pasbas2", nouvelle position x = [pospersox2], nouvelle position y = [pospersoy2]
-modifier interrupteur: [pasbas2] = ON
-modifier variable: [numpas] = 0
-modifier variable: [pospersox2], rendre egale a la variable [pospersox1]
-modifier variable: [pospersoy2], rendre egale a la variable [pospersoy1]
-aller à l'étiquette 1


Bon normalement c'est facile, vous avez tout compris, j'ai juste changé la notion de direction: cette fois ci, ça concerne quand le personnage marche vers le bas. Donc:
La condition de direction est du coup à "2" pour le bas, les evenements que l'on teleport pour les traces de pas sont ceux només "traces bas", etc...


Bon la suite est simplissime:



-si variable [direction perso] = 4,
-si variable [pospersoy2] different variable [pospersoy1],
-si variable [numpas] = 0

Alors:

-modifier position d'un evenement: "traces de pasgauche1", nouvelle position x = [pospersox2], nouvelle position y = [pospersoy2]
-modifier interrupteur: [pasgauche1] = ON
-modifier variable: [numpas] = 1
-modifier variable: [pospersox2], rendre egale a la variable [pospersox1]
-modifier variable: [pospersoy2], rendre egale a la variable [pospersoy1]
-aller à l'étiquette 1


Et encore une fois vous n'oubliez pas la suite:

-si variable [direction perso] = 4,
-si variable [pospersoy2] different variable [pospersoy1],
-si variable [numpas] =1

Alors:

-modifier position d'un evenement: "traces de pasgauche2", nouvelle position x = [pospersox2], nouvelle position y = [pospersoy2]
-modifier interrupteur: [pasgauche2] = ON
-modifier variable: [numpas] = 1
-modifier variable: [pospersox2], rendre egale a la variable [pospersox1]
-modifier variable: [pospersoy2], rendre egale a la variable [pospersoy1]
-aller à l'étiquette 1


Attention, petit subtilitée: ici on a changé d'axe: en effet, en allant vers la gauche ou vers la droite, le personnage ne se déplace plus sur l'axe X mais sur l'axe Y. Les valeurs de conditions ne sont donc plus celles des variables [pospersox1] et [pospersox2] mais celles des variables [pospersoy1] et [pospersoy2]. Sinon le reste vous conaissez deja, je ne me repete donc pas.

Bon voila vous copiez collez tout ça une derniere fois, pour gérer la droite, vous avez compris je pense à présent les valeurs à modifier pour adapter.

Passons donc aux traces de pas proprement dites. Il s'agit de créer autand d'evenements que vous en appelez dans l'evenement

Traces de pas prog. pour notre exemple, nous en avions 2 par direction, soit 8.

Bon là aussi, c'est du copier/coller, avec quelques valeurs qui change. Je vais donc vous expliquer en detail comment en faire un (vous verrez c'est très simple) en vous indiquant les valeurs à changer, et je vous laisse appliquer ce que vous avez appris sur les autres. Enfin si vous avez compris la partie précédente, ça c'est du gateau.

Alors, nous allons donc créer un nouvel évenement, que nous nomeront traces de pas1. Cet evenement fait 2pages. laissez la première page vierge, bande de vicieux. Sur la seconde page:

Condition de l'evenement: interrupteur "pas haut1" activé. En processus parallele, sous le héros, et cochez la case "autoriser la superposition".
Ensuite, le contenu de l'évenement, à proprement parler:

-déplacer/modifier évenement: changer apparance (lui donner l'apparence voulu, ici un charset de pas dirigé vers le haut).
-attendre 0,2secondes
-déplacer/modifier évenement: augmenter transparence.
-attendre 0,2secondes
-déplacer/modifier évenement: augmenter transparence.
-attendre 0,2secondes
-déplacer/modifier évenement: augmenter transparence.
-attendre 0,2secondes
-déplacer/modifier évenement: augmenter transparence.
-attendre 0,2secondes
-Modifier interrupteur: "pas haut1" désactiver.


Voila, c'est tout pour le contenu de cet évenement, quand je vous disais que c'etait simple!

Alors, les choses a modifier:
bah deja, l'apparence de votre charset, selon que votre evenement concerne lorsque l'on se dirige vers le haut, la droite, ...
Ensuite le nom de l'evenement, qui doit correspondre a celui que vous appelez dans l'evenement Traces de pas prog. Egalement l'interrupteur qui déclenche l'animation des traces de pas.

Et voila, copiez/collez cet evenement autand de fois que necessaire. Si vous avez compris ce tutorial, tout cela ne devrais vous poser de problèmes.
L'avantage c'est que tout cela est facilement modulable, si vous avez compris, et pas betement recopier.


TamTamMort - posté le 06/12/2008 à 11:06:49. (376 messages postés)

Bien mais apparament pas compatible avec RMVX...


Monos - posté le 06/12/2008 à 11:47:44. (56278 messages postés) - admin

Vive le making libre

Sans test, je viens de lire vite fait et en théorie si ca doit être compatible.

Pixner|Offgame | Le comptoire des clikeurs


xXx-Dark-Vlad-xXx - posté le 09/04/2009 à 15:03:08. (25 messages postés)

killer of rpg maker VX

impossible sa marchekedal les variable c trop dla m**de


Legendien - posté le 06/05/2009 à 14:43:36. (15 messages postés)

Dessinateur maker... et animateur enfant

ça fait plus de 3h que j'essaye le code... mais rien ! ça ne fonctionne pas ! du moins, je ne voi aucune trace à l'écran ! est ce que quelqu'un pourrait m'aider ?

Concentre toi sur ce qui te rends heureux, pas le contraire...


TheDuke - posté le 23/08/2009 à 22:32:17. (34 messages postés)

Notest! Powa!

rien ne fonctionne !!:'(

Notest! Official Démo 2! pour bientot ;)


ff-style - posté le 15/06/2010 à 20:33:52. (589 messages postés)

tiens, je vais me le faire ce tuto ! :)

/La raison de tuer, est celle d'aimer ça/ Vous voulez devenir un bogoss ? Alors ne ressemblez surtout pas à ça !/Comment m'être toutes les filles à ces pieds


Dave30 - posté le 21/07/2016 à 14:17:29. (5 messages postés)

Bonjour le tuto dois être super mais je suis complètement perdu...
tu n'explique pas asses en détaille pour moi comme par exemple "-modifier position d'un evenement: "traces de pasgauche1", nouvelle position x = [pospersox2], nouvelle position y = [pospersoy2]"

Le mieux serais de prendre des screens de ton projet pour mieux voir et comprendre le système, merci du tuto sinon je vais essayer de faire avec.:doute5

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe

Plan du site:

Activité: Accueil | News | Forum | Flash-news | Chat | Commentaires | Galerie | Screen de la semaine | Sorties | Articles perso | Livre d'or | Recherche
Jeux: Index jeux séparés | Top Classiques | Top Originaux | Les autres | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Jeux complets | Proposer
Rubriques: Le Wiki | Collection Oniro | Tutoriaux | Scripts | Guides | Gaming-Live | Tests | Making-of | Interviews | Articles perso | OST | L'Annuaire | Divers | Palmarès
Hébergés: Aëdemphia | Fighting Robots Quest | Forstale | Geex | Inexistence | La Légende d'Ibabou | Lije | LoveMaster | Sarcia | Super Mario RPG - Lost Souls
Ressources: Jeux | Programmes | Packs de ressources | Midis | Eléments séparés | Sprites
RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis