forum

[Tutoriel/Spécifications] Le Storyboarding par Script

posted
Total Posts
5
Topic Starter
Zerss

Le Storyboarding par Script

Dans un fichier .osb ou .osu, en dessous de la catégorie [Events]:
NB: les caractères tiret bas (underscore en anglais) peuvent être remplacées par des espaces.

Les Sprites et les Animations

La dimension d'un storyboard est de 640×480 pixels (soit 854×480 pixels au format 16/9), il est donc recommandé de ne pas dépasser la zone d'action du storyboard.

Sprite statique:
Sprite,"plan","origine","chemfichier",x,y
_événement,easing,tdéb,tfin,[params]
_événement, [...]
_événement, [...]

Animation:
Animation,"plan","origine","chemfichier",x,y,nmbImage,delaiImage,typeBoucle
_événement,easing,tdéb,tfin,[params]
_événement, [...]
_événement, [...]

Pour toutes animations, spécifier un nom de fichier tel que "sliderball.png" cherchera les fichiers tels que "sliderball0.png", "sliderball1.png", "sliderball2.png", etc.

nmbImage: nombres d'images dans l'animation
delaiImage: délai entre chaque image (exprimé en millisecondes)
typeBoucle: prend deux possibles valeures
LoopForever - Forme une boucle qui ne s'arrête jamais
LoopOnce - Ne boucle qu'une seule fois et se fige sur la dernière image de l'animation

La méthode Z-order (en) est utilisée pour ordonner les fichier dans le fichier contenant le storyboard. C'est-à-dire que le premier événement du storyboard sera placé en haut.

plan:
Background (lit. Fond d'écran)
Fail (lit. Échoué)
Pass (lit. Réussir)
Foreground (lit. Premier plan)
NB: Les plans Background et Foreground sont visibles à tout moment. Les plans Fail et Pass s'activent en fonction de la vie du joueur (ainsi, si l'un n'est pas visible, l'autre l'est).

origine:
TopLeft (lit. en haut à gauche)
TopCentre (lit. en haut et centré)
TopRight (lit. en haut et à droite)
CentreLeft (lit. centré et à gauche)
Centre (lit. centré pour tout axes)
CentreRight (lit. centré et à droite)
BottomLeft (lit. en bas et à gauche)
BottomCentre (lit. en bas et centré)
BottomRight (lit. en bas et à droite)

Les événements permettant de réaliser la rotation et la mise en échelle de l'image (incluant la mise en échelle vectorielle) se réalisent par rapport à son origine.

chemfichier: chemin d'accès à l'image (relative à la racine de votre beatmap)
NB: le chemin d'accès doit être écris entre des guillements s'il contient des espaces

x, y: position de l'image
NB: (0,0) correspond à la position en haut à gauche de l'écran (dans la zone d'action d'un storyboard réalisé en 4/3) et la position (640,480) correspond à la position en bas à droite dans cette même zone d'action.

événement:
F - fondu
M - mouvement
S - mise à l'échelle
V - mise à l'échelle vectorielle (où la largeur et la hauteur sont traités à part entière)
R - pivot
C - couleur
L - boucle
T - "trigger" (évèvenement déclenché sous certaines conditions)
P - paramètres spécitiques

easing:
0 - aucun
1 - commence rapidement puis ralenti
2 - commence lentement puis accélère
plus ici (en)

tdéb, tfin: les moment correspondant au début et à la fin de l'événement (exprimés en millisecondes)

params:
_F,[...],opdéb,opfin
opdéb: l'opacité de l'objet au début de l'événement
opfin: l'opacité de l'objet à la fin de l'événement
0 - invisible, 1 - complètement visible

_M,[...],xdéb,ydéb,xfin,yfin
xdéb, ydéb: la position de l'objet au début de l'événement
xfin, yfin: la position de l'objet à la fin de l'événement
Rappel: la taille de la zone d'action est d'au maximum de (854,480)

_S,[...],echdéb,echfin
echdéb: le facteur d'échelle de l'objet au début de l'événement
echfin: le facteur d'échelle de l'objet à la fin de l'événement
1 = 100%, 2 = 200%, etc. les décimales sont tolérées

_V,[...],xdéb,ydéb,xfin,yfin
xdéb, ydéb: le facteur d'échelle de l'objet au début de l'événement
xfin, yfin: le facteur d'échelle de l'objet à la fin de l'événement
1 = 100%, 2 = 200% etc. les décimales sont tolérées

_R,[...],angledéb,anglefin
angledéb: l'angle de l'objet en radians au début de l'événement
anglefin: l'angle de l'objet en radians à la fin de l'événement
positive angle is clockwise rotation

_C,[...],r1,v1,b1,r2,v2,b2
r1, v1, b1: la couleur de l'objet selon le système de codage informatique des couleurs au début de l'événement
r2, v2, b2: la couleur de l'objet selon le système de codage informatique des couleurs à la fin de l'événement

les objets ayant pour couleur attribuée (255,255,255) garderont leur couleures d'origine, de plus, les objets ayant pour couleur attribuée (0,0,0) seront entièrement noires. toute couleurs attribuées découlent d'une synthèse soustractive.

_MX,[...],xdéb,xfin

xdéb: la position, dans l'axe des abscisses, de l'objet au début de l'événement
xfin: la position, dans l'axe des abscisses, de l'objet à la fin de l'événement

_MY,[...],xdéb,xfin

xdéb: la position, dans l'axe des ordonnées, de l'objet au début de l'événement
xfin: la position, dans l'axe des ordonnées, de l'objet à la fin de l'événement

_P,[...],p
p: le paramètres à appliquer à l'objet
H - renversement horizontal de l'image
V - renversement vertical de l'image
A - donne la propriété de synthèse additive à l'objet au lieu de la propriété de superposition

L'utilisation des fonctions intermédiaires ci-dessous permet de limiter le nombre de lignes utilisées pour écrire un fichier.

intermédiaire 1:
Cette notation peut être utilisée lorsque l'on répète de façon conséquente un même type d'événement au travers d'une même période
_événement,easing,tdéb,tfin,val1,val2,val3,...,valN
correspond aux événements:
_event,easing,tdéb,tfin,val1,val2
_event,easing,tdéb + periode,tfin + periode,val2,val3
_event,easing,tdéb + 2×periode,tfin + 2×periode,val3,val4
etc.

intermédiaire 2:
Cette notation peut être utilisée lorsque le temps de début et de fin d'un événement est le même
_M,0,1000,1000,320,240,320,240
correspond à l'événement
_M,0,1000,,320,240,320,240

intermédiaire 3:
Cette notation peut être utilisée lorsque les valeures au début et à la fin de l'événement peuvent être confondus
_M,0,1000,,320,240,320,240
correspond à l'événement
_M,0,1000,,320,240

Boucles

Boucles ordinaires:
Les boucles peuvent être définies pour répeter un certain nombre d'événement selon un certain nombre d'itérations

_L,tdéb,nmbRep
__event, [...]
__event, [...]

tdéb: le temps correspondant au début de la boucle
nmbRep: le nombre de fois dont la boucle se répète

N'oubliez pas de prendre en compte comme quoi cette boucle est basée sur la règle zero-base. C'est-à-dire que le premier événement doit se dérouler à 0ms pour laisser, à la boucle, la possibilité de répéter les événements à partir de là. Les temps correspondant aux événement des objets seront tout simplement la somme de la valeur tdéb de la boucle et la valeure correspondante dans l'événement.

Triggers:

Les "triggers" peuvent être utilisées pour déclencher des animation basées sur les événements de jeu.

_T,nom,tdéb,tfin
__event, [...]
__event, [...]

tdéb: le moment où l'événement peut se déclencher
tfin : le moment où l'événement ne peut plus être déclenché

nom:
HitSoundClap (déclenche l'événement lorsque le Hitsound "Clap" est joué)
HitSoundFinish (déclenche l'événement lorsque le Hitsound "Finish" est joué)
HitSoundWhistle (déclenche l'événement lorsque le Hitsound "Whistle" est joué)
Passing (déclenche l'événement lorsqu'il y a transition entre l'état d'échec (Fail) à l'état de réussite (Pass))
Failing (déclenche l'événement lorsqu'il y a transition entre l'état de réussite (Pass) à l'état d'échec (Fail))

Les "triggers" sont, de la même façon que les boucles, basées sur un système de "zero-base".

Effets sonores

Sample,temps,plan,"chemfichier",volume

temps: le moment où l'effet sonore est joué (exprimé en millisecondes)

plan:
Background = 0
Fail = 1
Pass = 2
Foreground = 3

chemfichier: chemin d'accès au fichier sonore (relative à la racine de votre beatmap)
NB: le chemin d'accès au fichier doit être écrit entre guillemets

volume: le volume de l'effet sonore lorsqu'il est joué (entre 1 et 100)

Variables

[Variables]
$white=255,255,255

Une fois avoir défini une variable, celle-ci peut être utilisée n'importe où dans le storyboard. Cela veut dire que l'on peut très bien avoir une variable contenant une ligne entière.

---

Cette page est une traduction de celle écrite par Echo. N'hésitez pas à partager, si vous en trouvez, les fautes d'orthographes ou les fautes de traductions.
Pour toutes questions à propos du scripting ou d'aide à ce propos, je suppose qu'il est toléré de répondre à ce post, mais il est toujours plus judicieux de le poster ici.
Pachiru
T'es toujours vivant toi? Merci pour le tuto ;)
Zonthem
nom de dieu de la lecture, merci bien j'avais 3-4h de libre <3
WingSilent
Belle initiative, merci beaucoup.
Je vais m'en servir pour tenter de peaufiner un peu plus mes Storyboards.
Secretpipe
Parfait c'est cool ça (j'me mettrais sérieusement a stroybrew après mes exams)
Please sign in to reply.

New reply