BPMの設定/○分音符の設定

「BPMの設定/○分音符の設定」の編集履歴(バックアップ)一覧に戻る

BPMの設定/○分音符の設定 - (2014/02/22 (土) 17:28:01) のソース

[[maidata.txtの譜面書式]]
[[譜面作成マニュアル]]
+[[BPMの設定/○分音符の設定]] ←いまここ
+[[TAP・BREAKを配置する]]
+[[HOLDを配置する]]
+[[SLIDEを配置する]]
+[[EACHを設定する]]
+[[終了地点を定義する]]

#contents

*譜面を書く、ということは……
音楽的には楽譜と言った方がいいかもしれませんが、これを書くということは、
&bold(){「曲が始まって○秒後に、この楽器のこの高さの音を鳴らす」}
ということを定義していることになります。maimai風に言えば
&bold(){「曲が始まって○秒後に、このリングをこの位置で叩かせる」}ですね。

そして、○秒というものをいちいち小数第何位まで求めて書いて……というのはあまりに非効率的で分かりにくいので、
△小節、□分音符という単位を使って分かりやすく分割し、
分割された領域に音を割り当てている……という感じです。

譜面を作るというのは難しく感じるかもしれませんが、構造は意外と単純です。
多少の慣れは必要ですが、すぐにスラスラ書けるようになると思いますので頑張ってみてください!

*BPMの設定
BPM(Beat Per Minute)というのは&bold(){1分間に等間隔なリズムが何回刻めるか}という値です。
例えば1秒ごとに1回手拍子をしたら1分で60回できますね。この時のBPMは60になります。1秒ごとに2回ならBPMは120になります。

1秒あたりに行う手拍子の回数が増えれば、それだけ1分間に多くの手拍子を行うことができます。
それと同時に、その手拍子のスピードは速くなるはずです。なぜなら等間隔で手拍子を行う必要がありますからね。
したがって、BPMの値が大きい曲ならば、リズムが速い曲である、ということが分かります。その逆も言えます。

さて、譜面の初めにはBPMがいくつかを&bold(){必ず}記述しないといけません。
先程の手拍子の例を使うと、この手拍子ひとつひとつに対してmaimaiのリングを置くことになるのですが、
BPMが分からないと手拍子が打てないのでリングも置けない、ということです。
それが譜面の初めになければ、一体何をどうしろってんだ、とsimaiに怒られてしまいます。

&color(red){(以下、ひたすらこの手拍子の例が登場します)}

では、BPMを120にしてください、という指示をしてみます。

 &inote_1=
 (120)

はい、これだけでOKです。これでsimaiは「初めのBPMは120なんだな」と理解してくれました。
実際には改行しなくてもいいのですが、&bold(){&inote_1~&inote_5の領域には改行文字を無視する機能がついている}ので、
改行してしまって構いません。むしろこの方が見やすいかと思います。
ちなみに&bold(){タブスペースも無視します。}あまり使わないかもしれませんが念のため。

 &inote_1=
 (123.45)

小数も大丈夫です。
BPMが小数になることなんてあるの?と思われる方もいるかもしれませんが、計算上そういったBPMになることがあります。

さて、これでBPMの値をsimaiが理解してくれたのですが、
もう一つ、付け加えないといけない情報があります。それを今から説明します。

*○分音符の設定
ここで新しい言葉を勉強しましょう。&bold(){小節}という言葉です。
これは、譜面が読みやすいように区切られた長さの単位のことです。
いつの間にそんなもの区切ったの?と思ってしまいますが、実は先程BPMを設定した時点ですでにその長さが決められています。
その長さとは、&bold(){手拍子4つ分の長さ}です。

なぜ4つ分の長さなのかというと、現代にある音楽のほとんどは4分の4拍子というモノで構成されており、
この場合、&sizex(4){1小節=手拍子4つ分}ということになるのです。ちなみにBPM120の場合は、1小節の長さは2秒になります。
……と言葉で説明してもよく分からないので、実際に計算してみます。

BPMが120ということは、1秒間に叩く回数は120÷60=2回です。
1秒間に2回叩くのだから、1回叩くのに要する時間は1÷2=0.5秒です。
これが手拍子1つ分の長さなので、4つ分の長さは0.5×4=2秒です。

ここでBPMをxと置くと、上3行の計算式は (1 ÷ (x ÷ 60) ) × 4となり、整理してやると240 ÷ xとなります。こちらの式の方が簡単ですね。

さて、1小節の長さが分かったところで、これを何等分かにします。
いずれ、次回の[[TAP・BREAKを配置する]]で、

 1,,,,
 2,,3,,
 4,5,,6,
 7,,,8,

みたいなことを書くのですが、1小節を等分することで、&bold(){カンマ1つあたりが持つ長さ(秒数)が変わります。}
カンマは、&color(red){そのBPMにおける1小節を○等分したうちの1つ分の長さ}を表します。
BPMを設定するのも、1小節を何等分かするのも、全てはこのカンマのためにあります。

例えばAccelerationのMASTER譜面。初め(と中盤)にひたすら回転する譜面がありますよね。
その速さは、このように変化していきますよね。

 タッッッタッッッタッッッタッッッ
 タッッッタッッッタッッッタッッッ
 タッッッタッッッタッッッタッッッ
 タッッッタッッッタッッッタッッッ
 タッタッタッタッタッタッタッタッ
 タッタッタッタッタッタッタッタッ
 タタタタタタタタタタタタタタタタ
 タタタタタタタタタタタタタタタタ
 
 チャリーン(BREAK)

1行に16文字ずつ並んでいますが、この長さが1小節だとすると……

 1~4行目は「タッッッ」という文字列が4つ
 5・6行目は「タッ」という文字列が8つ
 7・8行目は「タ」という文字列が16個

それぞれあるのが分かりますでしょうか。
「タ」を手拍子だとすると、4行目までは問題なく叩けますが、
5行目からは追いつかなくなりますし、7行目からはさらに叩けなくなってしまいます。

それならBPMを速くすればいいのではないか……なるほど、確かにそれもいい考えです。
ですが、&bold(){maimaiではそれはしてはいけません。}その理由は[[SLIDEを配置する]]で説明します。

しかし……&sizex(4){4分音符しかできないと困る!}
それを解決するために、&bold(){4分以外の音符を配置できるようにさせるのです。}

先程のAccelerationの例だと、5・6行目は8等分、7・8行目は16等分できればどうにかなりそうですね。
では、1小節を8等分して!と指示してみます。

 (120){8}

BPMの後ろに、「この数字分だけ等分した音符にして!」という意味の記述をします。今回は8等分なので{8}と書きました。
え?これだけ?……はい、これだけです。これ以降は1小節が&color(red){8等分}されることになりました。
&color(red){つまり、カンマを8個打てば、1小節分の長さになる}ということになります。
{16}のように書けば、16分等分にもできます。

ちなみに、この8等分とか16等分とかを、&sizex(4){8分音符、16分音符といった呼び方をします。}
これ以降は全て「○分音符」という記述をいたします。「○等分」よりこちらで覚えた方がいいでしょう。
ただし、「1分音符」という呼び方や、「12分音符」「24分音符」という呼び方は&bold(){音楽の用語としては存在しません。}
それぞれ、「全音符」「3連符」「6連符」という呼び方をします。
ただし、主に16分音符が使われることが多い音楽ゲームにおいては、
「1小節を16等分したものが16分音符ならば、&bold(){1小節を12等分したものは12分音符である」}
という考え方の方が分かりやすいため、そのような呼び方をすることもあります。

数値を大きくすれば、もちろん1小節に配置できるリングの数は増えます。

 (●がリングを配置できるタイミング)
 
 {1}  ●○○○○○○○○○○○○○○○
 {2}  ●○○○○○○○●○○○○○○○
 {4}  ●○○○●○○○●○○○●○○○
 {8}  ●○●○●○●○●○●○●○●○
 {16} ●●●●●●●●●●●●●●●●

じゃあ常に大きい数値にすればいいのか、というとそうでもありません。
例えば、EASYのようなすごく簡単な譜面を作っている時に、{64}を記述して64分音符にしていて、
1小節にリングが1つしかない小節があるとしたら、そこはどうなるでしょうか?

 (120){64}
 1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

こんなことになってしまいます。もったいなさ過ぎますね。それならば、

 (120){1}
 1,

こう書く方が分かりやすい上にすっきりしますよね。
うまく指示してやることによって、&bold(){テキストのデータ量を抑えることができます。}

BPM及び○分音符の設定は、譜面を書くにあたって最も注意しなければいけない点です。
この仕組みが理解できれば譜面を書くスピードもぐんと上がるので、いろいろ試して慣れていきましょう!

- >>譜面  { BASIC~MASTERは省略  譜面終了を表す「E」は必須 }  -- 名無しさん  (2014-02-22 17:26:49)
- {x}を使って途中で○分音符を変更することができません  -- 名無しさん  (2014-02-22 17:28:01)
#comment