Bonjour,
Un débutant m’a posé la question de comment faire un écran-titre en évent-making sur PSDK, et je me dis : quitte à lui expliquer, autant partager la procédure à tout le monde.
Je tiens qu’à préciser que c’est Eurons qui a ouvert la voie à ce sujet (il a été le premier à l’implémenter sur son fan-game). Je le remercie donc pour m’avoir montré le point de départ.
Étape 1 : Créer la map sur RPG Maker XPRéservez-vous sur RMXP une map vide dédiée à l’affichage de l’écran-titre.
Ne mettez pas de BGM et notez bien l’ID de votre map.
Étape 2 : le scriptCréez un script Ruby dans votre dossier /scripts (je l’ai nommé “00100 Scene Title.rb”) ayant le contenu suivant :
# The title screen scene
class Scene_Title
# @return [Integer] ID of the map to display as intro movie (0 = no intro)
remove_const :INTRO_MOVIE_MAP_ID
INTRO_MOVIE_MAP_ID = 11 #Mettre le numéro de votre map qui va servir d’intro
# Init the title display part
def init_title
end
# Play the title display part
def play_title
if $game_variables[27] == 2 # Va servir pour boucler l’intro une fois la musique finie
Audio.bgm_stop
return
end
@loop = false
end
end
Étape 3 : Les ressources nécessairesMaintenant, que le script est prêt, il vous faut :
• Votre fond d’écran titre au format 320×240, 640×480 ou 1280×960
• Votre image « Start push » au même format
Copiez ces images du dossier \graphics\Titles vers \graphics\Pictures et notez bien leur nom.
Étape 4 : l’évent-makingPour faire un écran-titre qui a exactement les mêmes caractéristiques que celui d’origine de PSDK, vous aurez besoin de 2 évents et 2 variables.
Inutile de réserver des interrupteurs ou variables spécifiquement pour cette map : étant donné que vous êtes dans la scène de l’écran-titre, tout ceci sera réinitialisé en cas de reset du jeu ou de chargement d’une partie.
L’évent principal comportera deux onglets, tout deux en Processus parallèle.
Onglet 1 :•
Commande de BGM => Titre et volume selon votre convenance. Si je l’appelle dans cet évent et non en paramètre de carte, c’est volontaire : cela évite que la musique ne se lance avec une demi-seconde d’avance alors que la map est encore noire.
•
Menu principal : désactiver => Important, car PSDK autoriserait l’accès au menu durant cette séquence.
•
Afficher image n°50 : black (opacité : 255) => Permet de faire un fondu
•
Animation : le héros [vide] => (Facultatif) Force PSDK à regénérer les animations RMXP pour cette session de jeu. (Évitera un freeze de 2 secondes en jeu.)
•
Afficher image n°1 : titlescreen => Le background de votre écran-titre. S’il est HD (640×480 ou 1280×960), mettez 50% ou 25% respectivement dans les paramètres de zoom. Dans ce cas, il apparaitra net sur votre jeu si vous jouez en ×2.
•
Afficher image n°2 : start push (opacité : 0) => Le message « appuyer sur start » ou équivalent. S’il est HD (640×480 ou 1280×960), mettez 50% ou 25% respectivement dans les paramètres de zoom. Notez qu’il est en opacité 0, car on le fera clignoter avec un autre évent.
•
Déplacer image n°50 : black (opacité : 0, 10 frames) => Permet de faire un fondu
•
Attendre : 10 frames => Temps d’attente durant le fondu.
•
Effacer image n°50 => On n’en a plus besoin maintenant qu’elle est à 0 d’opacité.
•
Activer interrupteur local [A] => Toutes ces commandes devant s’exécuter qu’une fois, on passe à l’onglet suivant.
Onglet 2 (Processus parallèle sur interrupteur local A activé) :•
Condition scriptée : Input.trigger?(:A) or Input.trigger?(:X) or Mouse.trigger?(:left) => La suite sera exécutée si la touche A, X ou le clic gauche souris est enclenché.
•
Arrêter BGM : 1 seconde => permet de stopper la musique de l’écran-titre
•
Commande scriptée audio => (Facultatif) Là, je fais jouer le cri du Pokémon de mon jeu, à la manière des jeux officiels. Vous pouvez mettre n’importe quel bruitage ici.
•
Variable 27 = 1 => Sert de signal à l’autre évent (cf étape suivante) pour qu’il arrête de s’exécuter.
•
Attendre : 15 frames => Pour laisser le temps au cri du Pokémon de se jouer. (Note : La transition vers la scène suivante prendra 30 frames quoi qu’il arrive. Ce 15 correspond donc à 45 frames en réalité.)
•
Menu principal : activer => Pour redonner la main au joueur
•
Retourner à l’écran titre => Exécuté ici, PSDK va l’interpréter comme une demande d’ouvrir la scène de l’écran-titre vanilla (et non de reset le jeu). Comme le script a effacé le contenu de l’écran-titre vanilla, PSDK passera directement au menu principal.
Note : inutile de faire effacer les images n°1 et 2, car PSDK les effacera automatiquement au changement de scène. De plus, cela permet d’avoir une transition en fondu (sans écran noir) vers le menu principal.
Étape 5 : l’animation du « Press start » et la boucle de la musiqueOnglet toujours en Processus parallèle (qui fonctionnera donc comme une boucle). Le second onglet est un onglet vide et ne s’active que si la Variable 27 vaut 1 ou plus.

•
Variable 26 += 1 => Sert de compteur de frames
•
Condition scriptée : gv[26]%100 == 0 (avec « Exécuter autre chose si la condition est fausse ») => La partie « si vrai » sera exécutée si le compteur de frames (variable 26) est un multiple de 100 (modulo 100), soit toutes les 100 frames.
•
Déplacer image n°2 : start push (opacité : 0, 1 frame) => Efface temporairement l’image de Start Push.
•
Condition scriptée et imbriquée dans le « sinon » : gv[26]%50 == 0 => Sera exécutée si le compteur de frames est un multiple de 50 (modulo 50), mais pas un multiple de 100 (à cause de la condition précédente). Cela sera donc exécuté tous les 100 frames avec un déphasage de 50 frames.
•
Déplacer image n°2 : start push (opacité : 255, 1 frame) => Affiche temporairement l’image de Start Push. On obtient ainsi son clignotement comme dans l’écran-titre vanilla.
•
Condition scriptée : Audio.bgm_position > Scene_Title::TITLE_BGM_LENGTH => Permettra au jeu de reboot automatiquement comme dans l’écran-titre vanilla s’il détecte que la musique de l’écran-titre arrive à la fin.
•
Variable 27 = 2 => Mettre la valeur à 2 va servir de signal sur le script vanilla pour lui dire qu’il devra reboot le jeu et non aller au menu principal.
•
Retourner à l’écran titre => Même effet que dans l’autre évent.
Voilà, vous avez un écran-titre similaire à celui d’origine de PSDK, la possibilité d’utiliser des images HD en plus.
Bonus : aller plus loinGrâce à votre map dédiée, vous pouvez ne pas vous contenter que d’un écran-titre, mais aussi mettre des spashscreens, des animations ou une cinématique d’intro façon jeu officiel. Les seules limites seront vos compétences en évent-making et vos ressources graphiques.
Aussi, en utilisant la commande script équivalente à celle d’évent-making « afficher une image », il est possible d’utiliser des alias pour par exemple changer l’image en fonction de la langue, d’une variable ou même déporter dans des sous-dossiers de Pictures l’image à afficher.
Voici un exemple pour l’image de Push-Start en HD positionnée dans un sous-dossier « Title ». Dans ce cas-là, l’image devra se nommer « start push 480p_EN », « start push 480p_FR », ou « start push 480p_ES » en fonction des langues disponibles pour votre jeu.
lang = (GamePlay::Save.load&.options&.language || 'en')
lang = 'en' unless RPG::Cache.title_exist?("start#{lang}")
num= 2
img = "Title/start push 480p_#{lang}"
ori = 0 #(0:Coin,1:Centre)
x = 0.0
y = 0.0
zx= 50.0
zy= 50.0
opa = 0.0
blend=0 #(0:Normal/1:Addition/2:Soustraction)
$game_screen.pictures[num].show(img, ori, x, y , zx, zy, opa, blend)