クラス BeMusicTimeSpan
- Object
-
- BeMusicTimeSpan
-
public class BeMusicTimeSpan extends Object
時間範囲内の譜面統計情報を表します。譜面統計情報を集計するにあたり、譜面を一定時間ごとに分割し、その時間の範囲で譜面がどのような構成になっているかを その期間ごとに集計します。その時間の範囲内の統計情報のことを「期間」または「期間統計情報」と呼称します。期間統計情報は
BeMusicStatistics
によって演奏時間分の範囲で集計が行われ、時系列のリストで管理されます。当クラスは時間範囲での統計情報、および譜面統計情報と統計情報生成元譜面とのリンクを可能にする様々な情報を 保持しており、必要に応じてそれらの情報を参照できるようになっています。
また、当クラスのインスタンスは
BeMusicStatisticsBuilder
によって譜面統計情報が集計される時にのみ 生成されることを想定しているため、BMSライブラリユーザーが独自でインスタンスを生成することは考慮されていません。- 関連項目:
BeMusicStatistics
-
-
フィールドの概要
フィールド 修飾子とタイプ フィールド 説明 static double
MAX_SPAN
期間統計情報の最大長(秒単位)static double
MIN_SPAN
期間統計情報の最小長(秒単位)static double
RECOMMENDED_SPAN
期間統計情報の長さ推奨値(秒単位)
-
メソッドの概要
すべてのメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 double
getBeginTime()
開始時間を秒単位で取得します。double
getEndTime()
終了時間を秒単位で取得します。int
getFirstPointIndex()
統計情報の元になった譜面でこの期間に含まれる楽曲位置情報の最初のインデックス値を取得します。double
getGazePoint()
注視点を取得します。double
getGazePointR()
注視点を取得します。double
getGazeSwingley()
注視点変動係数を取得します。double
getGazeSwingleyR()
注視点変動係数を取得します。int
getIndex()
リスト上のインデックス値を取得します。int
getLastPointIndex()
統計情報の元になった譜面でこの期間に含まれる楽曲位置情報の最後のインデックス値を取得します。int
getLongNoteCount()
総ロングノート数を取得します。int
getMineCount()
地雷オブジェ数を取得します。BeMusicTimeSpan
getNext()
1つ後の期間統計情報を取得します。int
getNoteCount()
総ノート数を取得します。BeMusicTimeSpan
getPrevious()
1つ前の期間統計情報を取得します。double
getViewSwingley()
視野幅変動係数を取得します。double
getViewSwingleyR()
視野幅変動係数を取得します。double
getViewWidth()
視野幅を取得します。double
getViewWidthR()
視野幅を取得します。boolean
hasCountNote()
この期間内にノート数としてカウントされるノートが存在するかを返します。boolean
hasPoint()
この期間内に楽曲位置情報が存在するかを返します。boolean
hasVisualEffect()
この期間内に視覚効果のあるノートが存在するかを返します。boolean
isFirstSpan()
この期間が最初の期間統計情報かどうかを返します。boolean
isLastSpan()
この期間が最後の期間統計情報かどうかを返します。
-
-
-
メソッドの詳細
-
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
-
-