Documentation OpenTaiko

Écriée pour Version 0.6.0.0

English (United States) | English (United Kingdom) | français | 日本語 | русский | 中文(中国内地)

Introduction

Bienvenue sur la page de documentation OpenTaiko ! Tout ce que vous voyez ici est un travail en cours, car on documente toujours l’énorme quantité d’informations liées à ce jeu.

Général

-

Gameplay

-

Faire de la partition

OpenTaiko utilise le format TJA pour faire de la partition. Elle peuvent être ouverte avec n’importe quel éditeur de texte ou avec un éditeur visuel tel que PeepoDrumKit. Vous trouverez ci-dessous une liste des genres de notes utilisés.

Genres de les notes

Il y a beaucoup de notes soutenues par OpenTaiko. Certaines sont couramment utilisées dans toutes les partitions, alors que d’autres apparaît moins souvent. Des peut également être exclusif à d’autres modes ou avoir des comportements différents.

Notes en Taiko

Les genres de notes courant utilisés en Taiko sont listés ici.

Nom Description
0 Vide

Espace vide

Essentiel pour espacer les notes, ainsi que pour aider à créer des motifs complexes.

1 Don Note rouge
2 Ka Note bleue
3 Don (grand) Grande note rouge
4 Ka (grand) Grande note bleue
5 Commence du roulement

Roulement du tambour

Marque le début d’un roulement du tambour. Utilisez 0 pour augmenter la durée de la roulement du tambour et 8 pour terminer la roulement du tambour.

6 Commence du roulement (grand)

Grand roulement du tambour

Marque le début d’un roulement du tambour. Utilisez 0 pour augmenter la durée de la roulement du tambour et 8 pour terminer la roulement du tambour.

7 Commence du ballon

Ballon

Marque le début d’un ballon. Utilisez 0 pour augmenter la durée de la roulement du tambour et 8 pour terminer la roulement du tambour.

Se comporte de la même manière que le roulement du tambour mais il faut frapper un certain montant dans un délai pour terminer. La valeur du ballon est spécifiée par la balise BALLOON.

8 Fin de la note longue Marque la fin de toute note longue.
9 Commence du Kusudama

Grand ballon

Marque le début d’un kusudama. Utilisez 0 pour augmenter la durée de la roulement du tambour et 8 pour terminer la roulement du tambour.

Se comporte de la même manière que le roulement du tambour mais il faut frapper un certain montant dans un délai pour terminer. La valeur du kusudama est spécifiée par la balise BALLOON.

A Don (Grand - deux)

Grande note rouge

Affiche les mains connectées en jouant à une partition en multijoueur et la note apparaît alignée ensemble.

B Ka (Grand - deux)

Grande note bleue

Affiche les mains connectées en jouant à une partition en multijoueur et la note apparaît alignée ensemble.

Notes en Konga

Les genres de notes courants utilisés en Konga sont listés ici.

Beaucoup d’entre eux sont déjà utilisés en Taiko mais quelques sont exclusivement utilisés dans ce type de jeu.

Nom Description
0 Vide

Espace vide

Essentiel pour espacer les notes, ainsi que pour aider à créer des motifs complexes.

1 Droite Note droite
2 Gauche Note gauche
3 Double Note double
4 Clap Note clap
5 Commence du roulement du tambour droit

Roulement du tambour droit

Marque le début d’un roulement du tambour. Utilisez 0 pour augmenter la durée de la roulement du tambour et 8 pour terminer la roulement du tambour.

6 Commence du roulement de deux tambours

Roulement de deux tambours

Marque le début d’un roulement du tambour. Utilisez 0 pour augmenter la durée de la roulement du tambour et 8 pour terminer la roulement du tambour.

7 Commence du ballon

Ballon

Marque le début d’un ballon. Utilisez 0 pour augmenter la durée de la roulement du tambour et 8 pour terminer la roulement du tambour.

Se comporte de la même manière que le roulement du tambour mais il faut frapper un certain montant dans un délai pour terminer. La valeur du ballon est spécifiée par la balise BALLOON.

8 Fin de la note longue Marque la fin de toute note longue.
9 Commence du Kusudama

Grand ballon

Marque le début d’un kusudama. Utilisez 0 pour augmenter la durée de la roulement du tambour et 8 pour terminer la roulement du tambour.

Se comporte de la même manière que le roulement du tambour mais il faut frapper un certain montant dans un délai pour terminer. La valeur du kusudama est spécifiée par la balise BALLOON.

Notes seules en Konga
I Commence du roulement du tambour gauche

Roulement du tambour gauche

Marque le début d’un roulement du tambour. Utilisez 0 pour augmenter la durée de la roulement du tambour et 8 pour terminer la roulement du tambour.

Devient un petit roulement du tambour en Taiko.

H Commence du roulement clap

Roulement clap

Marque le début d’un roulement du tambour. Utilisez 0 pour augmenter la durée de la roulement du tambour et 8 pour terminer la roulement du tambour.

Devient un grand roulement du tambour en Taiko.

Notes diverses

Les notes diverses utilisés en tous les genres sont listées ici.

Ces genres de notes ne sont pas régulièrement utilisés dans les partitions normalles. Vous ne les trouverez généralement que dans les partitions gimmick.

Nom Description
C Bomb

Note bombe

Une note que les joueurs doivent activement éviter frapper. Casse le combo et laisse tomber la jauge de façon drastique s’ils frappent.

F Adlib

Note invisible

Apparaît invisible en défaut et elle n’est pas nécessaire de frapper. Si elle est frappé, un son spécial joue.

G Kadon

Note violette

Nécessite le joueur à frapper don et ka les deux. En Konga, elle apparaît comme une note double.

D Comment du roulement fusible

Ballon bombe

Marque le début d’un roulement du tambour. Utilisez 0 pour augmenter la durée de la roulement du tambour et 8 pour terminer la roulement du tambour.

Se comporte de la même manière que le ballon mais il faut être cassé à temps. Si l’utilisant rate, elle se comportera de la même manière qu’une note bombe, casse le combo et endommage sa jauge de courant.

Skinning & Customisation

In addition to OpenTaiko's default skins, users are able to create their own skins.

Lua Scripting

OpenTaiko's Lua API allows creators to further customize their skin beyond just replacing textures and sounds, allowing for more dynamic visuals without the need to modify the game's source code. While most menus can have Lua scripts, most scripts are only suited for animating backgrounds at this time. The capabilities of the Lua API are still a work in progress and will expand in the future.

Read-only variables are also provided by OpenTaiko, allowing the creator to change the behaviour of their script based on what is happening at that moment.

Some examples of what can be done with Lua include:

Calling Functions

Calling Functions are commands that you send to OpenTaiko to execute a function.

Most of these functions are related to drawing and manipulating textures that your script imports and does not modify the game itself.

Function Input Type(s) Description
Console Drawing
func:DrawText(x, y, text); number, number, string Draws text using the skin's Console Font. (/Graphics/Console_Font.png)
func:DrawNum(x, y, num); number, number, number Draws a number using the skin's Console Font. (/Graphics/Console_Font.png)
Image Drawing
func:AddGraph(filepath); string Load an image file to be used for your script. This is mandatory for drawing functions to work on your image.
func:DrawGraph(x, y, filepath); number, number, string Draw a given image at a position.
func:DrawGraphCenter(x, y, filepath); number, number, string Draw a given image at a position, centred at the given coordinates.
func:DrawRectGraph(x, y, rect_x, rect_y, rect_width, rect_height, filepath); number, number, number, number, number, number, string

Draw a given image at a position.

A rectangle is used to specify what portion of the image you want to draw.

If a rectangle goes outside the bounds of the given image, it will loop back to continue drawing. This method can be used to repeat textures.

func:DrawGraphRectCenter(x, y, rect_x, rect_y, rect_width, rect_height, filepath); number, number, number, number, number, number, string

Draw a given image at a position, centred at the given coordinates.

A rectangle is used to specify what portion of the image you want to draw.

If a rectangle goes outside the bounds of the given image, it will loop back to continue drawing. This method can be used to repeat textures.

Image Manipulation
func:SetScale(x_scale, y_scale, filepath) number, number, string Set the scale of your image. 1.0 is the default value.
func:SetRotation(rotation, filepath) number, string Set the rotation of your image. Value is typically between 0 and 360.
func:SetOpacity(opacity, filepath) number, string Set the opacity of a given image. Value must be between 0 and 255.
func:SetColor(r, g, b, filepath) number, number, number, string Use a Multiply filter to recolour your image. All values must be between 0.0 and 1.0.
func:SetBlendMode(mode, filepath) string, string

Specify how an image should blend into the background.

Blend modes available are: "Normal", "Add", "Multi" (Multiply), "Sub" (Subtract), "Screen"

Image Information
func:GetTextureWidth(filepath) string Get the width of the loaded texture. Returns -1 if the texture is null.
func:GetTextureHeight(filepath) string Get the height of the loaded texture. Returns -1 if the texture is null.

Receiving Functions

Receiving Functions are commands that OpenTaiko sends to your script.

Some of these functions are called every frame, while others are only called when necessary. Some can also be called multiple times, mainly per player.

Function Input Type(s) Description
General
function init() - Called once when the script is first loaded. This is used to initialize data, including images.
function update() -

Called once every frame. Used to calculate and update values. Temporarily stops being called if the game is paused.

This is always called before draw().

function draw() - Called once every frame. Used to manipulate and draw images.
In-Game Only
function clearIn(player) integer

Called once when a player has reached the clear range. The player value is the player ID that has entered the clear range.

The player ID starts at 0 and ends at 4.

0 for 1P, 1 for 2P, 2 for 3P, etc.

function clearOut(player) integer Called once when a player has dropped from the clear range. The player value is the player ID that has dropped from the clear range.
In-Game Only (Kusudama)
function kusuIn() - Called once when a Kusudama sequence has started.
function kusuBroke() - Called once when a Kusudama was successfully cleared.
function kusuMiss() - Called once when a Kusudama has failed to clear before the sequence has ended.
In-Game Only (Ending)
function update(player) integer

Called every frame. Used to calculate and update values. Unlike the original function, this is called for each player ID qualified to run this script.

Can run multiple times in a single frame.

function draw(player) integer

Called every frame. Used to manipulate and draw images. Unlike the original function, this is called for each player ID qualified to run this script.

Can run multiple times in a single frame.

function playEndAnime(player) integer

Called once when a course is finished. The player value is the player ID qualified to run this script.

Can run multiple times in a single frame.

Results Only
function skipAnime() - Called once when any player skips the Results Screen animation.
Song Select Only
function playAnime() -

Called when a player on the difficulty select screen swaps between Extreme and Extra difficulty.

Animation duration is specified in the Skin Config files.

Variables

OpenTaiko gives variables with read-only values to get details about what's happening at that moment.

Some details include information about what state a player is in, while others may provide detail about the game mode status or certain application parameters.

Because these variables are already reserved, you cannot create your own variables with the same names as the ones listed below.

Variable Name Type Description
Application Information
fps integer

Gets the framerate of the application.

deltaTime decimal

Gets the amount of time that has passed since the last frame was drawn.

Non-integral, valued in seconds (i.e. 0.0166666...)

lang string

Gets the current selected language as a short string format.

(i.e. "en", "ja", "fr", etc.)

Player Information
playerCount integer Gets the current number of active players.
p1IsBlue boolean

Gets a Boolean stating if Player 1 is blue. (via selecting Right in the title menu)

1P only; Returns false if not blue, or if there are 2 or more players.

characterRarities string[]

Gets each player's Character rarity.

Possible rarities: "Poor"/"Common"/"Uncommon"/"Rare"/"Epic"/"Legendary"/"Mythical"

puchicharaRarities string[]

Gets each player's Puchichara rarity.

Possible rarities: "Poor"/"Common"/"Uncommon"/"Rare"/"Epic"/"Legendary"/"Mythical"

Player Information (In-Game)
bpm decimal[]

Gets a list of numbers for each player that tells what BPM their chart is currently on.

Can be different for each player.

gauge decimal[] Gets a list of numbers between 0-100 for each player that tells where the player is on the soul gauge.
isClear boolean[] Gets a list of Booleans for each player that tells if each player is clearing their course.
gogo boolean[] Gets a list of Booleans for each player that tells if Go-Go Time is currently active.
Gameplay Information
timeStamp decimal

Gets the amount of time in seconds that have passed since the chart has begun, beginning at the first measure.

Can be negative if the chart hasn't started yet.

Tower Information
towerNightNum decimal

Gets a number starting at 0 and going up to (but not always ending at) 1, which changes depending on how far the player has progressed through a Tower.

The source code determining towerNightNum's value is Math.Min(CurrentMeasure / Math.Max(140, MaxFloorCount / 2), 1);

AI Battle Information
battleState integer

Gets a number related to the current state of the active AI Battle, valued between -9 and 9. Default is 0.

Zero or higher number means the player is winning. Negative number means the AI is winning.

battleWin boolean

Gets a Boolean stating if the player is winning (or has won) against the AI in AI Battle.

Can also be used in the Results Screen menu.

Questions fréquemment posées

Q : Pourquoi ?

R : Je ne sais pas.