24鍵譜面の作成方法(前編)

BmsONE beta 0.2.1からキーボードモード(24鍵)の編集とBMSのインポートに対応しました。早速BMSの24鍵差分譜面の作り方を説明します。

既存BMSの24鍵以外のBMSON差分を作る場合にも参考にしてください。

基本の流れ

まず、最新のBmsONEの64bit版をインストールしておきましょう。 32bit版でも編集はできますが、比較的容量の大きなBMSをインポートすると落ちてしまいます。 メモリは最低でも4GB以上あった方がいいです。

1. BMSのインポート

BMSON形式で一から作る場合は飛ばしてください。

BmsONEを起動してBMSファイルをドロップするか、[ファイル] → [開く] で右下のフィルタを「BMSON」から「旧BMSファイル」に変更してBMSファイルを選択します。 基本的にNORMAL譜面を選択するようにすると、メインメロディーをそのまま演奏させるものが多いのでノーツ配置時に楽をすることができます。

テキストエンコーディングの選択では、選択肢ごとにプレビューが表示されるのでタイトルなどが正常に表示されるものを選びます。 Windowsを日本語で使っている場合は基本的にデフォルトで構いません。他の環境の場合には「Shift-JIS」を選ぶことになります。 一部の海外製のBMSではUTF-8エンコーディングされているものがあるかもしれません。

ゲームモード(鍵盤数)の選択では、そのまま「次へ」を押せば大丈夫です。「!」の付いたモードをは規定のレーン数から溢れるノーツが存在することを意味します。

何もエラーが出なければインポート成功です。完了後しばらく画面が操作できなくなる場合がありますが、これはWAVファイルを読み込んでいるためなので少し待てば復活します。

インポートが完了したら、「情報」ビューのモードで keyboard-24k を選びましょう。

2. ノーツの配置

BmsONEには編集モードと書込モードの2種類のモードがあり、差分作成では基本的に編集モードを使います。 編集モードでノーツをドラッグすると横方向に移動することができます。 BGMレーンに移動したり、BGMからプレイ可能レーンに移動するにはダブルクリックまたは数字キーを押す必要があります。

24鍵では 音が鳴っている通りの鍵盤に配置する のが大原則で、これが特有の演奏感を支えています。 したがって、譜面作成者が行うべきことは独創的な配置を考えることではなく、演奏させるパートの選定と、2オクターブに収まらない場合の対処、必要に応じて和音を簡略化したりノーツを間引いたりして難易度調整することとなります。

以下のような方法で各ノートの音を把握して配置しましょう。

  • MIDIシーケンサDAW、あるいは実際の楽器などを使って音を出し、ノーツと比較する。
  • 各ノーツのファイル名に _c_d# などの接尾辞が付いている場合、何の音かを表している可能性があるので参考にする。

ある程度相対音感があれば、最初のほうの音を確認しておけば後は要所要所で再確認するだけで済むと思います。

f:id:excln:20170929012412p:plain

鍵盤の左にある赤い2列のレーンはホイールのUP/DOWNです。 7鍵のスクラッチのような感覚で配置するとひどいことになるので、曲の中でひときわ目立っている、どうしても演奏させたい音で鍵盤に置きにくいものだけを配置するようにしましょう。 ほとんどおまけみたいなものですし、デバイスによっては拾いにくいので迷う場合はホイールなしの譜面にしてしまった方が良いでしょう。 グリッサンドが一つのノートにまとめられたものはよくホイールに配置されます。*1

また、鍵盤部分を片手でプレイするスタイルが一般的なため、1オクターブを大きく超える同時押しなど両手プレイが必須になるような譜面は避けたほうが良いでしょう。 同時に複数パートを演奏させたりしなければほとんど問題は起こらないですが。

3. 各種情報の設定

まず、タイトルやサブタイトルの最後に [ANOTHER] などの譜面名が付いている場合はそれを消し、代わりに 譜面名 の欄に差分の名前を書きます。括弧は付けずに単に 24key などとします。

次に、BMSON仕様ではサブアーティストの記述方法を 項目名:名前 の列と定めているので、 chart:自分の名前 という行を追加しましょう。

判定ランクやトータル値は基本的に100を設定しておけば問題ありません*2。 ただし、曲が長い場合はトータル値を少し多めに、短い場合は少なめにしておくと良いかもしれません。 レベルは現在の難易度表に沿って付けていただけるとありがたいですが、今後基準を変更する可能性はあります。目安はKMのREAL難易度+2です。

4. プレビューとテストプレイ

譜面配置の合間に少し確認するだけならば、鍵盤レーンの左にある波形が表示されている部分を長押しすると全パートの音をプレビューできます。 配置が完了してから本格的にプレビューやテストプレイを行うにはbeatorajaを使います。

beatorajaを外部ビューワとして登録するには、以下のページを参考にして下さい。

External Viewer Settings - BmsONE Wiki

github.com

プレビュー(オートプレイ)やテストプレイ(Practiceモード)を繰り返し、配置ミスや理不尽な配置がないかどうかを確認しましょう。 簡単な譜面の場合、あらかじめDAWを起動しておいてオートプレイしながら鍵盤を弾き、音がずれていないか聴くことでも確認できます。

その他

ロングノートを編集するには

編集モードではShiftを押しながらノートを上下にドラッグすることでノートの長さを編集できます。 ノーツを選択すると現れる「選択オブジェクト」ビューで「長さ」に直接数値を入力することもできます。

必要なチャンネルのみ表示するには

BMSは通常WAV数が多いのでBmsONEで横にスクロールするのが大変です。 そこで、Ctrl+Fを押すと出現するチャンネル検索バーを利用します。

  • 入力欄にWAVファイル名の一部を入力してEnterを押すと該当するチャンネルに移動する
  • 「活性チャンネルのみ」を有効にすると、表示中の時間領域のどこかで音が鳴っているチャンネルのみを検索対象にする
  • 「検索結果のみ表示」を有効にすると、検索にヒットしたチャンネルのみ表示する

したがって、入力欄には何も入力せず2つのボタンを有効状態にしておくと鳴っているチャンネルだけ画面に表示させることができます。 さらに、一つのパートの配置に集中したい場合はこの状態から入力欄に名前の一部を入力すると便利です。

beatorajaで正常に再生できない場合

以下の原因が考えられます。

  • 存在しないWAVファイルなどを参照している場合(参照ファイル名が空白の場合を含む)、一部の音が正常に再生されなかったり強制終了したりする可能性があります。無音キーが用いられている場合にこうなることがあるので注意してください。
  • BGAが一部乱れて表示される場合、元のBMSもbeatorajaで正常に表示されるか確認してみてください。同様の症状が出る場合は、beatorajaが対応していないビットマップファイルが用いられている可能性があります。

それでも原因が判明しない場合は、BMSをBMSONに変更した直後(24keyにする前)の状態で再生してみる、BGAを非表示にしてみるなど試してみてください。

BmsONEの制限

  • 地雷ノーツの変換には対応していません。
  • 不可視ノーツの変換には対応していません。
  • ストップシーケンスの変換には対応していますが、BmsONEの画面には反映されません。したがってBmsONE上では停止位置から音がずれることになります。
  • BGAの変換には対応していますが、BmsONEで編集・確認することはできません。
  • ストップシーケンスやBGAは編集できなくても保存はされるので、プレイヤーで再生してみて問題なければ大丈夫です。
  • なるべく元のBMSの分解能を維持するように変換しますが、BmsONEで編集できないようなとんでもない分解能の場合は簡易化します。変拍子、連符、その他まっとうな理由で分解能が大きくなっているものは大体正しく変換できるはずです。

他のツールを使ってBMSをBMSONに変換する場合の注意

bms2bmsonを使う場合は、以下のことに注意してください。(BmsONEのインポート機能を使う場合はこれらのことは気にしなくて大丈夫です。)

  • テキストエンコーディングが合っているかどうか。問題があれば、BMSファイルをテキストエディタUTF-8で保存しなおしてから変換します。
  • 高い分解能を必要とするBMSは変換によって分解能が低下してリズムが若干ずれる可能性があります。
  • 元のBMSBGAのミス画像の指定に #BMP00 が用いられている場合、手動で設定する必要があります。しかもBmsONEは現在BGAの編集に対応していないので、テキスト編集を行う必要があります。
  • 以下の情報欄を必要に応じて補充・修正します。
    • 「サブアーティスト」: #SUBARTIST
    • アイキャッチ画像」: #STAGEFILE
    • 「タイトル画像」: #BACKBMP
    • 「バナー」: #BANNER
    • 「判定ランク」: 100を標準の値として設定
    • 「トータル値」: 100を標準の値として設定
  • 不可視ノーツはBMSON仕様にないので変換できないのですが、目印として「(何もしない)音を切るノート」に変換されるようです。再生に支障を来すことは稀だと思われますが、問題があれば消してください。

BMSONファイルが巨大になってしまったら

譜面配布時には圧縮すると思うのであまり気にする必要ありませんが、もし気になるようでしたらBmsONEの環境設定でJSON保存フォーマットの「Compact」を選択して保存しなおしてください。


後編では、譜面作成のポイント、2オクターブに収まらなかったときの対処法などを解説します。

*1:もちろん、グリッサンドが単音ごとに収録されている場合は(難易度が許せば)鍵盤に階段状に配置することになります

*2:判定ランクは元のBMSのRANK命令を元に自動で設定してあります

UnityでBMSスキン用のエフェクト素材を作成するツール

世のスキン制作者の方々がどのようなツールを使っているかはわかりませんが、さすがにボムなどのアニメーション素材を1コマずつ描くのは骨が折れるでしょうから、何らかのアニメーションを作れるソフトを使っていると思います。 また、作成したアニメーションをLR2やbeatorajaで使える状態にするには全コマを並べて1枚の画像にする必要があるため、面倒な思いをしている人もいるかも知れません。

Unityはゲームエンジンですが、豊富なスクリプト機能で面倒な作業を自動化でき、パーティクル機能を使えば簡単にそれっぽいエフェクトを作れそうです。 また、無料でも十分使える上、アセットストアに素材がたくさん公開されています。 そこで、Unityを素材制作ツールとして使う雛型のプロジェクトを作ってみました。

サンプルを改造してボムを作る方法

  1. 上記リポジトリをクローンまたはダウンロードし、Unityエディタ(2017以降のバージョン推奨)で開きます。
  2. AnimationCapture/Examples/BombExample.unity シーンを開きます。
  3. シーン内に置いてあるオブジェクト Bomb_1 がボム本体で、プレハブになっています。ボムに変更を加えたらプレハブに適用してやるか、あるいは新しいプレハブにしておきましょう。他のシーンからそのプレハブを参照する場合や、ボムを複数個置いて見た目を確認したい場合などに役立ちます。
  4. Unityエディタで再生中にゲーム画面内の▶ボタンを押すとボムを発火します。赤い●のボタンを押すと発火と同時に録画し、プロジェクトのフォルダ直下の Capture フォルダ内に全コマ並べた画像を保存します。連射すると一部分が不発になることがあるので、録画時は再生後時間を置いてから行ってください。
  5. Bom_1 の子の階層にあるオブジェクトをいじるとボムを改変できます。サンプルは3つのパーティクルシステムと1個のスプライトのアニメーションから成り立っています。
  6. 既に設置されているボムを使わず、一から作成したエフェクト、通常の3Dオブジェクト、アセットストアからダウンロードしてきたエフェクト素材などを配置して撮影することもできます。ただし、ちゃんとエフェクトが発火するようにするにはボタン押下時のイベントと結び付る(場合によってはスクリプトを書く)必要があります。

f:id:excln:20170917222057p:plain

f:id:excln:20170917222101p:plain

録画設定の変更

スキンによって各アニメーションパーツのコマの大きさやコマの数が決まっています。場合によっては中心点をずらしたりアスペクト比を変更したりする必要もあります。 このような録画設定を調整するには、シーン内の Main Camera にアタッチされている Animation Capture コンポーネントのパラメータを変更して下さい。 最終的に出力する画像の大きさ、コマの大きさ、フレームレート、取り込み範囲などを指定できます。 取り込み範囲はゲーム画面に黄色い枠で表示されます。これを狭くすると出力画像にはボムが大きく描かれることになります。

Over Active DX+ / Over Active DX 3 などのスキンではちょっと変わった値*1にする必要があるので、設定済みのシーンをあらかじめ用意しておきました。 BombExample_OADX.unity を使って録画すると適切な設定で保存されます。

注意

  • スプライトのアニメーションデータ(時間経過に伴ってスプライトの大きさや透明度を変えてます)をいじるには専用の編集ウィンドウを出現させる必要があります。詳しくはUnityのアニメーション機能を調べてみて下さい。
  • 自分で追加した画像をパーティクルで使う場合には、マテリアルを作成してそこに画像をテクスチャとして貼り付ける必要があります。
  • 実際にゲームに使った際の見た目を調整しやすいように、編集用のシーンでは背景画像を表示しています。もちろん出力画像には映らないようになっています。サンプルでは縞模様となっていますが、これをプレイ画面のスクリーンショットなどに差し替えてみるとよいでしょう。
  • 現在、加算合成用のエフェクトのみに対応しています*2。ボム以外のエフェクトを作る場合は注意してください。
  • プロジェクト自体はMITライセンスとしていますが、サンプルを改変した場合も含めて作成したエフェクトにはクレジット表記等は必要ありません。もちろん、アセットストアから拾ってきたエフェクトなど第三者の作った素材を利用する場合はそちらの規約に従ってください。

解説

Animation Capture スクリプトで取り込み枠の表示、キャプチャしたアニメーションを1枚の画像にまとめる処理を行っています。 1枚にまとめる処理はシェーダーを使って回りくどいことをしているのですが、他の方法が思いつきませんでした。

ちなみに、単純にゲーム画面に映っている映像を連番png画像に保存するだけなら非常に単純なスクリプトで行うことができます。 ちょっとしたBGAの素材を作ることもできます。 Unityを使える方は、ゲーム以外のコンテンツの制作にも使ってみてはいかがでしょうか。

スキン制作時にはもうひとつ、元画像から切り抜く座標と画面上に張り付ける座標の計算という面倒な作業がありますが、こちらもUnityのスクリプト機能やエディタ拡張などを駆使して支援する方法を模索しています。 うまくいったらこのリポジトリに追加する予定です。

*1:中心点がずれている、横に引き伸ばす前提のアスペクト比になっている等。OADX系以外でも、この仕様のコマ数を変更したり画像全体のサイズを拡大縮小したりしたような仕様のスキンが多くあります。

*2:出力画像は必ず黒背景の不透明画像となります。

24鍵モードの遊び方

beatoraja 0.5がリリースされました! このバージョンから24鍵キーボードモードが実装されています。 MIDIキーボードを接続し、早速遊んでみましょう。 beatorajaの基本の使い方についての説明は省略します。

譜面の入手

手前味噌ながら私の作成した24鍵譜面はこちらから入手できます。

24鍵SP難易度表

譜面ファイルはBMSON形式ですが、BMSの差分譜面と同じように導入してください。 譜面の作り方については後日解説したいと思います。

プレイオプションとスキンの設定

beatorajaのコンフィグ画面で初回に設定しておきたいのはこちら。ゲーム中で変更しにくい項目です。

[プレイオプション] タブでは、24KEYSモードのノーツ表示時間を、 24鍵が初めての人は2000に設定 し、好みに応じてレーンカバーのチェックを外しましょう。 経験者も最初は少なくとも1500以上に設定し、慣れてきたら調整するのが良いと思います。

[スキン] タブでは、デフォルトスキンを使う場合は half, half+, separate の3種類から選び、スキンオプションを設定します。 この3種類ではレーンの表示方法が異なり、それぞれ以下のような見た目になります。

種類 見た目(Theme: blue.png の場合)
half f:id:excln:20170909101137p:plain
half+ f:id:excln:20170909101132p:plain
separate f:id:excln:20170909101129p:plain

separateについてはぶっちゃけ実験的に入れてみたという程度のものなので実際のプレイには堪えないかもしれません。

キーコンフィグ

選曲画面で数字キー(テンキーではない)の6を押すとキーコンフィグ画面に入ります。 左右の方向キーで設定するモード、上下キーで設定項目を選び、Enterを押した後に使いたいキーを押すと割り当てを変更できます。

MIDIキーボードの入力は鍵盤とピッチベンド+/-を使用することができます。高機能なキーボードには他にもツマミがついていたりしますが、今はまだ使えません。 また、大抵のMIDIキーボードにはオクターブをシフトさせる機能がついていると思うので有効活用してください。

ここで、選曲画面を操作するために 7KEYSモードや14KEYSモードについてもMIDI入力のキーコンフィグを設定しておく ことをお勧めします。 なぜかというと、beatorajaにはプレイ時に入力デバイスを1種類に制限する機能があり*1、どのデバイスを有効にするかは選曲画面で使ったデバイスによって決まるからです。 したがって、キーボードを使って選曲するとキーボードでプレイする羽目になります。 なお、キーコンフィグ画面で右上に表示されているのは選曲画面でどのモードのキー設定を使って操作するかを表しており(2dx spだと7KEYS)、数字の1キーを押すと変更できます。

ゲームシステムについての補足(キーボードマニア・ドレミマニア勢向け)

キーボードモード特有の処理は特に重要な場合を除いて行わず、できるだけ7鍵モードを基に数値的なバランス調整で済ませる方針を採用しています。

  • ゲージはノーマル(ボーダー制、途中閉店なし)、ハード(生き残り制)など。ゲージの増加量、減少量、ボーダー値については7鍵モードよりも甘くしてあります。
  • 判定は7鍵と同じ5種類ですが判定幅を甘く(デフォルトで1.5倍程度)してあります。空POORありですが、KM2ndのような他の鍵盤を押すとミスが出るような仕組みは今のところ入っていません。ここは検討の余地ありです。
  • ロングノートは7鍵と同じように押す前から音の長さで表示します。また、beatorajaの設定により終端判定なし(LN)、あり(CN)、あり&押している長さに応じたゲージ増減(HCN)から選べます*2
  • MIDI出力で音を鳴らしているわけではないので、基本的にアドリブ演奏はできません。空打ちしたときの音は単純に同レーンの前後の音を参照しているため、大抵はレーンによって音が鳴らなかったり別のパートの音が鳴ったりします。これについては他のレーンのキー音のピッチをずらして鳴らせるような機能を付けて演奏感を改善することを検討しています。
  • 難易度体系は10段階で、KMのREALモードの難易度+2を目安としています。ただしCarezza(A)や100secと同等以上で、なおかつ大きく離れすぎない難易度の譜面はレベル9、人外譜面はレベル10としています。このようにした理由はREALモードのレベル1がすでに難しすぎるのと、レベル6があまりに大所帯になってしまうことが予想されるためです。*3

トラブルシューティング

  • バージョンアップ後にうまく動かなくなった
    • コンフィグファイル(config.json, player/player1/config.json)を消してみる(設定はリセットされます)。
    • 楽曲データベース(songdata.db, songinfo.db)を消して楽曲再読み込みしてみる。
    • Practiceモードを始めたときに落ちる場合は当該バグが修正されているのでダウンロードし直してみてください。
  • MIDIキーボードが途中で反応しなくなった
    • 端子の接触が悪いなどの理由で一時的に接続が切れた場合は反応しなくなります。beatorajaを再起動してください。
  • 24鍵のリザルト画面の操作方法がわからない
    • 一番左の鍵盤C1(ド)を押すとリザルト画面から抜けます。E1(ミ)を押し続けると再度同じ曲を開始します。
  • ピッチベンドホイールにちょっと触っただけで反応してしまう、手を放しても戻らない、あるいは逆に反応が鈍すぎる
    • バネがガバガバになっている場合は仕方がないですが、そうでない場合は教えてください。ピッチベンド入力を検出する閾値を調整できるようにします。

*1:不正防止とデバイスの種類をスコアデータに記録するため

*2:譜面側でロングノートの種類を指定している場合もあります。

*3:そのうち10段階でも足りなくなりそうですが…

Beatoraja ビルドまでの流れ

Beatorajaのリリース前の最新機能を試してみたい人や、開発に参加したいけど環境構築手順を調べるのが億劫だという人のためにbeatorajaをソースコードからビルドする手順を説明します。 スクリーンショットWindowsのものですが、Macでもほぼ同様の手順でできます。

1. JREJava実行環境)のインストール、beatorajaの動作確認

まだbeatorajaを動かしたことがないという人は、下記の記事を参考に動作確認と操作方法の確認をしておきましょう。

lntakeshi.hateblo.jp

5pmeternal.hatenablog.com

2. JDKJava開発キット)とIDE統合開発環境)のインストール

Javaでの開発を行うにはJREとは別にJDKというものが必要になります。 下記URLからインストールしてください。 JREは64bit版をインストールしていると思いますが、こちらも64bit版を選びます。

Java SE Development Kit 8 - Downloads

Java用に使えるIDEはいろいろありますが、有名どころであれば多分どれでも大丈夫です。 ここではIntelliJ IDEAの場合を説明します。下記のリンクにある、「Community」と書かれている方をダウンロードすると無料で使えます。

www.jetbrains.com

3. Beatorajaのソースコードのダウンロード

とりあえず1回だけ試しにビルドできれば十分という方は、下記リンク先にある[Clone or download]という緑色のボタンを押し、[Download ZIP]を選択すると最新の開発版のソースコードをダウンロードできます。

github.com

今後定期的に最新機能をチェックしてみたいと思っている方や、開発に参加する予定のある方はcloneを行うことになります。ここでは説明しきれないので、わからない方はgitでググってみてください。

Beatoraja公式にまだ取り入れられていない機能を試したい場合は、上記リンクとは別の場所から落とす必要があります。(gitを使えばこれも簡単にできます。) 例えば、私が24鍵関連の機能を実装・修正している系統は https://github.com/excln/beatoraja/tree/keyboard-mode にあります*1。ページの見た目がほとんど同じなので、初めての方は混同しないように気を付けてください。

4. プロジェクトの読み込みと設定・ビルド

詳しい人向けの説明:Ant用のbuild.xmlが入っているのでそれを使ってください

IntelliJを起動し、[File]→[Open…]でソースコードを解凍して現れたbeatorajaフォルダを開きます。 その後、「SDKの設定をしますか?」というような感じの英語のメッセージが現れたら指示に従い、2でインストールしたJDKを使用するように設定を行います。この設定は[File]→[Project Structure…]から行うこともできます。

f:id:excln:20170903100102p:plain f:id:excln:20170903100307p:plain

数字の部分は場合によって異なりますが、大体このスクリーンショットのようになるように設定すれば大丈夫です。

次に、Project画面の中にあるbuild.xmlを右クリックし、[Add as Ant Build File]を選択します。するとAnt Buildという画面が現れると思うので、その中にある[create_run_jar]という項目をダブルクリックすることでビルドが始まります。

f:id:excln:20170903100747p:plain f:id:excln:20170903101117p:plain

次回以降は[create_run_jar]をダブルクリックするだけでビルドできます。 メニューバーにもビルドをするコマンドがありますが、そちらは使いません。

5. 動作確認

ビルドに成功するとbeatorajaフォルダ内にbeatoraja.jarができています。1で動作確認したときと同様、beatoraja-config.batなどから起動してみましょう。 お疲れさまでした。

6. おまけ

  • Beatorajaの操作方法や仕様については、冒頭で紹介したブログ記事のほかに、ソースコードのmanualフォルダ内にあるテキストファイル、beatoraja Wiki などにも説明があります。
  • 明らかなバグを発見した場合、Issues を確認し(修正済みでClosed状態になっている可能性もあるので注意)、まだなければ[New Issue]ボタンで報告しましょう。GitHubのアカウントが必要となります。英語で伝わるか心配な場合は日本語の説明を添えておけばよいと思います。
  • いくつかライブラリを使用していますが、それらはjarファイルの形で同梱されているので特に何かをする必要はありません。前述のようにAnt Buildを用いればビルドできるはずです。
  • BMSファイルや難易度表の読み込みなどの部分はライブラリ化されている*2ので、該当箇所のソースコードを変更する場合は更に別の手順が必要になります。
  • これはソースコードからビルドする場合に限らないですが、beatorajaの設定ファイル類の仕様は頻繁に変更されるので、バージョン変更後に古いファイルが残っていると動作に支障を来す場合があります。 動作がおかしくなった場合は以下のファイルを消してみてください。
    • config.json, player/player1/config.json
    • songdata.db, songinfo.db(選曲画面がおかしくなった場合。楽曲再読み込みしてください)
    • tableフォルダ内のファイル(難易度表データがおかしくなった場合。難易度表再読み込みしてください)

*1:現在ここにある24鍵機能は公式に取り込まれているので、24鍵目当ての方は公式版で大丈夫です。

*2:jbms-parser, jbmstable-parser

Beatorajaの24鍵モードを開発しています

こんにちは。exclusionと申します。

私は現在、新しいBMSプレイヤーである beatoraja の24鍵モードの開発と、譜面フォーマットやゲーム仕様の検討を行っています。 簡単に言うと、近々BMSキーマニ風の譜面を作成して遊ぶことができるようになります!

【追記】beatoraja 0.5がリリースされ、遊べるようになりました! 遊び方の説明はこちら。

f:id:excln:20170827071122j:plain スクリーンショット*1

beatoraja

github.com

beatorajaは両替侍さんにより開発中のオープンソースBMSプレイヤーです。 Javaで動作するためWindows以外でも遊ぶことができ、また、比較的LR2から移行しやすく、最近の本家にもあるようなプレイオプションが充実していること、後述するBMSON形式に対応していることなどがウリです。 こちらで24鍵モードの実装をさせていただいております。

譜面形式

BMSの後継フォーマットである BMSON で記述します。 BMSからBMSONへの変換は容易に行えるため、既存のBMS楽曲で24鍵譜面を作成することができます。 また、BMSONはJSONに基づいており、新たなゲームモードの追加やノーツごとに情報を付け加えるなどの拡張が容易です。

譜面の編集は、拙作のBMSON編集ソフトである BmsONE で対応予定です。

既存の24鍵フォーマットとの違い

既存のBMS派生24鍵フォーマットもいくつか存在するようなのですが*2、おそらく根本から仕組みが異なるため、beatorajaやBmsONEでの対応予定はありません。 最も有名と思われるドレミマニアはキー音のかわりにMIDIで音を鳴らすため演奏感は抜群ですが、ハードウェア音源でなければ音声遅延が非常に大きく、また、アーティストの意図した音を出しづらいといった問題があります。

私の提唱する方式では単にノーツを24レーン(+ホイール)に割り当てるため、BMSと同じ環境で遊ぶことができます。 ただ、この方式では間違ったキーを押したときに「間違った通りに」は音が鳴らないため、演奏感に欠けると感じるかも知れません。 少なくともキーマニの醍醐味であるアドリブや音を手掛かりに譜面を把握することは難しいですね。 この課題については、近くのノートのピッチをずらして鳴らすなどのプレイヤー機能を実装して改善する予定です。

今すぐ遊びたい方へ

beatorajaをソースコードからビルドすれば一通りプレイできます。*3 詳しい説明と、これまでに作成した差分譜面(低難易度譜面が不足しているためキーマニ経験者向けですが…)は次のスプレッドシートにまとめてあります。

docs.google.com

PCキーボードでのプレイは現実的でない*4ためMIDIキーボードを用意してください。キーマニの専用コントローラが使えるかどうかは不明です。(持っていたら試していただけるとありがたいです)

あと、譜面作成については開発中のBmsONEをソースからビルドして使うことになります。こちらは早いところ新バージョンを公開したいと思います。

今後必要なこと

  • 判定システム・ゲージ増減量などのゲームバランスの調整 - 今のところ、本家からかけ離れない範囲で私個人の感覚で調整しています。詳細は上のスプレッドシート参照。今後皆さんに意見を募りたいです。
  • 難易度の段階数の検討 - 6段階じゃ足りなくない?とか、REALモード基準ではレベル1ですでに難しすぎるとか。これも意見を募りたいです。
  • スキンの作成 - とりあえず24鍵版デフォスキンを本体に入れてありますが、画面のレイアウトやBGAの見せ方など工夫したいですね。レイアウトを大きく変えた場合は外部スキンとして提供したほうが良いかもしれません。 【追記:desout2さんがLITONE5スキンの24鍵バージョンを作成して下さっているようです!】

*1:曲:AIRSHAVER (mommyさん)

*2:資料:その他プレイヤー&ツール - BMSまとめ @wiki

*3:混乱を避けるため、beatoraja公式版以外のバイナリ配布は行っていません。

*4:特にbeatorajaではライブラリの都合で端っこのキーが反応しないことがあります。MIDIキーボードがあればDPBMSにも役立ちます。