前情概要

注意:此篇文章過長,且適用於安卓手機,唯安卓才能改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":["

baseBpmbpm代表歌曲的速度:

這兩個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,找出錯誤就如同打海撈針一樣,很麻煩

所以我們就研發了json2midimidi2json這兩個程式

————————————————————————-

json2midi:

將json檔案轉換成midi格式的概念:

一開始是專門研發鋼琴塊2上的json檔案到midi格式

可以成為自製歌曲的專用工具:

1.可以聽歌

2.可以檢查錯誤

(就是來檢查你自己剛做完的json是否有做錯,從json2midi中導出MIDI,聽一遍你哪邊有沒有做錯)

如何使用?

影片: https://youtu.be/pBopW-JR-uI

 

————————————————————————-

midi2json:

將midi檔案轉換成json格式的概念

自從自製歌曲變得頻繁之後,

開始製作此軟件

不過過程很多且困難,需要反覆練習才可以熟練

注意:此程式無法打出琵音,滑音,連音和倚音的效果

要加的話必須自己手動添加!!!

 

————————————Sparkle製作過程(縮時攝影)———————————–

開始錄製的時間是在打譜打到三分之一的進度時拍的

影片: 

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *