7

そのため、Unity は android で多くのリズム ゲームを実行しません。私はその理由を突き止め、課題として 1 つをプログラムすることにしました (基本はとにかく)。私の最も重要なハードルはユーザー入力です。入力はユニティのフレームレートに基づいていることがわかっているため、音楽ゲーム(私は推測)はボタンを押してからアクションまでの遅延をできるだけ小さくすることを好みます。

音楽を見ると、約 15 ~ 20 ミリ秒の遅延で、人間の耳には何かが「ずれている」と聞こえます。

Android Unity ゲームは 30 FPS で実行されると聞きました (60 FPS ではバッテリーが消耗するため)。おそらく気付かない 15 ミリ秒で計算すると、18 ミリ秒で災害が発生する可能性があります。常にこの 30FPS に到達すると仮定します。

ユーザーから入力を受け取ると、まったく同じフレームでその入力のサウンドを再生できます。ただし、18ms ずれている可能性があります。

Update() の代わりに OnGui() を使用して、マウスとキーボードから直接コントロールを取得し、その場でキーボードまたはマウスのクリックのイベントを取得する方法があります。問題は、Android ではおそらくこれが機能しないことです (これはゲームパッドでも機能しません)。特に OnGui() メソッドからサウンドを再生しようとすると、メソッドがまったく奇妙に聞こえます。

私の質問: あなたは何をしますか、なぜですか? 可能性のある 18 ミリ秒のオフをそのまま受け入れて、30 FPS に達したと仮定するか、更新が来るのを待つのではなく、直接入力を取得する信頼できる方法を探す必要がありますか?

あなたが私に与えることができる洞察に感謝します.私はこれに関する有用な記事をまだ見つけていません. -スマイリー

編集 Unity内のメトロノームでスペースバーをタップして、エディターで100FPS(フレームあたり10msである必要があります)で実行して、メトロノームを使用していくつかの基本的なテストを行いました。私が得た結果はひどいものでした。すばやくタップする: メトロノームのティックに 20 ミリ秒ほど近づいていますが、それ以上のものはありません。ビートをタップする: 目標ティックから少なくとも 200 ミリ秒ずれました。このリズムと混同していない限り、これは間違っています。

現在、Debug.Log を使用してテスト データをログに記録しています。これが原因である可能性があるかどうか(長い遅延が発生しますか?デバッグが最適化されていないことはわかっています)、それともタイミングが実際にそれほど悪いのでしょうか?

前もって感謝します、-ス​​マイリー

4

2 に答える 2

2

まず、コメントと分析にいくつか追加したいと思います。

触覚入力と目が知覚するものとの間の遅延を測定するには、さらに多くのことが必要です。

おそらく、あなたのテストで見落としている最大のものは、グラフィックス カードとテストしている PC モニターとの間の遅延です。最近の一般的な LCD モニターの多くは、処理の遅延で 15 ~ 30 ミリ秒の遅延があります。これがモバイル画面とハードウェアにどの程度関係しているかはわかりませんが、さらなる結論を引き出す前に、時間をかけてターゲット ハードウェアで追加のテストを実行することをお勧めします。

あなたの質問にもっと直接的に答えるには:

私は引き続き Unity を使用しますが、入力を取得してできるだけ早くプレイヤーにフィードバックするための最良の方法を研究し続けます。上記のコメントで、@rutter はこの問題に関する非常に優れたスレッドと思われるものを指摘しています。

具体的には、FixedUpdate()を使用して、ゲームのフレームレートを入力処理速度から切り離すことを検討します。

待ち時間の知覚の心理学を研究することにも時間を費やす価値があると思います. たとえば、ゲームが再生中の曲に一致する一種のギター ヒーロー ゲームである場合、そこにあることがわかっている遅延を単純に考慮し、ゲーム ロジックで入力をチェックするときにそれを考慮に入れることができます。

于 2013-11-15T04:17:30.993 に答える
0

あなたはこれを過度に複雑にしていると思います.精度の問題はあなたが考えているほど悪くはありません.

人々は通常、見ているものと聞いているものを同期させるために、少し早くボタンを押します。

また、一致させようとしているある種のスクロールディスプレイがあるかどうかにも大きく依存します...ディスプレイが30fpsでスムーズにスクロールしている場合(大きなジャンプなし)、タイミングプレスをかなり正確にすることができます.

人はタイミングがずれていることを聞くことはできますが、正確なタイミングでボタンを押す実際のタイミングはそれほど正確ではないと思います。

これがもう1つの簡単な解決策です...ロックバンドとギターヒーローがよく行うことだと思います...とにかく正しい時間に音符/音を演奏し始めます....検出した場合は、壊れた音に変更します彼らはそれを逃したか、間抜けになりました。

于 2013-11-16T01:42:30.300 に答える