Yahoo!ジオシティーズサービス終了に伴うサイトの移転について

2019年3月末の Yahoo!ジオシティーズ サービス終了に伴い、Lazy Notes の差分等公開サイトを GitHub Pages に移転しました。 必要に応じてお早めにリンクの更新をお願いします。

info-geocities.yahoo.co.jp

なお、このブログの移転はありません。

リンク更新が必要となる主な影響範囲

転送設定

移転先への転送設定を行う予定ですが、上記のお知らせに記載の通り2019年9月に転送停止となります。

また、24鍵SP/DP難易度表を beatoraja に登録している場合は転送設定が通用しませんので更新をお願いします。1


  1. beatoraja 0.6.9 以降の既定の難易度表URLは移転後のものとなる見込みですが、それ以前から使い続けている方は beatoraja のアップデートによって設定が自動更新されるわけではありません。

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

今回は、音階通りに配置すると2オクターブに収まらない場合の対処法を中心に譜面作成のポイントを解説します。

2オクターブに収まらなかったら

24鍵譜面を作る際の最大の問題がこれです。以下に考えられる対処法とそれぞれのデメリットを、本家KMでの例を交えながら解説します。

一般に、はみ出した音とその周囲がどうなっているかによって対処法をよく検討する必要があります。 上から順番に検討してみてください。 大雑把に言うと1と2は限られた状況で使えるテクニック、3以降は汎用性が高い代わりに違和感の大きい妥協案と言えます。

1. フレーズのうち目立たない音だけがはみ出す場合、目立たない音を省略した譜面に簡易化する

f:id:excln:20171207034222p:plain

ノーツを「表の音」と「裏の音」に分類すると「裏の音」だけがはみ出すときは、「裏の音」の部分をBGMレーンに移動してみましょう。 これに限らず、「表の音」だけを演奏させるのは自然に難易度を調整するためのテクニックでもあります。 和音の一部がはみ出るときも目立たない部分を省略します。

デメリットとしては、似たようなフレーズが他の場所にも出現する場合、そちらも「裏の音」を省略して簡易化しないと一貫性がなくなる可能性があります。 これにより、どうしても全体の難易度が下がってしまうかもしれません。

本家KMでは和音を省略(実際は複音化かも)していることがよくあります。 和音ではない「裏の音」を省略している例もあるかもしれませんが、目立たないためパッとは思いつきません。

2. フレーズの中ではみ出した音だけが突出して目立っている場合、それをホイールに移動する

f:id:excln:20171207034224p:plain

逆に、フレーズの中で際立つ音がはみ出してしまっている場合は、ホイールに配置するとしっくりくることがあります。 この手法は本家KMではほぼ見たことがありません。

デメリットとしては、他のノートに比べてよっぽど目立っていないと不自然になってしまいます。 また、1と同様に似たフレーズがある場合の一貫性問題もあります。

3. 複数の音を1オクターブ上下に動かして2オクターブに収める

f:id:excln:20171207034227p:plain

上記2つよりも汎用的に使える手法です。 はみ出した音だけを動かすのではなく、それを含んだ複数の音(できればフレーズ全体)を動かすのがコツです。 どこからどこまでを移動するかは難しい問題ですが、境目の部分に注意してください。 音が詰まっているところでオクターブ移動が入ると不自然なだけでなく、演奏上も理不尽な飛躍が現れて一瞬で糞譜面と化す危険があります。 逆にオクターブ移動によって簡単になってしまうこともあります。

KMでは「Pink Rose」、「Smoky Town」、「The Least 100sec」などがわかりやすい例です。 これらの例では横に広いフレーズが丸められ(手を動かす必要がないため)簡単になるように、オクターブ移動の境目が工夫されています。*1

4. あきらめて別のパートを演奏させる

他の対処法でどうしても納得がいかなければそのパートを演奏させるのを諦めましょう。 パートの切り替えは3と同様にフレーズの切れ目などで行い、極力不自然にならないようにします。 こちらも理不尽な飛躍が現れないように注意しましょう。

フレーズを丸ごとBGMレーンに移動して何も演奏させないというのも検討に値する選択肢のひとつです。

5. フレーズの一部が半音だけはみ出す場合などに、はみ出す音をずらして無理やり2オクターブに収める

f:id:excln:20171207034229p:plain

あと半音だけ高ければ収まるのに…省略しても不自然だし、オクターブ移動もパッとしない…。 そんなときは、こっそり音階無視してしまうのも手です。 実際にプレイしてみると案外気づかないかもしれません。 上の画像のようにシをドにずらす場合は、幸いにも両方とも白鍵なので手の形の変化が小さくなります。 もっとも、音階の形が手に染みついた鍵盤奏者なら違和感を感じるでしょうが…。

デメリットはやはり実際の音と違うということで、気づくとかなり不自然に感じやすいです。 特にずらす幅が大きかったり黒鍵が白鍵に変化したりする場合は要注意です。

KMでは「Presto」、「AKUMAJO DRACULA MEDLEY」、「To the 44883」*2 など多くの譜面に見られます。

6. 曲全体を一定数のレーンだけずらす(2オクターブに収めるためだけに使うのは非推奨)

この手法は例えばハ長調の曲をニ長調で弾かせようというものです。 音自体はそのままなのでトランスポーズと呼ぶのが適切かどうかはわかりませんが、この記事ではそう呼ぶことにします。

KMでは「DEPEND ON ME」や「All the love」などごく一部の曲で用いられています。*3

この手法は人によって感じ方が大きく異なるかもしれません。 絶対音感でなおかつ鍵盤楽器に慣れている人にとっては全部の音がずれているように感じるでしょうし、その一方で相対音感の人はトランスポーズに気づきさえしないかもしれません。 作曲者の意図としても、音楽的に重要な意味があってその調を選んだのかもしれません。*4 そのためむやみにトランスポーズすることは避けるべきでしょう。

トランスポーズによって収まりが大幅に改善されると同時に、弾き心地も良くなる場合には検討しても良いかもしれません。 ただし、最低限以下のことは守ったほうが良いと思います。

余談ですが、beatorajaではR-RANDOMオプションを使うことで既存の譜面をわざとトランスポーズさせ、同じ曲を様々な調で練習することができます。*5 曲数の少ないKMにこそ欲しい機能でした。

7. 一時的に音合わせを完全に放棄し、複数の音をまとめて横方向に圧縮する

エリーゼのために」中盤のジグザグ階段(実際の音は純粋な階段)、「モンキーマジック」の半音階段(実際の音は半音じゃない)など、実際の音を完全に無視した配置が時々見られます。 これらは音階に忠実に配置すると2オクターブを大幅に逸脱し、かといって一部だけオクターブ移動させると理不尽な飛躍が発生するという理由によるものでしょう。

一般にお勧めできる手法ではありませんが、とにかく上昇・下降している感覚さえ雑にでも表現できれば十分という場合には検討しても良いかもしれません。 ただし、理不尽な難しさにならないよう配置には十分注意してください。 実際半音階段の演奏はかなり難しいです。

その他のテクニック

レイヤーノートを使う

レイヤーノート(Layered Not)とは、1つのノートを弾くだけで複数の音を鳴らすことができるBMSONの機能です。 ノートをドラッグして同じ時刻にある別のノートに重ねてやると、融合して水色のマークがついたレイヤーノートになります。 レイヤーノートを元に戻すには(編集モードで)ノートを右クリックして「レイヤーノーツを分離」を選択してください。

ロングノートを重ねたときに「!」マークが出現した場合、長さが違うなど正しいレイヤーノートになっていないので修正してください。

24鍵ではあまり使うメリットはない(それどころか和音が一つのノートにまとめられていて苦い思いをすることが多い)ですが、複数のパートで同じ音を出している(ユニゾンしている)場合にキー音を目立たせるために使うことがあります。 ちなみに、ユニゾンしている音を両方演奏させるにはオクターブの同時押しにするという選択もあり得ます。

手動で複音化する

完全に同時押しになっていないとレイヤーノート化できないので、それを複音化するには手動で1つの音声ファイルに合成する必要があります。 BmsONEのWAVエクスポート機能やbmx2wavなどを使いましょう。 差分を配布する際には追加WAV/OGGの同梱も忘れずに。

複数の音が一つのノートにまとめられている(複音化)のを単体で弾かせたい

和音がまとめられている場合はどうしようもないので、*6 和音の中で最も目立つ音(基本的に一番上の音)を基準に配置しましょう。 もしも和音とは別に各構成音単体のWAVファイルが同梱されていれば、和音を消して単音の同時押しに変更できることがあります。(音の長さや強弱の違いもあるので、自然に聴こえるか必ず確認しましょう。)

和音ではなくひとつのフレーズが1本WAVにまとめられている場合は、BMSONの「音を切るノート」を使えることがあります。(例:拙作の 🎹6 Cinderella Story [24key] など) ただし、ぶつ切りになってしまうので、プレイしてみて違和感がないかどうかを確認しましょう。

音がぶつ切りされていて各ノートの音程を把握しにくい

通しで聴いてなんとなく音を把握できるならば感覚を頼りに配置する手もありますが、自信がなければあきらめて他のパートを演奏させるのが賢明です。

いわゆる乱打譜面になるようなフレーズの場合、「表の音」だけなら辛うじて音程が把握でき、24鍵でも現実的な譜面になるという可能性もあります。(例:拙作の 🎹8 Ophelia [24key] など)

*1:ただし、100secの中盤では1か所だけ理不尽な飛躍が発生しているように見えます。

*2:この曲ではサビの最高潮に達した1音(ド)だけ逸脱しており、しかもド→シと続くので大変歯がゆい思いをします。2番のホイールによる対処法を検討しても良いと思います。

*3:また、LIGHTモード(13鍵盤)では基本的に音階無視となりますが、たまに24鍵譜面をトランスポーズさせたものが降ってくることもあります。

*4:実際の楽器では調によって演奏しやすさだけででなく音の質も変わります。また、調ごとに特有のイメージを持っている人も多いでしょう。

*5:マリオブラザーズのごとく右端から左端に飛躍したり、ミラーもかかってしまうことがありますが、それはご愛嬌ということで…

*6:和音を分解する音声処理技術が欲しい

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にも役立ちます。