マインクラフトで演奏するソフト開発


最近よく見かけますが、マインクラフトで曲を演奏してみた動画って、よくありますよね。制作者の方々はそれぞれ作り方は違うと思いますが、Tanidaiz的な制作の裏側をちょっとだけお見せします。

スポンサーリンク

どの方法で作るか決める

作り方は大きく分けて2種類あります。
1つは、手動でNoteBlockを設置、設定していく方法。
もう1つは、今から紹介する、半自動的制作方法。

手動の場合はそれほど難しいことはなく、設置していくのみですが、大変手間がかかり、日が暮れます。(自分にそんな忍耐能力はないので)

半自動的にすると、初回のプログラム作成はいろいろ面倒だったりしますが、1度やってしまえば、あとは楽です。(1度に設置できる長さの最大値は決まっていますが…)
ここでは、そのプログラムに焦点を当てて、書いていきます。

プログラムの仕様

まずは、自作のプログラムの画面をご覧ください。

なんとなくどんなソフトか、分かるでしょうか。まだまだ改善の余地はありますが、とりあえず…(開発言語:Microsoft Visual Basic .NET 動作環境:Minecraft 1.8.x)

私の場合は、マインクラフトにリソースパックを入れ、オクターブ数を増やしています。そのため、5オクターブ分の鍵盤ボタンを設置しています。小節数、拍数を設定すると、曲が編集できるようになります。テンポは現在のところ、2種類選べるようにしてあります。

長い曲を編集するときのために、保存ができます。ただし、自分でテキストエディタで保存しないといけない仕様となっています(笑)。当然読み込みもできます。

小節、拍、16分を設定すると、Noteが設定できます。マインクラフトの仕様上、NoteBlockの音はすぐに消えてしまうので、すべて16分音符の長さとして扱っています。

楽譜を入力し終わってから、「シーケンサーコマンド出力」を押して、演奏部の骨格を作るためのコマンドを出力します。(シーケンサーとは、リピーターの遅延を使って、1拍ごとに楽譜を進めていくものです。)基本的には、このコマンドを、コマンドブロックに設定して、動力をONにします。すると、みるみるうちに骨格が出来上がります。ただ、Falling SandやRidingを使っているので、マインクラフトのバージョン制限は、1.8.9までとなります。1.9からは、JSONの記法が忠実に守られるようになったため、文法が変わってしまいました。

「部分的楽譜コマンド出力」ボタンを押すと、1~2,3~4小節の楽譜データを出力していきます。本当はイッキに全部出力したいところですが、コマンドブロックの文字数の上限を余裕で超える事態になってしまい、このようにせざるを得ませんでした。(最新バージョンでは、コマンドブロックの文字数制限は緩くなったようですが、以前のコマンドが使えないのでは意味がありません・・・・・・・)

スポンサーリンク

演奏してみた

以上のようにしてちょっとだけ演奏してみました。

音ブロックで星野源「恋」のサビを演奏してみた

https://www.youtube.com/watch?v=Sw8z6S5WPPM

動画の最後に見える「星野源」(敢えてカギカッコをつけておく。)は、これもまた画像をマインクラフトに出力するソフトを開発したので、後日どんなものか書いていきたいと思います。

バグだらけで、ソフト公開には至りませんが、やってみたい方は、参考にしてみてください。