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

クラス BeMusicTimeSpan


  • public class BeMusicTimeSpan
    extends Object
    時間範囲内の譜面統計情報を表します。

    譜面統計情報を集計するにあたり、譜面を一定時間ごとに分割し、その時間の範囲で譜面がどのような構成になっているかを その期間ごとに集計します。その時間の範囲内の統計情報のことを「期間」または「期間統計情報」と呼称します。期間統計情報は BeMusicStatisticsによって演奏時間分の範囲で集計が行われ、時系列のリストで管理されます。

    当クラスは時間範囲での統計情報、および譜面統計情報と統計情報生成元譜面とのリンクを可能にする様々な情報を 保持しており、必要に応じてそれらの情報を参照できるようになっています。

    また、当クラスのインスタンスはBeMusicStatisticsBuilderによって譜面統計情報が集計される時にのみ 生成されることを想定しているため、BMSライブラリユーザーが独自でインスタンスを生成することは考慮されていません。

    関連項目:
    BeMusicStatistics
    • フィールドの概要

      フィールド 
      修飾子とタイプ フィールド 説明
      static double MAX_SPAN
      期間統計情報の最大長(秒単位)
      static double MIN_SPAN
      期間統計情報の最小長(秒単位)
      static double RECOMMENDED_SPAN
      期間統計情報の長さ推奨値(秒単位)
    • フィールドの詳細

      • MIN_SPAN

        public static final double MIN_SPAN
        期間統計情報の最小長(秒単位)
        関連項目:
        定数フィールド値
      • MAX_SPAN

        public static final double MAX_SPAN
        期間統計情報の最大長(秒単位)
        関連項目:
        定数フィールド値
      • RECOMMENDED_SPAN

        public static final double RECOMMENDED_SPAN
        期間統計情報の長さ推奨値(秒単位)
        関連項目:
        定数フィールド値
    • メソッドの詳細

      • getPrevious

        public final BeMusicTimeSpan getPrevious()
        1つ前の期間統計情報を取得します。

        この期間が先頭である場合はこの期間の参照を返します。従って、当メソッドでnullが返ることはありません。

        戻り値:
        1つ前の期間統計情報
      • getNext

        public final BeMusicTimeSpan getNext()
        1つ後の期間統計情報を取得します。

        この期間が末尾である場合はこの期間の参照を返します。従って、当メソッドでnullが返ることはありません。

        戻り値:
        1つ後の期間統計情報
      • getIndex

        public final int getIndex()
        リスト上のインデックス値を取得します。

        当メソッドで取得できるインデックス値は、この期間のオーナーである譜面統計情報(BeMusicStatistics) が内部で保有するリストのインデックス値となります。

        戻り値:
        リスト上のインデックス値
      • getBeginTime

        public final double getBeginTime()
        開始時間を秒単位で取得します。
        戻り値:
        この期間の開始時間
      • getEndTime

        public final double getEndTime()
        終了時間を秒単位で取得します。

        この値はgetBeginTime()BeMusicStatisticsBuilder.setSpanLength(double)で設定した 期間の長さを加算した値になります。

        この期間には終了時間の値に該当する時間の楽曲位置情報は含まれません。

        戻り値:
        終了時間
      • getFirstPointIndex

        public final int getFirstPointIndex()
        統計情報の元になった譜面でこの期間に含まれる楽曲位置情報の最初のインデックス値を取得します。

        当メソッドで取得できる値は、統計情報の元になったBeMusicChartオブジェクトから楽曲位置情報を 取得する際に使用することができます。この期間内に楽曲位置情報が1件も含まれない場合は負の値を返します。

        戻り値:
        楽曲位置情報の最初のインデックス値
      • getLastPointIndex

        public final int getLastPointIndex()
        統計情報の元になった譜面でこの期間に含まれる楽曲位置情報の最後のインデックス値を取得します。

        当メソッドで取得できる値は、統計情報の元になったBeMusicChartオブジェクトから楽曲位置情報を 取得する際に使用することができます。この期間内に楽曲位置情報が1件も含まれない場合は負の値を返します。

        戻り値:
        楽曲位置情報の最後のインデックス値
      • getGazePoint

        public final double getGazePoint()
        注視点を取得します。

        注視点とは、期間内に存在する視覚効果のある左端と右端のノートの中心点を表す数値です。 レーンの左端を-1、中央を0、右端を1と定義した値を示します。期間内に視覚効果のあるノートが存在しない場合、 注視点は0を示します。

        期間内で算出する注視点は、当該期間内に存在する全ノートからおおよその点を割り出します。 算出アルゴリズムはBMSライブラリのアップデートにより改良される場合があり、その関係で同じ配置のノートでも 異なる値が報告される可能性があることに留意してください。

        当メソッドで取得できる値はスクラッチがスイッチの左側、またはダブルプレーの注視点の値です。 ダブルプレーの場合は左側レーンの左端を-1、右側レーンの右端を1とする値を返します。

        戻り値:
        注視点
      • getGazePointR

        public final double getGazePointR()
        注視点を取得します。

        注視点とは、期間内に存在する視覚効果のある左端と右端のノートの中心点を表す数値です。 レーンの左端を-1、中央を0、右端を1と定義した値を示します。期間内に視覚効果のあるノートが存在しない場合、 注視点は0を示します。

        当メソッドで取得できる値はスクラッチがスイッチの右側にある場合の注視点の値です。

        戻り値:
        注視点
      • getGazeSwingley

        public final double getGazeSwingley()
        注視点変動係数を取得します。

        注視点変動係数とは、前後期間からの注視点の移動量を数値化した値で0~1の範囲を示します。 0は注視点が全く移動せず、1は注視点が水平方向に最大限振れることを表します。

        当メソッドで取得できる値はスクラッチがスイッチの左側、またはダブルプレーの注視点変動係数です。

        戻り値:
        注視点変動係数
      • getGazeSwingleyR

        public final double getGazeSwingleyR()
        注視点変動係数を取得します。

        注視点変動係数とは、前後期間からの注視点の移動量を数値化した値で0~1の範囲を示します。 0は注視点が全く移動せず、1は注視点が水平方向に最大限振れることを表します。

        当メソッドで取得できる値はスクラッチがスイッチの右側にある場合の注視点変動係数です。

        戻り値:
        注視点変動係数
      • getViewWidth

        public final double getViewWidth()
        視野幅を取得します。

        視野幅とは、期間内に存在する視覚効果のある左端と右端のノート間の距離を表す数値です。 レーンの左端と右端に視覚効果のあるノートが存在する場合最大値の1を示し、 1点の水平位置にのみ視覚効果のあるノートが存在する場合、シングルプレーでは0.07、ダブルプレーは0.03を示します。 ただし、期間内に視覚効果のあるノートが全く存在しない場合は視野幅は0となります。

        期間内で算出する視野幅は、当該期間内に存在する全ノートからおおよその幅を割り出します。 算出アルゴリズムはBMSライブラリのアップデートにより改良される場合があり、その関係で同じ配置のノートでも 異なる値が報告される可能性があることに留意してください。

        当メソッドで取得できる値はスクラッチがスイッチの左側、またはダブルプレーの視野幅の値です。 ダブルプレーの場合最大値1を示すのは左側レーンの左端と右側レーンの右端に視覚効果のあるノートが存在する場合で、 最小値0.1はシングルプレーと同様の定義となります。

        戻り値:
        視野幅
      • getViewWidthR

        public final double getViewWidthR()
        視野幅を取得します。

        視野幅とは、期間内に存在する視覚効果のある左端と右端のノート間の距離を表す数値です。 レーンの左端と右端に視覚効果のあるノートが存在する場合最大値の1を示し、 1点の水平位置にのみ視覚効果のあるノートが存在する場合、シングルプレーでは0.07、ダブルプレーは0.03を示します。 ただし、期間内に視覚効果のあるノートが全く存在しない場合は視野幅は0となります。

        当メソッドで取得できる値はスクラッチがスイッチの右側にある場合の視野幅の値です。

        戻り値:
        視野幅
      • getViewSwingley

        public final double getViewSwingley()
        視野幅変動係数を取得します。

        視野幅変動係数とは、前後期間からの視野幅の変動量を数値化した値で0~1の範囲を示します。 0は視野幅が全く変化せず、1は視野幅が最大限振れることを表します。

        当メソッドで取得できる値はスクラッチがスイッチの左側、またはダブルプレーの視野幅変動係数です。

        戻り値:
        視野幅変動係数
      • getViewSwingleyR

        public final double getViewSwingleyR()
        視野幅変動係数を取得します。

        視野幅変動係数とは、前後期間からの視野幅の変動量を数値化した値で0~1の範囲を示します。 0は視野幅が全く変化せず、1は視野幅が最大限振れることを表します。

        当メソッドで取得できる値はスクラッチがスイッチの右側にある場合の視野幅変動係数です。

        戻り値:
        視野幅変動係数
      • getNoteCount

        public final int getNoteCount()
        総ノート数を取得します。

        この値は、期間内のBeMusicNoteType.isCountNotes()に該当するノートの総数となります。

        戻り値:
        総ノート数
      • getLongNoteCount

        public final int getLongNoteCount()
        総ロングノート数を取得します。

        この値は、期間内のBeMusicNoteType.LONG_ONに該当するノートの総数となります。 長押し継続、終了はカウントの対象とはなりません。

        戻り値:
        総ロングノート数
      • getMineCount

        public final int getMineCount()
        地雷オブジェ数を取得します。
        戻り値:
        地雷オブジェ数
      • isFirstSpan

        public final boolean isFirstSpan()
        この期間が最初の期間統計情報かどうかを返します。

        当メソッドの戻り値がtrueの時、getIndex()は0を示します。

        戻り値:
        この期間が最初の期間統計情報であればtrue
      • isLastSpan

        public final boolean isLastSpan()
        この期間が最後の期間統計情報かどうかを返します。
        戻り値:
        この期間が最後の期間統計情報であればtrue
      • hasPoint

        public final boolean hasPoint()
        この期間内に楽曲位置情報が存在するかを返します。

        当メソッドがtrueを返す時、getFirstPointIndex()およびgetLastPointIndex() の戻り値は0以上の値を示します。

        戻り値:
        この期間内に楽曲位置情報が存在する場合true
      • hasCountNote

        public final boolean hasCountNote()
        この期間内にノート数としてカウントされるノートが存在するかを返します。

        当メソッドがtrueを返す時、getNoteCount()の戻り値は1以上の値を示します。

        戻り値:
        この期間内にノート数としてカウントされるノートが存在する場合true
      • hasVisualEffect

        public final boolean hasVisualEffect()
        この期間内に視覚効果のあるノートが存在するかを返します。

        当メソッドがtrueを返す時、期間内にBeMusicNoteType.hasVisualEffect() がtrueを返すノートが1件以上存在します。

        戻り値:
        この期間内に視覚効果のあるノートが存在する場合true