Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

News: Les actualités de fin d'année / Jeux: Glixel en version complète / Jeux: Izac 1 / News: Des jeux d'hiver sous la couette / Scripts: Système de vol pour RPG Maker (...) / Chat

Bienvenue
visiteur !





Désactiver
la neige


publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

276 connectés actuellement

30834959 visiteurs
depuis l'ouverture

2226 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Hellsoft

Lumen

Guelnika & E-magination

Kingdom Ultimate

Planète Glutko

Tous nos partenaires

Devenir
partenaire



Jauge Atb

Comment réaliser une jauge ATB du début à la fin en évitant certains problèmes (comme le remplissage trop rapide aux niveaux élevés).

Ecrit par oxion_garden


❤ 0

Jauge ATB






Ce tutoriel est censé aider à créer une jauge du style "ATB" pour les CBS. Il y a deux difficultés quant à la création d'une jauge ATB : la création et le fonctionnement de cette dernière, mais aussi son adaptation tout au long du jeu.
J'ai remarqué dans bien des tutos du genre que ce dernier aspect n'était pas traité. Ceci étant à mon sens l'aspect le plus important, je m'empresse de corriger cet oubli.
Je précise que ceci n'est pas la méthode absolue, c'est juste ma manière de procéder, à vous d'y apporter vos modifications.



Création de la jauge

Dessiner sa jauge

Il faut d'abord créer la jauge (logique). C'est assez simple: il suffit de dessiner des barres (plus ou moins moches selon vos compétences graphiques^^). Une barre pleine, une autre vide, ainsi que des barres intermédiaires représentant les différents niveaux de remplissage de la jauge en question.
Ex: Votre jauge ATB fait 50 pixels et se remplit en 10 phases. Dessinez donc 10 barres plus ou moins longues (et plus ou moins moches^^) avec respectivement: 5, 10, 15,...,50 pixels de longueur.


Déterminer le tour du héros

Maintenant, sachez qu'en gros le fonctionnement est assez simple: On utilise une variable qui va symboliser la vitesse du héros (agilité) et une condition qui va vérifier le remplissage de la jauge. Donc si la variable arrive à une certaine valeur donnée (jauge pleine) le tour commence, sinon on continue à rajouter la valeur de la vitesse.
Ex: Si la variable [ATB héros] est supérieure ou égale à 100, déclencher l'interrupteur "tour héros", sinon rajouter [vitesse héros].


Afficher l'image de la jauge

Dans le deuxième événement on affiche tout simplement l'image de la barre qu'il faut en fonction de la variable [ATB héros].
Ex: Si la variable [ATB héros] est égale à 0, afficher l'image: "celle de la jauge vide"
Si la variable [ATB héros] est supérieure ou égale à 5, afficher l'image: "celle de la jauge de 5 pixels".
Et ainsi de suite: 10 pour 10, 15 pour 15 etc...

Jusque là rien de bien diable et la jauge fonctionne nickel. S'arrêter ici serait néanmoins une erreur...
Si vous utilisez la vitesse du héros pour remplir la jauge, il ne faut pas perdre de vue que ce dernier monte de niveau. Et si monsieur se trimballe avec 5 de vitesse au niveau 1, il peut très bien se retrouver avec 500 de vitesse au niveau 99. La jauge devra-t-elle se remplir 100 fois plus vite? Sûrement pas! (pfiou, l'hallu !).



Adapter la vitesse de sa jauge tout au long du jeu

Voilà donc l'aspect le plus intéressant de ce tuto : arriver à ce que la jauge se remplisse toujours avec la même vitesse malgré l'évolution du héros tout au long du jeu. Et toutes les autres vitesses seront recalculées en fonction de celle du héros (alliés comme ennemis).


Trouver l'équation de vitesse du héros, et la manipuler pour que la vitesse de défilement de la jauge soit toujours la même (théorie)

Pour y arriver, nous allons utiliser une équation (attendez partez pas! C'est super simple).
Pour ceux qui s'en souviennent encore allez dans la base de données et trouvez l'équation selon laquelle évolue la vitesse du héros (indice: équation à deux inconnues). Pour ceux qui ne s'en souviennent pas (soyons polis^^) c'est pas grave, construisez simplement votre courbe selon une équation simple. C'est peut être même mieux car vous aurez une équation propre et simple.
Prenons une équation simple et pratique: Agilité= 5xniveau du héros + 45.
Si le héros est au niveau il a donc 50 points d'agilité (5x1+45), s'il est de niveau 99 il en a 540 (5x99+4).
Maintenant, pour trouver un chiffre constant (car la vitesse de remplissage de la jauge est constante) il suffit d'utiliser l'équation à l'envers. Puisque que l'équation est : Agilité= 5niv + 45, à l'envers on doit soustraire 45 à l'agilité, puis diviser par le quintuple du niveau.
Ex: Au niveau 15, le héros a 120 d'agilité. Utilisons l'équation à l'envers: 120-45= 75, 5x15=75, 75/75=1. Ca marche ! Quel que soit le niveau du héros, on trouvera toujours 1 en utilisant cette méthode, la jauge se remplira donc toujours avec la même vitesse. Un ennemi plus rapide se retrouvera avec 1 virgule quelque chose et un plus lent avec zéro quelque chose. J'espère que vous me suivez toujours car il y a une petite difficulté: Rpg Maker ne prend pas en compte les chiffres décimaux, il arrondit tout à l'entier le plus proche. Résultat tout le monde risque d'avoir la même vitesse. Pour pallier à ce petit problème il suffit de tout multiplier par 10 avant la division.

Récapitulons : il faut donc rendre une variable égale à la vitesse du héros et effectuer les calculs suivants sur cette dernière:
1_ soustraire 45 à la variable
2_la multiplier par dix pour régler le problème des valeurs entières
3_La diviser par le quintuple du niveau du héros
On se retrouvera donc toujours avec 10.


Manipuler l'équation pour que la vitesse de défilement de la jauge soit toujours la même (pratique)

Passons donc à la pratique et créons un mini CBS faisant intervenir notre méthode pour les jauges ATB. Nous avons 3 héros de niveau 1: Arshes qui a 50 d'agilité, Basil avec 51 et Sirus avec 49
Créons un événement qui déclenche le combat (apparence de monstre, suit le héros et se déclenche à son contact) et mettons y ce code: (je n'écrirai que le code de Arshes, faites de même avec les deux autres)

Citation:

<>Variable[vitesse Arshes]: rendre égale à Arshes---> agilité


Là je rend la variable égale à la vraie valeur de la vitesse du perso.

Ensuite Je recalcule la vitesse d'Arshes selon l'équation.
L'équation est: agilité= 5Xniv + 45. Donc il faut:
1_ soustraire 45 à la variable
2_la multiplier par dix pour régler le problème des valeurs entières
3_La diviser par le quintuple du niveau de Arshes

Je commence donc par créer une variable égale à cinq fois
le niveau actuel de Arshes.

Citation:

<>Variable[5x niv Arshes]: rendre égale à Arshes---> niveau
<>Variable[5x niv Arshes]: multiplier par 5
Ok, recalculons la vitesse d'Arshes:
<>Variable[vitesse Arshes]: retirer 45
<>Variable[vitesse Arshes]: multiplier par 10
<>Variable[vitesse Arshes]: diviser par valeur de la variable[5x niv Arshes]



Faites de même avec vos deux autres persos...

Ca y est, c'est fait ? Vérifions: Basil était le plus rapide avec 51,
suivi de Arshes avec 50 et Sirus avec 49.
Basil reste le plus rapide avec 12, Arshes a 10 et Sirus 8. C'est
bon, le ratio est préservé.
Créez un interrupteur nommé Temps et activez-le. Téléportez-vous à la map de combat.


Intégration de cette nouvelle équation dans le système de combat : déterminer le tour du héros

Créez y deux événement : un qui gère le déroulement du temps et l'autre qui gère l'affichage de ce dernier via l'ATB. Appelez les respectivement "déroulement temps" et "affichage temps".
Allez dans l'événement "déroulement temps", on va agir selon le principe que je vous avais expliqué auparavant.
Créez y deux pages: la première vide (si la jauge d'un autre perso est pleine, il ne se passe plus rien, les autres ne bougent plus pour éviter de superposer les tours) et la deuxième avec comme condition de déclenchement l'interrupteur "temps" activé et en processus parallèle. Mettez y ce code :

Citation:

<>Condition: si la variable [Atb Arshes] est égale à 100
<>interrupteur [Tour Arshes] activé
<>Sinon
<>Variable[Atb Arshes]: ajouter valeur de la variable[Vitesse Arshes]
#Faites de même pour les autres et ajoutez en fin de code ceci:
<>Attendre 20 frames



Donc si la variable arrive à 100, on active le tour de Arshes (créez un événement qui gère les tours et faites votre jeu), sinon on ajoute la valeur de la vitesse (en l'occurrence 10). Étant donné que 20 frames égalent une seconde, en gros on ajoute 10 chaque seconde. Or on vise les 100. La jauge de Arshes se remplit donc en 10 secondes.


Intégration de cette nouvelle équation dans le système de combat : afficher la jauge

Attaquons donc l'événement "affichage temps" (processus parallèle too)
Notre jauge s'affiche en 10 étapes. Let's go ! (je la joue ricain là^^)

Citation:

<>Condition: si la variable[Atb Arshes] est égale à 0
<>Afficher image: jauge étape 0
Fin
<>Condition: si la variable[Atb Arshes] est supérieure ou égale à 10
<>Afficher image: jauge étape 1
Fin
<>Condition: si la variable[Atb Arshes] est supérieure ou égale à 20
<>Afficher image: jauge étape 2
Fin



Et ainsi de suite jusqu'à l'étape finale et avec tous les persos.
Placez un bon "attendre 1 frame" en fin de code pour allége le travail de votre processeur qui n'a pas encore droit aux 35 heures.


Et ne pas oublier de rembobiner le système

Pfiou ! j'ai failli oublier. C'est peut être pas nécessaire de le préciser mais sait-on jamais.
Lorsque la jauge se remplit et que vous créez l'événement où se déroulent les commandes et actions de votre CBS, il ne faut pas oublier de désactiver le déroulement du temps au début de l'événement, de le réactiver à la fin et de désactiver cet événement du tour du héros.
Ex :

Citation:

#(processus parallèle)
<> Interrupteur[temps] désactivé
<>( Les actions, les commandes, bref votre Cbs quoi! je vais pas le coder non plus^^)
<>Variable[Atb Arshes] rendre égale à 0 (le tour de Arshes achevé, sa jauge doit se vider)
<> Interrupteur[temps] activé
<> Interrupteur[tour Arshes] désactivé.





Conclusion

Ca y est, c'est fini. C'est peut-être un peu plus chiant que les jauges ATB truquées mais là vous n'aurez plus besoin d'y toucher. Le code se gère tout seul jusqu'à la fin du jeu !
En plus, vu que ce code utilise les valeurs "réelles" de vitesse, vous n'avez pas besoin de faire un CMS spécifique pour camoufler le "trucage", il s'adapte très bien au menu de base.

Voilà ! Maintenant il faut savoir que c'est comme ça que je code les CBS, mais vous pouvez bien n'utiliser que la méthode de l'ATB et fonctionner comme vous le voulez. Je vous conseille cependant cette méthode : la prog est propre, pas gourmande en puissance, et elle permet de mettre des commandes de combat différentes pour chaque perso si vous voulez (chacun a son tour et son code). Cela évite les gros pâtés de code où on n'arrive même pas à se retrouver pour faire des modifications.
Pour la petite histoire j'ai déjà fait un CBS avec une énorme prog en un seul événement. Bah un jour j'ai voulu... Ah ! Ca vous intéresse pas ?... Bon d'accord...



Tutoriel réalisé sur RPG Maker XP. L'utilisation sur d'autres logiciels peut demander une légère adaptation, mais le principe de fonctionnement reste le même.

Ecrit vers le 2 février 2006.
Mis à jour le 21 avril 2020.





elfane - posté le 04/09/2008 à 13:50:26 (18 messages postés)

❤ 0

Une petit démo serais beaucoup plus utile à mon avis si cela est possible car, je pense que ton tuto oxion_garden est très bien fait, mais qu'il s'adresse à des confirmés qui maitrise très bien le logiciel. Si tu pouvais nous poster une démo pour donner un exemple à se qui, comme moi, ne sont pas assez doué sur RPG-Maker pour comprendre ton tuto.

Merci d'avance ;)


Elscorto - posté le 27/12/2008 à 14:30:20 (201 messages postés)

❤ 0

au boulot,comme d'ab

Salut, pour commencer très bon tuto, ensuite tu dis que tu as fait un cbs en event et j'y travaille en ce moment,enfin j'en suis qu'a la version papier et j'aimerai bien voir ce que tu as fait s'il te plait.

Merci.


MB097 - posté le 18/01/2010 à 21:51:31 (471 messages postés)

❤ 0

Sbibitatabi... Bonjour!!

:lei:batm:)Magnifique rien à dire c'est du bon boulot!! :lei

Ma galerie =) http://www.rpg-maker.fr/index.php?page=gallerie&auteur=15373


lemancool - posté le 06/06/2010 à 17:03:50 (5 messages postés)

❤ 0

preum's:ange


Tata-Monos - posté le 06/06/2010 à 17:05:24 (57322 messages postés)

❤ 0

Vive le homebrew

lemancool a dit:


preum's:ange



Cela me fait penser au truc sur JV.COM :D

Signer du nez ?


lemancool - posté le 06/06/2010 à 17:08:52 (5 messages postés)

❤ 0

preum's:ange


marcherfu - posté le 12/12/2011 à 03:40:00 (9 messages postés)

❤ 0

Évent-Maker ? Plus ? Humm... Qui sait ?

Sympas pour les fans de jauge ATB ^^ (désolé de dépoussiérer la plupart des tutos/scripts fin post en tout genre quoi...)
Mais une bonne ressource graphique se trouve facilement pour une jauge ATB. Explication :

Prenez un screen d'un combat de VX(trouvable sur le net facilement) normal (en gros le style Super-Fake-Dragon-Quest d'après certaines infos) puis ouvrez un logiciel de dessin qui à une Baguette Magique (Paint.NET est donc un bon magicien ^^") puis séléctionnez avec la BM (Baguette Magique) la jauge de vie et faites teinte/saturation (dans un des onglets) mettez de la couleur de votre choix et c'est fini plus qu'a copier collez pleins de foix + mettre du gris pour signifier l'endroit vide et hop ! une belle barre ATB !

Je rappel que je suis désolé d'avoir dépoussiéré un peu (trop même) de sujets "clos" :'(

Un évent-maker doit être bon graphiste pour pouvoir faire des trucs beaux !


arttroy - posté le 31/03/2012 à 22:24:56 (2394 messages postés)

❤ 0

Just working

bonjour j aimerais utiliser cette méthode mais pour un a rpg , je m explique j aimerais que la barre se remplisse avec le temps et qu' une fois pleine elle permette la transformation du héros et se vide une fois la transformation achevée c' est possible selon vous ?

Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ?

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 - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers