ページ 11

音ゲーにおける音楽との同期

Posted: 2016年8月10日(水) 00:03
by 夢幻ノ月夜
今回CHUNITHMにはまって音ゲーをつくろうと思っているのですが
音楽と譜面を同期するにはどうしたらいいのでしょうか
Dixqさんの「太鼓の鉄人」のコードを覗いてみたのですが
音楽との同期は何をやっているのかよくわかりませんでした
あれは一体何をやっているのでしょうか

Re: 音ゲーにおける音楽との同期

Posted: 2016年8月16日(火) 18:03
by Dixq (管理人)
音ゲーを作る時は音楽の時間が第一です。
リアル世界の1秒よりも実際に音楽が流れた1秒が優先なのです。
で、今何秒音楽が流れたかを測定しながらUpdateとDrawを合わせます。
基本的にゲームは大きく分けて各モジュールを
Update();
Draw();
の2つにわけて作成します。
このうち、時間がかかるのはほとんどDrawです。
よってDrawを必要な分だけスキップするのです。
60FPSで動いているゲームにおいて1フレームは1/60です。
現在音楽が流れている時間をこのフレーム数に合わせます。
オーバーしていればDrawをその分だけスキップしてやり、
足らなければSleepしてまつことで
ゲーム時間と音楽時間を一致させているのです。