Pour faire fonctionner RMEBuilder sur Windows 10,
il faut, au moment une erreur survient, faire clique droit sur l'entête de la console
et choisir "Propriété", ensuite cocher la case "Utiliser l'ancienne console".
Un grand merci à ce thread !
Voici une image pour fixer le problème : ICI
RMEBuilder est un outil pour
faciliter l'installation de script
dans RPGMaker VXAce.
Il permet de gérer les dépendances sans avoir à
s'en soucier. En plus du confort qu'offre cet
outil, RMEBuilder est un
logiciel libre, distribué sous licence
LGPL.
RMEBuilder se synchronise via
internet avec les dernières versions des scripts
pour garantir que les scripts proposés soient
toujours les dernières versions disponibles (et garantir la
couverture de bogues)!
Principe général
L'idée de RMEBuilder est de permettre aux utilisateurs de scripts d'installer très facilement des scripts. En effet, RMEBuilder est un petit exécutable qui permet d'ajouter des scripts dans un ou plusieurs projets. Voici par exemple, un workflow typique d'utilisation de RMEBuilder
- On sélectionne un projet
- On ajoute (via des commandes) la liste des scripts pour composer un projet
- On lance la routine de construction du projet
- On make !
Téléchargement
RMEBuilder est très facile
à obtenir, il suffit de se rendre sur la page
Releases
et de télécharger le fichier RMEBuilder.zip
.
Installation
Pour que RMEBuilder fonctionne parfaitement, il est parfois nécéssaire de configurer son anti-virus/parefeu pour qu'il accepte que RMEBuilder télécharge des fichiers.
L'installation de RMEBuilder est très simple,
il suffit de décompresser RMEBuilder.zip
dans le
répertoire de votre choix. (Pas spécialement dans un projet RPGMaker,
vous pouvez vous servir de RMEBuilder pour construire
plusieurs projets.)
Suite à un problème lié à Ruby 1.9.3, il est impossible d'utiliser RMEBuilder
si ce dernier se situe dans un répertoire dont le chemin contient un caractère
spécial (un accent par exemple) ou qu'il pointe vers des projets contenant des
caractères spéciaux dans leur nom.
Nous sommes désolé de ce soucis que nous tâchons de régler en interne.
Utilisation normale
Premier lancement
Pour lancer RMEBuilder, il suffit de cliquer sur
RMEBuilder.bat
(qui est un raccourci pour lancer le logiciel).
Au premier lancement, le logiciel demandera de choisir le projet cible.
Il est impératif de pointer un projet RPGMaker VXace valide.
Une fois que le logiciel connait le projet cible, un dispositif de saisie
de commande est accessible. L'usage de ce dispositif permet d'entrer des
commandes relatives à la construction d'un projet.
A tout moment il est possible de changer de projet cible en entrant la commande
target
, qui en plus de donner le chemin du projet cible, permet
de changer cette cible.
Voici un exemple de premier lancement de RMEBuilder.
Agrandir !Composition d'un schéma
Une fois qu'un projet est ciblé dans le logiciel, on peut désormais ajouter les
scripts que l'on veut dans son projet. Pour cela, on se sert de la commande
show
qui affiche la liste des paquets disponibles sur le net.
La commande about nom-du-paquet
permet de renvoyer les informations
(description, auteurs etc) relative à un paquet.
Pour ajouter des paquets au projet, il suffit d'utiliser la commande
add nom-du-paquet
. Cette commande aura pour effet d'ajouter un paquet
dans la liste des paquets à intégrer au projet.
La commande schema
permet d'afficher la liste des paquets à installer.
Il est évident que si RMEBuilder est fermé, à sa réouverture, l'ensemble des scripts présents dans le schéma seront toujours visibles !
Moduler le schéma
Par défaut, lors de la phase de "compilation", que nous verrons un peu plus tard, les scripts sont installés par ordre d'ajout. Il est donc évidemment possible de changer cet ordre :
remove nom-du-paquet
: supprime le paquet de la liste des paquets à compilermove nom-du-paquet up
: monte le paquet référencé d'une placemove nom-du-paquet down
: descend le paquet référencé d'une place
Ahah dans le Gif, j'ai fait une faute de frappe (mouwe aha) :D désolé !
Compiler votre projet
Une fois que votre schéma est, de votre point de vue, complet, vous pouvez compiler votre projet.
Une compilation dans RMEBuilder consiste à télécharger les scripts présent dans le schéma
et de les assembler dans le fichier Scripts.rvdata2
.
Attention, avant de "compiler" votre projet, il est impératif de fermer votre projet dans RPGMaker. Vous pourrez l'ouvrir après, une fois la compilation exécutée.
Agrandir !
Au lancement de la commande build
, le logiciel va télécharger les scripts s'il ne les connait
pas, et va créer un fichier Scripts.rvdata2
qu'il va fusionner avec les scripts déjà existants.
Votre projet peut donc déjà contenir des scripts pré-installés.
À chaque fois que la commande build
est appelée, les éléments construits par RMEBuilder
sont purgés. Donc si vous retirez, après une compilation, un élément de votre schéma (via la commande remove
)
et que vous recompilez (build
), les mises à jour auront bien été prises en compte.
Gestion des Assets
Il arrive parfois que lors de la compilation de votre projet RMEBuilder vous demande si vous désirez fusionner les assets. C'est lorsque le paquet propose des fichiers externes (des images ou une DLL par exemple). Lors de la première compilation avec un script requierrant des assets, il est généralement conseillé de répondre oui (Y). Par contre, lorsque le script a déjà été ajouté, il n'est pas nécéssaire de re-fusionner les assets. Imaginez par exemple qu'il s'agit d'image que vous avez déjà modifié, il serait dommage de perdre ces modifications!
A tout moment, vous pouvez récupérer les assets d'un paquet en utilisant la commande
get assets of package-name
.
Mettre à jour des paquets
Au lancement de RMEBuilder, ce dernier vérifie s'il existe des mises à jour pour vos scripts installés. C'est très pratique pour rester au courant des ajouts dans les scripts :
Agrandir !
Vous pouvez aussi vous servir de la commande check updates
, qui vérifiera si des paquets ne sont pas à jour.
Une fois qu'un paquet est mis à jour, il est impératif de refaire un build
, donc en fermant le projet RPGMaker
pour que la mise à jour soit prise en compte !
Gestion des dépendances
Si un paquet dépend d'un autre paquet, il n'est pas nécéssaire de le référencer dans le schéma.
Au moment de la construction (à l'appel de la commande build
ou build dev
), le logiciel
téléchargera les dépendances et les installera. Si un paquet à des dépendances et qu'il est supprimé du schéma,
si la dépendance n'est pas explicitement (add
) membre du schéma, elle sera aussi supprimée.
Compilation temporaire
Le problème de RMEBuilder, c'est qu'il faut le fermer à chaque ajout/modification.
Pour palier à ce problème, il est possible de faire une compilation temporaire. En utilisant la commande
build dev
, vous créez un fichier temporaire, qui, au lancement du projet lira les scripts depuis
l'endroit où ils sont téléchargés. L'avantage de cette méthode est qu'il ne faut utiliser le build dev
(et
donc fermer le projet RPGMaker) que quand on ajoute ou supprime un fichier dans le schéma.
Chaque mise à jour de paquet n'implique pas de "rebuilder" le projet. C'est très pratique pour les scripts qui sont souvent mis à jour.
Par contre, avant de diffuser votre projet, il est impératif de faire un build
pour ne plus faire dépendre le jeu
des fichiers temporaires!
Mettre à jour RMEBuilder
Quand une mise à jour de RMEBuilder est disponible, le logiciel vous prévient, il suffit de valider la mise à jour et le logiciel se met tout seul à jour.
Agrandir !Avant de diffuser son projet
Une fois que votre projet est fini, vous pouvez supprimer le fichier build_schema.rb
(sans avoir oublié de faire
une dernière fois build
, pour être sur que tous vos scripts sont installés) du répertoire du projet. Et il ne vous reste
plus qu'a crypter (ou pas) votre projet et le diffuser !
Pour les scripteurs
RMEBuilder n'est évidemment pas destiné à ne rester qu'un outil pour diffuser nos scripts. Nous espérons qu'il sera utilisé par un maximum pour partager facilement des scripts à travers le monde ! (étoiles dans les yeux)
Rendre un script accessible depuis RMEBuilder
Medium de publication
Pour qu'un script soit accessible depuis RMEBuilder, il est important de comprendre qu'il doit être disponible depuis le net. Pour cela, nous avons pris l'habitude d'utiliser Github, qui nous permet de versionner nos scripts, cependant, vous pouvez vous servir de Dropbox (même si Github est vraiment adapté à ça!).
Notion de paquet
Pour qu'un script soit compréhensible par RMEBuilder, il est important
que son anatomie soit décrite dans un fichier, qui devra toujours porter le nom package.rb
Exemple avec un paquet simple
Le paquet pris en exemple est le paquet nuki-break-scene
, qui permet de créer facilement
un système de pause. Son répertoire Github se trouve ici.
L'anatomie du paquet est assez simple, script.rb
est le script (logique!) et package.rb
décrit
le paquet :
# Package description
Package.new(
name: 'nuki-break-scene',
version: vsn(1, 0, 0),
authors: {'Nuki' => 'xaviervdw@gmail.com'},
components: ['script.rb'],
description: 'Provide a little customizable scene for InGame\'s pause',
)
Comme vous pouvez le voir, il suffit d'instancier un objet Package
.
Ce paquet correspond au strict minimum.
name
: correspond au nom du paquetversion
: décrit la version (c'est grâce à cet argument qu'on peut décrire les mises à jour)authors
: un hash avec comme clé l'auteur et comme valeur son courrielcomponents
: une liste des fichiers, dans l'ordre, qui constituent le script. Leur chemin est relatif au fichierpackage.rb
description
: une petite description du paquet
Exemple avec plusieurs fichiers
Cette fois ci on se sert du paquet de RME. Comme vous pouvez le voir, il n'y a pas beaucoup de changements, si ce n'est qu'il y a plusieurs auteurs et plusieurs fichiers constituants :
# Package description
Package.new(
name: 'RME',
version: vsn(0, 0, 5),
authors: {
'Nuki' => 'xaviervdw@gmail.com',
'Grim' => 'grimfw@gmail.com',
'Raho' => '',
'Joke' => 'joke@biloucorp.com',
'Mspawn' => ''
},
components: [
'SDK.rb',
'SDK.Gui.rb',
'Database.rb',
'Internal.rb',
'EvEx.rb',
'Commands.rb',
'Incubator.rb',
'EE4Cmds.rb',
'Tools.rb',
'DocGenerator.rb',
'Doc.rb'
],
description: 'RME is a powerful tool to improve your RPGMaker VXAce experience!'
)
Exemple avec dépendances
Le script DisplayText
(visible ici)
requiert l'installation préalable du script StandardizeRGSS
.
Il suffit de le spécifier dans un argument dependancies
, qui prend
une liste des scripts dont dépendent le script en question :
# Package description
Package.new(
name: 'display-text',
version: vsn(1, 0, 0),
authors: {'Nuki' => 'xaviervdw@gmail.com'},
components: ['script.rb'],
description: 'Provide a full customisable text engine',
dependancies: ["standardize-rgss"]
)
Voila, vous en savez assez pour packager correctement vos scripts!
Exemple avec des Assets
Il arrive qu'un script soit compléter de fichiers complémentaires, des assets. Par exemple, une DLL
ou encore des images. Pour ça il suffit d'ajouter un paramètre assets
qui est un Hash dont la clé est l'url (relatif ou non) de la ressource et la valeur est
sa position dans le projet. Voici par exemple le fichier paquet du script "raho-useless", qui ne sert que
de démonstration aux assets :
# Package description
Package.new(
name: 'raho-useless',
version: vsn(1, 0, 0),
authors: {'Hyperaho' => ''},
components: ['script.rb'],
assets: {
'assets/raho1.png' => 'Graphics/Pictures/raho1.png',
'http://full.ouplo.com/f/12/AgkA.png' => 'Graphics/Pictures/raho2.png'
},
description: 'Epic script for Epic projects'
)
Ce paquet utilise volontairement une image relative et une image absolue.
Attention ! N'oubliez pas que RMEBuilder se veut utilisé par un maximum
de personne, n'hésitez donc pas à préfixer vos assets pour éviter les collisions !
Par exemple, si je propose un menu qui utilise une image, ne pas hésiter à nommer l'image
nuki-menu-mon-image.png
, pour garantir qu'elle n'écrase aucune image
(ou qu'elle ne soit écrasée par personne).
Soumettre son paquet comme un patch à RMEBuilder
La liste des paquets est un dépôt Github. Pour y contribuer, il suffit
simplement de "forker" ce projet.
Pour ajouter un paquet, il suffit de modifier la liste des paquets disponibles dans le fichier packages.rb
.
En ajoutant une relation "nom du paquet" => "url du package.rb relatif"
.
Attention, il faut pointer vers un fichier brut. Pas vers une page html, pour Github il faut impérativement utiliser le lien raw pour que seul le contenu du fichier soit exporté (et non toute la page HTML).
Sur la sémantique des nom de paquet
Il n'y a pas de sémantique formellement fixée. Cependant, pour éviter des collisions de paquets, on propose de préfixer le nom d'un paquet par le pseudonyme de l'auteur. Si le paquet est un incontournable, il est possible de ne pas le préfixer. Cependant, nous nous réservons le droit de refuser une modifications de la liste des paquets, si un paquet en écrase un autre.
Le répertoire customPackages
Dans le répertoire RMEBuilder/customPackages
, vous pouvez placer
vos scripts en production. Il permet de lire des paquet sans qu'ils soient déjà hebergés. Vous pouvez
donc créer des répertoires pour vos scripts en production dans ce répertoire et les travailler comme s'ils
étaient déjà publiés. Cela évite de devoir publier d'entrée de jeu un script non terminé.
De plus, avec la compilation via build dev
, vous pouvez modifier votre
code depuis votre éditeur favori (emacs), sans devoir faire sans arrêt des copier-coller à la moindre modification.
Clonage de paquet existant
Pour une raison quelconque, on pourrait avoir envie de modifier un paquet déjà publié par quelqu'un d'autre,
dans RMEBuilder vous pouvez vous servir de la commande clone nom-du-paquer
et le paquet sera copié dans votre répertoire RMEBuilder/customPackages
.
Un paquet présent dans RMEBuilder/customPackages
sera toujours placé au détriment
d'un paquet externe dans la phase de construction, donc pour reprendre le paquet initial, il faut le supprimer du répertoire
RMEBuilder/customPackages
ou alors utiliser la commande reclone nom-du-paquet
pour écraser la copie locale par la dernière version.
Conclusion
C'en est fini du tour de présentation de RMEBuilder, nous espérons qu'il sera réellement
utile et qu'il changera les habitudes d'installation des scripts pour les simplifier. Nous espérons aussi que
les scripteurs n'hésiteront pas à publier leurs scripts ! Plus on est de fous plus on rit :D
À BIENTÔT.