Добро пожаловать на страницу документации OpenTaiko! Все, что вы видите здесь, находится в стадии разработки, поскольку мы все ещё документируем огромное количество информации, связанной с этой игрой.
-
-
OpenTaiko использовает формат TJA для создания партитуры. Их можно открыть в любом текстовом редакторе или в визуальном редакторе, таком как PeepoDrumKit. Ниже приведен список используемых типов нот.
OpenTaiko поддерживает множество нот. Некоторые из них обычно используются в каждой партитуре, в то время как другие появляются реже. Некоторые из них также могут быть доступны только для других режимов или иметь другое поведение.
Здесь перечислены распространенные типы нот, используемые в режиме Тайко.
№ | Имя | Описание |
---|---|---|
0 | Пустое место |
Пустое пространство Незаменим при разделении нот, а также помогает создавать сложные узоры. |
1 | Дон | Красная нота |
2 | Ка | Синяя нота |
3 | Дон (Большая) | Большая красная нота |
4 | Ка (Большая) | Большая синяя нота |
5 | Началь дроби |
Барабанная дробь Отмечает началь дроби. Используйте 0, чтобы увеличить длину барабанной дроби, а 8, чтобы завершить её. |
6 | Началь дроби (Большая) |
Барабанная дробь Отмечает началь дроби. Используйте 0, чтобы увеличить длину барабанной дроби, а 8, чтобы завершить её. |
7 | Началь баллона |
Баллон Отмечает началь баллона. Используйте 0, чтобы увеличить длину барабанной дроби, а 8, чтобы завершить её. Аналогично барабанной дроби, но для этого необходимо ударить определенное количество ударов в течение определенного времени. Значение баллона указано в теге «BALLOON». |
8 | Конец длинной ноты | Отмечает конец любой длинной ноты. |
9 | Началь кускдамы |
Большой баллон Отмечает началь кускдамы. Используйте 0, чтобы увеличить длину барабанной дроби, а 8, чтобы завершить её. Аналогично барабанной дроби, но для этого необходимо ударить определенное количество ударов в течение определенного времени. Значение кускдамы указано в теге «BALLOON». |
A | Дон (Большая - Обо) |
Большая красная нота При воспроизведении партитуры в многопользовательской игре отображаются соединенные руки, а нота отображается выровненным по ширине. |
B | Ка (Большая - Обо) |
Большая синяя нота При воспроизведении партитуры в многопользовательской игре отображаются соединенные руки, а нота отображается выровненным по ширине. |
Здесь перечислены распространенные типы нот, используемые в режиме Конга.
Многие из них уже используются в режиме Тайко, но некоторые используются исключительно в этом игровом режиме.
№ | Имя | Описание |
---|---|---|
0 | Пустое место |
Пустое пространство Незаменим при разделении нот, а также помогает создавать сложные узоры. |
1 | Правая нота | Правая нота |
2 | Левая нота | Левая нота |
3 | Двойная нота | Двойная нота |
4 | Хлопание | Хлопающая нота |
5 | Началь правой дроби |
Правая дробь Отмечает началь дроби. Используйте 0, чтобы увеличить длину барабанной дроби, а 8, чтобы завершить её. |
6 | Началь двойной дроби |
Двойная дробь Отмечает началь дроби. Используйте 0, чтобы увеличить длину барабанной дроби, а 8, чтобы завершить её. |
7 | Началь баллона |
Баллон Отмечает началь баллона. Используйте 0, чтобы увеличить длину барабанной дроби, а 8, чтобы завершить её. Аналогично барабанной дроби, но для этого необходимо ударить определенное количество ударов в течение определенного времени. Значение баллона указано в теге «BALLOON». |
8 | Конец длинной ноты | Отмечает конец любой длинной ноты. |
9 | Началь кускдамы |
Большой баллон Отмечает началь кусудамы. Используйте 0, чтобы увеличить длину барабанной дроби, а 8, чтобы завершить её. Аналогично барабанной дроби, но для этого необходимо ударить определенное количество ударов в течение определенного времени. Значение кускдамы указано в теге «BALLOON». |
Конга Только Ноты | ||
I | Началь левой дроби |
Левая дробь Отмечает началь дроби. Используйте 0, чтобы увеличить длину барабанной дроби, а 8, чтобы завершить её. Превращается в маленькую барабанную дробь в режиме Тайко. |
H | Началь хлопающей дроби |
Хлопающая дробь Отмечает началь дроби. Используйте 0, чтобы увеличить длину барабанной дроби, а 8, чтобы завершить её. Превращается в большую барабанную дробь в режиме Тайко. |
Здесь перечислены разнообразные ноты, используемые во всем режиме.
В нормальные партитуры нечасто использовают эти типы ноты. Обычно вы найдете их только в партитурах трюков.
№ | Имя | Описание |
---|---|---|
C | Бомба |
Нота бомба Нота, от удара по которой игроки должны активно уклоняться. При ударнии прерывает комбо и резко снижает датчик. |
F | Adlib |
Невидимая нота Невидимая по умолчанию, а не обязательно, чтобы её ударили. При ударнии звучит специальный ударный звук. |
G | Кадон |
Фиолетовая нота Требуется, чтобы игрок ударил одновременно «дон» и «ка». В режиме Конга это превращается как двойная нота. |
D | Началь дроби взрывателя |
Баллон бомба Отмечает началь дроби. Используйте 0, чтобы увеличить длину барабанной дроби, а 8, чтобы завершить её. Ведет себя аналогично баллон, но её нужна вовремя разорвать. Если у пользователя не получится, она будет вести себя как бомба, нарушая комбо и повреждая его текущий датчик. |
In addition to OpenTaiko's default skins, users are able to create their own skins.
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 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.
Функция | Тип(ы) ввода | Описание |
---|---|---|
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 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.
Функция | Тип(ы) ввода | Описание |
---|---|---|
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. |
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.
Имя переменной | Тип | Описание |
---|---|---|
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. |
В: Почему?
О: Я не знаю.