unityで音楽ゲームを製作しています。
曲と音符を同期させるために曲の再生時間を取りたいと思い、
audioSource.timeを使えばいいと言うことは分かったのですが、困った事があります。
beatmaniaでもデレステでも何でも音楽ゲームを思い浮かべて頂ければ分かるかと思いますが、
音符が画面上に現れてから判定位置に到達するまでには時間が掛かります。
例えば、
曲時間の3秒のときPERFECT判定になる音符Aがあったとして、
音符が流れるのに1秒掛かるとしたとき、
音符Aを曲時間の2秒のときに画面上に出現させ、そこから1秒かけて判定位置に到達する。
それによって曲時間3秒のときに音符Aは判定位置に存在する。
という流れになるかと思います。
困っているのはここからで、
曲時間0秒のときPERFECT判定になる音符Bがあり、
音符が流れるのに1秒掛かるとしたとき、
音符Bを曲時間の**「-1秒」**のときに画面上に出現させ、そこから1秒かけて判定位置に到達する。
それによって曲時間0秒のときに音符Bは判定位置に存在する。
という場合が考えられます。
しかし、曲時間にもちろんマイナスはありません。
音源の方を編集して曲の頭に無音時間を付けるという方法も無くは無いとは思いますが、
作りたいのは音源も含めてユーザー側で遊ぶ曲を自由に入れ替えられるゲームなので
それはなるべく避けたいです。
現状Time.deltaTimeで独自に時間を計っている状態ですが、
これとaudioSource.timeが乖離した場合音楽ゲームにならないことが考えられるので
できることならaudioSource.timeを使用したいと考えています。
音符が曲開始前でも出現させられるようにしつつ、
再生している曲の時間と同期できるようにするために何か良い案はありますでしょうか?
あくまで曲との同期がメインなので実現できればaudioSource.timeでなくても構いません。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/27 01:47