第03回 リズムゲーム2
第02回でそろえた時間軸を使い、ノートの発行・移動・入力判定と、終了・再挑戦の仕組みを確認します。その後、拍をTickへ分け、CSVにノーツを置く場所を書きます。表示と判定へ、テキストから作った譜面を渡します。
配布プロジェクト
第03回の開始用プロジェクトを別のフォルダーへ展開し、Unity HubでRhythmGameを追加してください。Unity 6000.5.5f1で開き、Assets/UNSLOW/RhythmGame/Scenes/RhythmGame.unityを開きます。前の回の受講や完成物は必要ありません。
CSVを保存してUnityで再読み込みする操作と、C#の配列、繰り返し、関数の戻り値を使います。ノーツの時刻を確認したい場合は、曲の時計と共通の時間軸を参照してください。
開始版には、ノーツの表示、入力判定、再挑戦が実装されています。前半では配布済みのコードを読み、固定譜面で速度・先読み時間・判定幅を変えて確かめます。後半ではChartParser.csのParseNoteRowを実装し、CSVの1行を4レーンの整数配列へ変換します。
最初はPlayを止めた状態で、InspectorのChart SourceにあるUse Csvをオフにしてください。固定の8音譜面で表示・判定を試せます。CSVを使う状態へ戻す手順は、CSVの読み取りを実装するステップで案内します。Use Csvがオンで読み取りが未実装の場合は、ノーツがないことを知らせるCHECK CHARTが表示されます。
配布ファイル一覧
| ファイル | 役割 |
|---|---|
Assets/UNSLOW/RhythmGame/Charts/synthwavehouse.csv | 曲の情報とTick単位の譜面 |
Assets/UNSLOW/RhythmGame/Scripts/ChartSource.cs | Inspectorで指定したTextAssetから文字列を読む |
Assets/UNSLOW/RhythmGame/Scripts/ChartParser.cs | 設定行とノーツ行を読む |
Assets/UNSLOW/RhythmGame/Scripts/NoteData.cs | ChartDataのTickを判定時刻へ変換する |
Assets/UNSLOW/RhythmGame/Scripts/BeatTickView.cs | Beatと現在Tickを表示する |
Assets/UNSLOW/RhythmGame/Scripts/TickView.cs | Tick Prefabの番号と強調を表示する |
Assets/ThirdParty/Audio/synthwavehouse.wav | 練習用の音源 |
Assets/ThirdParty/Audio/LICENSES.md | 音源の作者、出典、利用条件 |
この回のゴール
見本では曲の再生開始からBeatとTickの表示が進みます。バー全体の発光は1拍ごと、番号の強調は現在のTickです。二つを見ながら、ノーツを置く間隔を確かめます。
- 同じ時間軸でノートを発行・移動・判定し、再挑戦で戻す状態を説明できる。
- BPMとTick数から時刻を計算し、CSVを解析して休符や同時押しを含む譜面を作れる。
- 譜面を一つ変えた結果と、選んだ音源の利用条件を説明できる。
今回のポイント
前半では、発行予定時刻、残り時間からの距離、入力時刻との差を確認します。固定譜面でもCSV譜面でも、表示と判定が受け取るのはレーンと判定時刻の配列です。
CSVの行は、ノーツの個数ではなく時間の順番を表します。休符の行も保存します。同じ行のノーツには、同じ時刻を割り当てる規則です。
図を準備しています…
設定行、時刻の変換、エラー表示は配布済みの処理を使います。表示と判定の仕組みを確認した後、自分で書く部分はノーツ行の変換です。その後はCSVを編集して、押す回数と間隔による遊び心地の違いを比べます。
授業の進め方
完成確認
- 速度・先読み時間・判定幅の一つを変え、時刻と表示・判定の関係を説明できる。
- 再挑戦で曲・時計・ノーツ・判定件数が初期化されることを確認した。
- 休符を追加すると後続ノーツが遅くなり、コメントでは時刻が変わらない。
- 同じ行の二つのノーツを同時押しとして演奏できる。
- Tick数を変えたときの行数と時刻を説明できる。
- 曲の作者、配布元、予定する利用に必要な条件を記録した。
ライセンス
| アセット | 作者 | 提供元 | ライセンス |
|---|---|---|---|
| Synthwave House Loopの添付ループ音源 | Fupi | OpenGameArt | CC0 1.0 Universal |
| UDEV Gothic v2.2.0と、元フォントから生成したSDF Font Asset | yuru7 | UDEV Gothic | SIL Open Font License 1.1 |
音源の記録はAssets/ThirdParty/Audio/LICENSES.md、フォントの出典・著作権表示・ライセンス文書はAssets/ThirdParty/UDEVGothic/に同梱されています。