パッケージ com.lmt.lib.bms.bemusic

クラス BeMusic


  • public class BeMusic
    extends Object
    Be-Musicに関連する一般的な機能・情報を提供するプレースホルダクラスです。

    当クラスはBe-Musicに関する最上位レベルのAPI、および定数値などの情報を集約する目的で存在します。 提供される機能はBe-Music関連アプリケーションを素早く作成するために必要なものになっており、 同時にBe-Musicサブセットの機能を理解するために最適な情報が揃っています。

    • コンストラクタの詳細

      • BeMusic

        public BeMusic()
    • メソッドの詳細

      • createLoaderFor

        public static BmsLoader createLoaderFor​(Path path)
        指定されたファイルパスから適切なBMSローダを選択し生成します。

        ファイルの拡張子が「bmson」の場合BeMusicBmsonLoader、それ以外はBmsStandardLoaderを生成します。 拡張子の大文字・小文字は区別されません。生成されたローダの各設定内容はデフォルトの状態で返されます。

        パラメータ:
        path - ファイルパス
        戻り値:
        ファイルパスに対応する適切なBMSローダ
        例外:
        NullPointerException - pathがnull
      • loadContentFrom

        public static BmsContent loadContentFrom​(Path path,
                                                 Long randomValue,
                                                 boolean strictly)
                                          throws BmsException,
                                                 IOException
        最新バージョンのBe-Music用BMS仕様を用いて指定パスのファイルからBMSコンテンツを読み込みます。

        当メソッドは最も一般的なBMSコンテンツの読み込み機能を提供します。通常、BeMusicサブセットが持つ柔軟かつ高機能な 処理を行うためには複数の煩雑な設定を行ったうえで読み込みを行う必要がありますが「ファイルからBMSコンテンツを読み込む」 という一般的な処理を行いたい場合には当メソッドを用いるのが最適な選択肢となります。

        BMSローダはcreateLoaderFor(Path)に1番目の引数のファイルパスを指定して生成されたものを使用します。

        2番目の引数は、乱数が使用されている場合に固定化された特定の値を使用するか、乱数を都度生成するかを指定します。 1以上の値を指定すると全ての乱数は指定された値で固定化され、0以下の値を指定すると#IFブロックは常に「偽」 を示すようになります。nullを指定すると#RANDOMが登場する度に乱数が生成されます。 つまり、乱数が使用されたBMSでは読み込みを行う度に異なるBMSコンテンツが生成される可能性が生じます。

        3番目の引数は、読み込みの際に厳格なフォーマットチェックを行うかどうかを選択します。 falseを指定するとBMS定義の構文エラー、値の範囲・書式、チャンネルの定義ミスなど、様々な誤りに対して寛容的になり、 誤りを検出した際にはその誤りを無視して読み込みを続行します。この設定で読み込みを行うと当メソッドが例外をスローする ケースが減少しますが、代償としてBMS定義の誤りに気付く機会が失われ、読み込まれたBMSコンテンツが意図せずに期待とは異なる 内容になってしまう可能性があります。trueを指定すると以下のような場合にメソッドが例外をスローするようになります。

        • BMSフォーマットとして不正な構文が使用されている時
        • 未知のメタ情報(ヘッダ)が定義されている時
        • メタ情報の値が想定する形式の値になっていない時(例えば数値を設定する箇所に数値以外を記述する等)
        • 同じ単体・索引付きメタ情報が再定義された時
        • 未知のチャンネル(番号)が定義されている時
        • チャンネルに設定した値の形式が不正な時
        • 乱数(#RANDOM/#IF/#ELSE/#ENDIF等)の定義階層が不正な時

        上記以外にもファイルの読み込み中にエラーが発生する等、複数の要因で例外がスローされる可能性があります。 例外およびエラーの詳細についてはBmsExceptionBmsErrorを参照してください。

        詳細な読み込み設定を行ったうえでBMSコンテンツを様々なデータ型から読み込みたい場合には、 BmsLoaderBeMusicLoadHandlerを参照し、必要な手続きを行う処理を記述してください。 当メソッド内部では一般的な用途向けで手続きを行っています。

        パラメータ:
        path - 読み込み対象のBMSファイルのパス
        randomValue - 乱数を固定化する場合の値、またはnull
        strictly - 厳格なフォーマットチェックを行うかどうか
        戻り値:
        最新バージョンのBe-Music用BMS仕様で読み込まれたBMSコンテンツ
        例外:
        NullPointerException - pathがnull
        IOException - 指定されたファイルが見つからない、読み取り権限がない、または読み取り中に異常を検出した
        BmsException - 読み込み処理中に想定外の例外がスローされた
        関連項目:
        BmsStandardLoader, BeMusicBmsonLoader, BmsError, BeMusicLoadHandler