チケット #31897

タイミングアジャストをリアルタイムでやる

登録: 2013-08-18 16:01 最終更新: 2014-01-23 22:18

報告者:
(del#77780)
担当者:
(未割り当て)
チケットの種類:
状況:
オープン
コンポーネント:
マイルストーン:
優先度:
5 - 中
重要度:
2
解決法:
なし
ファイル:
なし
投票
点数: 0
No votes
0.0% (0/0)
0.0% (0/0)

詳細

今現在、タイミングアジャストは数値で調整するが、
プレイ画面を表示してアジャスト用のチップ(一つか二つ)を流してショットポイントに重なったらプレイヤーに叩いてもらい、
そのタイミングのズレで自動調整出来るようにする。
試し演奏も出来るようにする。(設定が合わなかったときにプレイしてミスが増えるのを防止出来る。)

チケットの履歴 (3 件中 3 件表示)

2013-08-18 16:01 更新者: (del#77780)
  • 新しいチケット "タイミングアジャストをリアルタイムでやる" が作成されました
2013-09-22 06:10 更新者: yyagi
コメント

コメントが遅くなり、ごめんなさい。

タイミングアジャストですが、まずユーザーさんには

  • 「目押し」でタイミングをとる人
  • 「音で」タイミングをとる人

の二通りの方がいらっしゃいます。(sf298yenさんが前者だと思います。私は後者。)

一方で、この調整は、内部的には以下の3つの調整を行うことになります。

  • 入力遅延の補正(キーボード, joypad, MIDI入力をPCが受理するまでの遅れ、を補正する)
  • 画面出力の遅延の補正 (例えば、3フレーム遅れて表示されるとかいうやつ。これを加味して、3フレーム速く表示したり、判定ラインの表示位置を調整したりする)
  • オーディオ出力の遅延の補正 (例えば20ms遅れて出力される(レイテンシー)のを加味して、BGMを20ms早く演奏し始める)

なので、単純に「プレイ画面を表示してアジャスト用のチップ(一つか二つ)を流してショットポイントに重なったらプレイヤーに叩いてもらい、 そのタイミングのズレで自動調整出来るようにする。」という機能では、これらのすべてを設定することができません。

# 3次方程式(変数が3つ)を解くのに、与えられる式が一つでは解けないですよね。

少なくとも、「目押し用」「音用」で、別々のタイミングアジャスト(リアルタイム)機能を用意しないといけないでしょうね。

# 現在、(リアルタイムでない) タイミングアジャスト機能は「入力補正」「音の補正」しかなく、「目押し用の画面出力補正」がないです。「目押し用の画面出力補正」として、#31602で判定バーの上下機能を乗せようとしたのですが・・・(後述)

ただし、仮にこれらをキチンと補正したとしても、結局「補正」できるのは「判定」だけであって、画面出力やオーディオ出力は遅れたままです。

例として極端な例を書くと、画面出力の遅延が1秒あったとして、これを仮に「1秒後に表示される画面を先行して表示する」ように補正して対応したとします。この場合、画面を見てキーを押せば判定はPerfectになりますが、チップのヒット処理の画面表示は、どうしてもキーを押してから1秒後になってしまいます。これだと、実際にプレイしていて楽しいものではないと思います。(実際、#31602で判定ラインを上下させる試作をしてみましたが、チップのヒット処理が(さすがに1秒とは言いませんが数フレーム分)遅れることから「違和感が残る」という結果になりました。)

オーディオ出力についても同じです。キーを押してから1秒後にスネアの音が出ても楽しくない。

なので、タイミングアジャスト機能を作りこむのは非常に難しいです。何か良いアイデアがあれば、ぜひ教えてください。(私はまず遅延を小さくするのが重要と考えていて、これまではどちらかというとそちらの方に注力していました。)

2014-01-23 22:18 更新者: yyagi
コメント

以下3つのアジャスト機能を設けるのがよいかな。

  • 音を出さずに、目押しだけでのアジャスト (画面出力ラグの補正) ※ キーボード入力を使う
  • 画面を出さずに、音だけでのアジャスト (サウンド出力ラグの補正) ※キーボード入力を使う
  • 画面を出さずに、音だけでのアジャスト (入力デバイスの入力ラグ補正、上2つの補正が完了している前提で)

添付ファイルリスト

添付ファイルはありません

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする