タイミングアジャストをリアルタイムでやる
コメントが遅くなり、ごめんなさい。
タイミングアジャストですが、まずユーザーさんには
の二通りの方がいらっしゃいます。(sf298yenさんが前者だと思います。私は後者。)
一方で、この調整は、内部的には以下の3つの調整を行うことになります。
なので、単純に「プレイ画面を表示してアジャスト用のチップ(一つか二つ)を流してショットポイントに重なったらプレイヤーに叩いてもらい、 そのタイミングのズレで自動調整出来るようにする。」という機能では、これらのすべてを設定することができません。
# 3次方程式(変数が3つ)を解くのに、与えられる式が一つでは解けないですよね。
少なくとも、「目押し用」「音用」で、別々のタイミングアジャスト(リアルタイム)機能を用意しないといけないでしょうね。
# 現在、(リアルタイムでない) タイミングアジャスト機能は「入力補正」「音の補正」しかなく、「目押し用の画面出力補正」がないです。「目押し用の画面出力補正」として、#31602で判定バーの上下機能を乗せようとしたのですが・・・(後述)
ただし、仮にこれらをキチンと補正したとしても、結局「補正」できるのは「判定」だけであって、画面出力やオーディオ出力は遅れたままです。
例として極端な例を書くと、画面出力の遅延が1秒あったとして、これを仮に「1秒後に表示される画面を先行して表示する」ように補正して対応したとします。この場合、画面を見てキーを押せば判定はPerfectになりますが、チップのヒット処理の画面表示は、どうしてもキーを押してから1秒後になってしまいます。これだと、実際にプレイしていて楽しいものではないと思います。(実際、#31602で判定ラインを上下させる試作をしてみましたが、チップのヒット処理が(さすがに1秒とは言いませんが数フレーム分)遅れることから「違和感が残る」という結果になりました。)
オーディオ出力についても同じです。キーを押してから1秒後にスネアの音が出ても楽しくない。
なので、タイミングアジャスト機能を作りこむのは非常に難しいです。何か良いアイデアがあれば、ぜひ教えてください。(私はまず遅延を小さくするのが重要と考えていて、これまではどちらかというとそちらの方に注力していました。)
以下3つのアジャスト機能を設けるのがよいかな。
今現在、タイミングアジャストは数値で調整するが、
プレイ画面を表示してアジャスト用のチップ(一つか二つ)を流してショットポイントに重なったらプレイヤーに叩いてもらい、
そのタイミングのズレで自動調整出来るようにする。
試し演奏も出来るようにする。(設定が合わなかったときにプレイしてミスが増えるのを防止出来る。)