MIRRORモード

ドラムのレーン構成の左右入れ替えをする、MIRRORモードの仕様を記載する。

OPTION-Drums に、MIRRORを新設する。 選択肢は OFF, M-A, M-B, LEFT の4つで、それぞれレーン構成を以下のように変更する。

MIRROR(OFF)
LC  HO+HC SD BD HT LT  FT  CY+RD

MIRROR(M-A)
無   CY+RD LT BD HT SD  FT  LC+HO+HC

MIRROR(M-B)
CY    RD  FT BD LT HT  SD  LC+HO+HC

MIRROR(LEFT)
CY+RD FT  LT HT BD SD HO+HC   LC
  • 達成率について、M-A, M-Bの場合はこれを半分にする。LEFTの場合は減らさない。
  • ドラム音のパン(定位)について、入れ替わりの発生したレーンについては、これを左右逆にする。レーンの位置に応じた「定位を何%右に移動」といった制御は行わず、単純な左右反転に留める。
  • パッド入力のアサインについては、モードの切り替えに伴うアサイン変更を、特に行わない。
  • Config.ini では、[PlayOption] 内の DrumMirror にて 0~3の値として保持する。0がOFF, 1がM-A, 2がM-B, 3がLEFTを表す。
  • オプション設定表示では、下記画像の位置に相当の設定情報を表示する。具体的にどのような表示を行うかはTBD。
    options_.png
    OPTION設定表示におけるMIRROR設定の表示位置

議論の履歴: チケット#23547を参照。


フリップ機能

088以降、選曲画面でギターまたはベースから Pick-G-G-Pick と入力することにより、ギターとベースを入れ替えることができる(FLIP機能)。これにより、ギターとベース機器をいちいち持ち替えずに切り替えることができる。

ただし088のFLIP実装には問題があるため、089以降を利用のこと。

議論の履歴: #24063を参照。


達成率のグラフ表示

088以降、ドラムスのみ、OPTION/Drums/GraphをONにすることで、演奏画面に達成率をリアルタイムにグラフ表示する。

議論の詳細: #24074を参照。


リザルト画像自動保存機能

089以降、ランクもしくは演奏型スキルポイントを更新すると、演奏したDTXデータのあるフォルダに自動的に dtxファイル名.yyMMddHHmmss_DRUMS_SS.png という形式でリザルト画像を保存する。(SaveScoreIni=ONの場合のみ)

今後、[F12]押下などで、最高記録を更新しない場合でもリザルトを手動でキャプチャできるようにする予定。

議論の履歴: #24609を参照。


曲順のソート機能

089以降、選曲画面でBD-HT(Drums)またはG-G-G(Gt/Bs)と入力することで、曲順のソート画面をポップアップで呼び出せる。

  • Title, Level, Best Rank, PlayCount, SkillPoint, Date で昇順/降順のソートができる。
  • TitleとDateは、今どの難易度を選択しているか(L1~L5)に関わらないソートとなる。
  • Dateは、要するにDTXファイルの作成日(最終更新日)でのソート。
  • Level, Best Rank, PlayCount, SkillPoint は、今選択している難易度(L1~L5)での値でソートする。なので現状、今選んでいる難易度の指定がない曲データ(例: L1がなくてL2とL3しかない等)は、正しくソートされない。
  • 現状、各BOXでのソート結果は、DTXManiaを終了するまでは覚えているが、終了すると忘れてしまう。(今後対応を検討する)

(終了後も覚えさせるのはちょっと大変)

議論の履歴: #23615を参照。


タイミングアジャスト機能

087以降で搭載した、入力遅延の補正機能について、仕様を記載する。

一般的に、キーボードやジョイパッドなどからある時刻にユーザーが入力を与えたとして、 実際にその入力がDTXMania(プログラム)に受理されるまでには時間差(入力遅延)がある。 タイミングアジャスト機能は、この入力遅延に対してオフセット値を設定することで、 ユーザーの入力タイミングと、DTXManiaのヒット判定(Perfect/Great...の判定)に 違和感がないようにするものである。


[ユーザーからの入力発生]

(時間差1) (入力遅延)

[DTXManiaが入力を受理]

[DTXManiaの画面処理実行・チップ音再生]

(時間差2) (出力遅延)

[実際に画面が更新される+音が再生されて、ユーザーがそれを認知する]


OPTIONの、Drums/Guitar/Bass それぞれの、InputAdjust 項目に値を設定することで、 DTXManiaの判定時刻へのオフセットを設定できる。 例えば、ドラムの入力遅延が10msあり、ギターの入力遅延が20msあるような環境では、 DrumsのInputAdjustを-10にし、GuitarのInputAdjustを-20とすることで、 DTXMania本体はそれぞれの入力遅延を相殺した入力判定を行うようになる。

個々のInputAdjustには、-100~100msの値を設定できる。初期値は0。 機能の性格上、ここに正の値を設定することはないと思われるが、 念のため設定はできるようにしてある。

なお、あまりに入力遅延が大きいような環境の場合は、たとえ入力タイミングを補正したとしても 最終的なサウンド出力までの時間が大きくなっていることに変わりはないので、 演奏そのものを楽しめないであろう。

議論の詳細: チケット#23580を参照。


更に、088では、OPTION画面だけでなく、演奏画面からも、カーソルキーの左右でInputAdjustの値を変更できるようにする。 shiftを押しながらだとギターの、altを押しながらだとベースの、何も押さないとドラムの、 InputAdjustを変更する。 ctrlを押しながらだと1ms単位で、押していないと10ms単位で調整を行う。

表にまとめると、以下のようになる。

CTRLSHIFTALTカーソルキー実行される機能
Drums InputAdjust -10ms
* Drums InputAdjust -10ms
Drums InputAdjust +10ms
* Drums InputAdjust +10ms
* Guitar InputAdjust -10ms
** Guitar InputAdjust -10ms
* Guitar InputAdjust +10ms
** Guitar InputAdjust +10ms
* Bass InputAdjust -10ms
* * Bass InputAdjust -10ms
* Bass InputAdjust +10ms
* * Bass InputAdjust +10ms

(以下おまけ)

CTRLSHIFTALTカーソルキー実行される機能
ドラムスクロール速度アップ
ドラムスクロール速度ダウン
* BGMAdjust +10ms
* BGMAdjust -10ms
** BGMAdjust +10ms
** BGMAdjust -10ms


ダメージ/回復量

  • ゲージは-0.1から1.0までの値を取る。(1.0=満タン, 0.3未満=Danger, 0.0=空っぽ, -0.1以下=閉店)
  • チップ演奏の判定結果により、下記のようにゲージが増減する。

086以前:

判定DrGt/Bs
Perfect+0.10+0.15
Great+0.06+0.09
Good+0.02+0.03
Poor+0.0+0.0
Miss-0.035 * 係数-0.035 * 係数

  • 086以前でのMissの係数の具体的な値は、DamageLevel が Small, Normal, Large の時で、それぞれ 0.6, 1.0, 1.6。

087以降:

判定DrGt/Bs
Perfect+0.004+0.006
Great+0.002+0.003
Good+0.0+0.0
Poor-0.02-0.03
Miss-0.05 * 係数-0.05 * 係数

  • 087以降でのMissの係数の具体的な値は、DamageLevel が Small, Normal, Large の時で、それぞれ 0.5, 1.0, 1.5。

議論の詳細: チケット#23625を参照。


Config.ini ファイルに関する新機能

HHVelocityMin, ..., VelocityMin

電子ドラムのHHのベロシティ入力下限値を HHVelocityMin で設定できる。このベロシティ値に満たない入力は切り捨てられる。 これは、主にRoland系の電子ドラムのHHペダルの挙動がDTXManiaの動作に影響が出ないようにするために導入された機能で、Roland系の場合はHHVelocityMinを20程度に設定すること(デフォルト)。 逆にこの値を小さく(0にするなど)しないと入力がうまく入らない電子ドラムもあるので注意が必要。(Awowo系など?)

087以降では、HH「以外」のベロシティ入力下限値を、VelocityMin で設定できるようにした。 これは、共振防止機能を持ち合わせていない電子ドラムキットを想定した機能である。

088以降では、HH「以外」のベロシティ入力下限値を、!SDVelocityMin, !BDVelocityMin などといったようにレーンごとに独立して指定できるようにした。代わりに087で導入した汎用のVelocityMinは廃止した。

議論の詳細: #23857を参照。

score.iniファイルに関する追加仕様

  • 086以降、従来あったPlayCount(演奏開始回数を記録)に加えて、ClearCount(クリア回数を記録)を追加。
    議論の履歴: チケット#23596を参照。
  • 087以降、LastPlay(.Drums, .Guitar, .Bass) セクションを追加し、最終プレイの内容を保持するようにした。
    議論の履歴: チケット#23595を参照。
  • 089以降、BestRank(Drums, Guitar, Bass) 項目を追加し、HiScore/HiSkillに依らないベストランクを保持できるようにした、
    議論の履歴: チケット#24459を参照。

ゴースト機能の仕様

104以降有効。

QuickConfig から現在選択中の曲で各楽器のAUTO/達成率ゴーストを選択できる。

ゴーストデータはそのdtxと同じ場所に保存される(Dr,Gt,Bs別ファイル)。

ゴーストデータの内容はバイナリで、初めの4バイトがその楽器のノーツ数,以降2バイトずつ、ハイ1バイトが1以上の時、その前で空打ちBADがあったことを示す。ロー1バイトはそのノーツを演奏した時のジャストタイミングからのずれ(ミリ秒単位)である。

DTXMania Online Stats で配布されているプラグインを併用することで、そこに保存された他のユーザーのゴーストをダウンロードして利用することが出来る。

AUTOゴーストは全てAUTOのとき有効になる。

ゴーストデータには4つの種類がある。

  • LastPlay:最近のクリアプレーゴースト。
  • HiSkill:最高達成率ゴースト。
  • HiScore:最大スコアゴースト。
  • Perfect:特殊なゴースト。AUTOに相当。
  • Online:DTXMOSのプラグインからランキングを表示し、プレーヤーを選ぶとそのプレーヤーのその譜面でのHiSkillゴーストがダウンロードされ使用される。

DTXC 難易度自動計算の仕様

難易度自動計算のアルゴリズムについて、簡単に。

速い演奏は難しいという着想。

1秒間あたりの演奏状態の移り変わりの多さを基準に難易度を計算する。

演奏状態の移り変わりの難しさを、ある楽器(ドラムパッド・ピック)を鳴らす2つの隣り合うタイミングで、

  • 叩かれたパッド(押されていた弦) → 叩かれない(離された)
  • 叩かれていない(離されている) → 叩かれた(押された)

という動作で決まるものと考える。

両タイミング全体でその動作の数に着目し、適当な重みを与え、譜面全体でみたとき秒間コストの大小で難易を決定する。

現在は1秒間に14コストでドラム 99、7コストでギター 99 ということにしている (上限コストに対する割合でレベルを決める)。