[XP] – 2D ISO

Gestion de l’isométrie dans RPG Maker

Rendu à l’écran du script 2D ISO

Ce script, qui date du 16 août 2006, fut la base de la gestion de l’isométrie dans RMXP puis dans RMVX.
Auparavant, des tentatives en isométrie dans RMXP furent menées, mais un problème majeur émergeait systématiquement : la gestion des déplacements et des collisions. En effet RMXP utilise un système de tiles qui sont des carreaux de 32px de largeur. La vue isométrique classique des jeux vidéos utilise une grille triangulaire, qu’il est alors impossible de faire correspondre précisément à la grille carrée de RMXP.

L’idée a été de séparer l’affichage de la gestion des déplacements et des collisions. Tous les personnages conservent leur déplacements sur une carte classique de RMXP, mais ils sont affichés sur une seconde carte en rendu isométrique.
Ce script a été tout d’abord modifié par Siegfried, qui a ajouté un système de hauteurs (décalage de l’affichage vertical en fonction des coordonnées en x et en y des personnages), puis repris par Gubid dans son fameux script de combats tactiques GTBS, et adapté sur par lui-même sur RMVX.

Comment utiliser ce script ?

Vous trouverez dans la démo deux parties : le script 2D ISO de base, et un addon.
L’addon ajoute les fonctions suivantes :

  • déplacements du joueur par huitième de carreau
  • déplacements du joueur dans les huit directions (désactivable)
  • le joueur peut courrir grâce à la touche [Z] (désactivable)
  • le joueur peut sauter grâce à la touche [A] (désactivable)
  • gestion des plates-formes mobiles

Le script 2D ISO doit être placé au-dessus de main et sous tous les autres scripts de base de RMXP.
L’addon, s’il est utilisé, doit être placé immédiatement sous le script 2D ISO de base.

Deux cartes sont nécessaires au fonctionnement du script : une carte gérant les données, et une le rendu isométrique.
Tout d’abord définissez les dimensions de la carte de données, puis créez la grille d’une carte en vue isométrique à partir de ces dimensions. L’origine de la carte (le coin en haut à gauche) se retrouve en haut de la carte en vue isométrique.
Un carreau isométrique est contenu dans un rectangle de 64px par 32px.

Exemple pour une carte de données de 20 carreaux de large pour 16 carreaux en hauteur :

Carte en vue isométrique (20 * 16)

La hauteur en pixels de la carte en vue isométrique doit être un multiple de 32. Par conséquent, si la somme de la hauteur et de la largeur en carreaux de la carte de données est impaire, vous devez augmenter la hauteur de la carte en vue isométrique, la carte devant toujours être calée en haut (il y aura une bande vide d’un hauteur de 16px en bas).

Exemple pour une carte de données de 19 carreaux de large pour 16 carreaux en hauteur :

Carte en vue isométrique (19 * 16)

C’est à vous de dessiner la carte en vue isométrique de la manière que vous voulez et d’en faire un tileset exploitable, en jouant sur les couches et les priorités des carreaux pour obtenir l’affichage souhaité.
Une fois cette carte créée dans RMXP, vous devez lui ajouter la carte de données en tant que carte fille dans l’arborescence.
Cette carte de données est utilisée pour définir les passabilités et autres caractéristiques des carreaux.

Exemple : utilisation du premier tilesetpour définir les endroits impassables (carreau de la tente marron) et les endroits de type “bosquet” (carreau des hautes herbes).

Exemple de carte de données en utilisant le premier tileset

Les évènements doivent être placés sur la carte de données, tandis que le panorama et le brouillard doivent être spécifiés pour le tileset de la carte en vue isométrique.

Configuration de l’addon

Au début du script vous trouverez le passage suivant :

    ###### SWITCHES/VARIABLES CONFIG ######
    $num_switch_run = 1 # switch that enables/disables running
    $num_switch_jump = 2 # switch that enables/disables jumping
    $num_switch_8dirs = 3 # switch that enables/disables 8-dirs movements
    $num_switch_void = 4 # switch triggered when falling
    $num_variable_x_secure = 1 # last x position before falling
    $num_variable_y_secure = 2 # last y position before falling
    $num_terrain_void = 1 # terrain tag number for void
    ###### END CONFIG ######

Ces lignes correspondent respectivement à :

  • numéro d’interrupteur pour activer/désactiver la possibilité de courrir pour le joueur
  • numéro d’interrupteur pour activer/désactiver la possibilité d’effectuer des sauts pour le joueur
  • numéro d’interrupteur pour activer/désactiver les déplacements dans les huit directions
  • numéro de variable stockant la composante horizontale de la dernière position sûre du joueur, avant une chute dans le vide
  • numéro de variable stockant la composante verticale de la dernière position sûre du joueur, avant une chute dans le vide
  • numéro de terrain pour indiquer les carreaux correspondant au vide

Télécharger la démo contenant le script

[XP] – Moving Platforms (Plates-formes mobiles)

Gestion des plates-formes mobiles !

Ce script date du 16/05/2006 (+ petit dépoussiérage le 27/04/2011), et son objectif était de mettre en place un système de plates-formes mobiles inspirés des vieux A-RPG de l’époque Megadrive/SNES.

Qu’apporte ce script ?

  • déplacements du joueur par huitième de carreau
  • déplacements du joueur dans les huit directions (désactivable)
  • le joueur peut courrir grâce à la touche [Z] (désactivable)
  • le joueur peut sauter grâce à la touche [A] (désactivable)
  • gestion des plate-formes mobiles

Configuration :

Au début du script vous trouverez le passage suivant :

    ###### SWITCHES/VARIABLES CONFIG ######
    $num_switch_run = 1 # switch that enables/disables running
    $num_switch_jump = 2 # switch that enables/disables jumping
    $num_switch_8dirs = 3 # switch that enables/disables 8-dirs movements
    $num_switch_void = 4 # switch triggered when falling
    $num_variable_x_secure = 1 # last x position before falling
    $num_variable_y_secure = 2 # last y position before falling
    $num_terrain_void = 1 # terrain tag number for void
    ###### END CONFIG ######

Ces lignes correspondent respectivement à :

  • numéro d’interrupteur pour activer/désactiver la possibilité de courrir pour le joueur
  • numéro d’interrupteur pour activer/désactiver la possibilité d’effectuer des sauts pour le joueur
  • numéro d’interrupteur pour activer/désactiver les déplacements dans les huit directions
  • numéro de variable stockant la composante horizontale de la dernière position sûre du joueur, avant une chute dans le vide
  • numéro de variable stockant la composante verticale de la dernière position sûre du joueur, avant une chute dans le vide
  • numéro de terrain pour indiquer les carreaux correspondant au vide

Tout cela est très rigolo, mais comment créer des plates-formes ?

Une plate-forme mobile est un évènement dont le nom contient [PF]. La case Through doit être cochée. Toutes ses caractéristiques seront spécifiées dons la commande Move route.
Dans la démo vous pourrez trouver de nombreux exemples et vous en inspirer.

Itinéraire : grâce aux commandes Move down, Move left, Move right, Move up et leurs quatre équivalents pour les diagonales, vous définissez l’itinéraire de la plate-forme. Une fois que celle-ci a terminé son parcours, elle retourne à sa position d’origine.

Vitesse : utilisez la commande Script… et écrivez Speed x, où x représente un entier, sachant que 1 est la vitesse la plus lente.

Attente : grâce aux commandes Wait…, vous pouvez précisez un temps d’attente (en frames) de la plate-forme entre deux déplacements.

Activation : par défaut les plates-formes sont toujours activées : elles répètent inlassablement leurs mouvements. Vous pouvez cependant jouer sur le panneau Conditions afin de n’activer une plate-forme que lorque certains interrupteurs ou varibles respectent certaines conditions.
En utilisant les options de déclenchement du panneau Trigger, vous pouvez par exemple ne déclencher une plate-forme que si le joueur marche dessus : il suffit d’activer un interrupteur qui correspond à une condition d’activation du panneau Conditions en ayant choisi Event Touch dans le panneau Trigger.

Modes de déplacement : des modes de déplacements permettent la désactivation automatique des plates-formes afin qu’elles ne soient pas toujours en mouvement.

  • Si vous utilisez la commande Script… et écrivez 1-Move, une plate-forme se désactivera automatiquement à la fin de son déplacement dans une direction donnée.
  • Si vous utilisez la commande Script… et écrivez 1-Journey, une plate-forme se désactivera automatiquement quand elle rencontrera la commande Destination (toujours avec Script…).
  • Si vous utilisez la commande Script… et écrivez Loop, une plate-forme se désactivera automatiquement une fois revenue à son point de départ.

Autres :

  • Si vous utilisez la commande Script… et écrivez Above, le joueur ignorera le contact avec les autres évènements tant qu’il sera sur la plate-forme.
  • Si vous utilisez la commande Script… et écrivez Stand, cela signifie que la plate-forme est immobile. Il ne s’agit pas d’une position sûre et le joueur ne réapparaîtra pas sur la plate-forme s’il tombe dans le vide.
  • En ajoutant [Deco] dans le nom de la plate-forme, la joueur la traversera et tombera. Cette option est utilisée pour créer des parties inférieures de plates-formes.
  • Si vous utilisez la commande Script… et écrivez Fall, la plate-forme tombera une fois arrivée à destination (et ne reviendra donc pas à son point de départ).
  • Si vous utilisez la commande Script… et écrivez Appear, la plate-forme est invisible et immatérielle tant qu’elle n’est pas active.

Télécharger la démo contenant le script