【開発日誌】選曲画面の開発と、それに関係する実装予定の機能

そろそろ譜面エディタはバグ取るくらいしかやることがなくなってきて、プレイ画面のほうもある程度できてきて飽きてきたんで、選曲画面を作ることにしました。

目次

選曲画面でできること

とりあえず今のところの動作はこんな感じになってます。曲が選べて譜面も選べる。

あ、ちなみに、譜面を表示する場所が 7 か所あるのですが、これは譜面が 7 つまでと言う意味ではないです。

DuNoでは曲に対する譜面の数は無制限です。実際は譜面を左右のキーで選ぶと、もっと譜面があるなら普通に左右の端から新しく出てくる感じですね。

NEW NEW NEW NEW NEW NEW NEW NEW NEW……

これについては譜面エディタを見てもらったほうが分かりやすいと思うんですが、マジで無限に譜面を追加できます。PCのメモリが許す限りは。

あと、もちろん曲のソートやフィルタもできるようにする予定です。作曲者が自ら楽曲投稿できるシステムなどを作る以上は、割とガチで数千曲、数万曲を合法的に配信できるゲームを目指していますので、必須ですよね。

これはまだ画面からいじれないんですが、スクリプト側からはソートの種類を選択するだけで勝手に並び替えられるようになってますので、あとはその切り替えの操作を作るだけです。

楽曲のダウンロードについて

先ほど数千曲、数万曲を目指すっていう話をしたんですが、当然ながらこの楽曲数をデフォルトでダウンロードさせるわけにはいきません。

そのため、楽曲は基本的に好きなものを選んでダウンロードする形式にしたいと思っています。

実は選曲画面で音楽を流す際には、必ずしもローカルのファイルである必要はなく、URLを指定して再生することもできるようになっているのです。そのため、DuNo.jpから楽曲を読み込むことによって、選曲画面をそのまま、新しい楽曲を選んでダウンロードする用のインターフェースにすることも可能な構造になっています。

先ほど楽曲をフィルタできると書きましたが、このフィルタ機能を使って、ダウンロード済みの楽曲とダウンロードしてない楽曲の表示・非表示を切り替えるようにすれば割と簡単に実装できるはずです。

ちなみに、こういう方法で楽曲を増やせるようにしている都合上、ゲームをダウンロードした時点で同時に入ってる曲はありません

しかし、これでは初めて遊んだ人は困ると思うので、「おすすめの楽曲セット」(スターターパック?)的なものを、まとめてダウンロードできるような機能を実装したいと思います。

リザルト表示について

現在、ハイスコアのみが左下に表示されるようになっています。

スコアの優劣は、得点(理論値100万)の高い順になります。ただ、得点が同点になってしまうこともよくありますよね。この場合に安易に同着とすることを避けるため、同点であれば精度が高い順にさらに順位付けをします。
この精度っていうのが、全ノーツのタイミングのズレから算出した、連続性がある値なので、スコアとは違って、異なる記録において全く同じになってしまうことはほぼあり得ないレベルです。

で、結構重要な話をすると、DuNoでは全てのリザルトを記録するようにする予定です。

ハイスコアだけを送信したり保存するのではなくて、最後までプレイした記録はそれがどんな内容であれすべて記録されるということです。

※あまり自信がない方でもご安心ください。全てのリザルトを一般公開するか、あるいはハイスコアのみ公開するか、そもそも全てのスコアを隠すか、といったことを、DuNo.jpのマイページの設定から選べるようにします

そうなると、ここでハイスコアのみを表示しているだけではいけないことになります。

そのため、全てのリザルトが表示される詳細表示も、現在曲のリストが表示されている部分と入れ替える形で行えるようにするつもりです。

譜面バンドルについて

ところで、譜面は「譜面バンドル」に属しています

これはどういうことかと言うと、普通の音ゲーは楽曲に対して譜面が属しているような形にすると思うんですが、DuNoのシステムでこれをやってしまうと良くないことになります

大概の音ゲーは、こういうデータ構造であれば事足りるはず。実際に中を見たことはないけど

DuNoでは、ユーザーが自由に譜面を作れるわけです。つまり、1曲に対して数百譜面とか作られてしまう可能性もなくはないわけです。そんな譜面が一度に追加されて、そこから選べと言われてもどうしようもないですよね?

というわけで、同じユーザーが作った譜面が「譜面バンドル」という括りに一旦含まれます(もちろん公式で作った譜面も同様)。で、その譜面バンドルが楽曲に属します。

DuNoではこういうデータ構造です。1つの楽曲に対しては、同じユーザーなら1個だけ「バンドル」を作れます。

これの何がいいかって言うと、例えば「たくさんダウンロードされているバンドル」とか、「自分がフォローしているユーザーのバンドル」とかのみを、優先してダウンロードしてきて遊ぶことができます。

???

だから、この構造にする必要があったんですね。

ただし、こういうことにすると厄介なのが、選曲画面の機能として「曲を選んで、譜面を選ぶ」だけでは足りなくなってしまい、「曲を選んで、バンドルを選んで、譜面を選ぶ」機能を実装する必要が出てくることです。

ここらへんは、自分のお気に入りのバンドルを設定できて、デフォルトではそれが表示されるけど、追加で開くメニューで別のを選ぶことができるようになる……とか、そういう感じにするといいんじゃないかと思ってますが……

……そのうちやります。

譜面データの構造について

ここからは開発者向けの情報になるのですが、良ければ聞いてください。

かなりリッチな感じだが、もちろんもととなるデータはすごい地味なものです。

将来的には、もしかするとDuNoの譜面を読み込んでブラウザ上で表示するビューワとか、そういうのを誰かが作ったりするかもしれないと思っています(訳:つくれ)。

というわけで、開発者に扱いやすい形式になるように気を配っています。

DuNo の譜面などのデータは全てJSON形式なので、ブラウザ上で動作するアプリケーションとかでも比較的簡単に扱えるはずです。

また、DuNo.jpからこういったデータを持ってくるAPIなんかも将来的には用意したいですね。

まだまだ基本的なものを作っている段階なので、そういうところに手を出せるのは数年後になるかもしれませんが……。

こいフラ

ここからは全然違う話になりますが。

DuNoには東方アレンジ楽曲も収録されており、リザルトに原曲関連のキャラが表示される感じになっています。

このような立ち絵はくじょーさんに依頼させていただいているのですが、せっかくなのでフリーアイコンとして公開してはどうかというご提案を頂き、DuNo.jpで配布させていただいている感じです。

そんなフリーアイコンに、こいフラが追加されました!

ダウンロード&利用は以下のリンクからどうぞ

ちなみに

元々は収録楽曲に応じて描いていただいていたので、追加する順番にはキャラの人気とか関係なかったんですよね。(はたてがいるのもバッコイとか追加する予定のため)

で、既に最初の収録楽曲分のは終わったので、現状としては基本的に人気投票の順位の順番に描いていただくことにしています。ということで直近では1~5位のキャラが追加されたわけで。次に追加するキャラも予想できますね。

推しの順位が低いとお嘆きのアナタに朗報!

あくまでも収録確定した楽曲があれば、そちらのキャラを優先することになるので……
作者まで、そのキャラの曲をアレンジした曲を投げ、それが採用されれば割り込みで追加される……ってコト!?

※DuNo.jpのシステムとして実装する楽曲投稿とは別で、作者経由の採用だと確実にDuNo公式楽曲になります。そのため、楽曲のクオリティも審査されますので、収録を確約することはできません。ご了承ください。

おわりに

実は私、最近デカい人生のイベントを片付けたところで、今からゴリゴリ開発していく感じになります。今までは超スローペースでしたが、今後は本気でやっていくのでTwitterでの情報開示も活発になると思います。

応援の程よろしくお願いします。

DuNoの開発に関する最新情報が知りたい方は、ぜひTwitterをフォローしてください!

正式な情報はこちらから

開発の細かい進捗まで知りたい方向け

※内容がちょっとお茶目なので気を付けて!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

フリー音楽ゲーム DuNo の開発者です。

コメント

コメントする

目次