8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

音ゲーのタイミング計算

Posted at

音ゲーを作ったのでその時の知見をまとめておきます

前提として今回は一定の速度でノーツが移動します
beatmaniaIIDXのSOFT LANDING ON THE BODYのようなソフランは考慮していませんが、最初からノーツスピードが遅く流れてくる太鼓の達人のようなソフランは対応できます

ノーツの移動
update(){
 this.gameObject.transform.Translate(0, "ノーツの移動速度" * Time.deltaTime, 0);
}

//ノーツの移動速度の計算方法
speed  = "曲のノーツスピード" * "プレイヤーが設定したノーツスピード" * "曲のBPM" / 60;

原型
座標 = "曲のBPM" / 60 * "ノーツをタップする時間" * "曲のノーツスピード" + "曲のオフセット";
プレイヤーが設定をいじる場合
座標 = "曲のBPM" / 60 * "ノーツをタップする時間" * "曲のノーツスピード" * "プレイヤーが設定したノーツスピード" + "曲のオフセット" + "プレイヤーの設定したオフセット";
//この際、曲のノーツスピードは基本値を1にしておくこと

このように座標の計算ができる

おまけ

スコア計算について

最終的に1000000になるように1ノーツあたりのスコアを計算して足していく方法が最初に思いついたが、細かすぎる計算はあまりきれいに出ない
何なら1000000にならないことが多々あった

別の方法として割合で計算する方法がある

score = (int)((float)1000000 * (((((float)"最高判定の数" * (float)2) + (float)"ひとつ下の判定" )/ ((float)"すべてのノーツ数" * (float)2))));

参考元

小節数から再生時間を計算する

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?