miso_soup3 Blog

主に ASP.NET 関連について書いています。

音ゲー「音符池」で休符の矛盾にどう向き合ったか

答え:楽譜の正しさではなく、音ゲーのゲーム性を優先しました。

背景

7月にプロトタイプを作成し、8月に音ゲー「音符池」をリリースしました。前の記事にて、「休符の表現に矛盾があり、なんとなく休符を非表示にしている」と書きました。いくつか譜面を作成した中で、自分の中で「なんとなく」をある程度ルール化できたので書きます。最終的には、楽譜の通りに休符を表示するのではなく、一定のルールに沿って休符を非表示にしました。理由は、全部表示すると目が疲れてゲームを楽しめないからです。

どんな矛盾だったか

音ゲーに楽譜を取り込む」というテーマのもと、楽譜をそのまま表現しようとしましたが、少し変な表現になりました。

タップする音については、音価に基づいて正しい音符を表示することができました。つまり、四分音符は四分音符♩、八分音符は八分音符♪としてイラスト化して表示しました。

楽譜:

f:id:miso_soup3:20180823111648p:plain

その楽譜を音ゲーにするとこうなる:

f:id:miso_soup3:20180823112013p:plain

ただし、見てわかるように、休符はそのまま表示しておらず、八分休符を1つのみ表示している状態です。他の休符は表示していません。

f:id:miso_soup3:20180823112734j:plain

また、この画面を生成するために、表示する休符にはフェルマータを使用しました(↓下の画像)。これは、間違った楽譜の表記方法です。

ゲームの生成元となる楽譜:

f:id:miso_soup3:20180823113405p:plain

フェルマータは、記号が表す時間を延長化する、という意味です。よくある例としてフレーズの最後の音をしばらく伸ばしたいするときに使われます。)

音ゲーに楽譜を取り込む」というテーマなのに、嘘の楽譜を表示していることになります。この理由を「なんとなくそうしたいから」で済ましたくありませんでした。

正しく楽譜を表現するとどうなるか

では、楽譜通りに休符を全部表示するとどうなるか、実際にやってみました。比較動画を用意しました。

休符を全部表示するバージョン:

youtu.be

休符を一部表示するバージョン:

youtu.be

前者の全部表示するバージョンは、画面がとてもうるさく目が疲れてしまい、これは駄目だと思いました。普通の楽譜は、譜面台に配置して動くことはありません。しかしこのゲームではずっと左に動いているため、ゲーム上では楽譜通りに表示するべきではない、と思いました。

休符を表示するルール

そこで、休符は大事なところだけを表示しました。そのルールは次の3つです。

1 全パートで消費されていない時間は、どこかのパートで必ず休符として表示する

f:id:miso_soup3:20180823131845j:plain

2 他のパートの音符が時間を消費していれば、休符を表示しなくてもよい

f:id:miso_soup3:20180823131724j:plain

3 裏拍として表現したいところは休符を表示する

f:id:miso_soup3:20180823132100j:plain

このルールを守りつつ、他はバランスで休符の非表示を決めました。

実はそんな書き方の楽譜が既にある

上記のルールを、いかにも自分が思いついたように書きましたが、実際に楽譜として存在します。

例えば、打楽器ではなく、音階が存在する楽器の五線譜として書けば、先ほどのルールに一致します。

f:id:miso_soup3:20180823132540p:plain

また、バッハなどのポリフォニー(多声音楽のこと、反対語はモノフォニー)音楽の楽譜でも、一致するような表記があります。

f:id:miso_soup3:20180823134109p:plain

Fantasia and Fugue in C minor, BWV 537 (Bach, Johann Sebastian) - IMSLP/Petrucci Music Library: Free Public Domain Sheet Musicより

(↑小説の途中で四声から五声になっており、裏拍のために八分休符の表記があります。ただしそれまでの四声のときは休符は表示されていません。)

楽譜としては、このように五線譜での表記方法が正しいです(ドラム譜もそうかな?)。ゲームでは最大3パートありますが、それぞれをドミソで担当して五線譜として表現すればよかったのでしょう。しかし、音ゲーとして3パートで表示したかったために少し矛盾ができました。

終わり

ということで、休符の非表示については、楽譜を正しく表現することよりも、目が疲れないようにゲーム性を優先しました。しかし、それをルール化することはできました。でもそれって思いついたように言ってるけど、楽譜の世界でもすでに存在してたよね、ということでした。

ただ、残念ながら、ゲーム画面を生成するために、作成時は休符にフェルマータをつけています。MuseScoreに公開するときは除去しています。