Wiki · TJA 與模擬器

TJA 譜面格式說明:標頭、音符數字與命令一覽

TJA 太鼓譜面格式完整說明:TITLE、BPM、OFFSET、COURSE、BALLOON 等標頭欄位,音符數字 0–9,#BPMCHANGE、#GOGOSTART、分歧與 #LYRIC 等命令,以及 UTF-8/Shift-JIS 編碼與模擬器相容性。

TJA 是太鼓模擬器通用的純文字譜面格式。這篇以示範曲的實際輸出為例,說明標頭、音符數字與命令各自的意思,以及放進模擬器時要注意的地方。

一份 TJA 長什麼樣子

下面是本站原創合成的示範曲〈demo_song〉用 Neural 引擎實際產生的 TJA,只省略了中間幾個小節。冒號形式的是標頭;#START 與 #END 之間是譜面本體,每個逗號結束一個小節。

TITLE:demo_song
SUBTITLE:--AutoTaiko
BPM:150.0
WAVE:demo_song.ogg
OFFSET:-1.601
DEMOSTART:11.201
COURSE:Oni
LEVEL:8
BALLOON:
SCOREINIT:
SCOREDIFF:
#START
300000000000100000000000100000000000100000000000,
100000000000100000000000100000000000200000000000,
100000000000100000000000300000000000200000000000,
100000200200200000100000100000200200100000200000,
// …
#GOGOSTART
#SCROLL 1.1
100200100200100000200200100200100200100000200200,
100100100200100000200200100100100100100000200200,
// …
#GOGOEND
#SCROLL 1.0
100000200200100000100200100200100000200000100200,
// …
000000000000000000000000000000000000000000000000,
#END

這份譜每小節 48 個字(4/4 拍),每 12 個字是一拍:開頭的 300000000000100000000000… 就是「大咚、咚、咚、咚」四個四分音符。

標頭欄位

TITLE、BPM、WAVE、OFFSET、DEMOSTART 寫在檔案開頭,所有難度共用;COURSE 之後的 LEVEL、BALLOON、SCOREINIT、SCOREDIFF 只屬於那一個難度,每個難度各有一段 #START…#END。

欄位 意思 範例
TITLE 曲名。 TITLE:demo_song
SUBTITLE 副標題,常用來寫原曲出處或作者。開頭的 -- 是常見寫法,本站試玩器顯示時會把它去掉。 SUBTITLE:--AutoTaiko
BPM 一開始的速度(每分鐘拍數),可以有小數;曲中變速另外用 #BPMCHANGE。 BPM:150.0
WAVE 音檔的檔名。音檔要跟 .tja 放在同一個資料夾,檔名連副檔名都要完全一致。 WAVE:demo_song.ogg
OFFSET 譜面與音檔的時間位移(秒),正負號跟時間相反:第一小節從音檔的第 -OFFSET 秒開始。所以通常是負數——OFFSET:-1.601 表示音樂開始 1.601 秒後才進第一小節。 OFFSET:-1.601
DEMOSTART 選曲畫面的試聽從第幾秒開始。 DEMOSTART:11.201
COURSE 難度:Easy(梅)、Normal(竹)、Hard(松)、Oni(鬼)、Edit(裏鬼),也可以寫成 0–4。 COURSE:Oni
LEVEL 星等,通常是 1–10。 LEVEL:8
BALLOON 每個汽球(7)與彩球(9)要打幾下,依出現順序用逗號分隔。 BALLOON:10,15
SCOREINIT
SCOREDIFF 配分:每個音符的基本分數與隨連段增加的加分。TaikoForge 輸出時留空,交給模擬器依各自的規則計分。 SCOREINIT:

音符數字

數字 音符 意思
0 空白 這一格沒有音符。
1 咚 紅色音符,打鼓面。
2 咔 藍色音符,打鼓邊。
3 大咚 大的紅色音符。
4 大咔 大的藍色音符。
5 黃色連打 黃色連打開始,到 8 之前盡量多打。
6 大連打 大的連打開始,一樣到 8 結束。
7 汽球 在 8 之前打滿 BALLOON 指定的次數。
8 結束 結束前面的連打或汽球。
9 彩球(くす玉) 跟汽球類似,次數一樣取自 BALLOON。

小節長度由拍號決定,字數只決定格子多細,同一小節的字平均分配時間。4/4 拍寫 16 個字就是 16 分音符;寫 48 個字時,每 3 個字是一個 16 分音符、每 4 個字是一個三連音(12 分),兩種節奏可以放在同一小節。只有一個逗號的行代表整小節休止。

一個小節可以拆成好幾行寫,遇到逗號才算結束;// 後面是註解。部分模擬器另外定義了 A、B 等字元,各家支援不一,TaikoForge 只會輸出 0–9。

常用命令

命令以 # 開頭、獨立寫一行,放在 #START 與 #END 之間,從出現的位置開始生效。

命令 作用
#START
#END 一個難度的譜面從 #START 開始、到 #END 結束。
#BPMCHANGE 180 從這裡起改用新的 BPM。可以寫在小節中間,只影響後面的音符;TaikoForge 開啟變速偵測、找到變速點時就會寫出它。
#MEASURE 3/4 改拍號,寫在小節開頭,從那個小節起生效。
#SCROLL 1.1 改變捲動速度(倍率),不影響音符的時間。TaikoForge 開啟「GOGO 段落加速捲動」時會在 GOGO 段落用 1.1,變速時也用它讓捲動速度接得平順。
#DELAY 0.5 讓後面的音符整體往後延指定的秒數。
#GOGOSTART
#GOGOEND GOGO TIME(高潮段落)的開始與結束。
#BARLINEOFF
#BARLINEON 隱藏/重新顯示小節線,不影響音符的時間。
#BRANCHSTART
#N #E #M
#BRANCHEND 譜面分歧:依演奏表現切換普通(#N)、玄人(#E)、達人(#M)三條譜面。例如 #BRANCHSTART p, 65, 90 是用精準度(%)判定,門檻 65 與 90。判定細節依模擬器而定。
#LYRIC 顯示一行歌詞,直到下一個 #LYRIC 為止;空的 #LYRIC 會清掉歌詞。這是擴充命令,支援與否依模擬器而定;TaikoForge 的歌詞工具會寫出它。

節奏難以對齊一般格線時,Onset 引擎會改用固定的高解析度網格:這時 BPM 欄位不是歌曲真正的速度,譜面開頭會多一行 #SCROLL(例如 #SCROLL 0.5),讓捲動速度看起來正常。

示範曲的 GOGO 段落就是這樣寫的(中間的小節省略):

#GOGOSTART
#SCROLL 1.1
100200100200100000200200100200100200100000200200,
// …
#GOGOEND
#SCROLL 1.0

小節中間變速的寫法(示意):前半小節用原本的 BPM,#BPMCHANGE 之後的格子改用 180。

1010101010101010
#BPMCHANGE 180
1010101010101010,

文字編碼:UTF-8 與 Shift-JIS

TaikoForge 輸出的 .tja 一律是 UTF-8(不含 BOM)。網路上流傳的日文譜面很多是 Shift-JIS,較舊的模擬器(例如太鼓さん次郎)也多半以 Shift-JIS 為前提。

曲名或歌詞變成亂碼時,先確認模擬器讀的是哪一種編碼,再用文字編輯器另存成那種編碼。注意 Shift-JIS 存不下部分繁體中文字,這類曲名建議維持 UTF-8。本站的試玩器兩種編碼都能自動判斷。

有些模擬器(例如 Taiko-web)只把帶 BOM 的檔案當成 UTF-8。沒有 BOM 時可能被當成 Shift-JIS 讀而變成亂碼,這時另存成「UTF-8(含 BOM)」即可。

在模擬器裡使用

  • 太鼓さん次郎:Windows 上的老牌免費模擬器,很多日文創作譜面都以它為準。把 .tja 和音檔放在同一個資料夾,再依它的說明放進歌曲資料夾。
  • TJAPlayer3 / OpenTaiko:開源的 TJA 模擬器,OpenTaiko 是從 TJAPlayer3 衍生的版本。把整個歌曲資料夾放進遊戲的歌曲目錄,重新載入歌曲清單即可。
  • Taiko-web:在瀏覽器裡玩的太鼓模擬器。部分架設的站台提供載入自訂歌曲的功能,能不能用依各站設定而定。
  • 線上試玩 TJA 譜面:免安裝、免登入,選 .tja 和音檔就能用鍵盤(DFJK)遊玩。目前只播第一條分歧,也不支援複數捲動(例如 #SCROLL 1.2i)。

資料夾怎麼放、WAVE 欄位怎麼對,請看自製譜面教學的第 5 步。