Espace Emulation, le site d'emulation qui a du chien ! Magazine Jeux Vidéo Emulation Gamemaking AstuSoluces Forums Forums Espace Emulation, le site d'emulation qui a du chien ! Magazine Jeux Vidéo Emulation Gamemaking AstuSoluces Forums Forums
Personnage qui suit le héros
-
-
Il va vous expliquer comment créer un groupe de "NPC" (objet ou perso non contrôler par le joueur) qui se déplace en suivant les mouvements de votre Hero. Ces NPC peuvent être utilisés pour visualiser les autres perso de votre équipe ou bien pour tous ce que vous voulez !

par Drakul
-
Ce tutorial requiert beaucoup de connaissances sur RPG Maker 2000. Je vais utiliser des éléments spéciaux incluant les Variables, les Fork Condition, et les Cycles. SVP soyez sur que vous connaissez ces concepts de base avant d'essayer de suivre mon exemple. !! Attention !! Ce tutorial est basé sur les Event de RPG Maker 2000 1.05b, donc si vous avez une version moins récente, il est possible que certain nom dans les Event ne soit pas les mêmes ! 1. Avant-goût Pour mieux comprendre la technique que je vais vous montrer, examinez d'abord les 5 étapes suivantes. C'est la méthode basique pour mon syteme de "chenille": 1.Déterminer les coordonnées du Hero (X et Y) 2.Déterminer les coordonnées du NPC (X et Y) 3.Déterminer la position du Hero par rapport au NPC 4.Déplacer le NPC en haut,à droit,en bas ou à gauche en fonction de la position du Hero 5.Répéter le tout --- 2. Créer des variables La première chose que nous allons faire, c'est de créer un set de variables qui vont enregistrer les coordonnées (coordonnée sur l'axe X et Y) des différents protagonistes du tutorial. Pour cette exemple, nous allons prendre le Hero comme leader de la "formation". Créer 2 variables HERO-X et HERO-Y qui enregistreront les coordonnées sur l'axe X (HERO-X) et sur l'axe Y (HERO-Y) du Hero. Donc, commençons avec un seul NPC qui suit, alors créez aussi un set de variables pour lui, appelez ces variables NPC1-X et NPC1-Y. --- 3. Créer un Event Ok, maintenant que nous avons nos variables prêtes, c'est le moment de les utiliser. Après que vous avez choisi la position de départ de votre Hero sur la carte, créez un Event sur un des carrés adjacent et nommé le NPC1. Laissez toute les Event Condition blanches et mettez le graphique que vous voulez. Dans Movement Type mettez Stay Still (tous les mouvements seront déterminé par la position du Hero, plus loin dans le tutorial). Soyez sur de mettre l' Event Start Condition sur Parallel Process et mettez Position sur Below Hero. Le Movement Speed doit être égal à la vitesse de votre Hero, si vous n'avez pas changé sa vitesse, mettez 4 : Normal. --- 4. Créer un NPC Ok, maintenant, on passe à la partie difficile. Je vais essayer d'aller assez lentement et d'expliquer chaque étape. La première chose que nous allons faire, c'est de créer une boucle et de la "mettre sur pause",j'entends par la que nous allons y mettre une commande Wait de 0.1 seconde, sinon la boucle va aller aussi vite qu'elle peut, donc va trop faire travailler votre processeur, donc ralentir votre jeu. Voici ce que vous devez avoir sur votre écran : <>CYCLE <>Wait: 0.1s. <> <>:END Cycle <> Maintenant que nous avons configuré notre boucle, nous avons besoin d'enregistrer les coordonnées de notre Hero, dans les bonnes variables. Pour faire ça, nous allons utiliser la commande Change Variable. Insérez cette commande directement en dessous de la commande Wait et faites comme suit dans la fenêtre Variable Management. Pour Choose Variable mettez One et 0001:HERO-X, Operation mettez Set, Operand mettez Event: Hero : X coordinate. Quand vous cliquez OK, vous devriez avoir ceci sur votre écran : <>CYCLE <>Wait: 0.1s. <>Variable CH:[0001:HERO-X]Set, Hero X pos <> <>:END Cycle <> Maintenant créez une autre commande Change Variable, et configurez-la pour enregistrer les coordonnées Y du Hero. Et créez encore 2 autre commandes pour enregistrer les coordonnées X et Y du NPC1. Pour le NPC1 (ainsi que les suivants), désigné le par This Event. Voici ce que ça donne : <>CYCLE <>Wait: 0.1s. <>Variable CH:[0001:HERO-X]Set, Hero X pos <>Variable CH:[0002:HERO-Y]Set, Hero Y pos <>Variable CH:[0003:NPC1-X]Set, This Event X pos <>Variable CH:[0004:NPC1-Y]Set, This Event Y pos <> <>:END Cycle <> A ce point, nous avons terminé les 2 premières étapes de l'idée de base. Cette boucle va enregistrer la position du Hero et du NPC1, et ce toute les 0.1 seconde. Nous allons déterminer la position du Hero par rapport au NPC1. Comme ça nous pouvons déplacer le NPC1 en conséquence. Commençons par faire la direction Nord (haut). Pour faire ça, nous allons créer une Fork Condition. Ajoutez une Fork Condition en dessous de la dernière variable et configurez-la comme ceci: Condition, Variable: 0002:HERO-Y ; Variab: 0004:NPC1-Y ; Smaller. Voici ce que ça donne : <>CYCLE <>Wait: 0.1s. <>Variable CH:[0001:HERO-X]Set, Hero X pos <>Variable CH:[0002:HERO-Y]Set, Hero Y pos <>Variable CH:[0003:NPC1-X]Set, This Event X pos <>Variable CH:[0004:NPC1-Y]Set, This Event Y pos <>Fork Optn:Varbl[0002:HERO-Y]- V[0004] less than <> :END Case (Fin de la Fork) <> <>:END Cycle <> Ok,c'est parfait, mais on doit maintenant mettre une action basée sur cette condition. Dans cette case l'action va être de déplacer le NPC1 dans la bonne direction (ici, on a mis que si l'Hero est plus haut que le NPC1 alors.... Donc on va déplacer le NPC1 en haut). Pour faire ça créez une commande Move Event entre la commande Fork Condition et sa case fermante (:END Case). Mettez Objet Character sur This Event ; Movement Frequency sur 8, et insérez Step Up dans Movement Route. Soyez sur que Repeat Action est sur OFF en enlevant la coche du carré. Voila, ça donne ça : <>CYCLE <>Wait: 0.1s. <>Variable CH:[0001:HERO-X]Set, Hero X pos <>Variable CH:[0002:HERO-Y]Set, Hero Y pos <>Variable CH:[0003:NPC1-X]Set, This Event X pos <>Variable CH:[0004:NPC1-Y]Set, This Event Y pos <>Fork Optn:Varbl[0002:HERO-Y]- V[0004] less than <>Move Event...: This Event,Up <> :END Case (Fin de la Fork) <> <>:END Cycle <> Maintenant, si l'Event détermine que l'Hero est au Nord du NPC1, NPC1 va se déplacer en direction du haut jusqu'a ce qu'il soit à la même hauteur que le Hero. Bien sure cet Event ne recouvre qu'une des 4 directions, mais je suis sûr que vous arriverez à faire les autre directions tout seul. Au cas ou, voici l'Event complet, pour les 4 directions. --- 5. Liste complète de l'Event En dessous, c'est ce qu'il doit avoir sur votre écran après avoir fini l'Event. J'ai ajouté quelque note, elles sont entre parenthèses et en noire : <>CYCLE <>Wait: 0.1s. (ralentissement de la boucle) <>Variable CH:[0001:HERO-X]Set, Hero X pos <>Variable CH:[0002:HERO-Y]Set, Hero Y pos <>Variable CH:[0003:NPC1-X]Set, This Event X pos <>Variable CH:[0004:NPC1-Y]Set, This Event Y pos (on prend les coordonnées de tout le monde) (Direction Nord) <>Fork Optn:Varbl[0002:HERO-Y]- V[0004] less than <>Move Event...: This Event,Up <> :END Case (Fin de la Fork) (Direction Sud) <>Fork Optn:Varbl[0002:HERO-Y]- V[0004] more than <>Move Event...: This Event,Down <> :END Case (Fin de la Fork) (Direction Est) <>Fork Optn:Varbl[0001:HERO-X]- V[0003] more than <>Move Event...: This Event,Right <> :END Case (Fin de la Fork) (Direction Ouest) <>Fork Optn:Varbl[0001:HERO-X]- V[0003] less than <>Move Event...: This Event,Left <> :END Case (Fin de la Fork) <> <>:END Cycle <> --- 6. Ajouter d'autres NPC Si vous avez réussi à suivre les étapes précédentes, c'est très simple. Tous ce que vous avez à faire c'est de créer un nouvel Event pour chaque NPC et référencer ses coordonnées par rapport au NPC qui est devant lui, et non plus au HERO. Par exemple, NPC1 se déplaçait par rapport au coordonnée du Hero, et bien faites que NPC2 se déplace par rapport à NPC1, NPC3 par rapport à NPC2 etc... Gardez à l'esprit que chaque NPC doivent avoir leur propre set de variables. Donc, par exemple, au début de l'event du NPC2, juste après la commande Wait, mettez : <>Variable CH:[0003:NPC2-X]Set, This Event X pos <>Variable CH:[0003:NPC2-Y]Set, This Event Y pos --- 7. L'Event Slip Through Comme vous l'avez peut-être remarqué, le scripte d'avant à quand même des limitation. Vous ne pouvez pas revenir en arrière en passant par-dessus les NPC, donc c'est possible que votre Hero se retrouve complètement pris au piège dans certaine de vos carte. Pour éviter ceci, nous allons utiliser la commande Slip Through. Ajouter simplement ces quelques ligne avant et après le déplacement du perso: Start Slip Though Step Up End Slip Though C'est très simple. Faite le pour chaque mouvement de NPC et vous aurez alors 100% de liberté de mouvement. Mais il y a 2 hic: 1.Quand vous vous arrêtez, les NPC se place dessous vous. 2. Les NPC passeront à travers tous les décors et objet !(ça peut faire un peux con) Donc vous avez 2 possibilité: soit vous adapté vos cartes pour pas que le perso reste bloqué. soit vous avez 100% de liberté de mouvement, mais ça fait un peu con (des fois). À vous de choisir ! --- 8. Ne pas oublier 1. Ce code n'est en aucun cas parfait. Si vous trouvez un bug ou qqch. d'autre, faite-le moi savoir. 2. Quand vous vous téléportez vers une autre carte, vous devez recopier (faites copier/coller) les Event NPC1,2,3.. à côté du point où vous êtes téléporté. De plus, s'il y a plusieurs points de téléportation dans la carte, vous devez utiliser des Switch pour mettre vos NPC à différent endroit (cela dépend où vous êtes téléporté). 3. Si vous voulez utiliser cette technique pour visualiser un membre de votre équipe, penser que ce membre peut ou ne peut pas être dans votre équipe quand vous entrez dans la carte, donc utilisez la condition Hero Need pour chaque perso. 4. Le leader n'est pas obligé d'être le Hero ou bien un humain. Cela peut être un NPC qui conduit le groupe. Très utile quand vous voulez partager votre équipe (un groupe part d'un côté et le vôtre n'importe où), ou pour faire un NPC qui se déplace aléatoirement avec quelque chose qui le suit. Un garçon et son chien par exemple. 5. Quand vous d&eactue;signer un NPC dans les variables ou dans Move Event, désigner-le avec This Event !! Sinon quand vous changerez de carte, ce sera un autre Event qui vous suivera !

||
Les derniers tutoriels
-
-

Egalement partenaires :
Recherche FR
| Annuaire FR | Gjeux | Yolabiza | Flogoo.fr

Espace-Emulation.net est un site d'actualité sur les jeux vidéo, le retrogaming, l'emulation et la création de jeux amateurs.
© Espace-Emulation.net 2002-2007. Tous droits réservés, toute copie intégrale ou partielle est interdite. Les images sont Copyright © par leurs propriétaires.
[Version 4 (bêta)] powered by EENET Engine2.0


roms
Classement de sites - Inscrivez le vôtre!


1 connecté