Skip to content
This repository has been archived by the owner on Jul 24, 2020. It is now read-only.

Création d'un QTE

Xavier Van de Woestyne edited this page Jul 20, 2017 · 20 revisions

Les QuickTimeEvent, ou QTE, consistent à limiter le joueur dans ses actions. Par exemple, un QTE peut être une succession de touches à presser dans un bon ordre.

RME dispose d'une commande très simple pour faciliter la création de QTE :

Attend la saisie d'une touche pendant une durée donnée. La commande renvoie true si la touche a été saisie, false sinon.

Nom Type Description
key Symbol Touche qu'il faut presser avant la fin
time Fixnum Durée
*strict Boolean Difficulté, si elle vaut true, aucune erreur admise, sinon erreurs admises. Par défaut vaut true;

Concrètement, lorsque cette commande est appelée, on attendra la saisie de la touche dans le temps imparti. Par exemple :

QTEA

Au déclenchement de l'évènement, attendra 60 frames. Si avant les 60 frames, le joueur appuie sur une autre touche que la touche :A (par défaut : shift), l'évènement affichera "Vous avez perdu". Si le temps est écoulé avant que le joueur ait pu appuyer sur la touche :A, l'évènement affichera aussi "Vous avez perdu", par contre, si le joueur appuie sur la bonne touche avant le temps imparti, l'évènement affichera "vous avez gagné".

Si l'attribut strict avait été mis à false, le joueur aurait eu le droit de faire des fautes durant le temps imparti. Cependant, je préfère les QTE où l'on n'a pas droit à l'erreur !

Exemple avec affichage d'image

Voici un exemple de QTE avec affichage d'image :

QTEA

Concrètement, on affiche une image (qui correspond au caractère à afficher, moi ici, je n'utilise que des flèches). On le fait se déplacer (je fais un zoom) de la durée du QTE, et ensuite on vérifie le QTE, et on répète cette opération pour tous les éléments de la combinaison à vérifier. J'utilise des étiquettes pour ne dire qu'une fois si on a échoué ou non. (Ce QTE est très dur car je n'ai mis que 20 frames de délai !)

Il faudrait évidemment effacer l'image 1 une fois que le QTE est fini.

Génération de combinaison

Cette dernière manière est tout de même peu pratique ! En effet, imaginons que nous ayons 250 actions dans notre QTE ! Nous allons voir une autre commande très pratique :

random_combination(len, *keys)

Renvoie une combinaison (tableau itérable) aléatoire de la taille spécifiée en argument, composée des paramètres des touches passées en arguments. (par exemple : random_combination(5, :UP, :DOWN, :LEFT, :RIGHT ) )

Nom Type Description
len Fixnum Args description
*keys Argslist Liste des touches pouvant constituer la combinaison

Il s'agit d'un tableau, pour ceux qui ne s'en souviennent pas, on peut parcourir des tableaux dans RME. Concrètement, il suffit de générer une combinaison, dans une variable par exemple, et de parcourir cette combinaison en affichant l'image correspondante. Démonstration :

QTEA

Concrètement, on génère une combinaison aléatoire que l'on parcourt. Ce qui permet de générer rapidement des QTE à taille variable !

QTE Infini

Faire un QTE infini fonctionne presque exactement de la même manière, sauf qu'il ne faut pas se soucier de l'itérateur. Pour ça on se sert de la commande :

pick_random(*elts)

Renvoie un élément au hasard du tableau (ou de la liste d'argument)

Nom Type Description
*elts ArgsList éléments dans lesquels piocher un élément aléatoire. Soit pick_random(a, b, c, d...etc.) soit pick_random([a,b,c,d...etc])

Par exemple :

QTEA

On génère l'élément de la combinaison à chaque passage dans la boucle.

Rendu en GIF

Voici un petit rendu (trop lourd) des deux derniers exercices :

QTEA

Touches autorisées

Toutes les touches décrites ici sont autorisées. Cependant, je conseille de n'utiliser que celles de RPGMaker (c'est à dire :A, :C, :B, :UP, :DOWN, :LEFT, :RIGHT, :X, :Y, :Z, :L, :R ) car ce sont des touches pouvant être paramétrées par l'utilisateur.

Clone this wiki locally