クラス BeMusicPoint
- Object
-
- BeMusicPoint
-
- すべての実装されたインタフェース:
BmsAt
public class BeMusicPoint extends Object implements BmsAt
BMS譜面全体のうち、同一楽曲位置上における各種情報を表します。BMS譜面は、譜面全体が楽曲位置情報のリストで表されます。同一楽曲位置には複数の情報が含まれることが ほとんどであり、当クラスではそれらの情報を統合的に管理します。アプリケーションは必要に応じ、当クラスを通じて 各種情報にアクセスし、アプリケーションの機能を実現します。
各種情報の構成は以下のようになっています。
- 小節番号、小節の刻み位置からなる楽曲位置
- 楽曲位置に対応した譜面上の時間
- 楽曲位置に対応する情報を表示するべき表示位置の値
- 楽曲位置が含まれる小節の小節長
- 楽曲位置における現在のBPM
- 楽曲位置に到達した時に譜面を停止する時間
- ノートの情報(可視・不可視・地雷)
- 楽曲位置に到達した時に再生されるべきBGM
- 視覚効果を構成する情報(BGA・レイヤー・ミス時BGA)
- 楽曲位置に到達した時に表示されるべきテキスト
- その他、ノートの数に関する情報、および各種情報の有無を表すフラグ
-
-
フィールドの概要
フィールド 修飾子とタイプ フィールド 説明 static BeMusicPointEMPTY譜面が空だった場合の唯一の楽曲位置情報。
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 BeMusicPoint()楽曲位置情報オブジェクトを構築します。
-
メソッドの概要
すべてのメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 intgetBgaValue()この楽曲位置で表示するBGAの値を取得します。intgetBgmCount()この楽曲位置でのBGM数を取得します。intgetBgmValue(int index)この楽曲位置でのBGMの値を取得します。doublegetCurrentBpm()この楽曲位置での現在のBPMを取得します。doublegetDisplayPosition()楽曲位置情報の表示位置を示す値を取得します。intgetInvisible(BeMusicDevice device)不可視オブジェの値を取得します。intgetLandmineCount()この楽曲位置における地雷オブジェの数を取得します。intgetLayerValue()この楽曲位置で表示するBGAレイヤーの値を取得します。intgetLongNoteCount()この楽曲位置においてロングノートが開始される数を取得します。intgetMeasure()小節番号を取得します。doublegetMeasureLength()この楽曲位置が存在する小節の小節長を取得します。intgetMissValue()楽曲のプレーミス時にこの楽曲位置で表示する画像の値を取得します。intgetNoteCount()この楽曲位置におけるノート数を取得します。BeMusicNoteTypegetNoteType(BeMusicDevice device)指定入力デバイスのノート種別を取得します。intgetNoteValue(BeMusicDevice device)指定入力デバイスの値を取得します。doublegetStop()この楽曲位置到達時に譜面のスクロールを一時停止する時間を取得します。StringgetText()この楽曲位置で表示するテキストを取得します。doublegetTick()小節の刻み位置を取得します。doublegetTime()楽曲位置の時間を取得します。booleanhasBga()この楽曲位置でBGAの表示指定が存在するかを判定します。booleanhasBgm()この楽曲位置で1つでもBGM再生の指定が存在するかを判定します。booleanhasBpm()この楽曲位置でBPMを変更する指定が存在するかを判定します。booleanhasLayer()この楽曲位置でBGAレイヤーの表示指定が存在するかを判定します。booleanhasMeasureLength()この楽曲位置の小節で明示的な小節長の指定が存在するかを判定します。booleanhasMeasureLine()この楽曲位置が小節線を含んでいるかを判定します。booleanhasMiss()この楽曲位置でミス時に表示するBGAの指定が存在するかを判定します。booleanhasPlayableNote()この楽曲位置の操作可能ノートの有無を取得します。booleanhasStop()この楽曲位置で譜面停止の視覚効果を行う指定が存在するかを判定します。-
クラスから継承されたメソッド Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
インタフェースから継承されたメソッド BmsAt
onMeasureLine
-
-
-
-
フィールドの詳細
-
EMPTY
public static final BeMusicPoint EMPTY
譜面が空だった場合の唯一の楽曲位置情報。この楽曲位置情報は小節番号、刻み位置が0でその他の情報が 全て未設定の状態を表します。
-
-
コンストラクタの詳細
-
BeMusicPoint
public BeMusicPoint()
楽曲位置情報オブジェクトを構築します。当クラスはアプリケーションからnew演算子で直接インスタンスを生成することを想定していません。 楽曲位置情報の構築については
BeMusicScoreBuilderを参照してください。- 関連項目:
BeMusicScoreBuilder
-
-
メソッドの詳細
-
getMeasure
public final int getMeasure()
小節番号を取得します。- 定義:
getMeasureインタフェース内BmsAt- 戻り値:
- 小節番号
-
getDisplayPosition
public final double getDisplayPosition()
楽曲位置情報の表示位置を示す値を取得します。当メソッドが返す表示位置の値は、楽曲位置の時間とBPMを用いた値になっています。従って、BPMの値が大きいほど 楽曲位置情報同士の間隔を空けて表示することになります。
この値はBPMの変化に比例して譜面のスクロール速度と表示間隔が変化するようなプレゼンテーションを想定しています。 BPM変化の影響を受けないプレゼンテーションを行いたい場合には当メソッドの値を使用せず、
getTime()の 値を使用するようにしてください。TODO 表示位置の計算方法を記載する
- 戻り値:
- 楽曲位置情報の表示位置を示す値
-
getTime
public final double getTime()
楽曲位置の時間を取得します。楽曲位置の時間は、小節0・刻み位置0からこの楽曲位置に到達するまでの時間を秒単位で表します。
- 戻り値:
- 楽曲位置の時間
-
getNoteType
public final BeMusicNoteType getNoteType(BeMusicDevice device)
指定入力デバイスのノート種別を取得します。ノート種別については
BeMusicNoteTypeを参照してください。- パラメータ:
device- 入力デバイス- 戻り値:
- ノート種別
- 例外:
NullPointerException- deviceがnull- 関連項目:
BeMusicDevice,BeMusicNoteType
-
getNoteValue
public final int getNoteValue(BeMusicDevice device)
指定入力デバイスの値を取得します。この値が示す意味はノート種別ごとに異なります。詳細は以下を参照してください。
ノート種別 値の意味 BeMusicNoteType.NONE原則として0を返します。このノート種別では値を参照するべきではありません。 BeMusicNoteType.BEAT値をメタ情報のインデックス値と見なします。入力デバイス操作時に BeMusicMeta.WAVに記述された音声が再生されるべきです。BeMusicNoteType.LONG_ON同上 BeMusicNoteType.LONG_OFFBeMusicMeta.LNOBJに記述された値が格納されています。BeMusicNoteType.LONG原則として0を返します。このノート種別では値を参照するべきではありません。 BeMusicNoteType.LANDMINE入力デバイス操作時に、値が示す大きさのダメージを受けます。値が"ZZ"場合、プレーを即時終了させるべきです。 - パラメータ:
device- 入力デバイス- 戻り値:
- ノートの値
- 例外:
NullPointerException- deviceがnull- 関連項目:
BeMusicDevice,BeMusicNoteType,BeMusicMeta.WAV,BeMusicMeta.LNOBJ,BeMusicChannel.VISIBLE_1P_01,BeMusicChannel.LANDMINE_1P_01
-
getNoteCount
public final int getNoteCount()
この楽曲位置におけるノート数を取得します。ノート数は、この楽曲位置に到達した時に操作するべき入力デバイスの数を表します。 どのノート種別でノート数をカウントするべきかは
BeMusicNoteTypeを参照してください。- 戻り値:
- ノート数
-
getLongNoteCount
public final int getLongNoteCount()
この楽曲位置においてロングノートが開始される数を取得します。厳密には
BeMusicNoteType.LONG_ONの数を表します。- 戻り値:
- ロングノート数
-
getLandmineCount
public final int getLandmineCount()
この楽曲位置における地雷オブジェの数を取得します。- 戻り値:
- 地雷オブジェの数
-
getInvisible
public final int getInvisible(BeMusicDevice device)
不可視オブジェの値を取得します。この値が0以外となる場合、値をメタ情報のインデックス値と見なし、入力デバイス操作時に
BeMusicMeta.WAVに記述された音声が再生されるべきです。但し同一楽曲位置上に可視オブジェが存在する場合には 可視オブジェ側の音声再生を優先的に行うべきです。- パラメータ:
device- 入力デバイス- 戻り値:
- 不可視オブジェの値
- 例外:
NullPointerException- deviceがnull- 関連項目:
BeMusicDevice
-
hasPlayableNote
public final boolean hasPlayableNote()
この楽曲位置の操作可能ノートの有無を取得します。「操作可能ノート」とは、視覚表示されるノートで
BeMusicNoteType.NONE以外のものを指します。 この楽曲位置のいずれかの入力デバイスに1つでも操作可能ノートがあれば「有り」と見なされます。- 戻り値:
- この楽曲位置に操作可能ノートが1つでもある場合にtrue
-
getMeasureLength
public final double getMeasureLength()
この楽曲位置が存在する小節の小節長を取得します。小節に対して小節長の指定がない場合、この値は1を示し4/4拍子となります。 小節長の値は4/4拍子を1とした長さの比率になります。
BMSにて小節長が明示的に指定されたかどうかを参照したい場合は
hasMeasureLength()を使用してください。- 戻り値:
- 小節長
-
getCurrentBpm
public final double getCurrentBpm()
この楽曲位置での現在のBPMを取得します。BPM変化のない譜面では、この値は常に初期BPMと同じ値になります。楽曲位置にてBPM変更が行われた場合、 当メソッドは変更後のBPMを返します。
- 戻り値:
- 現在のBPM
- 関連項目:
BeMusicMeta.INITIAL_BPM,BeMusicMeta.BPM,BeMusicChannel.BPM,BeMusicChannel.BPM_LEGACY
-
getStop
public final double getStop()
この楽曲位置到達時に譜面のスクロールを一時停止する時間を取得します。譜面停止はBe Musicの仕様上、同一楽曲位置でBPM変更が行われた場合には変更後のBPMに基づいて 停止時間の計算が行われます。譜面停止は
BeMusicMeta.STOPにて刻み数で指定されますが、 当メソッドでは刻み数とBPMから停止時間を計算し、その計算結果を返します。- 戻り値:
- 譜面停止時間
- 関連項目:
BeMusicMeta.STOP,BeMusicChannel.STOP
-
getBgmCount
public final int getBgmCount()
この楽曲位置でのBGM数を取得します。- 戻り値:
- BGM数
-
getBgmValue
public final int getBgmValue(int index)
この楽曲位置でのBGMの値を取得します。BGMは楽曲位置が示す時間に到達した時に再生されるべき音声の値が格納されています。この値をメタ情報の インデックス値と見なし、
BeMusicMeta.WAVの該当する音声参照し再生されるべきです。- パラメータ:
index- インデックス(0~getBgmCount()-1)- 戻り値:
- BGMの値
- 例外:
IllegalStateException- この楽曲位置にBGMが存在しないIndexOutOfBoundsException- indexがマイナス値または指定可能範囲超過- 関連項目:
BeMusicMeta.WAV,BeMusicChannel.BGM
-
getBgaValue
public final int getBgaValue()
この楽曲位置で表示するBGAの値を取得します。この値が0以外の場合、値をメタ情報のインデックス値と見なし、
BeMusicMeta.BMPの該当する 画像が表示されるべきです。- 戻り値:
- BGAの値
- 関連項目:
BeMusicMeta.BMP,BeMusicChannel.BGA
-
getLayerValue
public final int getLayerValue()
この楽曲位置で表示するBGAレイヤーの値を取得します。この値が0以外の場合、値をメタ情報のインデックス値と見なし、
BeMusicMeta.BMPの該当する 画像がBeMusicChannel.BGAの上に重ねて表示されるべきです。- 戻り値:
- BGAレイヤーの値
- 関連項目:
BeMusicMeta.BMP,BeMusicChannel.BGA_LAYER
-
getMissValue
public final int getMissValue()
楽曲のプレーミス時にこの楽曲位置で表示する画像の値を取得します。この値が0以外の場合、値をメタ情報のインデックス値と見なし、
BeMusicMeta.BMPの該当する 画像が表示されるべきです。(当該楽曲位置でプレーミスが発生している場合)- 戻り値:
- プレーミス時に表示する画像の値
- 関連項目:
BeMusicMeta.BMP,BeMusicChannel.BGA_MISS
-
getText
public final String getText()
この楽曲位置で表示するテキストを取得します。当該楽曲位置で表示するべきテキストが存在しない場合は長さ0の空文字列を返します。 当メソッドではnullを返しませんのでその点には注意してください。
- 戻り値:
- 表示するテキスト
- 関連項目:
BeMusicMeta.TEXT,BeMusicChannel.TEXT
-
hasMeasureLine
public final boolean hasMeasureLine()
この楽曲位置が小節線を含んでいるかを判定します。当メソッドがtrueを返す時は、小節の刻み位置が0であることを示します。
- 戻り値:
- 楽曲位置に小節線を含んでいる場合true
- 関連項目:
BmsSpec.CHANNEL_MEASURE
-
hasMeasureLength
public final boolean hasMeasureLength()
この楽曲位置の小節で明示的な小節長の指定が存在するかを判定します。明示的な指定がない場合の小節長は1(4/4拍子)ですが、明示的に小節長1を指定した場合でも当メソッドはtrueを返します。
- 戻り値:
- 明示的な小節長の指定がある場合true
- 関連項目:
BeMusicChannel.LENGTH
-
hasBpm
public final boolean hasBpm()
この楽曲位置でBPMを変更する指定が存在するかを判定します。- 戻り値:
- BPM変更の指定がある場合true
- 関連項目:
BeMusicMeta.BPM,BeMusicChannel.BPM,BeMusicChannel.BPM_LEGACY
-
hasStop
public final boolean hasStop()
この楽曲位置で譜面停止の視覚効果を行う指定が存在するかを判定します。- 戻り値:
- 譜面停止の指定がある場合true
- 関連項目:
BeMusicMeta.STOP,BeMusicChannel.STOP
-
hasBgm
public final boolean hasBgm()
この楽曲位置で1つでもBGM再生の指定が存在するかを判定します。- 戻り値:
- BGM再生の指定が存在する場合true
- 関連項目:
BeMusicMeta.WAV,BeMusicChannel.BGM
-
hasBga
public final boolean hasBga()
この楽曲位置でBGAの表示指定が存在するかを判定します。- 戻り値:
- BGAの表示指定が存在する場合true
- 関連項目:
BeMusicMeta.BMP,BeMusicChannel.BGA
-
hasLayer
public final boolean hasLayer()
この楽曲位置でBGAレイヤーの表示指定が存在するかを判定します。- 戻り値:
- BGAレイヤーの表示指定が存在する場合true
- 関連項目:
BeMusicMeta.BMP,BeMusicChannel.BGA_LAYER
-
hasMiss
public final boolean hasMiss()
この楽曲位置でミス時に表示するBGAの指定が存在するかを判定します。- 戻り値:
- ミス時に表示するBGAの指定が存在する場合true
- 関連項目:
BeMusicMeta.BMP,BeMusicChannel.BGA_MISS
-
-