Un exemple de script dans .osb.
Ce guide décrit les lignes de code de script qui sont placées dans le fichier .osb ou .osu, sous [Events]
. Les commandes contenues dans le fichier .osb pour la beatmap apparaîtront dans toutes les difficultés, tandis que celles qui figurent dans le fichier .osu n'apparaîtront que dans cette difficulté donnée.
Pour les objets dans osu! et le Beatmapping, voir : Objets
Un objet Storyboard est une instance d'un sprite ou d'une animation dans un storyboard. Les storyboards peuvent également contenir du son, voir le guide Audio pour plus de détails.
Les formats acceptés pour les objets sont PNG et JPEG. Le format JPEG est avec perte, ce qui signifie que la taille du fichier est plus petite, mais que chaque pixel n'est pas sauvegardé avec précision. Il ne prend pas non plus en charge la transparence. Il convient donc aux arrière-plans et aux images carrées ou photoréalistes. Le format PNG est sans perte, ce qui signifie qu'il conserve les informations pixel par pixel, mais sa taille de fichier est plus importante que celle du format JPEG. Il prend en charge la transparence, et est donc généralement le meilleur pour les objets/textes de premier plan.
Les animations sont réalisées au niveau du moteur, de sorte que le système de calques PNG ou les fonctions d'animation ne doivent pas être utilisés. Au lieu de cela, enregistrez chaque image dans un fichier distinct et nommez les fichiers en faisant précéder l'extension d'un nombre décimal (par exemple, "sample0.png", "sample1.png" pour une animation en deux images "sample.png").
Taille de l'écran de l'éditeur. Le vert correspond à la taille de l'écran et le rouge à la zone de jeu.
L'écran de l'éditeur est de 640 x 480 pixels et la zone de jeu générale est de 510 x 385 pixels.
Les coordonnées sont spécifiées avec des valeurs positives pour X
allant vers la droite, des valeurs positives pour Y
allant vers le bas, et l'origine (0,0) étant placée dans le coin supérieur gauche de l'écran. Il est possible de spécifier des coordonnées en dehors de ces limites (par exemple, pour qu'un sprite arrive depuis l'extérieur de l'écran).
Coordonnées de l'éditeur :
Éditeur | x | y |
---|---|---|
Éditeur | 0–640 | 0–480 |
Terrain de jeu | 60–570 | 55–440 |
Tous les sprites du storyboard sont placés sous le skin et les objets. Ainsi, même le calque le plus haut (Foreground) du storyboard sera toujours derrière la barre HP, les cercles/sliders/spinners, le curseur, etc.
Il s'agit des quatre couches du storyboard, par ordre croissant de priorité :
Notez que les couches "Échec" et "Réussite" ne sont jamais affichées simultanément à l'écran, contrairement à ce qui se passe dans l'onglet "Design".
Par défaut, l'arrière-plan de prévisualisation (l'arrière-plan visible dans l'écran de sélection des musiques) spécifié pour la beatmap est placé en dessous de toutes les autres couches. Cependant, si ce même fichier est référencé en tant qu'objet dans le storyboard, il disparaîtra immédiatement après le chargement de la beatmap. Il est courant que l'arrière-plan de prévisualisation de la beatmap soit le premier objet (en termes de temps et de sprites) spécifié, et d'utiliser la commande "fade out" (éclaircir) pour "présenter" l'arrière-plan au public.
L'idée derrière l'utilisation d'un storyboard plutôt que d'un fichier vidéo est la possibilité de changer les éléments dynamiquement pour les adapter aux circonstances du jeu. osu! n'affiche qu'un seul des calques Échec/Réussite à la fois, en fonction de la performance du joueur. Ces états sont appelés "état d'échec" et "état de réussite".
États avant la première période de jeu (par exemple, avant le premier circle/slider/spinner, pas nécessairement avant que le MP3/OGG ne commence) :
États pendant le playtime ("draining time", lorsque le joueur doit cliquer sur des objets pour empêcher sa barre de HP de se vider) :
États pendant les périodes de pause (entre les segments de jeu) :
États après le dernier gameplay, si la beatmap a eu au moins une pause :
États après le dernier gameplay, si la beatmap n'a pas eu de pause :
Utilisez CTRL+C pour copier l'horodatage.
.mp3
/.ogg
), y compris les valeurs négatives pour indiquer une intro.Skip
sera affiché à l'utilisateur. En cliquant dessus ou en appuyant sur Space
, le jeu revient au comportement normal de saut avant la map (par exemple, appuyer à nouveau sur Skip
pour aller directement au timing - contrairement à Elite Beat Agents, où redémarrer la beatmap ramène le joueur au début, et non pas au temps 0).Skip
ou appuie sur Space
.
Ctrl
+ C
pour copier le temps actuel dans le presse-papiers.Des commentaires de style C sur une seule ligne peuvent être ajoutés, mais sachez qu'ils risquent d'être supprimés si la beatmap est sauvegardée dans l'éditeur du jeu. Par défaut, certains commentaires suggèrent la séparation des commandes dans les quatre couches.
// Ceci est un commentaire.
Contrairement à C/C++/C#/Java, les commentaires ne peuvent pas être placés sur une ligne après une commande valide. Les commentaires en bloc ne sont pas non plus disponibles.