- Medal'Membre
- Nombre de messages : 413
Age : 28
Localisation : Alsace
Distinction : aucune
Date d'inscription : 23/12/2012
[Tuto VX/VX Ace] Amélioration de la téléportation
Sam 27 Juin 2015 - 16:33
Bonjour, bonsoir à tous, ceci est mon premier tutoriel.
Dans un jeu, le héros est amené à passer d'une carte à une autre via un événement de téléportation.
Le but de ce tutoriel est de vous apprendre à améliorer le réalisme des changements de maps.
Voilà ce qui est dit dans le livre de Samarium : "Pour que le héros change de carte, il suffit d'employer la commande
d'événements Transfer Player. Le héros se téléporte alors vers un carreau donné d'une autre carte ou de la carte actuelle."
Ceci dit, le fait de ne faire qu'un événement de téléportation sur un seul carreau d'une carte pour passer à une autre carte ce n'est pas très réaliste.
"Pour rendre ça plus réaliste il n'y a qu'à faire d'autres événements de téléportation sur la même cartes", me diriez-vous. Oui, on peut. Mais le livre de samarium à une méthode beaucoup moins gourmande en évents, que je vais vous expliquer ici.
/!\CE TUTORIEL REPREND CELUI DU LIVRE MAIS ADAPTÉ POUR RPG MAKER VX ACE/!\
Tout d'abord, allez dans la base de données, onglet "événements communs" et créez un nouvel événement commun que vous pouvez appelé n'importe comment (moi je l'ai appelé "Téléportations").
Dans la page de l'événement, créez une nouvelle variable que vous appellerez "Position X héros" (par exemple), faites "Remplacer" puis dans valeur faites "Autre" -> "Événement" -> "Héros" -> "Carte X" puis faites "OK' pour revenir à la page de l'événement :
Puis, toujours dans la page événement, créez une seconde variable cette fois appelée "Position Y héros" (là encore c'est un exemple), puis vous faites la même chose : "Remplacer" -> "Autre" -> "Événement" -> "Héros" -> "Carte Y" puis "OK" pour revenir à la page de l'événement :
Quittez la base de données et allez sur une map où vous voulez améliorer la téléportation est placez un nouvel événement sur la ligne de téléportation voulue (je vous conseil, pour bien suivre le tuto, de placer l'événement comme sur l'image ci-dessous) :
La condition de déclenchement de ce nouvel événement est "Processus parallèle" puisqu'il vérifie la position du héros tout le temps.
Sur la page de l'événement faites "Événement commun..." et appelez l'événement commun que l'ont viens de créer ("Téléportations" dans mon exemple) :
Ensuite créez une nouvelle variable (que j'ai appelé "Position X event" pour l'exemple), faites "Remplacer", "Autre" -> "Événement" -> "Cet événement" -> "Carte X" :
Maintenant faites une condition pour vérifier si le héros se trouve sur la ligne de téléportation : "Condition..." -> "La variable "Position X héros" égale à la variable "Position X event"" (et décochez "Éxécuter autre chose si la condition n'est pas respectée") :
À l'intérieur de la condition, créez une nouvelle variable (appelée ici "Map ID"), faites "Remplacer", puis "Constante" et là vous mettez l'ID de la map sur laquelle le héros veut se téléporter, dans mon exemple il s'agit de la map d'ID 24, la constante sera donc de 24 :
Encore dans la condition, créez une nouvelle variable ("Map X" pour l'exemple), faites "Remplacer" et mettez 0 pour la "Constante" :
Et pour finir, toujours dans la condition, faites "Téléportation..." -> "Par variable" et là mettez "Map ID" pour "ID carte", "Map X" pour "Coord. X" et "Position Y héros" pour "Coord.Y" :
Quelques questions se posent à la fin de ce tuto, je vais y répondre de façon la plus claire possible :
Si on veut téléporter dans le sens inverse ?
Si vous voulez vous téléporter dans le sens inverse, il suffit de changer la constante de la variable "Map X" et de mettre la dernière valeur de l'abscisse de la carte (par exemple si vos cartes font 20*20, la dernière valeur de l'abscisse sera 19) à la place de 0.
Si on choisis une ligne de téléportation horizontale ?
Si vous avez choisis une ligne de téléportation horizontale, il suffit de faire la même démarche que si vous avez choisis une ligne verticale, l'événement commun ne changera pas mais dans l'événement sur la carte il faudra créer une variable "Position Y event" qu'il faudra remplacer par "Autre" -> "Cet événement" -> "Carte Y".
La condition changera elle aussi est deviendra : "Variable "Position Y héros" égale à "Position Y event".
Il faudra créer une variable "Map Y" et mettre sois 0, sois la dernière valeur de l'ordonnée (Y donc) de la map. Et pour finir dans "Téléportation..." il faudra faire : "Par Variable" avec "Map Id" pour l'ID de la map, "Position X héros" pour "Coord. X" et "Map Y" pour "Coord. Y".
Voili voilou
Ce tutoriel est à présent terminé, j'espère qu'il en aidera certains et si vous avez des questions, postez les en commentaires et je tenterais d'y répondre
Edit : Le tutoriel possède une faille. En effet, si vous placez l'événement de téléportations sur l'extrême droite d'une map d'ID A, comme vu plus haut, cela vous téléportera à l'extrême gauche de la map de destination d'ID B , ce qui est logique.
Maintenant, placer l'événement de téléportations à l'extrême gauche de la map d'ID B pour vous téléporter à l'extrême droite de la map d'ID A est tout aussi possible, et c'est faisable.
Mais un problème survient alors : La téléportation A -> B et B -> A se répétera à l'infini.
Ce n'est pas un gros problème en soi, mais du coup pour les personnes qui prévoit dans leur jeu que le héros revienne à plusieurs maps en arrière et bien ce n'est tout à fait pas possible à cause de cette boucle infini.
Le mieux est donc de ne pas revenir sur plusieurs maps en arrière.
Dans un jeu, le héros est amené à passer d'une carte à une autre via un événement de téléportation.
Le but de ce tutoriel est de vous apprendre à améliorer le réalisme des changements de maps.
Voilà ce qui est dit dans le livre de Samarium : "Pour que le héros change de carte, il suffit d'employer la commande
d'événements Transfer Player. Le héros se téléporte alors vers un carreau donné d'une autre carte ou de la carte actuelle."
Ceci dit, le fait de ne faire qu'un événement de téléportation sur un seul carreau d'une carte pour passer à une autre carte ce n'est pas très réaliste.
"Pour rendre ça plus réaliste il n'y a qu'à faire d'autres événements de téléportation sur la même cartes", me diriez-vous. Oui, on peut. Mais le livre de samarium à une méthode beaucoup moins gourmande en évents, que je vais vous expliquer ici.
/!\CE TUTORIEL REPREND CELUI DU LIVRE MAIS ADAPTÉ POUR RPG MAKER VX ACE/!\
Tout d'abord, allez dans la base de données, onglet "événements communs" et créez un nouvel événement commun que vous pouvez appelé n'importe comment (moi je l'ai appelé "Téléportations").
Dans la page de l'événement, créez une nouvelle variable que vous appellerez "Position X héros" (par exemple), faites "Remplacer" puis dans valeur faites "Autre" -> "Événement" -> "Héros" -> "Carte X" puis faites "OK' pour revenir à la page de l'événement :
Puis, toujours dans la page événement, créez une seconde variable cette fois appelée "Position Y héros" (là encore c'est un exemple), puis vous faites la même chose : "Remplacer" -> "Autre" -> "Événement" -> "Héros" -> "Carte Y" puis "OK" pour revenir à la page de l'événement :
Quittez la base de données et allez sur une map où vous voulez améliorer la téléportation est placez un nouvel événement sur la ligne de téléportation voulue (je vous conseil, pour bien suivre le tuto, de placer l'événement comme sur l'image ci-dessous) :
La condition de déclenchement de ce nouvel événement est "Processus parallèle" puisqu'il vérifie la position du héros tout le temps.
Sur la page de l'événement faites "Événement commun..." et appelez l'événement commun que l'ont viens de créer ("Téléportations" dans mon exemple) :
Ensuite créez une nouvelle variable (que j'ai appelé "Position X event" pour l'exemple), faites "Remplacer", "Autre" -> "Événement" -> "Cet événement" -> "Carte X" :
Maintenant faites une condition pour vérifier si le héros se trouve sur la ligne de téléportation : "Condition..." -> "La variable "Position X héros" égale à la variable "Position X event"" (et décochez "Éxécuter autre chose si la condition n'est pas respectée") :
À l'intérieur de la condition, créez une nouvelle variable (appelée ici "Map ID"), faites "Remplacer", puis "Constante" et là vous mettez l'ID de la map sur laquelle le héros veut se téléporter, dans mon exemple il s'agit de la map d'ID 24, la constante sera donc de 24 :
Encore dans la condition, créez une nouvelle variable ("Map X" pour l'exemple), faites "Remplacer" et mettez 0 pour la "Constante" :
Et pour finir, toujours dans la condition, faites "Téléportation..." -> "Par variable" et là mettez "Map ID" pour "ID carte", "Map X" pour "Coord. X" et "Position Y héros" pour "Coord.Y" :
Quelques questions se posent à la fin de ce tuto, je vais y répondre de façon la plus claire possible :
Si on veut téléporter dans le sens inverse ?
Si vous voulez vous téléporter dans le sens inverse, il suffit de changer la constante de la variable "Map X" et de mettre la dernière valeur de l'abscisse de la carte (par exemple si vos cartes font 20*20, la dernière valeur de l'abscisse sera 19) à la place de 0.
Si on choisis une ligne de téléportation horizontale ?
Si vous avez choisis une ligne de téléportation horizontale, il suffit de faire la même démarche que si vous avez choisis une ligne verticale, l'événement commun ne changera pas mais dans l'événement sur la carte il faudra créer une variable "Position Y event" qu'il faudra remplacer par "Autre" -> "Cet événement" -> "Carte Y".
La condition changera elle aussi est deviendra : "Variable "Position Y héros" égale à "Position Y event".
Il faudra créer une variable "Map Y" et mettre sois 0, sois la dernière valeur de l'ordonnée (Y donc) de la map. Et pour finir dans "Téléportation..." il faudra faire : "Par Variable" avec "Map Id" pour l'ID de la map, "Position X héros" pour "Coord. X" et "Map Y" pour "Coord. Y".
Voili voilou
Ce tutoriel est à présent terminé, j'espère qu'il en aidera certains et si vous avez des questions, postez les en commentaires et je tenterais d'y répondre
Edit : Le tutoriel possède une faille. En effet, si vous placez l'événement de téléportations sur l'extrême droite d'une map d'ID A, comme vu plus haut, cela vous téléportera à l'extrême gauche de la map de destination d'ID B , ce qui est logique.
Maintenant, placer l'événement de téléportations à l'extrême gauche de la map d'ID B pour vous téléporter à l'extrême droite de la map d'ID A est tout aussi possible, et c'est faisable.
Mais un problème survient alors : La téléportation A -> B et B -> A se répétera à l'infini.
Ce n'est pas un gros problème en soi, mais du coup pour les personnes qui prévoit dans leur jeu que le héros revienne à plusieurs maps en arrière et bien ce n'est tout à fait pas possible à cause de cette boucle infini.
Le mieux est donc de ne pas revenir sur plusieurs maps en arrière.
- 152'Membre
- Nombre de messages : 542
Age : 22
Localisation : Ach, sûrement en train de corriger des fautes d'orthographe! (Mit ein Deutsch accent, bitte!)
Distinction : Crétin (SPY)
Nazi du dictionnaire (Gel')
Date d'inscription : 10/04/2015
Re: [Tuto VX/VX Ace] Amélioration de la téléportation
Sam 27 Juin 2015 - 19:50
GG pour le tuto, Medal'!
(Perso je flood mes maps avec des events, mais je vais essayer d'utiliser ton tuto dans mes prochaines maps!)
152
(Perso je flood mes maps avec des events, mais je vais essayer d'utiliser ton tuto dans mes prochaines maps!)
152
- GelartoGelato Della Mamma
- Nombre de messages : 2919
Age : 29
Distinction : Grand bêta-testeur de la communauté Curse
Personne avec du goût
Je ne suis pas une glace italienne, bordel de merde! [Gel']
Mon plus grand fan [Yama']
Mon ptit bichon [encore Yama']
Jeau-Paul II[Mist']
Saint-Gelato Le Frais [Mist']
Écrivain du dimanche [Amal']
FF IV Fanatic [LaCommu']
Collectionneur de distinctions de merde [Yama]
ModoGel [Un staffieux mais lequel?]
RNGel 2.0 [Zeal']
Date d'inscription : 31/07/2012
Re: [Tuto VX/VX Ace] Amélioration de la téléportation
Dim 28 Juin 2015 - 1:10
Très sympa comme tuto! Merci Medal
Pour la faille, tu ne peux pas la régler en forçant le héros à faire un pas après la téléportation afin de passer "devant" l'autre téléportation sans la subir? De mémoire ça devrait fonctionner^^
Pour la faille, tu ne peux pas la régler en forçant le héros à faire un pas après la téléportation afin de passer "devant" l'autre téléportation sans la subir? De mémoire ça devrait fonctionner^^
_________________
- Medal'Membre
- Nombre de messages : 413
Age : 28
Localisation : Alsace
Distinction : aucune
Date d'inscription : 23/12/2012
Re: [Tuto VX/VX Ace] Amélioration de la téléportation
Dim 28 Juin 2015 - 2:18
@152 et Gel'
Merci à vous deux
@Gel'
Je viens de tester et ça n'a pas l'air de fonctionné... En faisant le pas en avant (pour l'instant j'ai testé avec cette simple commande) il passe sur l'autre téléportation et du coup, il se fait téléporter de nouveau dans l'autre sens.
Je vais voir plus en détails demain
Merci à vous deux
@Gel'
Je viens de tester et ça n'a pas l'air de fonctionné... En faisant le pas en avant (pour l'instant j'ai testé avec cette simple commande) il passe sur l'autre téléportation et du coup, il se fait téléporter de nouveau dans l'autre sens.
Je vais voir plus en détails demain
- Cyber EroxMembre
- Nombre de messages : 19
Distinction : aucune
Date d'inscription : 20/07/2015
Re: [Tuto VX/VX Ace] Amélioration de la téléportation
Lun 20 Juil 2015 - 22:36
bien que j'aime pas trop m'aventurer dans le domaine trop "pro" je pense que je vais faire pareil ^^
Re: [Tuto VX/VX Ace] Amélioration de la téléportation
Lun 12 Oct 2015 - 21:22
Medal' a écrit:@152 et Gel'
@Gel'
Je viens de tester et ça n'a pas l'air de fonctionné... En faisant le pas en avant (pour l'instant j'ai testé avec cette simple commande) il passe sur l'autre téléportation et du coup, il se fait téléporter de nouveau dans l'autre sens.
Je vais voir plus en détails demain
Merci au passage pour ce tutoriel.
Tout d'abord, je m'excuse du nécropost !
Mais c'est pour apporter une aide si elle n'a pas été déjà résolue, pour ainsi éviter d'avoir une boucle de téléportation infinie, il faut tout simplement téléporté le joueur d'une case en plus ou en moins en faite... Je m'explique
Par exemple, pour une carte (par défaut) est de minimum en Largeur égale à "16" (X) et en Hauteur égale à "12" (Y) :
En faisant en sorte que la variable "Map X" égale "1" (ajouter 1) plutôt que zéro pour la téléportation verticale et ainsi de même pour la variable "Map Y" égale à 11 pour la téléportation horizontale, donc ainsi on évite d'entrer dans une boucle de téléportation infernale ! xD
Si sanction il y a et bien , j'en subirai les conséquences ! ^^
En espérant en aider plus d'un parce que ce tutoriel nous évite de faire bon nombres d'événements de Téléportation et ça, c'est cool ! o/
Je ne ferai plus de nécropost, promis.
- SpytjeAdministrateur
- Nombre de messages : 5935
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008
Re: [Tuto VX/VX Ace] Amélioration de la téléportation
Lun 12 Oct 2015 - 21:36
Tyrion il n'y a pas de nécropost dans le sens ou ton message peut aider et est constructif.
_________________
Re: [Tuto VX/VX Ace] Amélioration de la téléportation
Mar 13 Oct 2015 - 17:13
D'accord et bien tant mieux !
- Medal'Membre
- Nombre de messages : 413
Age : 28
Localisation : Alsace
Distinction : aucune
Date d'inscription : 23/12/2012
Re: [Tuto VX/VX Ace] Amélioration de la téléportation
Mar 16 Fév 2016 - 11:34
Bonjour !
Nécropost maggle, mais pour le coup ce n'est pas de ma faute X) J'ai pas vu le message de suite ^^"
Tyrion (Lannister) à tout à fait raison et je sais que cela marche même sans avoir encore testé car la méthode qu'il vient de dire est présente dans PSP (Pokémon Script Project) ^^
Et sinon, pour ceux qui ont testé, le système entier fonctionne bien ? :3
@spy
Pas taper :'(
Nécropost maggle, mais pour le coup ce n'est pas de ma faute X) J'ai pas vu le message de suite ^^"
Tyrion (Lannister) à tout à fait raison et je sais que cela marche même sans avoir encore testé car la méthode qu'il vient de dire est présente dans PSP (Pokémon Script Project) ^^
Et sinon, pour ceux qui ont testé, le système entier fonctionne bien ? :3
@spy
Pas taper :'(
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum