Arcaea 自制譜面 | 學(xué)習(xí)筆記
0 寫在前面
僅作為近幾天的學(xué)習(xí)記錄.
I 圖形化制譜工具
關(guān)于 Arcade 的使用請參考: https://note.com/nesiddo/n/nd54c0c766c8a
II 準(zhǔn)備音頻
下載等待制譜的音樂文件, 導(dǎo)入 Adobe Audition 進(jìn)行編輯. 音樂時(shí)長應(yīng)控制在 2 ~ 3min, 音樂開始前建議有 1000ms 左右的靜音.
音頻導(dǎo)出為 OGG 格式, 加載 Arcade 譜面后調(diào)整延遲, 使得第一條網(wǎng)格線與音樂第一拍重合.
建議開啟打擊音效, 這樣更易判斷采音是否準(zhǔn)確.
III 關(guān)于采音
音頻準(zhǔn)備完成后 (確保延遲 < 10ms) 就可以開始采音工作了. 通常先用?tap 采完全曲的音 (可用不同軌道代表不同音高或音色), 后進(jìn)行排鍵配置. 采音常常具有高度的對稱性.
Arcade 中節(jié)拍細(xì)分默認(rèn)為 4, 即 1/4 拍的 16 分音. 大部分的歌曲都是 4 拍, 少數(shù)如 To: Alice Liddell 屬于 3 拍.
一般而言, 舒緩的音色?(例如和弦) 和慢速過渡的節(jié)奏 (例如吟唱) 適合采用 arc 和 hold, 而激烈的音色?(例如鼓) 和快速激昂的段落 (例如鋼琴華彩) 適合采用 tap 和 arctap. 如果根據(jù)節(jié)拍強(qiáng)弱來分類, 那么 arctap < tap < 雙押, 部分采音也可以用黑線代替.?
請一定避免虛空采音.
IV 常見鍵型
交互
直交互 (交互線平行于軌道)


斜交互 (交互線傾斜于軌道)


位移交互 (交互線不固定, 也稱散打)


三角交互 (三個(gè)音為一組)

2+2 交互 (天-天-地-地)

1+3 交互 (天-地-地-地)

縱連

疊鍵

雙押 (多押)
單點(diǎn)雙押交替

快速多次雙押

多押


V 關(guān)于黑線
黑線的作用有二: 引導(dǎo)和表演.
除去頂角為起點(diǎn)的 arc, 所有 arc 必須由黑線引導(dǎo). Arctap 也必須出現(xiàn)在黑線上.
黑線常常有三種來源: 一個(gè)點(diǎn), 一段?arc, 或一個(gè)圖案.



事實(shí)上除黑線外, 黑線的投影以及 arc 的投影線也可以繪制圖案.
VI 譜面特效
變速
Timing 函數(shù)的 BPM 參數(shù)可用于改變譜面流速.?
例如希望將 BPM 從 100 上升至 200, 可以寫為
timing(0,100.00,4.00);
timing(250,125.00,4.00);
timing(500,150.00,4.00);
timing(750,175.00,4.00);
timing(1000,200.00,4.00);
寫為多個(gè) timing 的優(yōu)勢是譜面流速變化更為平滑.
如果將 BPM 短暫設(shè)置為 0, 那么將產(chǎn)生停頓效果, 例如 Sheriruth
timing(85297,0.00,4.00);
timing(85459,370.00,4.00);
arc(85459,85621,0.00,0.00,s,1.00,1.00,0,none,true);
arc(85459,85621,1.00,1.00,s,1.00,1.00,0,none,true);
timing(85621,185.00,4.00);
請注意停頓后應(yīng)將 BPM 短暫調(diào)為雙倍原速, 否則會很難看.
在 Nhelv 的譜面中出現(xiàn)了逆行
timing(138838,-32.74,3.00);
timing(141072,174.59,3.00);
短短兩行就可以實(shí)現(xiàn)效果.
不過如果寫下例如
timing(0,100.00,4.00);
timing(1000,-100.00,4.00);
timing(1750,100.00,4.00);
timing(2000,100.00,4.00);
(2000,4);
會發(fā)現(xiàn) note 在逆行前穿過了判定線. 怎樣辦呢?
考慮 note 的判定時(shí)間是固定的, 我們從 timing 2000 倒推. 逆行的時(shí)間有 750ms, 而順行的時(shí)間僅有 250ms, 那么需要將 timing 1750 的速度至少調(diào)整為 300.00 就可以避免.
在 Stasis 的譜面中, 有一段結(jié)束后突然憑空出現(xiàn)很多音符, 這可以通過瞬間提升流速實(shí)現(xiàn)
timing(21333,999999.00,999999.00);
在 Fracture Ray 的爆發(fā)段前, 軌道上的小節(jié)線變得非常密集, 這可以通過降低拍號實(shí)現(xiàn)
timing(102900,200.00,0.10);
6k
Scenecontrol 中的 enwidenlanes / enwidencamera 函數(shù)可用于實(shí)現(xiàn) 6k
(timing,enwidencamera or enwidenlanes,轉(zhuǎn)換持續(xù)時(shí)間,0 或 1);
例如
(2000,enwidencamera,2000.00,1);
(2000,enwidenlanes,2000.00,1);
開啟 6k 后, 原本梯形域范圍 (-0.5,0), (0,1), (1,1), (1.5,0) 轉(zhuǎn)變?yōu)?(-1,0), (-0.25,1.61), (1.25,1.61), (2,0). 6k 時(shí)所有天空中?arctap 的高度應(yīng)保持在 1.61.
偽鍵
Timinggroup (時(shí)間組) 就像是板繪中的 "圖層", 可以在不同時(shí)間組中添加 note, 對任一時(shí)間組操作只會影響該時(shí)間組中 note 的行為.
定義 timinggroup 時(shí)加入 noinput 參數(shù)可以產(chǎn)生 "偽鍵" 效果, 也就是無需點(diǎn)擊且不計(jì)入判定的 note
timinggroup(noinput){}
例如
timinggroup(noinput){
?timing(0,200.00,4.00);
?arc(2000,2001,0.25,0.25,s,4.00,4.00,0,none,false);
?arc(2000,2001,0.75,0.75,s,4.00,4.00,1,none,false);
}
虛化
Scenecontrol 中的 trackshow / trackhide / trackdisplay 能夠控制軌道透明度
(timing,trackhide or trackshow);
(timing,trackdisplay,轉(zhuǎn)換持續(xù)時(shí)間,0 - 255);
例如
scenecontrol(2000,trackdisplay,0.30,200);
scenecontrol(3000,trackhide);
Scenecontrol 中的 hidegroup 能夠控制 note 的透明度
(timing,hidegroup,0.00,0 - 255);
例如
scenecontrol(2000,hidegroup,0.00,200);
scenecontrol(3000,hidegroup,0.00,0);
課后練習(xí)
介紹了這么多特效.. 做一些題目鞏固一下自己吧.
Qn1??請寫出一個(gè) tap, 滿足以下條件:
1) 突然出現(xiàn);
2) 突然消失;
3) 定在原地;
4) 它不能被判定, 即 "偽鍵".
Qn2??請寫出如下配置:
1) 6k;
2) 鏡頭拉寬;
3) 一個(gè) arctap 逆向到達(dá)判定線;
4) 判定前有 arctap 的黑線輪廓提示.
Qn3??請寫出如下特效:
1) 一個(gè) tap 到達(dá)判定線并被判定;
2) Tap 被彈起后再次到達(dá)判定線, 共計(jì)兩次判定.
參考答案
Sol1
timinggroup(noinput){
?timing(0,200.00,4.00);
?scenecontrol(0,hidegroup,0.00,0);
?scenecontrol(1000,hidegroup,0.00,255);
?timing(1000,0.01,4.00);
?timing(2000,200.00,4.00);
?(2500,1);
?scenecontrol(2000,hidegroup,0.00,0);
};
Sol2
timinggroup(){
?timing(0,200.00,4.00);
?scenecontrol(0,hidegroup,0.00,0);
?scenecontrol(0,enwidenlanes,900.00,1);
?scenecontrol(0,enwidencamera,900.00,1);
?timing(900,-200.00,4.00);
?scenecontrol(900,hidegroup,0.00,255);
?arc(1000,1001,0.00,0.00,s,1.00,1.00,0,none,true)[arctap(1000)];
};
timinggroup(){
?timing(0,200.00,4.00);
?arc(1000,1000,-0.25,0.25,s,1.06,1.06,0,none,true);
?arc(1000,1000,-0.25,0.25,s,0.94,0.94,0,none,true);
?arc(1000,1000,-0.25,-0.25,s,0.94,1.06,0,none,true);
?arc(1000,1000,0.25,0.25,s,0.94,1.06,0,none,true);
?arc(1000,1020,-0.25,-0.25,s,0.94,0.94,0,none,true);
?arc(1000,1020,-0.25,-0.25,s,1.06,1.06,0,none,true);
?arc(1000,1020,0.25,0.25,s,0.94,0.94,0,none,true);
?arc(1000,1020,0.25,0.25,s,1.06,1.06,0,none,true);
?arc(1020,1020,-0.25,0.25,s,1.06,1.06,0,none,true);
?arc(1020,1020,-0.25,0.25,s,0.94,0.94,0,none,true);
?arc(1020,1020,-0.25,-0.25,s,0.94,1.06,0,none,true);
?arc(1020,1020,0.25,0.25,s,0.94,1.06,0,none,true);
};
Sol3
timinggroup(){
?timing(0,200.00,4.00);
?(1000,2);
?(2000,2);
?timing(1000,-175.00,4.00);
?timing(1125,-135.00,4.00);
?timing(1250,-75.00,4.00);
?timing(1375,-37.50,4.00);
?timing(1500,37.50,4.00);
?timing(1625,75.00,4.00);
?timing(1750,135.00,4.00);
?timing(1875,175.00,4.00);
?timing(2000,200.00,4.00);
};