前情概要
注意:此篇文章過長,且適用於安卓手機,唯安卓才能改apk檔案
關於如何將歌曲放到遊戲上
這裡我用鋼琴塊2來示範
需要寫一個json的檔案,還有很多軟體你要會用
不過鋼琴塊2的json有所謂的規格
一開始打寫的話不熟悉(基本上你要有看譜的能力)
打完之後你就可以盡情享受自己做的歌曲了
——————————-介紹—————————
有玩過鋼琴塊2的人就知道
每一首歌曲都有一星、二星和三星,且速度會增快
我們在這裡把
一星稱為:第一部分
二星稱為:第二部分
三星稱為:第三部分
——————————-樂理和鋼琴塊2json概念——————————-
(如果想學得這一定要會,這是基本概念,沒興趣的看看就好ww)
鋼琴塊2 json音符有規定的寫法
1.一個小節結束,用;
來分隔
2.每個音符的時值結束,用,
來分隔
————————-調號—————————
首先我們要先注意的是關於調號的部分,
調號對休止符沒有影響!!
如果你要從看譜來打成json的話,你一定要會認譜,
最容易打錯的就是沒看到前面的調號是要升哪個音
而且json上只寫升記號,沒有降記號!!
樂理方面,調號有15個
每個調號都有兩個名稱(這裡因為篇幅的關係我就不多說了)
♭(降號)的話就是前一個音的#(升記號),全部♭(降號)都要把它看成#(升記號)!!
不要錯的原則:在打音符之前必須要先看調號,才知道哪個音該不該升
或者是等到你熟練之後用程式代替,就不用每次都要看調號打音符了。
——————————–音名——————————–
一般鋼琴鍵盤上有88個琴鍵
52個白鍵,36個黑鍵
根據樂理的概念,每個音符都有所謂的”音名”
有C D E F G A B這7種
在這七個音之間有5個黑鍵,由左而右分別為:
#C,#D,#F,#G,#A
鋼琴塊2中以每C鍵~B鍵(含黑鍵) (共12個音符)分成九組
由最低音(第一組)到最高音(第九組)依序排列
—————————————————————————————————————————————
註:樂譜位置在這邊只要在意譜號和音符的變化就好!
(英文字母須大寫)第一組(3個): A-3 #A-3 B-3
鋼琴位置: 樂譜位置(低8度低音譜號):
(英文字母須大寫)第二組(12個): C-2 #C-2 D-2 #D-2 E-2 F-2 #F-2 G-2 #G-2 A-2 #A-2 B-2
琴鍵位置: 樂譜位置(低8度低音譜號):
(英文字母須大寫)第三組(12個): C-1 #C-1 D-1 #D-1 E-1 F-1 #F-1 G-1 #G-1 A-1 #A-1 B-1
鋼鍵位置: 樂譜位置(低音譜號):
(英文字母須小寫)第四組(12個): c #c d #d e f #f g #g a #a b
琴鍵位置: 樂譜位置(低音譜號):
(英文字母須小寫)第五組(12個): c1 #c1 d1 #d1 #e1 f1 #f1 g1 #g1 a1 #a1 b1
琴鍵位置: 樂譜位置(高音譜號):
(英文字母須小寫)第六組(12個): c2 #c2 d2 #d2 #e2 f2 #f2 g2 #g2 a2 #a2 b2
琴鍵位置: 樂譜位置(高音譜號):
(英文字母須小寫)第七組(12個): c3 #c3 d3 #d3 #e3 f3 #f3 g3 #g3 a3 #a3 b3
琴鍵位置: 樂譜位置(高8度高音譜號):
(英文字母須小寫)第八組(12個): c4 #c4 d4 #d4 #e4 f4 #f4 g4 #g4 a4 #a4 b4
琴鍵位置: 樂譜位置(高15度高音譜號):
(英文字母須小寫)第九組(1個): c5
琴鍵位置: 樂譜位置(高15度高音譜號):
————————————————————————————————————————————————-
前三組英文字母皆為大寫,後六組英文字母皆為小寫,且每組的特徵(紅字的無粗體)都不同
在鋼琴塊2裡用英文字母來表示音符時值和休止符的長度
———————音符時值——————–
注意音符有中括號:[ ]
時值內的英文字母都要大寫!
[H]
: 倍全音符 [I]
: 全音符 [J]
: 二分音符
[K]
: 四分音符[L]
: 八分音符[M]
: 十六分音符
[N]
: 三十二分音符 [O]
: 六十四分音符 [P]
: 一百二十八分音符
音符時值的代碼可以疊加, 例如: [IJK]
, [II]
,[JK]
, [LM]
例: 今天想打一個(附點二分音符,注意調號要使該音符加上#記號)
#d[JK]
———————休止符——————–
注意休止符無中括號
休止符內的英文字母都要大寫!
Q
:倍全休止符R
:全休止符S
:二分休止符
T
:四分休止符U
:八分休止符V
: 十六分修止符
W
: 三十二分休止符
休止符的代碼可以疊加, 例如: QRS
, TV
, UV
,ST
, VW
例: 今天想打一個(附點二分休止符,調號對休止符沒有影響)
ST
——————————————————————————
一開始的初設定要打
{"baseBpm":XXX,"musics":[{"bpm":XXX,"baseBeats":0.XXX,"scores":["
baseBpm
和 bpm
代表歌曲的速度:
這兩個XXX
是你想要設的樂曲速度(以四分音符為一拍的基準速度)
baseBeats是琴塊的速率:
有分 0.125,0.25,0.5,1這四種速率
0.125 = 每32分音符為一格琴塊
0.25 = 每16分音符為一格琴塊
0.5 = 每8分音符為一格琴塊
1 = 每4分音符為一格琴塊
——————————-琴塊屬性————————
琴塊屬性: X< >
玩過鋼琴塊2的人就知道,鋼琴塊2裡面有分很多種琴塊屬性
如果你要讓你的歌曲琴塊變得豐富,必須知道這些屬性!
注意1: 琴塊屬性不能加在伴奏的地方,只能加在主旋律的地方
注意2:琴塊屬性的添加跟basebeats有關聯。
設:basebeats為0.XX (以XX分音符為一個琴塊)
有些琴塊屬性跟這個注意事項有關,下列會根據每個琴塊屬性介紹來用此設法來舉例
小技巧:有時候伴奏用在琴塊上比較難,我們就會把伴奏和主旋律的音軌調換,換成伴奏加上琴塊屬性
1.狂戳塊 3<>
剩餘591271個音符的狂戳塊,戳完此方塊才會消失
3<#c3[M],d3[M],#c3[M],b2[M]>
2. 雙塊 5<>
一排兩個琴塊
雙塊跟我們上面提到的注意2有關:
設basebeats為0.5(以八分音符為一個琴塊)
兩個十六分音符 = 一個八分音符,此時兩個十六分音符可以加上雙格屬性
有兩種形式
1.有休止符
5<V,b1[M]>
2.無休止符(全為音符)
5<a1[M],b1[M]>
3. 長塊 6<>
不同音用在此屬性上,可以成為一個長塊 6<(e1.c2)[J]>
連音、滑音、琵音、顫音、倚音、迴音若無添加任何琴塊屬性,就會成為長塊!!
4. 滑塊 7<>
或 8<>
多個滑音,一般設置在滑音和連音的部分上
8<(f4~c4~#g3~f3~f3~c3)[L],(#g2~f2~f2~c2~#g1~f1)[L]>
或
7<(f4~c4~#g3~f3~f3~c3)[L],(#g2~f2~f2~c2~#g1~f1)[L]>
5. 伴奏塊 9<>
這種琴塊屬性很少用,主旋律和伴奏都會按到
9<#G-1[HI]>
在HI
的長度下,主旋律和伴奏都會彈奏到!
6. 爆裂塊 10<>
案完第一個爆裂塊之後,會爆出很多爆裂琴塊
使用時段:
爆裂塊跟我們上面提到的注意2有關:
設basebeats為0.25(以十六分音符為一個琴塊)
當第一個音比較長,後面都是一個琴塊的時候適用
10<(a2.a3)[K],g3[M],e3[M],#c3[M],a2[M];g2[M],e2[M],#c2[M],a1[M]>
————————關於演奏技巧在json上的寫法———————-
1.和弦 ( . )
在音樂理論裏,是指組合在一起的兩個或更多不同音高的音
和弦要用()
來表示,且要用.
來分隔不同的音
例:請打出此和弦 :
(c1.e1.g1)[K]
2.連音和滑音 ~
跟和弦一樣要用()
來表示
要看你是幾連音(連音的話要看以音符時值的長度分幾個音)
如: 三連音,六連音,九連音
滑音就看你滑到哪裡共幾個音就是幾連音
連音:
寫連音時候會遇到三種狀況
狀況1:無任何和弦與休止符
(c1~e1~g1)[K]
(以四分音符分三個音)
狀況2.只含和弦
(c1.c2~e1.e2~g1.g2)[K]
(以四分音符分三個八度和弦)
狀況3.含休止符,其中有一個音符或和弦
(U~e1~g1.g2)[K]
(以四分音符分一個八分休止符,和一個音符、一個和弦)
滑音: (a2~g2~f2~e2~d2~c2~b1~a1~g1~f1~e1~d1~c1~b~a~g~f~e~d~c)[LM]
(以附點八分音符[LM]
之內從a2
琴鍵滑到c
琴鍵,就如同在附點八分音符中分二十個音(二十連音)的概念
2.琶音 @
跟和弦,連音或滑音一樣要用()
來表示
琶音受到速度和音符長度的影響會有所不同
速度太慢或音符長度太長的不建議使用:
例請打出此和弦的琵音:
(c1@e1@g1)[K]
3.倚音 !
和 %
!
和 %
應該都是屬於倚音,不過不知道為何要分成兩種形式,有待研究
例:請打此倚音
(#f1!#g1)[K]
或是 (#f1%g1)[K]
4.顫音 ^
顫音在古典樂經常看到
例:請打出此顫音:
(f1^g1)[K]
5.重音
讓該音,或和弦的聲音變大
很簡單,只要兩個音重複就可以了
例:請打出此音的強音:
(c1.c1)[K]
6.迴音 $
迴音通常非常少用,目前鋼琴塊2將近900多首裡面也就只有一首歌用到它
如果你要打古典音樂,你應該偶爾會見到它
例:請打出此迴音:
(c2$a1$g1$a1)[K]
7.Z
為目前未知的演奏技巧代號,目前正在研究中,
也是目前鋼琴塊2將近900多首裡面只有一首歌用到此屬性。
(Z~f1~#a1)[L]
—————————–實際操作—————————–
對樂理和json都有初步概念的時候,就可以開始練習打了,一開始建議手動打,熟悉一下。
之後你熟悉了之後就可以用程式來幫忙。
假設我們今天要做的歌曲是:
你的名字插入曲Sparkle:
這首難度相當高的原因是因為長度約8分鐘,也沒有提供MIDI載點,只有譜和鍵盤而已,無法使用程式來做
基本上你你有三種方法可以打
1.看著鍵盤打(熟練約花費1天的時間)
2.或者是看譜打(熟練約花費1天的時間)
3.有時候作者不提供MIDI載點,就必須下載Musecore把譜做出來,導成MIDI用FL Studio和Domino編輯,再用json2midi和midi2json的方式製作(詳情看下方的Sparkle製作過程!!
(難易度非常高,在打完譜的前提下約花費4~6個小時)
此歌曲的第一小節
把它寫成鋼琴塊2json的格式,就會像是這個樣子
{"baseBpm":186,"musics":[{"bpm":186,"baseBeats":0.5,"scores": ["b1[L],#c2[L],f2[L],b1[L],#c2[L],f2[L],b1[L],#c2[L],f2[L],b1[L],#c2[L],f2[L];
可是我們還有伴奏沒有寫到,而且跟主旋律的音符時值不同,該怎麼辦?
那就需要用","
來分隔旋律與伴奏
{"baseBpm":186,"musics":[{"bpm":186,"baseBeats":0.5,"scores": ["b1[L],#c2[L],f2[L],b1[L],#c2[L],f2[L],b1[L],#c2[L],f2[L],b1[L],#c2[L],f2[L];","#d[JK],#d1[JK];
第一部分打完之後就要用"],"id":1},
做結尾
{"baseBpm":186,"musics":[{"bpm":185,"baseBeats":0.5,"scores": ["b1[L],#c2[L],f2[L],b1[L],#c2[L],f2[L],b1[L],#c2[L],f2[L],b1[L],#c2[L],f2[L];","#d[JK],#d1[JK];"],"id":1},
—————————–第二部分—————————–
第二部分的初設定與第一部分不同 (速度和琴塊的速率可以改變!!)
{"bpm":XXX,"baseBeats":0.XXX,"scores":["
一樣打完主旋律和音符之後做結尾
結尾與第一部分不相同!!
"],"id":2},
(黑色粗體字表示可更改的數字,紅色粗體字則無法更改)
{"bpm":188,"baseBeats":0.5,"scores":[": ["b1[L],#c2[L],f2[L],b1[L],#c2[L],f2[L],b1[L],#c2[L],f2[L],b1[L],#c2[L],f2[L];","#d[JK],#d1[JK];"],"id":2},
—————————–第三部分—————————–
第三部分的初設定和第二部分的初設定一樣
{"bpm":XXX,"baseBeats":0.XXX,"scores":["
一樣打完主旋律和音符之後做結尾
結尾與第一、三部分不相同!!
"],"id":3}],"audition":{"start":[0,0],"end":[0,5]}}
(黑色粗體字表示可更改的數字,紅色粗體字則無法更改)
{"bpm":190,"baseBeats":0.5,"scores":["b1[L],#c2[L],f2[L],b1[L],#c2[L],f2[L],b1[L],#c2[L],f2[L],b1[L],#c2[L],f2[L];","#d[JK],#d1[JK];"],"id":3}],"audition":{"start":[0,0],"end":[0,5]}}
打好了之後
檢查,且只要有一丁點的小錯誤,或者是換行的動作(限定一行到底),遊戲就會crash掉
檢查好之後你就完成了一首你自己專屬的歌曲了(註:這邊的音符只是示範而已哦)
—————————-程式的幫忙———————–
不過這樣每次用手打很累
而且有時候會眼殘打錯,如果你做了一首很長的json,找出錯誤就如同打海撈針一樣,很麻煩
所以我們就研發了json2midi 和 midi2json這兩個程式
————————————————————————-
json2midi:
將json檔案轉換成midi格式的概念:
一開始是專門研發鋼琴塊2上的json檔案到midi格式
可以成為自製歌曲的專用工具:
1.可以聽歌
2.可以檢查錯誤
(就是來檢查你自己剛做完的json是否有做錯,從json2midi中導出MIDI,聽一遍你哪邊有沒有做錯)
如何使用?
影片: https://youtu.be/pBopW-JR-uI
————————————————————————-
midi2json:
將midi檔案轉換成json格式的概念
自從自製歌曲變得頻繁之後,
開始製作此軟件
不過過程很多且困難,需要反覆練習才可以熟練
注意:此程式無法打出琵音,滑音,連音和倚音的效果
要加的話必須自己手動添加!!!
————————————Sparkle製作過程(縮時攝影)———————————–
開始錄製的時間是在打譜打到三分之一的進度時拍的
影片: