コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
しょうご ◆tpp2zBc4h8pI
2020/3/13 14:36
質問
音楽ゲームでテンポとノーツを合わせるには
リズミカルおもちつきなどの音楽ゲームがまた活気が出てきていますが、音楽ゲームを作る際に、曲のテンポとノーツを重ねるようにするにはどうすれば良いのでしょうか。
リズミカルおもちつきなどは、曲のテンポを変更するだけでノーツのスピードも変わるので同じようにテンポだけで設定できるようにしたいと思っています。

コメント

アバター
Na 2020/3/13 14:49 ◆QoELVrBXBQCI
リズミカルおもちつきSPなどで使われているのは、BGMVARを使った方法です。
例えばT120[$0=0R16 $0=1R16]のようなMMLを曲と同時に再生し、BGMVARで$0の値を監視すれば16分単位でタイミングが分かります。

2つ目がMILLISECを使う方法です。
例えば16分音符1つ分が何ミリ秒か計算しておき、前回ノーツを流したタイミングからその秒数だけ経過したら次のノーツを流す、というようにやります。
この方法だと途中から24分にしたり、などということが簡単にできます。

3つめはMAINCNTを使う方法です。やり方はMILLISECとほぼ同じなんですが、3号では1フレームが正確に1/60秒じゃなかったりするので難しいです。

NewリズミカルおもちつきSPではMILLISECを使っていますが、途中のテンポ変更の検知にBGMVARを使っています。
MMLを1文字ずつ調べてTコマンドを探し、テンポを配列に入れておいて、その位置に$7=1,$7=2などど印を入れ、再生中に$7が変わったらテンポが変わったと分かります。
でも譜面データの中にいつテンポが変わるかを書いておいた方がスムーズに動きますし、楽だと思います。
アバター
しょうご 2020/3/13 17:22 ◆tpp2zBc4h8pI
フレームがずれている話はよく聞きますね。その時点で3つ目のMAINCNTは無しですね。
MILLISECだと後からのタイミング変更が簡単そうなので試してみます。テンポを配列に入れる方法だと面倒な気もするので譜面のDATA文に入れたほうが良さそうですね。

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -