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 步。