Unityで創作譜面スマホ音ゲーを作る開発日記 6【配置機能の実装など】

グリッド線の実装

ノーツを配置する上で必須となるグリッド線を実装しました。これがないと正確なタイミングでノーツの配置ができません。

大量にある薄い横線がグリッド線

最初は愚直に譜面全体のグリッド線を生成していたのですが、グリッドが細かくなってくるとオブジェクトの数が爆発的に増加し、スマホ上で動作させたときに重たくなってしまったので、Object Poolという技術を使って画面内に描画するグリッド線の数だけ生成しそれらを使い回すことで負荷軽減しました。
将来的にはノーツなども全てObject Poolを使うことになりそうな予感があります。

ノーツの配置

譜面をタップしてノーツを配置できるようにしてみました。レーンやグリッドを自由に設定して配置できます。これがやりたかったんだよこれが。

スワイプでの譜面スクロール

スワイプで譜面をスクロールできるようにしてみました。
単に画面がスクロールしているわけではなく、再生位置(要は時間)を指の移動距離に応じて書き換えることで譜面がスクロールしているように見せかけています。

慣性スクロールも作ってみました。
指を離しても勢いを保持してスクロールし続けるやつです。
DOTweenのDOVirtualクラスを活用して自然な慣性をつけています。

アスペクト比によるカメラ位置の自動調整

スマホやタブレットでプロセカなどのスマホ音ゲーを遊んだ際、画面のアスペクト比によってレーンの描画位置が変わっていることに気づきました。
それらを参考に実装してみます。

16:9
21:9

アスペクト比が横長になるほど、判定ラインのスペースを広くして横幅が狭くならないように調整が入ります。また、スペースを広くしたぶん傾斜をきつくすることで、譜面の描画範囲が変わらないように調整しています。

次回は執筆中!

この記事が気に入ったらサポートをしてみませんか?