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

クラス BeMusicPoint

  • すべての実装されたインタフェース:
    BmsAt

    public class BeMusicPoint
    extends Object
    implements BmsAt
    BMS譜面全体のうち、同一楽曲位置上における各種情報を表します。

    BMS譜面は、譜面全体が楽曲位置情報のリストで表されます。同一楽曲位置には複数の情報が含まれることが ほとんどであり、当クラスではそれらの情報を統合的に管理します。アプリケーションは必要に応じ、当クラスを通じて 各種情報にアクセスし、アプリケーションの機能を実現します。

    各種情報の構成は以下のようになっています。

    • 小節番号、小節の刻み位置からなる楽曲位置
    • 楽曲位置に対応した譜面上の時間
    • 楽曲位置が含まれる小節の小節長
    • 楽曲位置における現在のスクロール速度
    • 楽曲位置における現在のBPM
    • 楽曲位置に到達した時に譜面を停止する時間
    • ノートの情報(可視・不可視・地雷)
    • 楽曲位置に到達した時に再生されるべきBGM
    • 視覚効果を構成する情報(BGA・レイヤー・ミス時BGA)
    • 楽曲位置に到達した時に表示されるべきテキスト
    • その他、ノートの数に関する情報、および各種情報の有無を表すフラグ
    導入されたバージョン:
    0.0.1
    • フィールドの概要

      フィールド 
      修飾子とタイプ フィールド 説明
      static BeMusicPoint EMPTY
      譜面が空だった場合の唯一の楽曲位置情報。
    • コンストラクタの概要

      コンストラクタ 
      コンストラクタ 説明
      BeMusicPoint()
      楽曲位置情報オブジェクトを構築します。
    • メソッドの概要

      すべてのメソッド インスタンス・メソッド concreteメソッド 
      修飾子とタイプ メソッド 説明
      IntStream bgms()
      BGMのノートを走査します。
      void enumBgms​(IntConsumer action)
      全てのBGMのノートを列挙します。
      void enumInvisibles​(IntConsumer action)
      全ての不可視オブジェのノートを列挙します。
      void enumSounds​(boolean visible, boolean invisible, boolean bgm, IntConsumer action)
      サウンドに関連するノートを列挙します。
      void enumSounds​(IntConsumer action)
      サウンドに関連するノートを全て列挙します。
      void enumVisibles​(IntConsumer action)
      全ての可視オブジェのノートを列挙します。
      int getBgaValue()
      この楽曲位置で表示するBGAの値(トラックID)を取得します。
      int getBgmCount()
      この楽曲位置でのBGM数を取得します。
      int getBgmValue​(int index)
      この楽曲位置でのBGMの値を取得します。
      double getCurrentBpm()
      この楽曲位置での現在のBPMを取得します。
      double getCurrentScroll()
      この楽曲位置での現在のスクロール速度を取得します。
      double getCurrentSpeed()
      この楽曲位置での現在の譜面速度を取得します。
      int getInvisibleValue​(BeMusicDevice device)
      不可視オブジェの値を取得します。
      int getLayerValue()
      この楽曲位置で表示するBGAレイヤーの値(トラックID)を取得します。
      int getLongNoteCount()
      この楽曲位置においてロングノートが開始される数を取得します。
      int getLongNoteCount​(BeMusicLane lane)
      この楽曲位置において指定したレーンでロングノートが開始される数を取得します。
      int getMeasure()
      小節番号を取得します。
      double getMeasureLength()
      この楽曲位置が存在する小節の小節長を取得します。
      int getMineCount()
      この楽曲位置における地雷オブジェの数を取得します。
      int getMineCount​(BeMusicLane lane)
      この楽曲位置において指定レーンの地雷オブジェの数を取得します。
      int getMissValue()
      楽曲のプレーミス時にこの楽曲位置で表示する画像の値(トラックID)を取得します。
      int getNoteCount()
      この楽曲位置におけるノート数を取得します。
      int getNoteCount​(BeMusicLane lane)
      この楽曲位置において指定したレーンのノート数を取得します。
      double getStop()
      この楽曲位置到達時に譜面のスクロールを一時停止する時間を取得します。
      String getText()
      この楽曲位置で表示するテキストを取得します。
      double getTick()
      小節の刻み位置を取得します。
      double getTime()
      楽曲位置の時間を取得します。
      BeMusicNoteType getVisibleNoteType​(BeMusicDevice device)
      指定入力デバイスに対応する可視オブジェのノート種別を取得します。
      int getVisibleValue​(BeMusicDevice device)
      指定入力デバイスの値を取得します。
      int getVisualEffectCount()
      この楽曲位置において視覚効果を持つノートの数を取得します。
      int getVisualEffectCount​(BeMusicLane lane)
      この楽曲位置において指定レーンで視覚効果を持つノートの数を取得します。
      boolean hasBga()
      この楽曲位置でBGAの表示指定が存在するかを判定します。
      boolean hasBgm()
      この楽曲位置で1つでもBGM再生の指定が存在するかを判定します。
      boolean hasBpm()
      この楽曲位置でBPMを変更する指定が存在するかを判定します。
      boolean hasChangeSpeed()
      この楽曲位置での速度変更の有無を取得します。
      boolean hasGimmick()
      この楽曲位置でのギミック要素の有無を取得します。
      boolean hasHolding()
      この楽曲位置での長押し継続ノートの有無を取得します。
      boolean hasHolding​(BeMusicLane lane)
      この楽曲位置において指定レーンでの長押し継続ノートの有無を取得します。
      boolean hasLayer()
      この楽曲位置でBGAレイヤーの表示指定が存在するかを判定します。
      boolean hasLongNoteHead()
      この楽曲位置での長押し開始ノートの有無を取得します。
      boolean hasLongNoteHead​(BeMusicLane lane)
      この楽曲位置において指定レーンでの長押し開始ノートの有無を取得します。
      boolean hasLongNoteTail()
      この楽曲位置において長押し終了ノートの有無を取得します。
      boolean hasLongNoteTail​(BeMusicLane lane)
      この楽曲位置において指定レーンでの長押し終了ノートの有無を取得します。
      boolean hasLongNoteType()
      この楽曲位置において長押し関連ノートの有無を取得します。
      boolean hasLongNoteType​(BeMusicLane lane)
      この楽曲位置において指定レーンでの長押関連ノートの有無を取得します。
      boolean hasMeasureLength()
      この楽曲位置の小節で明示的な小節長の指定が存在するかを判定します。
      boolean hasMeasureLine()
      この楽曲位置が小節線を含んでいるかを判定します。
      boolean hasMine()
      この楽曲位置に地雷オブジェが存在するかを判定します。
      boolean hasMiss()
      この楽曲位置でミス時に表示するBGAの指定が存在するかを判定します。
      boolean hasMovementNote()
      この楽曲位置の何らかの操作を伴うノートの有無を取得します。
      boolean hasMovementNote​(BeMusicLane lane)
      この楽曲位置において指定レーンで何らかの操作を伴うノートの有無を取得します。
      boolean hasPlayableNote()
      この楽曲位置の操作可能ノートの有無を取得します。
      boolean hasPlayableNote​(BeMusicLane lane)
      この楽曲位置において指定レーンでの操作可能ノートの有無を取得します。
      boolean hasScroll()
      この楽曲位置でスクロール速度を変更する指定が存在するかを判定します。
      boolean hasStop()
      この楽曲位置で譜面停止の視覚効果を行う指定が存在するかを判定します。
      boolean hasText()
      この楽曲位置で表示するテキストが存在するかを判定します。
      boolean hasVisualEffect()
      この楽曲位置の視覚効果を持つノートの有無を取得します。
      boolean hasVisualEffect​(BeMusicLane lane)
      この楽曲位置において指定レーンで視覚効果を持つノートの有無を取得します。
      IntStream invisibles()
      不可視オブジェのノートを走査します。
      protected void onCreate()
      楽曲位置情報が構築された時に実行されます。
      IntStream sounds()
      全てのサウンドに関連するノートを走査します。
      IntStream sounds​(boolean visible, boolean invisible, boolean bgm)
      サウンドに関連するノートを走査します。
      IntStream visibles()
      可視オブジェのノートを走査します。
    • フィールドの詳細

      • EMPTY

        public static final BeMusicPoint EMPTY
        譜面が空だった場合の唯一の楽曲位置情報。この楽曲位置情報は小節番号、刻み位置が0でその他の情報が 全て未設定の状態を表します。
    • コンストラクタの詳細

      • BeMusicPoint

        public BeMusicPoint()
        楽曲位置情報オブジェクトを構築します。

        当クラスはアプリケーションからnew演算子で直接インスタンスを生成することを想定していません。 楽曲位置情報の構築についてはBeMusicChartBuilderを参照してください。

        関連項目:
        BeMusicChartBuilder
    • メソッドの詳細

      • getMeasure

        public final int getMeasure()
        小節番号を取得します。
        定義:
        getMeasure インタフェース内 BmsAt
        戻り値:
        小節番号
      • getTick

        public final double getTick()
        小節の刻み位置を取得します。
        定義:
        getTick インタフェース内 BmsAt
        戻り値:
        小節の刻み位置
      • getTime

        public final double getTime()
        楽曲位置の時間を取得します。

        楽曲位置の時間は、小節0・刻み位置0からこの楽曲位置に到達するまでの時間を秒単位で表します。

        戻り値:
        楽曲位置の時間
      • getNoteCount

        public final int getNoteCount()
        この楽曲位置におけるノート数を取得します。

        ノート数は、この楽曲位置に到達した時に操作するべき入力デバイスの数を表します。 どのノート種別でノート数をカウントするべきかはBeMusicNoteTypeを参照してください。

        戻り値:
        ノート数
      • getNoteCount

        public final int getNoteCount​(BeMusicLane lane)
        この楽曲位置において指定したレーンのノート数を取得します。

        ノート数は、この楽曲位置に到達した時に操作するべき入力デバイスの数を表します。 どのノート種別でノート数をカウントするべきかはBeMusicNoteTypeを参照してください。

        パラメータ:
        lane - レーン
        戻り値:
        ノート数
        例外:
        NullPointerException - laneがnull
        導入されたバージョン:
        0.9.0
      • getLongNoteCount

        public final int getLongNoteCount()
        この楽曲位置においてロングノートが開始される数を取得します。

        厳密にはBeMusicNoteType.LONG_ONの数を表します。

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

        public final int getLongNoteCount​(BeMusicLane lane)
        この楽曲位置において指定したレーンでロングノートが開始される数を取得します。

        厳密にはBeMusicNoteType.LONG_ONの数を表します。

        パラメータ:
        lane - レーン
        戻り値:
        ロングノート数
        例外:
        NullPointerException - laneがnull
        導入されたバージョン:
        0.9.0
      • getMineCount

        public final int getMineCount()
        この楽曲位置における地雷オブジェの数を取得します。
        戻り値:
        地雷オブジェの数
      • getMineCount

        public final int getMineCount​(BeMusicLane lane)
        この楽曲位置において指定レーンの地雷オブジェの数を取得します。
        パラメータ:
        lane - レーン
        戻り値:
        地雷オブジェの数
        例外:
        NullPointerException - laneがnull
        導入されたバージョン:
        0.9.0
      • getVisualEffectCount

        public final int getVisualEffectCount()
        この楽曲位置において視覚効果を持つノートの数を取得します。
        戻り値:
        視覚効果を持つノートの数
        導入されたバージョン:
        0.5.0
      • getVisualEffectCount

        public final int getVisualEffectCount​(BeMusicLane lane)
        この楽曲位置において指定レーンで視覚効果を持つノートの数を取得します。
        パラメータ:
        lane - レーン
        戻り値:
        視覚効果を持つノートの数
        例外:
        NullPointerException - laneがnull
        導入されたバージョン:
        0.9.0
      • getInvisibleValue

        public final int getInvisibleValue​(BeMusicDevice device)
        不可視オブジェの値を取得します。

        この値が0以外となる場合、値からトラックIDを取り出してメタ情報のインデックス値と見なし、入力デバイス操作時に BeMusicMeta.WAVに記述された音声が再生されるべきです。但し同一楽曲位置上に可視オブジェが存在する場合には 可視オブジェ側の音声再生を優先的に行うべきです。

        パラメータ:
        device - 入力デバイス
        戻り値:
        不可視オブジェの値
        例外:
        NullPointerException - deviceがnull
        関連項目:
        BeMusicDevice, BeMusicSound.getTrackId(int)
      • hasPlayableNote

        public final boolean hasPlayableNote()
        この楽曲位置の操作可能ノートの有無を取得します。

        「操作可能ノート」とは、視覚表示されるノートでBeMusicNoteType.NONE以外のものを指します。 この楽曲位置のいずれかの入力デバイスに1つでも操作可能ノートがあれば「あり」と見なされます。

        戻り値:
        この楽曲位置に操作可能ノートが1つでもある場合にtrue
      • hasPlayableNote

        public final boolean hasPlayableNote​(BeMusicLane lane)
        この楽曲位置において指定レーンでの操作可能ノートの有無を取得します。

        「操作可能ノート」とは、視覚表示されるノートでBeMusicNoteType.NONE以外のものを指します。 この楽曲位置のいずれかの入力デバイスに1つでも操作可能ノートがあれば「あり」と見なされます。

        パラメータ:
        lane - レーン
        戻り値:
        操作可能ノートが1つでもある場合true
        例外:
        NullPointerException - laneがnull
        導入されたバージョン:
        0.9.0
      • hasMovementNote

        public final boolean hasMovementNote()
        この楽曲位置の何らかの操作を伴うノートの有無を取得します。

        「何らかの操作を伴う」とは、BeMusicNoteType.hasMovement()がtrueを返すことを表します。 この楽曲位置のいずれかの入力デバイスに1つでも何らかの操作を伴うノートがあれば「あり」と見なされます。

        戻り値:
        この楽曲位置何らかの操作を伴うノートが1つでもある場合にtrue
        導入されたバージョン:
        0.5.0
        関連項目:
        BeMusicNoteType.hasMovement()
      • hasMovementNote

        public final boolean hasMovementNote​(BeMusicLane lane)
        この楽曲位置において指定レーンで何らかの操作を伴うノートの有無を取得します。

        「何らかの操作を伴う」とは、BeMusicNoteType.hasMovement()がtrueを返すことを表します。 この楽曲位置のいずれかの入力デバイスに1つでも何らかの操作を伴うノートがあれば「あり」と見なされます。

        パラメータ:
        lane - レーン
        戻り値:
        何らかの操作を伴うノートが1つでもある場合true
        例外:
        NullPointerException - laneがnull
        導入されたバージョン:
        0.9.0
        関連項目:
        BeMusicNoteType.hasMovement()
      • hasHolding

        public final boolean hasHolding()
        この楽曲位置での長押し継続ノートの有無を取得します。

        具体的には、BeMusicNoteType.isHolding()がtrueを返すノートが1個以上存在する場合にtrueを返します。

        戻り値:
        この楽曲位置に長押し継続ノートが1つでもある場合にtrue
        導入されたバージョン:
        0.6.0
        関連項目:
        BeMusicNoteType.isHolding()
      • hasHolding

        public final boolean hasHolding​(BeMusicLane lane)
        この楽曲位置において指定レーンでの長押し継続ノートの有無を取得します。

        具体的には、BeMusicNoteType.isHolding()がtrueを返すノートが1個以上存在する場合にtrueを返します。

        パラメータ:
        lane - レーン
        戻り値:
        長押し継続ノートが1つでもある場合true
        例外:
        NullPointerException - laneがnull
        導入されたバージョン:
        0.9.0
        関連項目:
        BeMusicNoteType.isHolding()
      • hasLongNoteHead

        public final boolean hasLongNoteHead()
        この楽曲位置での長押し開始ノートの有無を取得します。

        具体的には、BeMusicNoteType.isLongNoteHead()がtrueを返すノートが1個以上存在する場合にtrueを返します。

        戻り値:
        この楽曲位置に長押し開始ノートが1つでもある場合にtrue
        導入されたバージョン:
        0.6.0
        関連項目:
        BeMusicNoteType.isLongNoteHead()
      • hasLongNoteHead

        public final boolean hasLongNoteHead​(BeMusicLane lane)
        この楽曲位置において指定レーンでの長押し開始ノートの有無を取得します。

        具体的には、BeMusicNoteType.isLongNoteHead()がtrueを返すノートが1個以上存在する場合にtrueを返します。

        パラメータ:
        lane - レーン
        戻り値:
        長押し開始ノートが1つでもある場合true
        例外:
        NullPointerException - laneがnull
        導入されたバージョン:
        0.9.0
        関連項目:
        BeMusicNoteType.isLongNoteHead()
      • hasLongNoteTail

        public final boolean hasLongNoteTail()
        この楽曲位置において長押し終了ノートの有無を取得します。

        具体的には、BeMusicNoteType.isLongNoteTail()がtrueを返すノートが1個以上存在する場合にtrueを返します。

        戻り値:
        この楽曲位置に長押し終了ノートが1つでもある場合にtrue
        導入されたバージョン:
        0.6.0
        関連項目:
        BeMusicNoteType.isLongNoteTail()
      • hasLongNoteTail

        public final boolean hasLongNoteTail​(BeMusicLane lane)
        この楽曲位置において指定レーンでの長押し終了ノートの有無を取得します。

        具体的には、BeMusicNoteType.isLongNoteTail()がtrueを返すノートが1個以上存在する場合にtrueを返します。

        パラメータ:
        lane - レーン
        戻り値:
        長押し終了ノートが1つでもある場合true
        例外:
        NullPointerException - laneがnull
        導入されたバージョン:
        0.9.0
        関連項目:
        BeMusicNoteType.isLongNoteTail()
      • hasLongNoteType

        public final boolean hasLongNoteType()
        この楽曲位置において長押し関連ノートの有無を取得します。

        具体的には、BeMusicNoteType.isLongNoteType()がtrueを返すノートが1個以上存在する場合にtrueを返します。

        戻り値:
        この楽曲位置に長押し関連ノートが1つでもある場合にtrue
        導入されたバージョン:
        0.6.0
        関連項目:
        BeMusicNoteType.isLongNoteType()
      • hasLongNoteType

        public final boolean hasLongNoteType​(BeMusicLane lane)
        この楽曲位置において指定レーンでの長押関連ノートの有無を取得します。

        具体的には、BeMusicNoteType.isLongNoteType()がtrueを返すノートが1個以上存在する場合にtrueを返します。

        パラメータ:
        lane - レーン
        戻り値:
        長押し関連ノートが1つでもある場合true
        例外:
        NullPointerException - laneがnull
        導入されたバージョン:
        0.9.0
        関連項目:
        BeMusicNoteType.isLongNoteType()
      • hasVisualEffect

        public final boolean hasVisualEffect()
        この楽曲位置の視覚効果を持つノートの有無を取得します。

        「視覚効果を持つ」とは、BeMusicNoteType.hasVisualEffect()がtrueを返すことを表します。 この楽曲位置のいずれかの入力デバイスに1つでも視覚効果を持つノートがあれば「あり」と見なされます。

        戻り値:
        この楽曲位置に視覚効果を持つノートが1つでもある場合にtrue
        導入されたバージョン:
        0.5.0
        関連項目:
        BeMusicNoteType.hasVisualEffect()
      • hasVisualEffect

        public final boolean hasVisualEffect​(BeMusicLane lane)
        この楽曲位置において指定レーンで視覚効果を持つノートの有無を取得します。

        「視覚効果を持つ」とは、BeMusicNoteType.hasVisualEffect()がtrueを返すことを表します。 この楽曲位置のいずれかの入力デバイスに1つでも視覚効果を持つノートがあれば「あり」と見なされます。

        パラメータ:
        lane - レーン
        戻り値:
        視覚効果を持つノートが1つでもある場合true
        例外:
        NullPointerException - laneがnull
        導入されたバージョン:
        0.9.0
        関連項目:
        BeMusicNoteType.hasVisualEffect()
      • hasChangeSpeed

        public final boolean hasChangeSpeed()
        この楽曲位置での速度変更の有無を取得します。

        具体的には、hasBpm(), hasScroll()のいずれかがtrueを返す場合にtrueを返します。

        戻り値:
        この楽曲位置に速度変更がある場合にtrue
        導入されたバージョン:
        0.6.0
        関連項目:
        hasBpm(), hasScroll()
      • hasGimmick

        public final boolean hasGimmick()
        この楽曲位置でのギミック要素の有無を取得します。

        「ギミック要素」とは、BPM変更、スクロール速度変更、譜面停止、地雷を指します。 これらの要素がいずれか1つ以上存在する場合にtrueを返します。

        戻り値:
        この楽曲位置にギミック要素がある場合にtrue
        導入されたバージョン:
        0.6.0
        関連項目:
        hasChangeSpeed(), hasBpm(), hasScroll(), hasStop(), hasMine()
      • getMeasureLength

        public final double getMeasureLength()
        この楽曲位置が存在する小節の小節長を取得します。

        小節に対して小節長の指定がない場合、この値は1を示し4/4拍子となります。 小節長の値は4/4拍子を1とした長さの比率になります。

        BMSにて小節長が明示的に指定されたかどうかを参照したい場合はhasMeasureLength()を使用してください。

        戻り値:
        小節長
      • getCurrentScroll

        public final double getCurrentScroll()
        この楽曲位置での現在のスクロール速度を取得します。

        スクロール速度変化のない譜面では、この値は常に1.0になります。楽曲位置にてスクロール速度の変更が行われた場合、 当メソッドは変更後のスクロール速度を返します。

        戻り値:
        現在のスクロール速度
        導入されたバージョン:
        0.6.0
        関連項目:
        BeMusicMeta.SCROLL, BeMusicChannel.SCROLL
      • getCurrentBpm

        public final double getCurrentBpm()
        この楽曲位置での現在のBPMを取得します。

        BPM変化のない譜面では、この値は常に初期BPMと同じ値になります。楽曲位置にてBPM変更が行われた場合、 当メソッドは変更後のBPMを返します。

        戻り値:
        現在のBPM
        関連項目:
        BeMusicMeta.INITIAL_BPM, BeMusicMeta.BPM, BeMusicChannel.BPM, BeMusicChannel.BPM_LEGACY
      • getCurrentSpeed

        public final double getCurrentSpeed()
        この楽曲位置での現在の譜面速度を取得します。

        返される値は、現在のBPMに現在のスクロール速度を積算した値となります。

        戻り値:
        現在の譜面速度
        導入されたバージョン:
        0.6.0
        関連項目:
        getCurrentBpm(), getCurrentScroll()
      • 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は楽曲位置が示す時間に到達した時に再生されるべき音声の値が格納されています。 この値からトラックIDを取り出してメタ情報のインデックス値と見なし、BeMusicMeta.WAV の該当する音声参照し再生されるべきです。

        パラメータ:
        index - インデックス(0~getBgmCount()-1)
        戻り値:
        BGMの値
        例外:
        IllegalStateException - この楽曲位置にBGMが存在しない
        IndexOutOfBoundsException - indexがマイナス値または指定可能範囲超過
        関連項目:
        BeMusicMeta.WAV, BeMusicChannel.BGM, BeMusicSound.getTrackId(int)
      • getBgaValue

        public final int getBgaValue()
        この楽曲位置で表示するBGAの値(トラックID)を取得します。

        この値が0以外の場合、値をメタ情報のインデックス値と見なし、BeMusicMeta.BMPの該当する 画像が表示されるべきです。

        戻り値:
        BGAの値
        関連項目:
        BeMusicMeta.BMP, BeMusicChannel.BGA
      • getLayerValue

        public final int getLayerValue()
        この楽曲位置で表示するBGAレイヤーの値(トラックID)を取得します。

        この値が0以外の場合、値をメタ情報のインデックス値と見なし、BeMusicMeta.BMPの該当する 画像がBeMusicChannel.BGAの上に重ねて表示されるべきです。

        戻り値:
        BGAレイヤーの値
        関連項目:
        BeMusicMeta.BMP, BeMusicChannel.BGA_LAYER
      • getMissValue

        public final int getMissValue()
        楽曲のプレーミス時にこの楽曲位置で表示する画像の値(トラックID)を取得します。

        この値が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
      • hasScroll

        public final boolean hasScroll()
        この楽曲位置でスクロール速度を変更する指定が存在するかを判定します。
        戻り値:
        スクロール速度変更の指定がある場合true
        導入されたバージョン:
        0.6.0
        関連項目:
        BeMusicMeta.SCROLL, BeMusicChannel.SCROLL
      • hasStop

        public final boolean hasStop()
        この楽曲位置で譜面停止の視覚効果を行う指定が存在するかを判定します。
        戻り値:
        譜面停止の指定がある場合true
        関連項目:
        BeMusicMeta.STOP, BeMusicChannel.STOP
      • hasMine

        public final boolean hasMine()
        この楽曲位置に地雷オブジェが存在するかを判定します。
        戻り値:
        地雷オブジェが存在する場合true
        導入されたバージョン:
        0.6.0
        関連項目:
        getMineCount()
      • 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
      • hasText

        public final boolean hasText()
        この楽曲位置で表示するテキストが存在するかを判定します。
        戻り値:
        表示するテキストが存在する場合true
        導入されたバージョン:
        0.9.0
        関連項目:
        BeMusicMeta.TEXT, BeMusicChannel.TEXT
      • enumVisibles

        public final void enumVisibles​(IntConsumer action)
        全ての可視オブジェのノートを列挙します。

        当メソッドはenumSounds(boolean, boolean, boolean, IntConsumer)を以下のパラメータで呼び出します。

        enumSounds(true, false, false, action);
        パラメータ:
        action - ノート1個に対して何らかの処理を行う関数
        例外:
        NullPointerException - actionがnull
        導入されたバージョン:
        0.8.0
      • enumInvisibles

        public final void enumInvisibles​(IntConsumer action)
        全ての不可視オブジェのノートを列挙します。

        当メソッドはenumSounds(boolean, boolean, boolean, IntConsumer)を以下のパラメータで呼び出します。

        enumSounds(false, true, false, action);
        パラメータ:
        action - ノート1個に対して何らかの処理を行う関数
        例外:
        NullPointerException - actionがnull
        導入されたバージョン:
        0.8.0
      • enumBgms

        public final void enumBgms​(IntConsumer action)
        全てのBGMのノートを列挙します。

        当メソッドはenumSounds(boolean, boolean, boolean, IntConsumer)を以下のパラメータで呼び出します。

        enumSounds(false, false, true, action);
        パラメータ:
        action - ノート1個に対して何らかの処理を行う関数
        例外:
        NullPointerException - actionがnull
        導入されたバージョン:
        0.8.0
      • enumSounds

        public final void enumSounds​(IntConsumer action)
        サウンドに関連するノートを全て列挙します。

        当メソッドはenumSounds(boolean, boolean, boolean, IntConsumer)を以下のパラメータで呼び出します。

        enumSounds(true, true, true, action);
        パラメータ:
        action - ノート1個に対して何らかの処理を行う関数
        例外:
        NullPointerException - actionがnull
        導入されたバージョン:
        0.8.0
      • enumSounds

        public final void enumSounds​(boolean visible,
                                     boolean invisible,
                                     boolean bgm,
                                     IntConsumer action)
        サウンドに関連するノートを列挙します。

        楽曲位置情報が持つ可視オブジェ・不可視オブジェ・BGMから列挙する種類のノートを選択し、 指定した関数へノートを通知します。関数へ通知される値はノートの生値であり、この値には複数の情報が含まれます。 そのままの状態では音声データを検索するインデックス値としては使用できないことに注意してください。

        列挙されたノートの生値に含まれる情報を取り出すにはBeMusicSoundを使用します。 例えば音声データを検索するインデックス値を取り出したい時はBeMusicSound.getTrackId(int)を呼び出します。

        列挙順は常に可視オブジェ、不可視オブジェ、BGMの順になり、引数で選択された種類のノートが列挙されます。 ただし、選択した種類のノートが楽曲位置情報に存在しない場合は関数へは通知されません。

        パラメータ:
        visible - 可視オブジェを列挙するかどうか
        invisible - 不可視オブジェを列挙するかどうか
        bgm - BGMを列挙するかどうか
        action - ノート1個に対して何らかの処理を行う関数
        例外:
        NullPointerException - actionがnull
        導入されたバージョン:
        0.8.0
        関連項目:
        BeMusicSound
      • visibles

        public final IntStream visibles()
        可視オブジェのノートを走査します。

        当メソッドはsounds(boolean, boolean, boolean)を以下のパラメータで呼び出します。

        sounds(true, false, false);
        戻り値:
        可視オブジェのノートを走査するストリーム
        導入されたバージョン:
        0.8.0
      • invisibles

        public final IntStream invisibles()
        不可視オブジェのノートを走査します。

        当メソッドはsounds(boolean, boolean, boolean)を以下のパラメータで呼び出します。

        sounds(false, true, false);
        戻り値:
        不可視オブジェのノートを走査するストリーム
        導入されたバージョン:
        0.8.0
      • bgms

        public final IntStream bgms()
        BGMのノートを走査します。

        当メソッドはsounds(boolean, boolean, boolean)を以下のパラメータで呼び出します。

        sounds(false, false, true);
        戻り値:
        BGMのノートを走査するストリーム
        導入されたバージョン:
        0.8.0
      • sounds

        public final IntStream sounds()
        全てのサウンドに関連するノートを走査します。

        当メソッドはsounds(boolean, boolean, boolean)を以下のパラメータで呼び出します。

        sounds(true, true, true);
        戻り値:
        全てのサウンドに関連するノートを走査するストリーム
        導入されたバージョン:
        0.8.0
      • sounds

        public final IntStream sounds​(boolean visible,
                                      boolean invisible,
                                      boolean bgm)
        サウンドに関連するノートを走査します。

        楽曲位置情報が持つ可視オブジェ・不可視オブジェ・BGMから、走査する種類のノートを選択し走査します。 通知される値はノートの生値であり、この値には複数の情報が含まれます。 そのままの状態では音声データを検索するインデックス値としては使用できないことに注意してください。

        走査されたノートの生値に含まれる情報を取り出すにはBeMusicSoundを使用します。 例えば音声データを検索するインデックス値を取り出したい時はBeMusicSound.getTrackId(int)を呼び出します。

        走査順は常に可視オブジェ、不可視オブジェ、BGMの順になり、引数で選択された種類のノートが走査されます。 ただし、選択した種類のノートが楽曲位置情報に存在しない場合は走査されません。

        パラメータ:
        visible - 可視オブジェを列挙するかどうか
        invisible - 不可視オブジェを列挙するかどうか
        bgm - BGMを列挙するかどうか
        戻り値:
        選択された種類のノートを走査するストリーム
        導入されたバージョン:
        0.8.0
      • onCreate

        protected void onCreate()
        楽曲位置情報が構築された時に実行されます。

        当メソッドが実行されるのはオブジェクトのベースクラスであるBeMusicPointの構築処理が完了した後です。 従って、クラスのGetterを使用することで構築済みの情報にアクセス可能な状態となっています。

        当メソッドの意図は、ベースクラスを拡張したクラスにおいて自身が必要とする情報を構築する機会を提供する ことにあります。メソッドは全ての情報が設定された後で実行され、当メソッドの実行が完了する時には全ての情報構築が 完了していることが推奨されています。