最近インタラクティブミュージックという言葉を知ったので、実践すべくミニゲームを作ってみました。アイテムを取ると、色に応じた楽器パートの音が上がり、徐々にBGMが盛り上がっていく……ようにしたかったゲームです。
完成したゲームはこちら
色々問題がありました。そんな反省文です。
初心者が8音同時再生はあかんって……
ゲーム説明
ゲーム部分はUnity、BGMはCubaseで作りました。
ユーロビートっぽいBGMを作ってみました。これを主旋律やドラムなどに分けて8曲用意しました。
背景の道路やプレイヤーキャラクターのペンギンはUnityアセットストアの無料アセットを使用しました。一部演出は有料アセットです。
アイテムを取るとスコアアップ。3回ミスするとゲームオーバー。
横1列が全て柵になると1つはアイテムに変更されるようにして、一応道が塞がれないよう配慮しました。
ペンギンは無傷です。防護柵は回復します。法令は遵守されます。
反省
難しい
BGMが完成するまでに7色アイテムを各10個、計70個のアイテムが必要です。ゲームプレイによってはBGMが完成しないままゲームを終えてしまいます。普段アクションゲームをやらない人にとっては難しい難易度だったかもしれません。簡単なバージョンも作ろうかなと思うなどしましたが、後述する音ズレ問題が解決するまでは難しそうです。
結局同じBGMが完成してしまう
どうせならプレイヤーの選択で違うBGMが完成したほうが良かったかもしれません。取得アイテム数に制限を持たせるとか、パート数を制限するとか。アイテムがランダムだから狙った音を出しにくいので、今作のようなゲームプレイに幅がないミニゲームでは活かしきれないのも仕方なかったかな、と思います。
8音同時再生ということで、集中して聞かないと聞き分けできません。アイテム1つで8分の1の楽器パートの音量が1割上がるだけです。見た目がカラフルなのは良かったと思います。
これはこれで満足しているのですが、BGMの盛り上がりにパートごとの聞き分けが入らなければ、ただBGMの音量が上がっているのと大差ありません。わざわざ8音同時再生しているのでそれを活かしたかったのですが、それがゲーム性と合っているかとか、重要かと聞かれるとそんなこともありません。結局分かる人には分かる程度の位置付けのインタラクティブミュージック要素になってしまいました。理想は「理解してもらったうえで心地よくゲームが遊べる」だと思いますが、今回の場合は気づかれなくても良いのでまあはい……。
イニシャルPを思い留め無難なタイトルに……
一番の反省
音ズレしてしまいます。
今作は拍単位でのゲームプレイの連動要素はなく、同時再生のズレさえなければいいのですが、音ズレしてしまいます……。
新しいパソコンなら問題なく遊べそうですが、手元のiPadで起動するとかなり音ズレしてしまっていました。現状解決できていませんが、以前に比べ多少抑えられたと思います。
- BGMの品質を下げた
- mp3からoggに変更した(mp3はループ向けではない)
- オーディオ圧縮形式を「メモリに格納」した
当初Unityのオーディオ圧縮形式をデフォルトのままにしていて、重くてスマホでは開けませんでした。BGMを全てストリーミングに変更したところ、とんでもない音ズレが発生。「メモリに格納」して今に至ります。今までに比べ改善はしたものの、完全解決には至りませんでした。途中で同期させればいいと思いトラック1の現在の時間をその他のトラックに適用しようとしたのですが、音が切れてしまうわ音はズレたままだわでお手上げでした。
起動後に音の同期のための余裕をもたせれば、もう少し良くなるかもしれません。
検索したところ音ズレを防ぐにはバッファの考慮?などが必要になるそうで、今の私には難しそうです。作り直したほうが早いかもしれません。タイムラインも活用したほうが良いのかな? 作り始めたときは音ズレのことなど想定できていなかったので、キャラクターやアイテムはDotweenでBPMに合わせて揺らしているだけです。
思えば8音同時に再生しているだけなので、最大音量のようなものも考慮できていません。DTMも初心者なのでと言い訳をしだしたらキリがありませんが、今できる最大限の力だったと思います。
サウンド同期のためのプログラム?やアセット?はいくつかあるようですが、何せC#は未だに分からないしGitHubは謎の設計図共有サイトなので抵抗があります。半分は冗談です。時間があるときに試してみたいです。
音楽ファイルの波形を読み込む仕組みが使えれば、テンポが途中で変わる曲にも対応できそうですが、今の私にはさっぱりです。
よくできたところ
アクションゲームとしては割とよくできたのではないでしょうか。
スマホやタブレットでの音ズレの懸念はありますが、パソコンで遊べれば十分でしょう。
アプリ化の予定はありませんが、携帯機向けにバッファサイズを変更すれば解決できてしまう範疇かもしれません。
終わりに
インタラクティブミュージック(最近覚えた言葉なのでやたらと使ってみたい)を実践すべく躍起になっていましたが、初心者はもう少し簡単なBGMのクロスフェードとかピッチ変更から始めたほうが良かったかもしれません。キャラクターのセリフのときにはBGMを下げるなどの基本的なサウンド周りのアレコレを覚えるのが先のような……。
素材の規約次第では楽器分離サービスやソフトで差分を作れそうなので、作曲しない人でもインタラクティブミュージック要素を導入できるのではないでしょうか。今回知ったのですが、UnityならオーディオミキサーでEQ操作やリバーブなどが出来るので演出の幅が広がりそうです。
インタラクティブミュージックという言葉を知ったのは最近ですが、理想と言うか究極系はCrypt of the NecroDancerだと思っています。200時間以上プレイした大好きなゲームです。
インタラクティブミュージック要素を上手く取り入れるにはサウンド周りの知識とプログラミングの知識が必要になるのだと実感しました。「サウンドディレクター」や「サウンドプログラマー」の方々のお仕事の重要さの一端を垣間見たような気がします。ゲームにしろその他のメディアにしろ、私の気づかないところでサウンドの色々な配慮がされていたのかな……。
反省を今後の制作に活かせればいいなと思います。